From 0ca57c2f019e3764c982f29478c26c1a10b5b0f7 Mon Sep 17 00:00:00 2001 From: morsch Date: Wed, 28 May 2014 09:22:23 +0200 Subject: [PATCH] Updates EvtGen Code Fiorella Fionda Giuseppe Bruno --- TEvtGen/AliDecayerEvtGen.cxx | 22 +- TEvtGen/AliDecayerEvtGen.h | 7 +- TEvtGen/CMakelibEvtGen.pkg | 570 +- TEvtGen/CMakelibEvtGenBase.pkg | 34 - TEvtGen/CMakelibEvtGenExternal.pkg | 63 + TEvtGen/CMakelibEvtGenModels.pkg | 38 - TEvtGen/CMakelibHepMC.pkg | 95 + ...{CMakelibphotos.pkg => CMakelibPhotos.pkg} | 49 +- TEvtGen/CMakelibTEvtGen.pkg | 2 +- TEvtGen/CMakelibTauola.pkg | 44 + TEvtGen/EvtGen/DECAY.DEC | 9231 ++++----- TEvtGen/EvtGen/DecayTable/BTOELE.DEC | 388 +- TEvtGen/EvtGen/DecayTable/BTOELEold.DEC | 329 - TEvtGen/EvtGen/DecayTable/BTOJPSI.DEC | 258 +- TEvtGen/EvtGen/DecayTable/BTOJPSITOELE.DEC | 258 +- TEvtGen/EvtGen/DecayTable/BTOJPSITOMU.DEC | 259 +- TEvtGen/EvtGen/DecayTable/PSI2STOMU.DEC | 6 + TEvtGen/EvtGen/DecayTable/UPSILONTO2SMU.DEC | 6 + TEvtGen/EvtGen/DecayTable/UPSILONTOMU.DEC | 7 + TEvtGen/EvtGen/EvtCheckDecays.cxx | 383 - TEvtGen/EvtGen/EvtCheckDecays.hh | 34 - TEvtGen/EvtGen/EvtGen.cpp | 203 + TEvtGen/EvtGen/EvtGen.cxx | 317 - TEvtGen/EvtGen/EvtGen.hh | 31 +- TEvtGen/EvtGen/EvtGenLinkDef.h | 10 - TEvtGen/EvtGen/Makefile | 327 - TEvtGen/EvtGen/config.mk | 11 - TEvtGen/EvtGen/decay.evt | 1349 -- TEvtGen/EvtGen/evt.pdl | 1222 +- .../{Evt3Rank3C.cxx => Evt3Rank3C.cpp} | 0 TEvtGen/EvtGenBase/Evt3Rank3C.hh | 3 - TEvtGen/EvtGenBase/EvtAbsBinning.hh | 2 +- ...vtAbsLineShape.cxx => EvtAbsLineShape.cpp} | 18 +- TEvtGen/EvtGenBase/EvtAbsLineShape.hh | 6 +- TEvtGen/EvtGenBase/EvtAbsRadCorr.hh | 3 +- TEvtGen/EvtGenBase/{EvtAmp.cxx => EvtAmp.cpp} | 11 +- TEvtGen/EvtGenBase/EvtAmpAmpPdf.hh | 2 +- .../{EvtAmpIndex.cxx => EvtAmpIndex.cpp} | 0 TEvtGen/EvtGenBase/EvtAmpPdf.hh | 2 +- ...{EvtAmpSubIndex.cxx => EvtAmpSubIndex.cpp} | 0 TEvtGen/EvtGenBase/EvtAmplitude.hh | 2 +- TEvtGen/EvtGenBase/EvtAmplitudeSum.hh | 2 +- ...attWeisskopf.cxx => EvtBlattWeisskopf.cpp} | 45 +- TEvtGen/EvtGenBase/EvtBlattWeisskopf.hh | 2 +- ...eitWignerPdf.cxx => EvtBreitWignerPdf.cpp} | 2 +- TEvtGen/EvtGenBase/EvtBreitWignerPdf.hh | 2 +- ...vtCGCoefSingle.cxx => EvtCGCoefSingle.cpp} | 6 +- .../{EvtCPUtil.cxx => EvtCPUtil.cpp} | 186 +- TEvtGen/EvtGenBase/EvtCPUtil.hh | 48 +- .../{EvtComplex.cxx => EvtComplex.cpp} | 0 .../EvtGenBase/{EvtConst.cxx => EvtConst.cpp} | 0 .../{EvtCyclic3.cxx => EvtCyclic3.cpp} | 9 +- TEvtGen/EvtGenBase/EvtCyclic3.hh | 4 +- ...{EvtDalitzCoord.cxx => EvtDalitzCoord.cpp} | 2 +- TEvtGen/EvtGenBase/EvtDalitzCoord.hh | 2 +- ...DalitzFlatPdf.cxx => EvtDalitzFlatPdf.cpp} | 4 +- TEvtGen/EvtGenBase/EvtDalitzFlatPdf.hh | 2 +- .../{EvtDalitzPlot.cxx => EvtDalitzPlot.cpp} | 2 +- TEvtGen/EvtGenBase/EvtDalitzPlot.hh | 2 +- ...{EvtDalitzPoint.cxx => EvtDalitzPoint.cpp} | 4 +- TEvtGen/EvtGenBase/EvtDalitzPoint.hh | 2 +- ...vtDalitzResPdf.cxx => EvtDalitzResPdf.cpp} | 4 +- TEvtGen/EvtGenBase/EvtDalitzResPdf.hh | 2 +- .../{EvtDalitzReso.cxx => EvtDalitzReso.cpp} | 90 +- TEvtGen/EvtGenBase/EvtDalitzReso.hh | 34 +- .../{EvtDecayAmp.cxx => EvtDecayAmp.cpp} | 33 +- .../{EvtDecayBase.cxx => EvtDecayBase.cpp} | 31 +- TEvtGen/EvtGenBase/EvtDecayBase.hh | 2 + ...yIncoherent.cxx => EvtDecayIncoherent.cpp} | 0 .../{EvtDecayMode.cxx => EvtDecayMode.cpp} | 4 +- TEvtGen/EvtGenBase/EvtDecayMode.hh | 2 +- .../{EvtDecayParm.cxx => EvtDecayParm.cpp} | 0 .../{EvtDecayProb.cxx => EvtDecayProb.cpp} | 0 TEvtGen/EvtGenBase/EvtDecayTable.cpp | 1499 ++ TEvtGen/EvtGenBase/EvtDecayTable.cxx | 850 - TEvtGen/EvtGenBase/EvtDecayTable.hh | 53 +- .../EvtGenBase/{EvtDiLog.cxx => EvtDiLog.cpp} | 2 +- TEvtGen/EvtGenBase/EvtDiLog.hh | 2 +- ...DiracParticle.cxx => EvtDiracParticle.cpp} | 16 +- ...{EvtDiracSpinor.cxx => EvtDiracSpinor.cpp} | 33 +- TEvtGen/EvtGenBase/EvtDiracSpinor.hh | 3 +- .../{EvtEvalHelAmp.cxx => EvtEvalHelAmp.cpp} | 0 .../EvtExtGeneratorCommandsTable.cpp | 40 + .../EvtExtGeneratorCommandsTable.hh | 53 + TEvtGen/EvtGenBase/EvtFlatAmp.hh | 2 +- ...FlatLineShape.cxx => EvtFlatLineShape.cpp} | 0 .../{EvtFlatte.cxx => EvtFlatte.cpp} | 0 ...{EvtGammaMatrix.cxx => EvtGammaMatrix.cpp} | 32 +- TEvtGen/EvtGenBase/EvtGammaMatrix.hh | 11 +- TEvtGen/EvtGenBase/EvtGenBaseLinkDef.h | 8 - TEvtGen/EvtGenBase/EvtGenBaseLinkDefOLD.h | 117 - .../{EvtGenKine.cxx => EvtGenKine.cpp} | 12 +- TEvtGen/EvtGenBase/EvtHepMCEvent.cpp | 198 + TEvtGen/EvtGenBase/EvtHepMCEvent.hh | 77 + ...inParticle.cxx => EvtHighSpinParticle.cpp} | 0 TEvtGen/EvtGenBase/{EvtId.cxx => EvtId.cpp} | 5 + TEvtGen/EvtGenBase/EvtId.hh | 7 +- .../EvtGenBase/{EvtIdSet.cxx => EvtIdSet.cpp} | 0 TEvtGen/EvtGenBase/EvtIncoherentMixing.cpp | 264 + TEvtGen/EvtGenBase/EvtIncoherentMixing.hh | 78 + .../{EvtIntegPdf1D.cxx => EvtIntegPdf1D.cpp} | 2 +- TEvtGen/EvtGenBase/EvtIntegPdf1D.hh | 2 +- ...rvalFlatPdf.cxx => EvtIntervalFlatPdf.cpp} | 2 +- TEvtGen/EvtGenBase/EvtIntervalFlatPdf.hh | 2 +- .../EvtGenBase/{EvtKine.cxx => EvtKine.cpp} | 13 +- .../{EvtLASSAmp.cxx => EvtLASSAmp.cpp} | 29 +- TEvtGen/EvtGenBase/EvtLASSAmp.hh | 10 +- ...vtMBreitWigner.cxx => EvtMBreitWigner.cpp} | 0 .../{EvtMHelAmp.cxx => EvtMHelAmp.cpp} | 0 .../EvtGenBase/{EvtMNode.cxx => EvtMNode.cpp} | 0 .../{EvtMParticle.cxx => EvtMParticle.cpp} | 2 +- TEvtGen/EvtGenBase/EvtMParticle.hh | 2 +- .../EvtGenBase/{EvtMRes.cxx => EvtMRes.cpp} | 0 .../EvtGenBase/{EvtMTree.cxx => EvtMTree.cpp} | 0 .../{EvtMTrivialLS.cxx => EvtMTrivialLS.cpp} | 2 +- TEvtGen/EvtGenBase/EvtMTrivialLS.hh | 2 +- TEvtGen/EvtGenBase/EvtMacros.hh | 2 +- ...hape.cxx => EvtManyDeltaFuncLineShape.cpp} | 0 .../{EvtMassAmp.cxx => EvtMassAmp.cpp} | 2 +- TEvtGen/EvtGenBase/EvtMassAmp.hh | 2 +- TEvtGen/EvtGenBase/EvtMatrix.hh | 9 +- .../EvtGenBase/{EvtModel.cxx => EvtModel.cpp} | 0 .../{EvtModelAlias.cxx => EvtModelAlias.cpp} | 0 ...elParser.cxx => EvtMultiChannelParser.cpp} | 9 +- TEvtGen/EvtGenBase/EvtMultiChannelParser.hh | 2 +- ...noParticle.cxx => EvtNeutrinoParticle.cpp} | 0 ...nresonantAmp.cxx => EvtNonresonantAmp.cpp} | 0 ...vtOrthogVector.cxx => EvtOrthogVector.cpp} | 0 TEvtGen/EvtGenBase/{EvtPDL.cxx => EvtPDL.cpp} | 4 + TEvtGen/EvtGenBase/EvtPDL.hh | 2 +- .../{EvtParser.cxx => EvtParser.cpp} | 0 TEvtGen/EvtGenBase/EvtParserXml.cpp | 264 + TEvtGen/EvtGenBase/EvtParserXml.hh | 67 + .../{EvtPartProp.cxx => EvtPartProp.cpp} | 4 + TEvtGen/EvtGenBase/EvtPartProp.hh | 2 +- .../{EvtParticle.cxx => EvtParticle.cpp} | 143 +- TEvtGen/EvtGenBase/EvtParticle.hh | 20 +- ...ParticleDecay.cxx => EvtParticleDecay.cpp} | 0 ...DecayList.cxx => EvtParticleDecayList.cpp} | 18 +- TEvtGen/EvtGenBase/EvtParticleDecayList.hh | 8 +- ...icleFactory.cxx => EvtParticleFactory.cpp} | 0 TEvtGen/EvtGenBase/EvtPatches.hh | 2 + TEvtGen/EvtGenBase/EvtPdf.hh | 2 +- TEvtGen/EvtGenBase/EvtPdfMax.hh | 2 +- TEvtGen/EvtGenBase/EvtPdfSum.hh | 2 +- ...otonParticle.cxx => EvtPhotonParticle.cpp} | 3 + TEvtGen/EvtGenBase/EvtPhotonParticle.hh | 2 +- .../{EvtPoint1D.cxx => EvtPoint1D.cpp} | 2 +- TEvtGen/EvtGenBase/EvtPoint1D.hh | 2 +- TEvtGen/EvtGenBase/EvtPointPred.hh | 4 +- TEvtGen/EvtGenBase/EvtPredGen.hh | 2 +- ...BreitWigner.cxx => EvtPropBreitWigner.cpp} | 2 +- TEvtGen/EvtGenBase/EvtPropBreitWigner.hh | 2 +- ...ignerRel.cxx => EvtPropBreitWignerRel.cpp} | 2 +- TEvtGen/EvtGenBase/EvtPropBreitWignerRel.hh | 2 +- .../{EvtPropFlatte.cxx => EvtPropFlatte.cpp} | 0 ...Sakurai.cxx => EvtPropGounarisSakurai.cpp} | 2 +- TEvtGen/EvtGenBase/EvtPropGounarisSakurai.hh | 2 +- TEvtGen/EvtGenBase/EvtPropagator.hh | 2 +- .../{EvtPto3PAmp.cxx => EvtPto3PAmp.cpp} | 2 +- TEvtGen/EvtGenBase/EvtPto3PAmp.hh | 4 +- ...PAmpFactory.cxx => EvtPto3PAmpFactory.cpp} | 15 +- TEvtGen/EvtGenBase/EvtPto3PAmpFactory.hh | 2 +- ...ution.cxx => EvtPto3PAmpSmpResolution.cpp} | 0 .../{EvtRadCorr.cxx => EvtRadCorr.cpp} | 0 .../{EvtRanFor.cxx => EvtRanFor.cpp} | 2 +- .../{EvtRandom.cxx => EvtRandom.cpp} | 0 TEvtGen/EvtGenBase/EvtRandomEngine.hh | 29 - .../EvtGenBase/{EvtRanf.cxx => EvtRanf.cpp} | 2 +- ...taSchwinger.cxx => EvtRaritaSchwinger.cpp} | 0 ...cle.cxx => EvtRaritaSchwingerParticle.cpp} | 0 ...t.cxx => EvtRelBreitWignerBarrierFact.cpp} | 20 +- .../EvtRelBreitWignerBarrierFact.hh | 6 +- .../{EvtReport.cxx => EvtReport.cpp} | 0 .../{EvtResonance.cxx => EvtResonance.cpp} | 0 .../{EvtResonance2.cxx => EvtResonance2.cpp} | 0 ...alarParticle.cxx => EvtScalarParticle.cpp} | 0 .../{EvtSecondary.cxx => EvtSecondary.cpp} | 0 ...LeptonicAmp.cxx => EvtSemiLeptonicAmp.cpp} | 0 TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.hh | 3 +- .../EvtGenBase/EvtSemiLeptonicBaryonAmp.cpp | 801 + .../EvtGenBase/EvtSemiLeptonicBaryonAmp.cxx | 163 - .../EvtGenBase/EvtSemiLeptonicBaryonAmp.hh | 32 + TEvtGen/EvtGenBase/EvtSemiLeptonicFF.hh | 14 +- ...arAmp.cxx => EvtSemiLeptonicScalarAmp.cpp} | 0 ...orAmp.cxx => EvtSemiLeptonicTensorAmp.cpp} | 4 +- ...orAmp.cxx => EvtSemiLeptonicVectorAmp.cpp} | 4 +- ...omEngine.cxx => EvtSimpleRandomEngine.cpp} | 0 TEvtGen/EvtGenBase/EvtSimpleRandomEngine.hh | 4 +- .../{EvtSpinAmp.cxx => EvtSpinAmp.cpp} | 2 +- ...{EvtSpinDensity.cxx => EvtSpinDensity.cpp} | 10 +- .../{EvtSpinType.cxx => EvtSpinType.cpp} | 0 .../{EvtStdHep.cxx => EvtStdHep.cpp} | 0 TEvtGen/EvtGenBase/EvtStdlibRandomEngine.hh | 11 +- TEvtGen/EvtGenBase/EvtStreamAdapter.hh | 2 +- TEvtGen/EvtGenBase/EvtStreamInputIterator.hh | 6 +- ...ringParticle.cxx => EvtStringParticle.cpp} | 0 .../{EvtSymTable.cxx => EvtSymTable.cpp} | 0 .../{EvtTensor3C.cxx => EvtTensor3C.cpp} | 12 +- TEvtGen/EvtGenBase/EvtTensor3C.hh | 32 +- .../{EvtTensor4C.cxx => EvtTensor4C.cpp} | 15 +- TEvtGen/EvtGenBase/EvtTensor4C.hh | 15 +- ...nsorParticle.cxx => EvtTensorParticle.cpp} | 36 +- ...{EvtTwoBodyKine.cxx => EvtTwoBodyKine.cpp} | 2 +- TEvtGen/EvtGenBase/EvtTwoBodyKine.hh | 2 +- ...TwoBodyVertex.cxx => EvtTwoBodyVertex.cpp} | 2 +- TEvtGen/EvtGenBase/EvtTwoBodyVertex.hh | 2 +- .../{EvtValError.cxx => EvtValError.cpp} | 2 +- TEvtGen/EvtGenBase/EvtValError.hh | 2 +- .../{EvtVector3C.cxx => EvtVector3C.cpp} | 0 TEvtGen/EvtGenBase/EvtVector3C.hh | 4 +- .../{EvtVector3R.cxx => EvtVector3R.cpp} | 0 .../{EvtVector4C.cxx => EvtVector4C.cpp} | 0 .../{EvtVector4R.cxx => EvtVector4R.cpp} | 91 +- TEvtGen/EvtGenBase/EvtVector4R.hh | 18 +- ...ctorParticle.cxx => EvtVectorParticle.cpp} | 0 .../{EvtdFunction.cxx => EvtdFunction.cpp} | 0 ...ctionSingle.cxx => EvtdFunctionSingle.cpp} | 2 +- TEvtGen/EvtGenBase/cambiaNome.C | 7 - .../EvtGenExternal/EvtExternalGenFactory.cpp | 157 + .../EvtGenExternal/EvtExternalGenFactory.hh | 66 + TEvtGen/EvtGenExternal/EvtExternalGenList.cpp | 78 + TEvtGen/EvtGenExternal/EvtExternalGenList.hh | 50 + TEvtGen/EvtGenExternal/EvtPHOTOS.cpp | 50 + .../EvtPHOTOS.hh | 14 +- TEvtGen/EvtGenExternal/EvtPhotosEngine.cpp | 253 + TEvtGen/EvtGenExternal/EvtPhotosEngine.hh | 60 + TEvtGen/EvtGenExternal/EvtPythia.cpp | 161 + TEvtGen/EvtGenExternal/EvtPythia.hh | 69 + .../EvtPythia6CommandConverter.cpp | 236 + .../EvtPythia6CommandConverter.hh | 31 + TEvtGen/EvtGenExternal/EvtPythiaEngine.cpp | 803 + TEvtGen/EvtGenExternal/EvtPythiaEngine.hh | 95 + TEvtGen/EvtGenExternal/EvtPythiaRandom.hh | 46 + TEvtGen/EvtGenExternal/EvtTauola.cpp | 82 + .../EvtTauola.hh} | 32 +- TEvtGen/EvtGenExternal/EvtTauolaEngine.cpp | 461 + TEvtGen/EvtGenExternal/EvtTauolaEngine.hh | 66 + TEvtGen/EvtGenModels/EvtAbsExternalGen.hh | 41 + .../{EvtBBScalar.cxx => EvtBBScalar.cpp} | 51 +- TEvtGen/EvtGenModels/EvtBBScalar.hh | 40 +- TEvtGen/EvtGenModels/EvtBCVFF.cpp | 153 + TEvtGen/EvtGenModels/EvtBCVFF.hh | 59 + .../{EvtBHadronic.cxx => EvtBHadronic.cpp} | 37 +- TEvtGen/EvtGenModels/EvtBTo3pi.F | 14 +- TEvtGen/EvtGenModels/EvtBTo3pi.inc | 1 + .../{EvtBTo3piCP.cxx => EvtBTo3piCP.cpp} | 31 +- TEvtGen/EvtGenModels/EvtBTo3piMPP.F | 6 +- TEvtGen/EvtGenModels/EvtBTo3piP00.F | 6 +- .../{EvtBTo4piCP.cxx => EvtBTo4piCP.cpp} | 2 +- TEvtGen/EvtGenModels/EvtBToDDalitzCPK.cpp | 136 + TEvtGen/EvtGenModels/EvtBToDDalitzCPK.hh | 37 + TEvtGen/EvtGenModels/EvtBToKpipi.F | 6 +- .../{EvtBToKpipiCP.cxx => EvtBToKpipiCP.cpp} | 28 +- .../{EvtBToPlnuBK.cxx => EvtBToPlnuBK.cpp} | 0 ...{EvtBToPlnuBKFF.cxx => EvtBToPlnuBKFF.cpp} | 21 +- TEvtGen/EvtGenModels/EvtBToPlnuBKFF.hh | 5 + ...{EvtBToVlnuBall.cxx => EvtBToVlnuBall.cpp} | 0 ...BToVlnuBallFF.cxx => EvtBToVlnuBallFF.cpp} | 20 +- TEvtGen/EvtGenModels/EvtBToVlnuBallFF.hh | 6 + TEvtGen/EvtGenModels/EvtBaryonPCR.cpp | 199 + TEvtGen/EvtGenModels/EvtBaryonPCR.hh | 54 + TEvtGen/EvtGenModels/EvtBaryonPCRFF.cpp | 267 + TEvtGen/EvtGenModels/EvtBaryonPCRFF.hh | 60 + TEvtGen/EvtGenModels/EvtBcBsNPi.cpp | 72 + TEvtGen/EvtGenModels/EvtBcBsNPi.hh | 40 + TEvtGen/EvtGenModels/EvtBcBsStarNPi.cpp | 76 + TEvtGen/EvtGenModels/EvtBcBsStarNPi.hh | 43 + TEvtGen/EvtGenModels/EvtBcPsiNPi.cpp | 76 + TEvtGen/EvtGenModels/EvtBcPsiNPi.hh | 43 + TEvtGen/EvtGenModels/EvtBcToNPi.cpp | 339 + TEvtGen/EvtGenModels/EvtBcToNPi.hh | 83 + TEvtGen/EvtGenModels/EvtBcVMuNu.cpp | 97 + TEvtGen/EvtGenModels/EvtBcVMuNu.hh | 57 + TEvtGen/EvtGenModels/EvtBcVNpi.cpp | 183 + TEvtGen/EvtGenModels/EvtBcVNpi.hh | 42 + .../{EvtBsquark.cxx => EvtBsquark.cpp} | 0 ...{EvtBto2piCPiso.cxx => EvtBto2piCPiso.cpp} | 61 +- TEvtGen/EvtGenModels/EvtBto2piCPiso.hh | 2 + .../{EvtBtoKD3P.cxx => EvtBtoKD3P.cpp} | 12 +- TEvtGen/EvtGenModels/EvtBtoKD3P.hh | 2 +- ...{EvtBtoKpiCPiso.cxx => EvtBtoKpiCPiso.cpp} | 0 .../{EvtBtoXsEtap.cxx => EvtBtoXsEtap.cpp} | 0 .../{EvtBtoXsgamma.cxx => EvtBtoXsgamma.cpp} | 0 ...AbsModel.cxx => EvtBtoXsgammaAbsModel.cpp} | 0 ...AliGreub.cxx => EvtBtoXsgammaAliGreub.cpp} | 0 ...rmiUtil.cxx => EvtBtoXsgammaFermiUtil.cpp} | 0 ...xedMass.cxx => EvtBtoXsgammaFixedMass.cpp} | 0 ...Energy.cxx => EvtBtoXsgammaFlatEnergy.cpp} | 0 ...sgammaKagan.cxx => EvtBtoXsgammaKagan.cpp} | 0 ...Finder.cxx => EvtBtoXsgammaRootFinder.cpp} | 0 .../{EvtBtoXsll.cxx => EvtBtoXsll.cpp} | 0 ...{EvtBtoXsllUtil.cxx => EvtBtoXsllUtil.cpp} | 21 +- .../{EvtCBTo3piMPP.cxx => EvtCBTo3piMPP.cpp} | 0 .../{EvtCBTo3piP00.cxx => EvtCBTo3piP00.cpp} | 0 TEvtGen/EvtGenModels/EvtD0gammaDalitz.cpp | 322 + TEvtGen/EvtGenModels/EvtD0gammaDalitz.hh | 96 + ...{EvtD0mixDalitz.cxx => EvtD0mixDalitz.cpp} | 48 +- TEvtGen/EvtGenModels/EvtD0mixDalitz.hh | 2 +- .../{EvtDDalitz.cxx => EvtDDalitz.cpp} | 380 +- .../EvtGenModels/{EvtDMix.cxx => EvtDMix.cpp} | 0 TEvtGen/EvtGenModels/EvtDalitzDecayInfo.hh | 55 + TEvtGen/EvtGenModels/EvtDalitzTable.cpp | 563 + TEvtGen/EvtGenModels/EvtDalitzTable.hh | 73 + TEvtGen/EvtGenModels/EvtEta2MuMuGamma.cpp | 117 + .../{EvtJscont.hh => EvtEta2MuMuGamma.hh} | 17 +- .../{EvtEtaDalitz.cxx => EvtEtaDalitz.cpp} | 0 .../{EvtFlatQ2.cxx => EvtFlatQ2.cpp} | 0 TEvtGen/EvtGenModels/EvtGenModelsLinkDef.h | 7 - TEvtGen/EvtGenModels/EvtGenModelsLinkDefOLD.h | 146 - TEvtGen/EvtGenModels/EvtGenericDalitz.cpp | 122 + TEvtGen/EvtGenModels/EvtGenericDalitz.hh | 55 + ...vtGoityRoberts.cxx => EvtGoityRoberts.cpp} | 44 +- .../EvtGenModels/{EvtHQET.cxx => EvtHQET.cpp} | 0 .../{EvtHQET2.cxx => EvtHQET2.cpp} | 0 .../{EvtHQET2FF.cxx => EvtHQET2FF.cpp} | 16 + TEvtGen/EvtGenModels/EvtHQET2FF.hh | 5 + .../{EvtHQETFF.cxx => EvtHQETFF.cpp} | 16 + TEvtGen/EvtGenModels/EvtHQETFF.hh | 5 + .../{EvtHelAmp.cxx => EvtHelAmp.cpp} | 0 ...vtHypNonLepton.cxx => EvtHypNonLepton.cpp} | 2 +- .../EvtGenModels/{EvtISGW.cxx => EvtISGW.cpp} | 0 .../{EvtISGW2.cxx => EvtISGW2.cpp} | 5 - TEvtGen/EvtGenModels/EvtISGW2FF.cpp | 1811 ++ TEvtGen/EvtGenModels/EvtISGW2FF.cxx | 3145 --- TEvtGen/EvtGenModels/EvtISGW2FF.hh | 5 + TEvtGen/EvtGenModels/EvtISGWFF.cpp | 881 + TEvtGen/EvtGenModels/EvtISGWFF.cxx | 2300 --- TEvtGen/EvtGenModels/EvtISGWFF.hh | 5 + TEvtGen/EvtGenModels/EvtIntervalDecayAmp.hh | 10 +- ...gAbsFunction.cxx => EvtItgAbsFunction.cpp} | 0 ...Integrator.cxx => EvtItgAbsIntegrator.cpp} | 0 ...ourCoeffFcn.cxx => EvtItgFourCoeffFcn.cpp} | 0 ...{EvtItgFunction.cxx => EvtItgFunction.cpp} | 2 +- TEvtGen/EvtGenModels/EvtItgFunction.hh | 2 +- ...gPtrFunction.cxx => EvtItgPtrFunction.cpp} | 0 ...grator.cxx => EvtItgSimpsonIntegrator.cpp} | 0 ...eeCoeffFcn.cxx => EvtItgThreeCoeffFcn.cpp} | 0 ...gTwoCoeffFcn.cxx => EvtItgTwoCoeffFcn.cpp} | 0 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/EvtJscontCDF.cxx | 149 - .../{EvtKKLambdaC.cxx => EvtKKLambdaC.cpp} | 0 ...{EvtKKLambdaCFF.cxx => EvtKKLambdaCFF.cpp} | 20 +- TEvtGen/EvtGenModels/EvtKKLambdaCFF.hh | 6 + .../{EvtKstarnunu.cxx => EvtKstarnunu.cpp} | 10 +- ...tarstargamma.cxx => EvtKstarstargamma.cpp} | 2 +- .../{EvtLNuGamma.cxx => EvtLNuGamma.cpp} | 4 +- TEvtGen/EvtGenModels/EvtLambdaB2LambdaV.cpp | 1227 ++ TEvtGen/EvtGenModels/EvtLambdaB2LambdaV.hh | 197 + ...P_BarGamma.cxx => EvtLambdaP_BarGamma.cpp} | 20 +- TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.hh | 10 +- .../{EvtLb2Lll.cxx => EvtLb2Lll.cpp} | 31 +- TEvtGen/EvtGenModels/EvtLb2Lll.hh | 4 +- .../{EvtMelikhov.cxx => EvtMelikhov.cpp} | 0 .../{EvtMelikhovFF.cxx => EvtMelikhovFF.cpp} | 16 + TEvtGen/EvtGenModels/EvtMelikhovFF.hh | 5 + .../{EvtModelReg.cxx => EvtModelReg.cpp} | 85 +- TEvtGen/EvtGenModels/EvtModelReg.hh | 2 + .../{EvtMultibody.cxx => EvtMultibody.cpp} | 0 TEvtGen/EvtGenModels/EvtNoRadCorr.hh | 45 + ...{EvtOmegaDalitz.cxx => EvtOmegaDalitz.cpp} | 0 .../{EvtPFermi.cxx => EvtPFermi.cpp} | 0 TEvtGen/EvtGenModels/EvtPHOTOS.cxx | 235 - TEvtGen/EvtGenModels/EvtPVVCPLH.cpp | 186 + .../{EvtPyGaGa.hh => EvtPVVCPLH.hh} | 41 +- .../{EvtPartWave.cxx => EvtPartWave.cpp} | 0 .../{EvtPhiDalitz.cxx => EvtPhiDalitz.cpp} | 0 .../EvtGenModels/{EvtPhsp.cxx => EvtPhsp.cpp} | 0 .../{EvtPi0Dalitz.cxx => EvtPi0Dalitz.cpp} | 7 +- .../{EvtPropSLPole.cxx => EvtPropSLPole.cpp} | 2 +- .../{EvtPto3P.cxx => EvtPto3P.cpp} | 2 +- TEvtGen/EvtGenModels/EvtPto3P.hh | 2 +- TEvtGen/EvtGenModels/EvtPyGaGa.cxx | 123 - TEvtGen/EvtGenModels/EvtPycont.cxx | 151 - TEvtGen/EvtGenModels/EvtPycont.hh | 45 - TEvtGen/EvtGenModels/EvtPythia.cxx | 1095 -- TEvtGen/EvtGenModels/EvtPythia.hh | 84 - .../{EvtSLBKPole.cxx => EvtSLBKPole.cpp} | 0 .../{EvtSLBKPoleFF.cxx => EvtSLBKPoleFF.cpp} | 30 +- TEvtGen/EvtGenModels/EvtSLBKPoleFF.hh | 5 + .../EvtGenModels/{EvtSLN.cxx => EvtSLN.cpp} | 0 .../{EvtSLPole.cxx => EvtSLPole.cpp} | 0 .../{EvtSLPoleFF.cxx => EvtSLPoleFF.cpp} | 16 + TEvtGen/EvtGenModels/EvtSLPoleFF.hh | 6 + .../{EvtSSDCP.cxx => EvtSSDCP.cpp} | 69 +- TEvtGen/EvtGenModels/EvtSSDCP.hh | 3 + TEvtGen/EvtGenModels/EvtSSD_DirectCP.cpp | 194 + TEvtGen/EvtGenModels/EvtSSD_DirectCP.hh | 38 + .../{EvtSSSCP.cxx => EvtSSSCP.cpp} | 37 +- TEvtGen/EvtGenModels/EvtSSSCP.hh | 2 + .../{EvtSSSCPT.cxx => EvtSSSCPT.cpp} | 2 +- .../{EvtSSSCPpng.cxx => EvtSSSCPpng.cpp} | 2 +- .../EvtGenModels/{EvtSTS.cxx => EvtSTS.cpp} | 0 .../{EvtSTSCP.cxx => EvtSTSCP.cpp} | 37 +- TEvtGen/EvtGenModels/EvtSTSCP.hh | 2 + TEvtGen/EvtGenModels/EvtSVP.cpp | 104 + TEvtGen/EvtGenModels/EvtSVP.hh | 55 + .../{EvtSVPCP.cxx => EvtSVPCP.cpp} | 41 +- TEvtGen/EvtGenModels/EvtSVPCP.hh | 2 + .../{EvtSVPHelAmp.cxx => EvtSVPHelAmp.cpp} | 4 +- .../EvtGenModels/{EvtSVS.cxx => EvtSVS.cpp} | 0 .../{EvtSVSCP.cxx => EvtSVSCP.cpp} | 37 +- TEvtGen/EvtGenModels/EvtSVSCP.hh | 2 + .../{EvtSVSCPLH.cxx => EvtSVSCPLH.cpp} | 2 +- .../{EvtSVSCPiso.cxx => EvtSVSCPiso.cpp} | 14 +- ...SVSNONCPEIGEN.cxx => EvtSVSNONCPEIGEN.cpp} | 2 +- .../{EvtSVVCP.cxx => EvtSVVCP.cpp} | 45 +- TEvtGen/EvtGenModels/EvtSVVCP.hh | 2 + .../{EvtSVVCPLH.cxx => EvtSVVCPLH.cpp} | 2 +- .../{EvtSVVHelAmp.cxx => EvtSVVHelAmp.cpp} | 40 +- TEvtGen/EvtGenModels/EvtSVVHelAmp.hh | 2 + ...{EvtSVVHelCPMix.cxx => EvtSVVHelCPMix.cpp} | 71 +- TEvtGen/EvtGenModels/EvtSVVHelCPMix.hh | 2 + ...SVVNONCPEIGEN.cxx => EvtSVVNONCPEIGEN.cpp} | 93 +- TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.hh | 3 + ...ngleParticle.cxx => EvtSingleParticle.cpp} | 0 .../EvtGenModels/{EvtSll.cxx => EvtSll.cpp} | 0 .../EvtGenModels/{EvtTSS.cxx => EvtTSS.cpp} | 0 TEvtGen/EvtGenModels/EvtTVP.cpp | 116 + TEvtGen/EvtGenModels/EvtTVP.hh | 58 + .../{EvtTVSPwave.cxx => EvtTVSPwave.cpp} | 39 +- TEvtGen/EvtGenModels/EvtTVSPwave.hh | 2 + .../{EvtTauHadnu.cxx => EvtTauHadnu.cpp} | 2 +- ...{EvtTauScalarnu.cxx => EvtTauScalarnu.cpp} | 0 ...{EvtTauVectornu.cxx => EvtTauVectornu.cpp} | 0 .../{EvtTaulnunu.cxx => EvtTaulnunu.cpp} | 0 .../{EvtVPHOtoV.cxx => EvtVPHOtoV.cpp} | 0 .../{EvtVPHOtoVISR.cxx => EvtVPHOtoVISR.cpp} | 0 ...vtVPHOtoVISRHi.cxx => EvtVPHOtoVISRHi.cpp} | 0 .../{EvtVSPPwave.cxx => EvtVSPPwave.cpp} | 2 +- .../EvtGenModels/{EvtVSS.cxx => EvtVSS.cpp} | 0 .../{EvtVSSBMixCPT.cxx => EvtVSSBMixCPT.cpp} | 55 +- TEvtGen/EvtGenModels/EvtVSSBMixCPT.hh | 2 + .../{EvtVSSMix.cxx => EvtVSSMix.cpp} | 8 + TEvtGen/EvtGenModels/EvtVSSMix.hh | 1 + .../EvtGenModels/{EvtVVP.cxx => EvtVVP.cpp} | 0 ...PI_WEIGHTED.cxx => EvtVVPIPI_WEIGHTED.cpp} | 0 .../{EvtVVSPwave.cxx => EvtVVSPwave.cpp} | 6 +- .../{EvtVVpipi.cxx => EvtVVpipi.cpp} | 0 .../{EvtVectorIsr.cxx => EvtVectorIsr.cpp} | 0 .../EvtGenModels/{EvtVll.cxx => EvtVll.cpp} | 0 .../{EvtVtoSll.cxx => EvtVtoSll.cpp} | 4 +- .../EvtGenModels/{EvtVub.cxx => EvtVub.cpp} | 0 .../{EvtVubAC.cxx => EvtVubAC.cpp} | 2 +- TEvtGen/EvtGenModels/EvtVubAC.hh | 2 - .../{EvtVubBLNP.cxx => EvtVubBLNP.cpp} | 20 +- ...VubBLNPHybrid.cxx => EvtVubBLNPHybrid.cpp} | 19 +- .../{EvtVubHybrid.cxx => EvtVubHybrid.cpp} | 0 .../{EvtVubNLO.cxx => EvtVubNLO.cpp} | 2 +- TEvtGen/EvtGenModels/EvtVubNLO.hh | 4 +- .../{EvtVubdGamma.cxx => EvtVubdGamma.cpp} | 0 ...ficients.cxx => EvtWilsonCoefficients.cpp} | 82 +- ...oeficients.hh => EvtWilsonCoefficients.hh} | 10 +- TEvtGen/EvtGenModels/EvtWnPi.cpp | 137 + TEvtGen/EvtGenModels/EvtWnPi.hh | 23 + TEvtGen/EvtGenModels/EvtXPsiGamma.cpp | 205 + TEvtGen/EvtGenModels/EvtXPsiGamma.hh | 60 + ...piMoxhay.cxx => EvtY3SToY1SpipiMoxhay.cpp} | 0 ...nSpipiCLEO.cxx => EvtYmSToYnSpipiCLEO.cpp} | 0 .../{EvtbTosllAli.cxx => EvtbTosllAli.cpp} | 3 +- ...{EvtbTosllAliFF.cxx => EvtbTosllAliFF.cpp} | 4 +- .../{EvtbTosllAmp.cxx => EvtbTosllAmp.cpp} | 22 - TEvtGen/EvtGenModels/EvtbTosllAmp.hh | 1 + .../{EvtbTosllBall.cxx => EvtbTosllBall.cpp} | 3 +- ...vtbTosllBallFF.cxx => EvtbTosllBallFF.cpp} | 34 +- TEvtGen/EvtGenModels/EvtbTosllFF.hh | 14 +- ...llScalarAmp.cxx => EvtbTosllScalarAmp.cpp} | 0 ...llVectorAmp.cxx => EvtbTosllVectorAmp.cpp} | 25 +- 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 | 4 +- TEvtGen/HepMC/CompareGenEvent.cc | 192 + TEvtGen/HepMC/CompareGenEvent.h | 30 + TEvtGen/HepMC/Flow.cc | 217 + TEvtGen/HepMC/Flow.h | 215 + TEvtGen/HepMC/GenCrossSection.cc | 106 + TEvtGen/HepMC/GenCrossSection.h | 116 + TEvtGen/HepMC/GenEvent.cc | 780 + TEvtGen/HepMC/GenEvent.h | 877 + TEvtGen/HepMC/GenEventStreamIO.cc | 799 + TEvtGen/HepMC/GenParticle.cc | 255 + TEvtGen/HepMC/GenParticle.h | 270 + TEvtGen/HepMC/GenRanges.cc | 86 + TEvtGen/HepMC/GenRanges.h | 328 + TEvtGen/HepMC/GenVertex.cc | 925 + TEvtGen/HepMC/GenVertex.h | 542 + TEvtGen/HepMC/HEPEVT_Wrapper.cc | 228 + TEvtGen/HepMC/HEPEVT_Wrapper.h | 567 + TEvtGen/HepMC/HeavyIon.cc | 144 + TEvtGen/HepMC/HeavyIon.h | 280 + TEvtGen/HepMC/HepMCDefs.h | 68 + TEvtGen/HepMC/HerwigWrapper.cc | 40 + TEvtGen/HepMC/HerwigWrapper.h | 166 + TEvtGen/HepMC/IO_AsciiParticles.cc | 222 + TEvtGen/HepMC/IO_AsciiParticles.h | 103 + TEvtGen/HepMC/IO_BaseClass.h | 116 + TEvtGen/HepMC/IO_Exception.h | 50 + TEvtGen/HepMC/IO_GenEvent.cc | 178 + TEvtGen/HepMC/IO_GenEvent.h | 152 + TEvtGen/HepMC/IO_HEPEVT.cc | 350 + TEvtGen/HepMC/IO_HEPEVT.h | 141 + TEvtGen/HepMC/IO_HERWIG.cc | 823 + TEvtGen/HepMC/IO_HERWIG.h | 160 + TEvtGen/HepMC/IteratorRange.h | 22 + TEvtGen/HepMC/PdfInfo.cc | 121 + TEvtGen/HepMC/PdfInfo.h | 218 + TEvtGen/HepMC/Polarization.cc | 136 + TEvtGen/HepMC/Polarization.h | 112 + TEvtGen/HepMC/PythiaWrapper.h | 47 + TEvtGen/HepMC/PythiaWrapper6_4.h | 281 + TEvtGen/HepMC/PythiaWrapper6_4_WIN32.h | 164 + TEvtGen/HepMC/SearchVector.cc | 29 + TEvtGen/HepMC/SearchVector.h | 25 + TEvtGen/HepMC/SimpleVector.h | 193 + TEvtGen/HepMC/SimpleVector.icc | 148 + TEvtGen/HepMC/StreamHelpers.cc | 123 + TEvtGen/HepMC/StreamHelpers.h | 102 + TEvtGen/HepMC/StreamInfo.cc | 59 + TEvtGen/HepMC/StreamInfo.h | 128 + TEvtGen/HepMC/TempParticleMap.h | 67 + TEvtGen/HepMC/Units.cc | 66 + TEvtGen/HepMC/Units.h | 42 + TEvtGen/HepMC/Version.h | 40 + TEvtGen/HepMC/WeightContainer.cc | 139 + TEvtGen/HepMC/WeightContainer.h | 225 + TEvtGen/HepMC/enable_if.h | 50 + TEvtGen/HepMC/filterEvent.cc | 82 + TEvtGen/HepMC/is_arithmetic.h | 94 + 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 | 95 - 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 | 130 - 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/Log.cxx | 338 + TEvtGen/Photos/Log.h | 245 + TEvtGen/Photos/PH_HEPEVT_Interface.cxx | 524 + TEvtGen/Photos/PH_HEPEVT_Interface.h | 50 + TEvtGen/Photos/Photos.cxx | 452 + TEvtGen/Photos/Photos.h | 217 + TEvtGen/Photos/PhotosBranch.cxx | 267 + TEvtGen/Photos/PhotosBranch.h | 79 + TEvtGen/Photos/PhotosDebugRandom.cxx | 67 + TEvtGen/Photos/PhotosDebugRandom.h | 51 + TEvtGen/Photos/PhotosEvent.cxx | 56 + TEvtGen/Photos/PhotosEvent.h | 48 + TEvtGen/Photos/PhotosHEPEVTEvent.cxx | 144 + TEvtGen/Photos/PhotosHEPEVTEvent.h | 74 + TEvtGen/Photos/PhotosHEPEVTParticle.cxx | 420 + TEvtGen/Photos/PhotosHEPEVTParticle.h | 192 + TEvtGen/Photos/PhotosHepMCEvent.cxx | 47 + TEvtGen/Photos/PhotosHepMCEvent.h | 53 + TEvtGen/Photos/PhotosHepMCParticle.cxx | 409 + TEvtGen/Photos/PhotosHepMCParticle.h | 166 + TEvtGen/Photos/PhotosParticle.cxx | 222 + TEvtGen/Photos/PhotosParticle.h | 283 + TEvtGen/Photos/PhotosRandom.cxx | 107 + TEvtGen/Photos/PhotosRandom.h | 46 + TEvtGen/Photos/PhotosUtilities.cxx | 428 + TEvtGen/Photos/PhotosUtilities.h | 64 + TEvtGen/Photos/f_Init.h | 165 + TEvtGen/Photos/forW-MEc.cxx | 1014 + TEvtGen/Photos/forW-MEc.h | 43 + TEvtGen/Photos/forZ-MEc.cxx | 528 + TEvtGen/Photos/forZ-MEc.h | 23 + TEvtGen/Photos/photosC.cxx | 2399 +++ TEvtGen/README.txt | 63 +- TEvtGen/Tauola/DecayList.cxx | 85 + TEvtGen/Tauola/DecayList.h | 79 + TEvtGen/Tauola/Log.cxx | 157 + TEvtGen/Tauola/Log.h | 231 + TEvtGen/Tauola/Plots.cxx | 166 + TEvtGen/Tauola/Plots.h | 55 + TEvtGen/Tauola/Tauola.cxx | 792 + TEvtGen/Tauola/Tauola.h | 240 + TEvtGen/Tauola/TauolaEvent.cxx | 38 + TEvtGen/Tauola/TauolaEvent.h | 65 + TEvtGen/Tauola/TauolaHEPEVTEvent.cxx | 143 + TEvtGen/Tauola/TauolaHEPEVTEvent.h | 102 + TEvtGen/Tauola/TauolaHEPEVTParticle.cxx | 319 + TEvtGen/Tauola/TauolaHEPEVTParticle.h | 174 + TEvtGen/Tauola/TauolaHepMCEvent.cxx | 124 + TEvtGen/Tauola/TauolaHepMCEvent.h | 73 + TEvtGen/Tauola/TauolaHepMCParticle.cxx | 365 + TEvtGen/Tauola/TauolaHepMCParticle.h | 156 + TEvtGen/Tauola/TauolaParticle.cxx | 365 + TEvtGen/Tauola/TauolaParticle.h | 353 + TEvtGen/Tauola/TauolaParticlePair.cxx | 1238 ++ TEvtGen/Tauola/TauolaParticlePair.h | 186 + TEvtGen/Tauola/f_Decay.cxx | 36 + TEvtGen/Tauola/f_Decay.h | 43 + TEvtGen/Tauola/f_FilHep.cxx | 118 + TEvtGen/Tauola/f_FilHep.h | 39 + TEvtGen/Tauola/f_Init.cxx | 51 + TEvtGen/Tauola/f_Init.h | 46 + TEvtGen/Tauola/f_Variables.h | 75 + TEvtGen/Tauola/tauola-fortran/curr_cleo.f | 288 + TEvtGen/Tauola/tauola-fortran/f3pi.f | 406 + TEvtGen/Tauola/tauola-fortran/formf.f | 1231 ++ .../new-currents/RChL-currents/README | 117 + .../RChL-currents/funct_declar.inc | 17 + .../new-currents/RChL-currents/parameter.inc | 67 + .../RChL-currents/rcht_3pi/f3pi_rcht.f | 245 + .../RChL-currents/rcht_3pi/funct_3pi.f | 160 + .../RChL-currents/rcht_common/FA1RCHL.f | 63 + .../RChL-currents/rcht_common/ffwid3pi.f | 184 + .../RChL-currents/rcht_common/funct_rpt.f | 377 + .../RChL-currents/rcht_common/gaus_integr.f | 527 + .../RChL-currents/rcht_common/gfact.f | 192 + .../RChL-currents/rcht_common/initA1Tab.f | 2010 ++ .../RChL-currents/rcht_common/initA1TabKKpi.f | 2010 ++ .../rcht_common/value_parameter.f | 488 + .../RChL-currents/rcht_common/wid_a1_fit.f | 110 + .../rcht_common/wid_a1_fitKKpi.f | 69 + .../other-currents/frho_pi_belle.f | 262 + TEvtGen/Tauola/tauola-fortran/pkorb.f | 288 + TEvtGen/Tauola/tauola-fortran/tauola.f | 5758 ++++++ TEvtGen/Tauola/tauola_extras.f | 1187 ++ 670 files changed, 67809 insertions(+), 53039 deletions(-) delete mode 100644 TEvtGen/CMakelibEvtGenBase.pkg create mode 100644 TEvtGen/CMakelibEvtGenExternal.pkg delete mode 100644 TEvtGen/CMakelibEvtGenModels.pkg create mode 100644 TEvtGen/CMakelibHepMC.pkg rename TEvtGen/{CMakelibphotos.pkg => CMakelibPhotos.pkg} (69%) create mode 100644 TEvtGen/CMakelibTauola.pkg delete mode 100644 TEvtGen/EvtGen/DecayTable/BTOELEold.DEC create mode 100644 TEvtGen/EvtGen/DecayTable/PSI2STOMU.DEC create mode 100644 TEvtGen/EvtGen/DecayTable/UPSILONTO2SMU.DEC create mode 100644 TEvtGen/EvtGen/DecayTable/UPSILONTOMU.DEC delete mode 100644 TEvtGen/EvtGen/EvtCheckDecays.cxx delete mode 100644 TEvtGen/EvtGen/EvtCheckDecays.hh create mode 100644 TEvtGen/EvtGen/EvtGen.cpp delete mode 100644 TEvtGen/EvtGen/EvtGen.cxx delete mode 100644 TEvtGen/EvtGen/EvtGenLinkDef.h delete mode 100644 TEvtGen/EvtGen/Makefile delete mode 100644 TEvtGen/EvtGen/config.mk delete mode 100644 TEvtGen/EvtGen/decay.evt rename TEvtGen/EvtGenBase/{Evt3Rank3C.cxx => Evt3Rank3C.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtAbsLineShape.cxx => EvtAbsLineShape.cpp} (86%) rename TEvtGen/EvtGenBase/{EvtAmp.cxx => EvtAmp.cpp} (98%) rename TEvtGen/EvtGenBase/{EvtAmpIndex.cxx => EvtAmpIndex.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtAmpSubIndex.cxx => EvtAmpSubIndex.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtBlattWeisskopf.cxx => EvtBlattWeisskopf.cpp} (72%) rename TEvtGen/EvtGenBase/{EvtBreitWignerPdf.cxx => EvtBreitWignerPdf.cpp} (95%) rename TEvtGen/EvtGenBase/{EvtCGCoefSingle.cxx => EvtCGCoefSingle.cpp} (97%) rename TEvtGen/EvtGenBase/{EvtCPUtil.cxx => EvtCPUtil.cpp} (66%) rename TEvtGen/EvtGenBase/{EvtComplex.cxx => EvtComplex.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtConst.cxx => EvtConst.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtCyclic3.cxx => EvtCyclic3.cpp} (96%) rename TEvtGen/EvtGenBase/{EvtDalitzCoord.cxx => EvtDalitzCoord.cpp} (94%) rename TEvtGen/EvtGenBase/{EvtDalitzFlatPdf.cxx => EvtDalitzFlatPdf.cpp} (94%) rename TEvtGen/EvtGenBase/{EvtDalitzPlot.cxx => EvtDalitzPlot.cpp} (99%) rename TEvtGen/EvtGenBase/{EvtDalitzPoint.cxx => EvtDalitzPoint.cpp} (98%) rename TEvtGen/EvtGenBase/{EvtDalitzResPdf.cxx => EvtDalitzResPdf.cpp} (95%) rename TEvtGen/EvtGenBase/{EvtDalitzReso.cxx => EvtDalitzReso.cpp} (90%) rename TEvtGen/EvtGenBase/{EvtDecayAmp.cxx => EvtDecayAmp.cpp} (88%) rename TEvtGen/EvtGenBase/{EvtDecayBase.cxx => EvtDecayBase.cpp} (96%) rename TEvtGen/EvtGenBase/{EvtDecayIncoherent.cxx => EvtDecayIncoherent.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtDecayMode.cxx => EvtDecayMode.cpp} (98%) rename TEvtGen/EvtGenBase/{EvtDecayParm.cxx => EvtDecayParm.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtDecayProb.cxx => EvtDecayProb.cpp} (100%) create mode 100644 TEvtGen/EvtGenBase/EvtDecayTable.cpp delete mode 100644 TEvtGen/EvtGenBase/EvtDecayTable.cxx rename TEvtGen/EvtGenBase/{EvtDiLog.cxx => EvtDiLog.cpp} (96%) rename TEvtGen/EvtGenBase/{EvtDiracParticle.cxx => EvtDiracParticle.cpp} (89%) rename TEvtGen/EvtGenBase/{EvtDiracSpinor.cxx => EvtDiracSpinor.cpp} (98%) rename TEvtGen/EvtGenBase/{EvtEvalHelAmp.cxx => EvtEvalHelAmp.cpp} (100%) create mode 100644 TEvtGen/EvtGenBase/EvtExtGeneratorCommandsTable.cpp create mode 100644 TEvtGen/EvtGenBase/EvtExtGeneratorCommandsTable.hh rename TEvtGen/EvtGenBase/{EvtFlatLineShape.cxx => EvtFlatLineShape.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtFlatte.cxx => EvtFlatte.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtGammaMatrix.cxx => EvtGammaMatrix.cpp} (96%) delete mode 100644 TEvtGen/EvtGenBase/EvtGenBaseLinkDef.h delete mode 100644 TEvtGen/EvtGenBase/EvtGenBaseLinkDefOLD.h rename TEvtGen/EvtGenBase/{EvtGenKine.cxx => EvtGenKine.cpp} (98%) create mode 100644 TEvtGen/EvtGenBase/EvtHepMCEvent.cpp create mode 100644 TEvtGen/EvtGenBase/EvtHepMCEvent.hh rename TEvtGen/EvtGenBase/{EvtHighSpinParticle.cxx => EvtHighSpinParticle.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtId.cxx => EvtId.cpp} (93%) rename TEvtGen/EvtGenBase/{EvtIdSet.cxx => EvtIdSet.cpp} (100%) create mode 100644 TEvtGen/EvtGenBase/EvtIncoherentMixing.cpp create mode 100644 TEvtGen/EvtGenBase/EvtIncoherentMixing.hh rename TEvtGen/EvtGenBase/{EvtIntegPdf1D.cxx => EvtIntegPdf1D.cpp} (94%) rename TEvtGen/EvtGenBase/{EvtIntervalFlatPdf.cxx => EvtIntervalFlatPdf.cpp} (93%) rename TEvtGen/EvtGenBase/{EvtKine.cxx => EvtKine.cpp} (90%) rename TEvtGen/EvtGenBase/{EvtLASSAmp.cxx => EvtLASSAmp.cpp} (85%) rename TEvtGen/EvtGenBase/{EvtMBreitWigner.cxx => EvtMBreitWigner.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtMHelAmp.cxx => EvtMHelAmp.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtMNode.cxx => EvtMNode.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtMParticle.cxx => EvtMParticle.cpp} (88%) rename TEvtGen/EvtGenBase/{EvtMRes.cxx => EvtMRes.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtMTree.cxx => EvtMTree.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtMTrivialLS.cxx => EvtMTrivialLS.cpp} (78%) rename TEvtGen/EvtGenBase/{EvtManyDeltaFuncLineShape.cxx => EvtManyDeltaFuncLineShape.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtMassAmp.cxx => EvtMassAmp.cpp} (97%) rename TEvtGen/EvtGenBase/{EvtModel.cxx => EvtModel.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtModelAlias.cxx => EvtModelAlias.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtMultiChannelParser.cxx => EvtMultiChannelParser.cpp} (96%) rename TEvtGen/EvtGenBase/{EvtNeutrinoParticle.cxx => EvtNeutrinoParticle.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtNonresonantAmp.cxx => EvtNonresonantAmp.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtOrthogVector.cxx => EvtOrthogVector.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtPDL.cxx => EvtPDL.cpp} (98%) rename TEvtGen/EvtGenBase/{EvtParser.cxx => EvtParser.cpp} (100%) create mode 100644 TEvtGen/EvtGenBase/EvtParserXml.cpp create mode 100644 TEvtGen/EvtGenBase/EvtParserXml.hh rename TEvtGen/EvtGenBase/{EvtPartProp.cxx => EvtPartProp.cpp} (96%) rename TEvtGen/EvtGenBase/{EvtParticle.cxx => EvtParticle.cpp} (89%) rename TEvtGen/EvtGenBase/{EvtParticleDecay.cxx => EvtParticleDecay.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtParticleDecayList.cxx => EvtParticleDecayList.cpp} (96%) rename TEvtGen/EvtGenBase/{EvtParticleFactory.cxx => EvtParticleFactory.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtPhotonParticle.cxx => EvtPhotonParticle.cpp} (98%) rename TEvtGen/EvtGenBase/{EvtPoint1D.cxx => EvtPoint1D.cpp} (93%) rename TEvtGen/EvtGenBase/{EvtPropBreitWigner.cxx => EvtPropBreitWigner.cpp} (92%) rename TEvtGen/EvtGenBase/{EvtPropBreitWignerRel.cxx => EvtPropBreitWignerRel.cpp} (92%) rename TEvtGen/EvtGenBase/{EvtPropFlatte.cxx => EvtPropFlatte.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtPropGounarisSakurai.cxx => EvtPropGounarisSakurai.cpp} (97%) rename TEvtGen/EvtGenBase/{EvtPto3PAmp.cxx => EvtPto3PAmp.cpp} (98%) rename TEvtGen/EvtGenBase/{EvtPto3PAmpFactory.cxx => EvtPto3PAmpFactory.cpp} (94%) rename TEvtGen/EvtGenBase/{EvtPto3PAmpSmpResolution.cxx => EvtPto3PAmpSmpResolution.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtRadCorr.cxx => EvtRadCorr.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtRanFor.cxx => EvtRanFor.cpp} (94%) rename TEvtGen/EvtGenBase/{EvtRandom.cxx => EvtRandom.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtRanf.cxx => EvtRanf.cpp} (91%) rename TEvtGen/EvtGenBase/{EvtRaritaSchwinger.cxx => EvtRaritaSchwinger.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtRaritaSchwingerParticle.cxx => EvtRaritaSchwingerParticle.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtRelBreitWignerBarrierFact.cxx => EvtRelBreitWignerBarrierFact.cpp} (96%) rename TEvtGen/EvtGenBase/{EvtReport.cxx => EvtReport.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtResonance.cxx => EvtResonance.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtResonance2.cxx => EvtResonance2.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtScalarParticle.cxx => EvtScalarParticle.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtSecondary.cxx => EvtSecondary.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtSemiLeptonicAmp.cxx => EvtSemiLeptonicAmp.cpp} (100%) create mode 100644 TEvtGen/EvtGenBase/EvtSemiLeptonicBaryonAmp.cpp delete mode 100644 TEvtGen/EvtGenBase/EvtSemiLeptonicBaryonAmp.cxx rename TEvtGen/EvtGenBase/{EvtSemiLeptonicScalarAmp.cxx => EvtSemiLeptonicScalarAmp.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtSemiLeptonicTensorAmp.cxx => EvtSemiLeptonicTensorAmp.cpp} (97%) rename TEvtGen/EvtGenBase/{EvtSemiLeptonicVectorAmp.cxx => EvtSemiLeptonicVectorAmp.cpp} (96%) rename TEvtGen/EvtGenBase/{EvtSimpleRandomEngine.cxx => EvtSimpleRandomEngine.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtSpinAmp.cxx => EvtSpinAmp.cpp} (99%) rename TEvtGen/EvtGenBase/{EvtSpinDensity.cxx => EvtSpinDensity.cpp} (94%) rename TEvtGen/EvtGenBase/{EvtSpinType.cxx => EvtSpinType.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtStdHep.cxx => EvtStdHep.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtStringParticle.cxx => EvtStringParticle.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtSymTable.cxx => EvtSymTable.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtTensor3C.cxx => EvtTensor3C.cpp} (93%) rename TEvtGen/EvtGenBase/{EvtTensor4C.cxx => EvtTensor4C.cpp} (95%) rename TEvtGen/EvtGenBase/{EvtTensorParticle.cxx => EvtTensorParticle.cpp} (77%) rename TEvtGen/EvtGenBase/{EvtTwoBodyKine.cxx => EvtTwoBodyKine.cpp} (96%) rename TEvtGen/EvtGenBase/{EvtTwoBodyVertex.cxx => EvtTwoBodyVertex.cpp} (96%) rename TEvtGen/EvtGenBase/{EvtValError.cxx => EvtValError.cpp} (97%) rename TEvtGen/EvtGenBase/{EvtVector3C.cxx => EvtVector3C.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtVector3R.cxx => EvtVector3R.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtVector4C.cxx => EvtVector4C.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtVector4R.cxx => EvtVector4R.cpp} (73%) rename TEvtGen/EvtGenBase/{EvtVectorParticle.cxx => EvtVectorParticle.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtdFunction.cxx => EvtdFunction.cpp} (100%) rename TEvtGen/EvtGenBase/{EvtdFunctionSingle.cxx => EvtdFunctionSingle.cpp} (98%) delete mode 100644 TEvtGen/EvtGenBase/cambiaNome.C create mode 100644 TEvtGen/EvtGenExternal/EvtExternalGenFactory.cpp create mode 100644 TEvtGen/EvtGenExternal/EvtExternalGenFactory.hh create mode 100644 TEvtGen/EvtGenExternal/EvtExternalGenList.cpp create mode 100644 TEvtGen/EvtGenExternal/EvtExternalGenList.hh create mode 100644 TEvtGen/EvtGenExternal/EvtPHOTOS.cpp rename TEvtGen/{EvtGenModels => EvtGenExternal}/EvtPHOTOS.hh (82%) create mode 100644 TEvtGen/EvtGenExternal/EvtPhotosEngine.cpp create mode 100644 TEvtGen/EvtGenExternal/EvtPhotosEngine.hh create mode 100644 TEvtGen/EvtGenExternal/EvtPythia.cpp create mode 100644 TEvtGen/EvtGenExternal/EvtPythia.hh create mode 100644 TEvtGen/EvtGenExternal/EvtPythia6CommandConverter.cpp create mode 100644 TEvtGen/EvtGenExternal/EvtPythia6CommandConverter.hh create mode 100644 TEvtGen/EvtGenExternal/EvtPythiaEngine.cpp create mode 100644 TEvtGen/EvtGenExternal/EvtPythiaEngine.hh create mode 100644 TEvtGen/EvtGenExternal/EvtPythiaRandom.hh create mode 100644 TEvtGen/EvtGenExternal/EvtTauola.cpp rename TEvtGen/{EvtGenModels/EvtJscontCDF.hh => EvtGenExternal/EvtTauola.hh} (62%) create mode 100644 TEvtGen/EvtGenExternal/EvtTauolaEngine.cpp create mode 100644 TEvtGen/EvtGenExternal/EvtTauolaEngine.hh create mode 100644 TEvtGen/EvtGenModels/EvtAbsExternalGen.hh rename TEvtGen/EvtGenModels/{EvtBBScalar.cxx => EvtBBScalar.cpp} (94%) create mode 100755 TEvtGen/EvtGenModels/EvtBCVFF.cpp create mode 100755 TEvtGen/EvtGenModels/EvtBCVFF.hh rename TEvtGen/EvtGenModels/{EvtBHadronic.cxx => EvtBHadronic.cpp} (82%) mode change 100644 => 100755 TEvtGen/EvtGenModels/EvtBTo3pi.inc rename TEvtGen/EvtGenModels/{EvtBTo3piCP.cxx => EvtBTo3piCP.cpp} (87%) rename TEvtGen/EvtGenModels/{EvtBTo4piCP.cxx => EvtBTo4piCP.cpp} (99%) create mode 100644 TEvtGen/EvtGenModels/EvtBToDDalitzCPK.cpp create mode 100644 TEvtGen/EvtGenModels/EvtBToDDalitzCPK.hh rename TEvtGen/EvtGenModels/{EvtBToKpipiCP.cxx => EvtBToKpipiCP.cpp} (88%) rename TEvtGen/EvtGenModels/{EvtBToPlnuBK.cxx => EvtBToPlnuBK.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtBToPlnuBKFF.cxx => EvtBToPlnuBKFF.cpp} (79%) rename TEvtGen/EvtGenModels/{EvtBToVlnuBall.cxx => EvtBToVlnuBall.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtBToVlnuBallFF.cxx => EvtBToVlnuBallFF.cpp} (84%) create mode 100644 TEvtGen/EvtGenModels/EvtBaryonPCR.cpp create mode 100644 TEvtGen/EvtGenModels/EvtBaryonPCR.hh create mode 100644 TEvtGen/EvtGenModels/EvtBaryonPCRFF.cpp create mode 100644 TEvtGen/EvtGenModels/EvtBaryonPCRFF.hh create mode 100644 TEvtGen/EvtGenModels/EvtBcBsNPi.cpp create mode 100644 TEvtGen/EvtGenModels/EvtBcBsNPi.hh create mode 100644 TEvtGen/EvtGenModels/EvtBcBsStarNPi.cpp create mode 100644 TEvtGen/EvtGenModels/EvtBcBsStarNPi.hh create mode 100644 TEvtGen/EvtGenModels/EvtBcPsiNPi.cpp create mode 100644 TEvtGen/EvtGenModels/EvtBcPsiNPi.hh create mode 100644 TEvtGen/EvtGenModels/EvtBcToNPi.cpp create mode 100644 TEvtGen/EvtGenModels/EvtBcToNPi.hh create mode 100755 TEvtGen/EvtGenModels/EvtBcVMuNu.cpp create mode 100755 TEvtGen/EvtGenModels/EvtBcVMuNu.hh create mode 100644 TEvtGen/EvtGenModels/EvtBcVNpi.cpp create mode 100644 TEvtGen/EvtGenModels/EvtBcVNpi.hh rename TEvtGen/EvtGenModels/{EvtBsquark.cxx => EvtBsquark.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtBto2piCPiso.cxx => EvtBto2piCPiso.cpp} (82%) rename TEvtGen/EvtGenModels/{EvtBtoKD3P.cxx => EvtBtoKD3P.cpp} (94%) rename TEvtGen/EvtGenModels/{EvtBtoKpiCPiso.cxx => EvtBtoKpiCPiso.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtBtoXsEtap.cxx => EvtBtoXsEtap.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtBtoXsgamma.cxx => EvtBtoXsgamma.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtBtoXsgammaAbsModel.cxx => EvtBtoXsgammaAbsModel.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtBtoXsgammaAliGreub.cxx => EvtBtoXsgammaAliGreub.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtBtoXsgammaFermiUtil.cxx => EvtBtoXsgammaFermiUtil.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtBtoXsgammaFixedMass.cxx => EvtBtoXsgammaFixedMass.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtBtoXsgammaFlatEnergy.cxx => EvtBtoXsgammaFlatEnergy.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtBtoXsgammaKagan.cxx => EvtBtoXsgammaKagan.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtBtoXsgammaRootFinder.cxx => EvtBtoXsgammaRootFinder.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtBtoXsll.cxx => EvtBtoXsll.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtBtoXsllUtil.cxx => EvtBtoXsllUtil.cpp} (98%) rename TEvtGen/EvtGenModels/{EvtCBTo3piMPP.cxx => EvtCBTo3piMPP.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtCBTo3piP00.cxx => EvtCBTo3piP00.cpp} (100%) create mode 100644 TEvtGen/EvtGenModels/EvtD0gammaDalitz.cpp create mode 100644 TEvtGen/EvtGenModels/EvtD0gammaDalitz.hh rename TEvtGen/EvtGenModels/{EvtD0mixDalitz.cxx => EvtD0mixDalitz.cpp} (94%) rename TEvtGen/EvtGenModels/{EvtDDalitz.cxx => EvtDDalitz.cpp} (53%) rename TEvtGen/EvtGenModels/{EvtDMix.cxx => EvtDMix.cpp} (100%) create mode 100644 TEvtGen/EvtGenModels/EvtDalitzDecayInfo.hh create mode 100644 TEvtGen/EvtGenModels/EvtDalitzTable.cpp create mode 100644 TEvtGen/EvtGenModels/EvtDalitzTable.hh create mode 100644 TEvtGen/EvtGenModels/EvtEta2MuMuGamma.cpp rename TEvtGen/EvtGenModels/{EvtJscont.hh => EvtEta2MuMuGamma.hh} (73%) rename TEvtGen/EvtGenModels/{EvtEtaDalitz.cxx => EvtEtaDalitz.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtFlatQ2.cxx => EvtFlatQ2.cpp} (100%) delete mode 100644 TEvtGen/EvtGenModels/EvtGenModelsLinkDef.h delete mode 100644 TEvtGen/EvtGenModels/EvtGenModelsLinkDefOLD.h create mode 100644 TEvtGen/EvtGenModels/EvtGenericDalitz.cpp create mode 100644 TEvtGen/EvtGenModels/EvtGenericDalitz.hh rename TEvtGen/EvtGenModels/{EvtGoityRoberts.cxx => EvtGoityRoberts.cpp} (87%) rename TEvtGen/EvtGenModels/{EvtHQET.cxx => EvtHQET.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtHQET2.cxx => EvtHQET2.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtHQET2FF.cxx => EvtHQET2FF.cpp} (86%) rename TEvtGen/EvtGenModels/{EvtHQETFF.cxx => EvtHQETFF.cpp} (84%) rename TEvtGen/EvtGenModels/{EvtHelAmp.cxx => EvtHelAmp.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtHypNonLepton.cxx => EvtHypNonLepton.cpp} (99%) rename TEvtGen/EvtGenModels/{EvtISGW.cxx => EvtISGW.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtISGW2.cxx => EvtISGW2.cpp} (98%) create mode 100644 TEvtGen/EvtGenModels/EvtISGW2FF.cpp delete mode 100644 TEvtGen/EvtGenModels/EvtISGW2FF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtISGWFF.cpp delete mode 100644 TEvtGen/EvtGenModels/EvtISGWFF.cxx rename TEvtGen/EvtGenModels/{EvtItgAbsFunction.cxx => EvtItgAbsFunction.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtItgAbsIntegrator.cxx => EvtItgAbsIntegrator.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtItgFourCoeffFcn.cxx => EvtItgFourCoeffFcn.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtItgFunction.cxx => EvtItgFunction.cpp} (94%) rename TEvtGen/EvtGenModels/{EvtItgPtrFunction.cxx => EvtItgPtrFunction.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtItgSimpsonIntegrator.cxx => EvtItgSimpsonIntegrator.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtItgThreeCoeffFcn.cxx => EvtItgThreeCoeffFcn.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtItgTwoCoeffFcn.cxx => EvtItgTwoCoeffFcn.cpp} (100%) delete mode 100644 TEvtGen/EvtGenModels/EvtJetSet.cxx delete mode 100644 TEvtGen/EvtGenModels/EvtJetSet.hh delete mode 100644 TEvtGen/EvtGenModels/EvtJetSetCDF.cxx delete mode 100644 TEvtGen/EvtGenModels/EvtJetSetCDF.hh delete mode 100644 TEvtGen/EvtGenModels/EvtJetSetCDFInit.F delete mode 100644 TEvtGen/EvtGenModels/EvtJetSetInit.F delete mode 100644 TEvtGen/EvtGenModels/EvtJscont.cxx delete mode 100644 TEvtGen/EvtGenModels/EvtJscontCDF.cxx rename TEvtGen/EvtGenModels/{EvtKKLambdaC.cxx => EvtKKLambdaC.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtKKLambdaCFF.cxx => EvtKKLambdaCFF.cpp} (76%) rename TEvtGen/EvtGenModels/{EvtKstarnunu.cxx => EvtKstarnunu.cpp} (93%) rename TEvtGen/EvtGenModels/{EvtKstarstargamma.cxx => EvtKstarstargamma.cpp} (98%) rename TEvtGen/EvtGenModels/{EvtLNuGamma.cxx => EvtLNuGamma.cpp} (95%) create mode 100644 TEvtGen/EvtGenModels/EvtLambdaB2LambdaV.cpp create mode 100644 TEvtGen/EvtGenModels/EvtLambdaB2LambdaV.hh rename TEvtGen/EvtGenModels/{EvtLambdaP_BarGamma.cxx => EvtLambdaP_BarGamma.cpp} (87%) rename TEvtGen/EvtGenModels/{EvtLb2Lll.cxx => EvtLb2Lll.cpp} (96%) rename TEvtGen/EvtGenModels/{EvtMelikhov.cxx => EvtMelikhov.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtMelikhovFF.cxx => EvtMelikhovFF.cpp} (86%) rename TEvtGen/EvtGenModels/{EvtModelReg.cxx => EvtModelReg.cpp} (84%) rename TEvtGen/EvtGenModels/{EvtMultibody.cxx => EvtMultibody.cpp} (100%) create mode 100644 TEvtGen/EvtGenModels/EvtNoRadCorr.hh rename TEvtGen/EvtGenModels/{EvtOmegaDalitz.cxx => EvtOmegaDalitz.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtPFermi.cxx => EvtPFermi.cpp} (100%) delete mode 100644 TEvtGen/EvtGenModels/EvtPHOTOS.cxx create mode 100644 TEvtGen/EvtGenModels/EvtPVVCPLH.cpp rename TEvtGen/EvtGenModels/{EvtPyGaGa.hh => EvtPVVCPLH.hh} (56%) rename TEvtGen/EvtGenModels/{EvtPartWave.cxx => EvtPartWave.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtPhiDalitz.cxx => EvtPhiDalitz.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtPhsp.cxx => EvtPhsp.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtPi0Dalitz.cxx => EvtPi0Dalitz.cpp} (90%) rename TEvtGen/EvtGenModels/{EvtPropSLPole.cxx => EvtPropSLPole.cpp} (99%) rename TEvtGen/EvtGenModels/{EvtPto3P.cxx => EvtPto3P.cpp} (98%) delete mode 100644 TEvtGen/EvtGenModels/EvtPyGaGa.cxx delete mode 100644 TEvtGen/EvtGenModels/EvtPycont.cxx delete mode 100644 TEvtGen/EvtGenModels/EvtPycont.hh delete mode 100644 TEvtGen/EvtGenModels/EvtPythia.cxx delete mode 100644 TEvtGen/EvtGenModels/EvtPythia.hh rename TEvtGen/EvtGenModels/{EvtSLBKPole.cxx => EvtSLBKPole.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtSLBKPoleFF.cxx => EvtSLBKPoleFF.cpp} (88%) rename TEvtGen/EvtGenModels/{EvtSLN.cxx => EvtSLN.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtSLPole.cxx => EvtSLPole.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtSLPoleFF.cxx => EvtSLPoleFF.cpp} (90%) rename TEvtGen/EvtGenModels/{EvtSSDCP.cxx => EvtSSDCP.cpp} (87%) create mode 100644 TEvtGen/EvtGenModels/EvtSSD_DirectCP.cpp create mode 100644 TEvtGen/EvtGenModels/EvtSSD_DirectCP.hh rename TEvtGen/EvtGenModels/{EvtSSSCP.cxx => EvtSSSCP.cpp} (80%) rename TEvtGen/EvtGenModels/{EvtSSSCPT.cxx => EvtSSSCPT.cpp} (97%) rename TEvtGen/EvtGenModels/{EvtSSSCPpng.cxx => EvtSSSCPpng.cpp} (98%) rename TEvtGen/EvtGenModels/{EvtSTS.cxx => EvtSTS.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtSTSCP.cxx => EvtSTSCP.cpp} (84%) create mode 100644 TEvtGen/EvtGenModels/EvtSVP.cpp create mode 100644 TEvtGen/EvtGenModels/EvtSVP.hh rename TEvtGen/EvtGenModels/{EvtSVPCP.cxx => EvtSVPCP.cpp} (84%) rename TEvtGen/EvtGenModels/{EvtSVPHelAmp.cxx => EvtSVPHelAmp.cpp} (95%) rename TEvtGen/EvtGenModels/{EvtSVS.cxx => EvtSVS.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtSVSCP.cxx => EvtSVSCP.cpp} (83%) rename TEvtGen/EvtGenModels/{EvtSVSCPLH.cxx => EvtSVSCPLH.cpp} (98%) rename TEvtGen/EvtGenModels/{EvtSVSCPiso.cxx => EvtSVSCPiso.cpp} (96%) rename TEvtGen/EvtGenModels/{EvtSVSNONCPEIGEN.cxx => EvtSVSNONCPEIGEN.cpp} (98%) rename TEvtGen/EvtGenModels/{EvtSVVCP.cxx => EvtSVVCP.cpp} (80%) rename TEvtGen/EvtGenModels/{EvtSVVCPLH.cxx => EvtSVVCPLH.cpp} (98%) rename TEvtGen/EvtGenModels/{EvtSVVHelAmp.cxx => EvtSVVHelAmp.cpp} (83%) rename TEvtGen/EvtGenModels/{EvtSVVHelCPMix.cxx => EvtSVVHelCPMix.cpp} (82%) rename TEvtGen/EvtGenModels/{EvtSVVNONCPEIGEN.cxx => EvtSVVNONCPEIGEN.cpp} (79%) rename TEvtGen/EvtGenModels/{EvtSingleParticle.cxx => EvtSingleParticle.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtSll.cxx => EvtSll.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtTSS.cxx => EvtTSS.cpp} (100%) create mode 100644 TEvtGen/EvtGenModels/EvtTVP.cpp create mode 100644 TEvtGen/EvtGenModels/EvtTVP.hh rename TEvtGen/EvtGenModels/{EvtTVSPwave.cxx => EvtTVSPwave.cpp} (83%) rename TEvtGen/EvtGenModels/{EvtTauHadnu.cxx => EvtTauHadnu.cpp} (99%) rename TEvtGen/EvtGenModels/{EvtTauScalarnu.cxx => EvtTauScalarnu.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtTauVectornu.cxx => EvtTauVectornu.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtTaulnunu.cxx => EvtTaulnunu.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtVPHOtoV.cxx => EvtVPHOtoV.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtVPHOtoVISR.cxx => EvtVPHOtoVISR.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtVPHOtoVISRHi.cxx => EvtVPHOtoVISRHi.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtVSPPwave.cxx => EvtVSPPwave.cpp} (97%) rename TEvtGen/EvtGenModels/{EvtVSS.cxx => EvtVSS.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtVSSBMixCPT.cxx => EvtVSSBMixCPT.cpp} (92%) rename TEvtGen/EvtGenModels/{EvtVSSMix.cxx => EvtVSSMix.cpp} (95%) rename TEvtGen/EvtGenModels/{EvtVVP.cxx => EvtVVP.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtVVPIPI_WEIGHTED.cxx => EvtVVPIPI_WEIGHTED.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtVVSPwave.cxx => EvtVVSPwave.cpp} (94%) rename TEvtGen/EvtGenModels/{EvtVVpipi.cxx => EvtVVpipi.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtVectorIsr.cxx => EvtVectorIsr.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtVll.cxx => EvtVll.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtVtoSll.cxx => EvtVtoSll.cpp} (97%) rename TEvtGen/EvtGenModels/{EvtVub.cxx => EvtVub.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtVubAC.cxx => EvtVubAC.cpp} (99%) rename TEvtGen/EvtGenModels/{EvtVubBLNP.cxx => EvtVubBLNP.cpp} (97%) rename TEvtGen/EvtGenModels/{EvtVubBLNPHybrid.cxx => EvtVubBLNPHybrid.cpp} (98%) rename TEvtGen/EvtGenModels/{EvtVubHybrid.cxx => EvtVubHybrid.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtVubNLO.cxx => EvtVubNLO.cpp} (99%) rename TEvtGen/EvtGenModels/{EvtVubdGamma.cxx => EvtVubdGamma.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtWilsonCoeficients.cxx => EvtWilsonCoefficients.cpp} (77%) rename TEvtGen/EvtGenModels/{EvtWilsonCoeficients.hh => EvtWilsonCoefficients.hh} (96%) create mode 100644 TEvtGen/EvtGenModels/EvtWnPi.cpp create mode 100644 TEvtGen/EvtGenModels/EvtWnPi.hh create mode 100755 TEvtGen/EvtGenModels/EvtXPsiGamma.cpp create mode 100755 TEvtGen/EvtGenModels/EvtXPsiGamma.hh rename TEvtGen/EvtGenModels/{EvtY3SToY1SpipiMoxhay.cxx => EvtY3SToY1SpipiMoxhay.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtYmSToYnSpipiCLEO.cxx => EvtYmSToYnSpipiCLEO.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtbTosllAli.cxx => EvtbTosllAli.cpp} (95%) rename TEvtGen/EvtGenModels/{EvtbTosllAliFF.cxx => EvtbTosllAliFF.cpp} (93%) rename TEvtGen/EvtGenModels/{EvtbTosllAmp.cxx => EvtbTosllAmp.cpp} (98%) rename TEvtGen/EvtGenModels/{EvtbTosllBall.cxx => EvtbTosllBall.cpp} (96%) rename TEvtGen/EvtGenModels/{EvtbTosllBallFF.cxx => EvtbTosllBallFF.cpp} (94%) rename TEvtGen/EvtGenModels/{EvtbTosllScalarAmp.cxx => EvtbTosllScalarAmp.cpp} (100%) rename TEvtGen/EvtGenModels/{EvtbTosllVectorAmp.cxx => EvtbTosllVectorAmp.cpp} (89%) delete mode 100644 TEvtGen/EvtGenModels/Makefile delete mode 100644 TEvtGen/EvtGenModels/Pythia.F delete mode 100644 TEvtGen/EvtGenModels/begevtgenget.F delete mode 100644 TEvtGen/EvtGenModels/begevtgengetx.F delete mode 100644 TEvtGen/EvtGenModels/begevtgenstore.F delete mode 100644 TEvtGen/EvtGenModels/begevtgenstorex.F delete mode 100644 TEvtGen/EvtGenModels/continuum.F delete mode 100644 TEvtGen/EvtGenModels/continuumCDF.F delete mode 100644 TEvtGen/EvtGenModels/jetset1.F delete mode 100644 TEvtGen/EvtGenModels/jetset7410CDF.F delete mode 100644 TEvtGen/EvtGenModels/jetsetCDF.F delete mode 100644 TEvtGen/EvtGenModels/jetsetcont.F delete mode 100644 TEvtGen/EvtGenModels/pykcut.F delete mode 100644 TEvtGen/EvtGenModels/pytime.F delete mode 100644 TEvtGen/EvtGenModels/rly.cxx mode change 100644 => 100755 TEvtGen/EvtGenModels/stdhep.inc create mode 100644 TEvtGen/HepMC/CompareGenEvent.cc create mode 100644 TEvtGen/HepMC/CompareGenEvent.h create mode 100644 TEvtGen/HepMC/Flow.cc create mode 100644 TEvtGen/HepMC/Flow.h create mode 100644 TEvtGen/HepMC/GenCrossSection.cc create mode 100644 TEvtGen/HepMC/GenCrossSection.h create mode 100644 TEvtGen/HepMC/GenEvent.cc create mode 100644 TEvtGen/HepMC/GenEvent.h create mode 100644 TEvtGen/HepMC/GenEventStreamIO.cc create mode 100644 TEvtGen/HepMC/GenParticle.cc create mode 100644 TEvtGen/HepMC/GenParticle.h create mode 100644 TEvtGen/HepMC/GenRanges.cc create mode 100644 TEvtGen/HepMC/GenRanges.h create mode 100644 TEvtGen/HepMC/GenVertex.cc create mode 100644 TEvtGen/HepMC/GenVertex.h create mode 100644 TEvtGen/HepMC/HEPEVT_Wrapper.cc create mode 100644 TEvtGen/HepMC/HEPEVT_Wrapper.h create mode 100644 TEvtGen/HepMC/HeavyIon.cc create mode 100644 TEvtGen/HepMC/HeavyIon.h create mode 100644 TEvtGen/HepMC/HepMCDefs.h create mode 100644 TEvtGen/HepMC/HerwigWrapper.cc create mode 100644 TEvtGen/HepMC/HerwigWrapper.h create mode 100644 TEvtGen/HepMC/IO_AsciiParticles.cc create mode 100644 TEvtGen/HepMC/IO_AsciiParticles.h create mode 100644 TEvtGen/HepMC/IO_BaseClass.h create mode 100644 TEvtGen/HepMC/IO_Exception.h create mode 100644 TEvtGen/HepMC/IO_GenEvent.cc create mode 100644 TEvtGen/HepMC/IO_GenEvent.h create mode 100644 TEvtGen/HepMC/IO_HEPEVT.cc create mode 100644 TEvtGen/HepMC/IO_HEPEVT.h create mode 100644 TEvtGen/HepMC/IO_HERWIG.cc create mode 100644 TEvtGen/HepMC/IO_HERWIG.h create mode 100644 TEvtGen/HepMC/IteratorRange.h create mode 100644 TEvtGen/HepMC/PdfInfo.cc create mode 100644 TEvtGen/HepMC/PdfInfo.h create mode 100644 TEvtGen/HepMC/Polarization.cc create mode 100644 TEvtGen/HepMC/Polarization.h create mode 100644 TEvtGen/HepMC/PythiaWrapper.h create mode 100644 TEvtGen/HepMC/PythiaWrapper6_4.h create mode 100644 TEvtGen/HepMC/PythiaWrapper6_4_WIN32.h create mode 100644 TEvtGen/HepMC/SearchVector.cc create mode 100644 TEvtGen/HepMC/SearchVector.h create mode 100644 TEvtGen/HepMC/SimpleVector.h create mode 100644 TEvtGen/HepMC/SimpleVector.icc create mode 100644 TEvtGen/HepMC/StreamHelpers.cc create mode 100644 TEvtGen/HepMC/StreamHelpers.h create mode 100644 TEvtGen/HepMC/StreamInfo.cc create mode 100644 TEvtGen/HepMC/StreamInfo.h create mode 100644 TEvtGen/HepMC/TempParticleMap.h create mode 100644 TEvtGen/HepMC/Units.cc create mode 100644 TEvtGen/HepMC/Units.h create mode 100644 TEvtGen/HepMC/Version.h create mode 100644 TEvtGen/HepMC/WeightContainer.cc create mode 100644 TEvtGen/HepMC/WeightContainer.h create mode 100644 TEvtGen/HepMC/enable_if.h create mode 100644 TEvtGen/HepMC/filterEvent.cc create mode 100644 TEvtGen/HepMC/is_arithmetic.h delete mode 100644 TEvtGen/PHOTOS/CMakeLists.txt delete mode 100644 TEvtGen/PHOTOS/CMake_libPHOTOS.txt delete mode 100644 TEvtGen/PHOTOS/module.mk delete mode 100644 TEvtGen/PHOTOS/phcork.F delete mode 100644 TEvtGen/PHOTOS/phint.F delete mode 100644 TEvtGen/PHOTOS/phint1.F delete mode 100644 TEvtGen/PHOTOS/phlupa.F delete mode 100644 TEvtGen/PHOTOS/phoan1.F delete mode 100644 TEvtGen/PHOTOS/phoan2.F delete mode 100644 TEvtGen/PHOTOS/phobo3.F delete mode 100644 TEvtGen/PHOTOS/phobos.F delete mode 100644 TEvtGen/PHOTOS/phocha.F delete mode 100644 TEvtGen/PHOTOS/phochk.F delete mode 100644 TEvtGen/PHOTOS/phocin.F delete mode 100644 TEvtGen/PHOTOS/phocor.F delete mode 100644 TEvtGen/PHOTOS/phodo.F delete mode 100644 TEvtGen/PHOTOS/phoene.F delete mode 100644 TEvtGen/PHOTOS/phoerr.F delete mode 100644 TEvtGen/PHOTOS/phofac.F delete mode 100644 TEvtGen/PHOTOS/phoin.F delete mode 100644 TEvtGen/PHOTOS/phoinf.F delete mode 100644 TEvtGen/PHOTOS/phoini.F delete mode 100644 TEvtGen/PHOTOS/phomak.F delete mode 100644 TEvtGen/PHOTOS/phooma.F delete mode 100644 TEvtGen/PHOTOS/phoout.F delete mode 100644 TEvtGen/PHOTOS/phopre.F delete mode 100644 TEvtGen/PHOTOS/phoran.F delete mode 100644 TEvtGen/PHOTOS/phorep.F delete mode 100644 TEvtGen/PHOTOS/phorin.F delete mode 100644 TEvtGen/PHOTOS/phoro2.F delete mode 100644 TEvtGen/PHOTOS/phoro3.F delete mode 100644 TEvtGen/PHOTOS/phospi.F delete mode 100644 TEvtGen/PHOTOS/photos.F delete mode 100644 TEvtGen/PHOTOS/photos_get.F delete mode 100644 TEvtGen/PHOTOS/photos_make.F delete mode 100644 TEvtGen/PHOTOS/photos_set.F delete mode 100644 TEvtGen/PHOTOS/photri.F delete mode 100644 TEvtGen/PHOTOS/photwo.F delete mode 100644 TEvtGen/PHOTOS/phtype.F create mode 100644 TEvtGen/Photos/Log.cxx create mode 100644 TEvtGen/Photos/Log.h create mode 100644 TEvtGen/Photos/PH_HEPEVT_Interface.cxx create mode 100644 TEvtGen/Photos/PH_HEPEVT_Interface.h create mode 100644 TEvtGen/Photos/Photos.cxx create mode 100644 TEvtGen/Photos/Photos.h create mode 100644 TEvtGen/Photos/PhotosBranch.cxx create mode 100644 TEvtGen/Photos/PhotosBranch.h create mode 100644 TEvtGen/Photos/PhotosDebugRandom.cxx create mode 100644 TEvtGen/Photos/PhotosDebugRandom.h create mode 100644 TEvtGen/Photos/PhotosEvent.cxx create mode 100644 TEvtGen/Photos/PhotosEvent.h create mode 100644 TEvtGen/Photos/PhotosHEPEVTEvent.cxx create mode 100644 TEvtGen/Photos/PhotosHEPEVTEvent.h create mode 100644 TEvtGen/Photos/PhotosHEPEVTParticle.cxx create mode 100644 TEvtGen/Photos/PhotosHEPEVTParticle.h create mode 100644 TEvtGen/Photos/PhotosHepMCEvent.cxx create mode 100644 TEvtGen/Photos/PhotosHepMCEvent.h create mode 100644 TEvtGen/Photos/PhotosHepMCParticle.cxx create mode 100644 TEvtGen/Photos/PhotosHepMCParticle.h create mode 100644 TEvtGen/Photos/PhotosParticle.cxx create mode 100644 TEvtGen/Photos/PhotosParticle.h create mode 100644 TEvtGen/Photos/PhotosRandom.cxx create mode 100644 TEvtGen/Photos/PhotosRandom.h create mode 100644 TEvtGen/Photos/PhotosUtilities.cxx create mode 100644 TEvtGen/Photos/PhotosUtilities.h create mode 100644 TEvtGen/Photos/f_Init.h create mode 100644 TEvtGen/Photos/forW-MEc.cxx create mode 100644 TEvtGen/Photos/forW-MEc.h create mode 100644 TEvtGen/Photos/forZ-MEc.cxx create mode 100644 TEvtGen/Photos/forZ-MEc.h create mode 100644 TEvtGen/Photos/photosC.cxx create mode 100644 TEvtGen/Tauola/DecayList.cxx create mode 100644 TEvtGen/Tauola/DecayList.h create mode 100644 TEvtGen/Tauola/Log.cxx create mode 100644 TEvtGen/Tauola/Log.h create mode 100644 TEvtGen/Tauola/Plots.cxx create mode 100644 TEvtGen/Tauola/Plots.h create mode 100644 TEvtGen/Tauola/Tauola.cxx create mode 100644 TEvtGen/Tauola/Tauola.h create mode 100644 TEvtGen/Tauola/TauolaEvent.cxx create mode 100644 TEvtGen/Tauola/TauolaEvent.h create mode 100644 TEvtGen/Tauola/TauolaHEPEVTEvent.cxx create mode 100644 TEvtGen/Tauola/TauolaHEPEVTEvent.h create mode 100644 TEvtGen/Tauola/TauolaHEPEVTParticle.cxx create mode 100644 TEvtGen/Tauola/TauolaHEPEVTParticle.h create mode 100644 TEvtGen/Tauola/TauolaHepMCEvent.cxx create mode 100644 TEvtGen/Tauola/TauolaHepMCEvent.h create mode 100644 TEvtGen/Tauola/TauolaHepMCParticle.cxx create mode 100644 TEvtGen/Tauola/TauolaHepMCParticle.h create mode 100644 TEvtGen/Tauola/TauolaParticle.cxx create mode 100644 TEvtGen/Tauola/TauolaParticle.h create mode 100644 TEvtGen/Tauola/TauolaParticlePair.cxx create mode 100644 TEvtGen/Tauola/TauolaParticlePair.h create mode 100644 TEvtGen/Tauola/f_Decay.cxx create mode 100644 TEvtGen/Tauola/f_Decay.h create mode 100644 TEvtGen/Tauola/f_FilHep.cxx create mode 100644 TEvtGen/Tauola/f_FilHep.h create mode 100644 TEvtGen/Tauola/f_Init.cxx create mode 100644 TEvtGen/Tauola/f_Init.h create mode 100644 TEvtGen/Tauola/f_Variables.h create mode 100644 TEvtGen/Tauola/tauola-fortran/curr_cleo.f create mode 100644 TEvtGen/Tauola/tauola-fortran/f3pi.f create mode 100644 TEvtGen/Tauola/tauola-fortran/formf.f create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/README create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/funct_declar.inc create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/parameter.inc create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_3pi/f3pi_rcht.f create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_3pi/funct_3pi.f create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/FA1RCHL.f create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/ffwid3pi.f create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/funct_rpt.f create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/gaus_integr.f create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/gfact.f create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/initA1Tab.f create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/initA1TabKKpi.f create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/value_parameter.f create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/wid_a1_fit.f create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/wid_a1_fitKKpi.f create mode 100644 TEvtGen/Tauola/tauola-fortran/new-currents/other-currents/frho_pi_belle.f create mode 100644 TEvtGen/Tauola/tauola-fortran/pkorb.f create mode 100644 TEvtGen/Tauola/tauola-fortran/tauola.f create mode 100644 TEvtGen/Tauola/tauola_extras.f diff --git a/TEvtGen/AliDecayerEvtGen.cxx b/TEvtGen/AliDecayerEvtGen.cxx index 72968d274f3..b2a4bd69a2d 100644 --- a/TEvtGen/AliDecayerEvtGen.cxx +++ b/TEvtGen/AliDecayerEvtGen.cxx @@ -27,17 +27,21 @@ #include "EvtGenBase/EvtStdHep.hh" #include "EvtGenBase/EvtRandomEngine.hh" +#include "EvtGenBase/EvtStdlibRandomEngine.hh" #include "EvtGen/EvtGen.hh" #include "EvtGenBase/EvtParticle.hh" #include "EvtGenBase/EvtPDL.hh" #include "EvtGenBase/EvtParticleFactory.hh" #include "AliDecayerEvtGen.h" +#include "EvtGenExternal/EvtExternalGenList.hh" +#include "EvtGenBase/EvtAbsRadCorr.hh" #include "AliLog.h" ClassImp(AliDecayerEvtGen) //____________________________________________________________ AliDecayerEvtGen::AliDecayerEvtGen(): fRandomEngine(0x0), + fRadCorrEngine(0x0), fGenerator(0x0), fEvtstdhep(0x0), fDecayTablePath(0x0), @@ -68,6 +72,8 @@ AliDecayerEvtGen::~AliDecayerEvtGen() // Destructor if(fRandomEngine) {delete fRandomEngine;} fRandomEngine = 0; + if(fRadCorrEngine) {delete fRadCorrEngine;} + fRadCorrEngine = 0; if(fGenerator) {delete fGenerator;} fGenerator = 0; if(fEvtstdhep) {delete fEvtstdhep;} @@ -89,8 +95,14 @@ void AliDecayerEvtGen::Init() AliWarning(" AliDecayerEvtGen already initialized!!!!\n"); return; } - fRandomEngine=new EvtNUMRandomEngine(); - fGenerator=new EvtGen(fDecayTablePath,fParticleTablePath,fRandomEngine); + fRandomEngine = new EvtStdlibRandomEngine(); + std::list extraModels; + + EvtExternalGenList genList; + fRadCorrEngine = genList.getPhotosModel(); + extraModels = genList.getListOfModels(); + + fGenerator=new EvtGen(fDecayTablePath,fParticleTablePath,fRandomEngine,fRadCorrEngine,&extraModels); } //____________________________________________________________ void AliDecayerEvtGen::Decay(Int_t ipart, TLorentzVector *p) @@ -106,7 +118,7 @@ void AliDecayerEvtGen::Decay(Int_t ipart, TLorentzVector *p) fGenerator->generateDecay(froot_part); fEvtstdhep->init(); froot_part->makeStdHep(*fEvtstdhep); - //froot_part->printTree(); //to print the decay chain + froot_part->printTree(); //to print the decay chain froot_part->deleteTree(); } @@ -194,7 +206,7 @@ void AliDecayerEvtGen::ForceDecay() Decay_t decay = fDecay; switch(decay) { - case kAll: + case kAll: // particles decayed "naturally" according to $ALICE_ROOT/TEvtGen/EvtGen/DECAY.DEC break; case kBJpsiDiElectron: SetDecayTablePath(gSystem->ExpandPathName("$ALICE_ROOT/TEvtGen/EvtGen/DecayTable/BTOJPSITOELE.DEC")); @@ -231,7 +243,7 @@ void AliDecayerEvtGen::ForceDecay() case kHadronicDWithout4Bodies: case kPhiKK: case kOmega: - case kLambda: + case kLambda: case kNoDecay: case kNoDecayHeavy: case kNeutralPion: diff --git a/TEvtGen/AliDecayerEvtGen.h b/TEvtGen/AliDecayerEvtGen.h index c0c61fb9f1f..c5da1edead1 100644 --- a/TEvtGen/AliDecayerEvtGen.h +++ b/TEvtGen/AliDecayerEvtGen.h @@ -9,11 +9,11 @@ // Contact: Giuseppe.Bruno@ba.infn.it & Fiorella.Fionda@ba.infn.it // /////////////////////////////////////////////////////////////////////////// - #include "AliDecayer.h" class EvtGen; -class EvtRandomEngine; +class EvtStdlibRandomEngine; +class EvtAbsRadCorr; class EvtStdHep; class TLorentzVector; class TClonesArray; @@ -42,7 +42,8 @@ class AliDecayerEvtGen : public AliDecayer {decayer.Copy(*this);return(*this);} protected: - EvtRandomEngine *fRandomEngine; //!pointer to EvtRandomEngine to generate random number + EvtStdlibRandomEngine *fRandomEngine; //!pointer to EvtRandomEngine to generate random number + EvtAbsRadCorr *fRadCorrEngine; //!pointer to EvtGenCorrEngine EvtGen *fGenerator; //!pointer to EvtGen class interface EvtStdHep *fEvtstdhep; //!pointer to EvtGen common block Char_t *fDecayTablePath; //!pointer to decay table path diff --git a/TEvtGen/CMakelibEvtGen.pkg b/TEvtGen/CMakelibEvtGen.pkg index efdb1eb36a4..d2ee5dd342b 100644 --- a/TEvtGen/CMakelibEvtGen.pkg +++ b/TEvtGen/CMakelibEvtGen.pkg @@ -25,8 +25,572 @@ # SHLIBS - Shared Libraries and objects for linking (Executables only) # #--------------------------------------------------------------------------------# -set ( SRCS EvtGen/EvtGen.cxx EvtGen/EvtCheckDecays.cxx) +set ( SRCS EvtGen/EvtGen.cpp +EvtGenBase/Evt3Rank3C.cpp +EvtGenBase/EvtAbsLineShape.cpp +EvtGenBase/EvtAmp.cpp +EvtGenBase/EvtAmpIndex.cpp +EvtGenBase/EvtAmpSubIndex.cpp +EvtGenBase/EvtBlattWeisskopf.cpp +EvtGenBase/EvtBreitWignerPdf.cpp +EvtGenBase/EvtCGCoefSingle.cpp +EvtGenBase/EvtComplex.cpp +EvtGenBase/EvtConst.cpp +EvtGenBase/EvtCPUtil.cpp +EvtGenBase/EvtCyclic3.cpp +EvtGenBase/EvtDalitzCoord.cpp +EvtGenBase/EvtDalitzFlatPdf.cpp +EvtGenBase/EvtDalitzPlot.cpp +EvtGenBase/EvtDalitzPoint.cpp +EvtGenBase/EvtDalitzReso.cpp +EvtGenBase/EvtDalitzResPdf.cpp +EvtGenBase/EvtDecayAmp.cpp +EvtGenBase/EvtDecayBase.cpp +EvtGenBase/EvtDecayIncoherent.cpp +EvtGenBase/EvtDecayMode.cpp +EvtGenBase/EvtDecayParm.cpp +EvtGenBase/EvtDecayProb.cpp +EvtGenBase/EvtDecayTable.cpp +EvtGenBase/EvtdFunction.cpp +EvtGenBase/EvtdFunctionSingle.cpp +EvtGenBase/EvtDiLog.cpp +EvtGenBase/EvtDiracParticle.cpp +EvtGenBase/EvtDiracSpinor.cpp +EvtGenBase/EvtEvalHelAmp.cpp +EvtGenBase/EvtExtGeneratorCommandsTable.cpp +EvtGenBase/EvtFlatLineShape.cpp +EvtGenBase/EvtFlatte.cpp +EvtGenBase/EvtGammaMatrix.cpp +EvtGenBase/EvtGenKine.cpp +EvtGenBase/EvtHepMCEvent.cpp +EvtGenBase/EvtHighSpinParticle.cpp +EvtGenBase/EvtId.cpp +EvtGenBase/EvtIdSet.cpp +EvtGenBase/EvtIncoherentMixing.cpp +EvtGenBase/EvtIntegPdf1D.cpp +EvtGenBase/EvtIntervalFlatPdf.cpp +EvtGenBase/EvtKine.cpp +EvtGenBase/EvtLASSAmp.cpp +EvtGenBase/EvtManyDeltaFuncLineShape.cpp +EvtGenBase/EvtMassAmp.cpp +EvtGenBase/EvtMBreitWigner.cpp +EvtGenBase/EvtMHelAmp.cpp +EvtGenBase/EvtMNode.cpp +EvtGenBase/EvtModelAlias.cpp +EvtGenBase/EvtModel.cpp +EvtGenBase/EvtMParticle.cpp +EvtGenBase/EvtMRes.cpp +EvtGenBase/EvtMTree.cpp +EvtGenBase/EvtMTrivialLS.cpp +EvtGenBase/EvtMultiChannelParser.cpp +EvtGenBase/EvtNeutrinoParticle.cpp +EvtGenBase/EvtNonresonantAmp.cpp +EvtGenBase/EvtOrthogVector.cpp +EvtGenBase/EvtParser.cpp +EvtGenBase/EvtParserXml.cpp +EvtGenBase/EvtParticle.cpp +EvtGenBase/EvtParticleDecay.cpp +EvtGenBase/EvtParticleDecayList.cpp +EvtGenBase/EvtParticleFactory.cpp +EvtGenBase/EvtPartProp.cpp +EvtGenBase/EvtPDL.cpp +EvtGenBase/EvtPhotonParticle.cpp +EvtGenBase/EvtPoint1D.cpp +EvtGenBase/EvtPropBreitWigner.cpp +EvtGenBase/EvtPropBreitWignerRel.cpp +EvtGenBase/EvtPropFlatte.cpp +EvtGenBase/EvtPropGounarisSakurai.cpp +EvtGenBase/EvtPto3PAmp.cpp +EvtGenBase/EvtPto3PAmpFactory.cpp +EvtGenBase/EvtPto3PAmpSmpResolution.cpp +EvtGenBase/EvtRadCorr.cpp +EvtGenBase/EvtRandom.cpp +EvtGenBase/EvtRanf.cpp +EvtGenBase/EvtRanFor.cpp +EvtGenBase/EvtRaritaSchwinger.cpp +EvtGenBase/EvtRaritaSchwingerParticle.cpp +EvtGenBase/EvtRelBreitWignerBarrierFact.cpp +EvtGenBase/EvtReport.cpp +EvtGenBase/EvtResonance2.cpp +EvtGenBase/EvtResonance.cpp +EvtGenBase/EvtScalarParticle.cpp +EvtGenBase/EvtSecondary.cpp +EvtGenBase/EvtSemiLeptonicAmp.cpp +EvtGenBase/EvtSemiLeptonicBaryonAmp.cpp +EvtGenBase/EvtSemiLeptonicScalarAmp.cpp +EvtGenBase/EvtSemiLeptonicTensorAmp.cpp +EvtGenBase/EvtSemiLeptonicVectorAmp.cpp +EvtGenBase/EvtSimpleRandomEngine.cpp +EvtGenBase/EvtSpinAmp.cpp +EvtGenBase/EvtSpinDensity.cpp +EvtGenBase/EvtSpinType.cpp +EvtGenBase/EvtStdHep.cpp +EvtGenBase/EvtStringParticle.cpp +EvtGenBase/EvtSymTable.cpp +EvtGenBase/EvtTensor3C.cpp +EvtGenBase/EvtTensor4C.cpp +EvtGenBase/EvtTensorParticle.cpp +EvtGenBase/EvtTwoBodyKine.cpp +EvtGenBase/EvtTwoBodyVertex.cpp +EvtGenBase/EvtValError.cpp +EvtGenBase/EvtVector3C.cpp +EvtGenBase/EvtVector3R.cpp +EvtGenBase/EvtVector4C.cpp +EvtGenBase/EvtVector4R.cpp +EvtGenBase/EvtVectorParticle.cpp +EvtGenModels/EvtBaryonPCR.cpp +EvtGenModels/EvtBaryonPCRFF.cpp +EvtGenModels/EvtBBScalar.cpp +EvtGenModels/EvtBcBsNPi.cpp +EvtGenModels/EvtBcBsStarNPi.cpp +EvtGenModels/EvtBcPsiNPi.cpp +EvtGenModels/EvtBcToNPi.cpp +EvtGenModels/EvtBCVFF.cpp +EvtGenModels/EvtBcVMuNu.cpp +EvtGenModels/EvtBcVNpi.cpp +EvtGenModels/EvtBHadronic.cpp +EvtGenModels/EvtBsquark.cpp +EvtGenModels/EvtBto2piCPiso.cpp +EvtGenModels/EvtBTo3piCP.cpp +EvtGenModels/EvtBTo4piCP.cpp +EvtGenModels/EvtBToDDalitzCPK.cpp +EvtGenModels/EvtBtoKD3P.cpp +EvtGenModels/EvtBtoKpiCPiso.cpp +EvtGenModels/EvtBToKpipiCP.cpp +EvtGenModels/EvtBToPlnuBK.cpp +EvtGenModels/EvtBToPlnuBKFF.cpp +EvtGenModels/EvtbTosllAli.cpp +EvtGenModels/EvtbTosllAliFF.cpp +EvtGenModels/EvtbTosllAmp.cpp +EvtGenModels/EvtbTosllBall.cpp +EvtGenModels/EvtbTosllBallFF.cpp +EvtGenModels/EvtbTosllScalarAmp.cpp +EvtGenModels/EvtbTosllVectorAmp.cpp +EvtGenModels/EvtBToVlnuBall.cpp +EvtGenModels/EvtBToVlnuBallFF.cpp +EvtGenModels/EvtBtoXsEtap.cpp +EvtGenModels/EvtBtoXsgammaAbsModel.cpp +EvtGenModels/EvtBtoXsgammaAliGreub.cpp +EvtGenModels/EvtBtoXsgamma.cpp +EvtGenModels/EvtBtoXsgammaFermiUtil.cpp +EvtGenModels/EvtBtoXsgammaFixedMass.cpp +EvtGenModels/EvtBtoXsgammaFlatEnergy.cpp +EvtGenModels/EvtBtoXsgammaKagan.cpp +EvtGenModels/EvtBtoXsgammaRootFinder.cpp +EvtGenModels/EvtBtoXsll.cpp +EvtGenModels/EvtBtoXsllUtil.cpp +EvtGenModels/EvtCBTo3piMPP.cpp +EvtGenModels/EvtCBTo3piP00.cpp +EvtGenModels/EvtD0gammaDalitz.cpp +EvtGenModels/EvtD0mixDalitz.cpp +EvtGenModels/EvtDalitzTable.cpp +EvtGenModels/EvtDDalitz.cpp +EvtGenModels/EvtDMix.cpp +EvtGenModels/EvtEta2MuMuGamma.cpp +EvtGenModels/EvtEtaDalitz.cpp +EvtGenModels/EvtFlatQ2.cpp +EvtGenModels/EvtGenericDalitz.cpp +EvtGenModels/EvtGoityRoberts.cpp +EvtGenModels/EvtHelAmp.cpp +EvtGenModels/EvtHQET2.cpp +EvtGenModels/EvtHQET2FF.cpp +EvtGenModels/EvtHQET.cpp +EvtGenModels/EvtHQETFF.cpp +EvtGenModels/EvtHypNonLepton.cpp +EvtGenModels/EvtISGW2.cpp +EvtGenModels/EvtISGW2FF.cpp +EvtGenModels/EvtISGW.cpp +EvtGenModels/EvtISGWFF.cpp +EvtGenModels/EvtItgAbsFunction.cpp +EvtGenModels/EvtItgAbsIntegrator.cpp +EvtGenModels/EvtItgFourCoeffFcn.cpp +EvtGenModels/EvtItgFunction.cpp +EvtGenModels/EvtItgPtrFunction.cpp +EvtGenModels/EvtItgSimpsonIntegrator.cpp +EvtGenModels/EvtItgThreeCoeffFcn.cpp +EvtGenModels/EvtItgTwoCoeffFcn.cpp +EvtGenModels/EvtKKLambdaC.cpp +EvtGenModels/EvtKKLambdaCFF.cpp +EvtGenModels/EvtKstarnunu.cpp +EvtGenModels/EvtKstarstargamma.cpp +EvtGenModels/EvtLambdaB2LambdaV.cpp +EvtGenModels/EvtLambdaP_BarGamma.cpp +EvtGenModels/EvtLb2Lll.cpp +EvtGenModels/EvtLNuGamma.cpp +EvtGenModels/EvtMelikhov.cpp +EvtGenModels/EvtMelikhovFF.cpp +EvtGenModels/EvtModelReg.cpp +EvtGenModels/EvtMultibody.cpp +EvtGenModels/EvtOmegaDalitz.cpp +EvtGenModels/EvtPartWave.cpp +EvtGenModels/EvtPFermi.cpp +EvtGenModels/EvtPhiDalitz.cpp +EvtGenModels/EvtPhsp.cpp +EvtGenModels/EvtPi0Dalitz.cpp +EvtGenModels/EvtPropSLPole.cpp +EvtGenModels/EvtPto3P.cpp +EvtGenModels/EvtPVVCPLH.cpp +EvtGenModels/EvtSingleParticle.cpp +EvtGenModels/EvtSLBKPole.cpp +EvtGenModels/EvtSLBKPoleFF.cpp +EvtGenModels/EvtSll.cpp +EvtGenModels/EvtSLN.cpp +EvtGenModels/EvtSLPole.cpp +EvtGenModels/EvtSLPoleFF.cpp +EvtGenModels/EvtSSDCP.cpp +EvtGenModels/EvtSSD_DirectCP.cpp +EvtGenModels/EvtSSSCP.cpp +EvtGenModels/EvtSSSCPpng.cpp +EvtGenModels/EvtSSSCPT.cpp +EvtGenModels/EvtSTSCP.cpp +EvtGenModels/EvtSTS.cpp +EvtGenModels/EvtSVPCP.cpp +EvtGenModels/EvtSVP.cpp +EvtGenModels/EvtSVPHelAmp.cpp +EvtGenModels/EvtSVSCP.cpp +EvtGenModels/EvtSVSCPiso.cpp +EvtGenModels/EvtSVSCPLH.cpp +EvtGenModels/EvtSVS.cpp +EvtGenModels/EvtSVSNONCPEIGEN.cpp +EvtGenModels/EvtSVVCP.cpp +EvtGenModels/EvtSVVCPLH.cpp +EvtGenModels/EvtSVVHelAmp.cpp +EvtGenModels/EvtSVVHelCPMix.cpp +EvtGenModels/EvtSVVNONCPEIGEN.cpp +EvtGenModels/EvtTauHadnu.cpp +EvtGenModels/EvtTaulnunu.cpp +EvtGenModels/EvtTauScalarnu.cpp +EvtGenModels/EvtTauVectornu.cpp +EvtGenModels/EvtTSS.cpp +EvtGenModels/EvtTVP.cpp +EvtGenModels/EvtTVSPwave.cpp +EvtGenModels/EvtVectorIsr.cpp +EvtGenModels/EvtVll.cpp +EvtGenModels/EvtVPHOtoV.cpp +EvtGenModels/EvtVPHOtoVISR.cpp +EvtGenModels/EvtVPHOtoVISRHi.cpp +EvtGenModels/EvtVSPPwave.cpp +EvtGenModels/EvtVSSBMixCPT.cpp +EvtGenModels/EvtVSS.cpp +EvtGenModels/EvtVSSMix.cpp +EvtGenModels/EvtVtoSll.cpp +EvtGenModels/EvtVubAC.cpp +EvtGenModels/EvtVubBLNP.cpp +EvtGenModels/EvtVubBLNPHybrid.cpp +EvtGenModels/EvtVub.cpp +EvtGenModels/EvtVubdGamma.cpp +EvtGenModels/EvtVubHybrid.cpp +EvtGenModels/EvtVubNLO.cpp +EvtGenModels/EvtVVP.cpp +EvtGenModels/EvtVVpipi.cpp +EvtGenModels/EvtVVPIPI_WEIGHTED.cpp +EvtGenModels/EvtVVSPwave.cpp +EvtGenModels/EvtWilsonCoefficients.cpp +EvtGenModels/EvtWnPi.cpp +EvtGenModels/EvtXPsiGamma.cpp +EvtGenModels/EvtY3SToY1SpipiMoxhay.cpp +EvtGenModels/EvtYmSToYnSpipiCLEO.cpp ) + +set ( FSRCS +EvtGenModels/EvtBTo3pi.F EvtGenModels/EvtBToKpipi.F EvtGenModels/EvtBTo3piMPP.F EvtGenModels/EvtLi2Spence.F EvtGenModels/EvtBTo3piP00.F ) + + +set ( HDRS EvtGen/EvtGen.hh +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/EvtExtGeneratorCommandsTable.hh +EvtGenBase/EvtFlatAmp.hh +EvtGenBase/EvtFlatLineShape.hh +EvtGenBase/EvtFlatte.hh +EvtGenBase/EvtGammaMatrix.hh +EvtGenBase/EvtGenKine.hh +EvtGenBase/EvtHepMCEvent.hh +EvtGenBase/EvtHighSpinParticle.hh +EvtGenBase/EvtId.hh +EvtGenBase/EvtIdSet.hh +EvtGenBase/EvtIncoherentMixing.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/EvtParserXml.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 +EvtGenModels/EvtAbsExternalGen.hh +EvtGenModels/EvtBaryonPCRFF.hh +EvtGenModels/EvtBaryonPCR.hh +EvtGenModels/EvtBBScalar.hh +EvtGenModels/EvtBcBsNPi.hh +EvtGenModels/EvtBcBsStarNPi.hh +EvtGenModels/EvtBcPsiNPi.hh +EvtGenModels/EvtBcToNPi.hh +EvtGenModels/EvtBCVFF.hh +EvtGenModels/EvtBcVMuNu.hh +EvtGenModels/EvtBcVNpi.hh +EvtGenModels/EvtBHadronic.hh +EvtGenModels/EvtBsquark.hh +EvtGenModels/EvtBto2piCPiso.hh +EvtGenModels/EvtBTo3piCP.hh +EvtGenModels/EvtBTo4piCP.hh +EvtGenModels/EvtBToDDalitzCPK.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/EvtD0gammaDalitz.hh +EvtGenModels/EvtD0mixDalitz.hh +EvtGenModels/EvtDalitzDecayInfo.hh +EvtGenModels/EvtDalitzTable.hh +EvtGenModels/EvtDDalitz.hh +EvtGenModels/EvtDMix.hh +EvtGenModels/EvtEta2MuMuGamma.hh +EvtGenModels/EvtEtaDalitz.hh +EvtGenModels/EvtFlatQ2.hh +EvtGenModels/EvtGenericDalitz.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/EvtLambdaB2LambdaV.hh +EvtGenModels/EvtLambdaP_BarGamma.hh +EvtGenModels/EvtLb2Lll.hh +EvtGenModels/EvtLNuGamma.hh +EvtGenModels/EvtMelikhovFF.hh +EvtGenModels/EvtMelikhov.hh +EvtGenModels/EvtModelReg.hh +EvtGenModels/EvtMultibody.hh +EvtGenModels/EvtNoRadCorr.hh +EvtGenModels/EvtOmegaDalitz.hh +EvtGenModels/EvtPartWave.hh +EvtGenModels/EvtPFermi.hh +EvtGenModels/EvtPhiDalitz.hh +EvtGenModels/EvtPhsp.hh +EvtGenModels/EvtPi0Dalitz.hh +EvtGenModels/EvtPropSLPole.hh +EvtGenModels/EvtPto3P.hh +EvtGenModels/EvtPVVCPLH.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/EvtSSD_DirectCP.hh +EvtGenModels/EvtSSSCP.hh +EvtGenModels/EvtSSSCPpng.hh +EvtGenModels/EvtSSSCPT.hh +EvtGenModels/EvtSTSCP.hh +EvtGenModels/EvtSTS.hh +EvtGenModels/EvtSVPCP.hh +EvtGenModels/EvtSVPHelAmp.hh +EvtGenModels/EvtSVP.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/EvtTVP.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/EvtWilsonCoefficients.hh +EvtGenModels/EvtWnPi.hh +EvtGenModels/EvtXPsiGamma.hh +EvtGenModels/EvtY3SToY1SpipiMoxhay.hh +EvtGenModels/EvtYmSToYnSpipiCLEO.hh ) + + +set ( EINCLUDE TEvtGen EVGEN TEvtGen/HepMC) + + -string ( REPLACE ".cxx" ".hh" HDRS "${SRCS}" ) -set ( DHDR EvtGen/EvtGenLinkDef.h) diff --git a/TEvtGen/CMakelibEvtGenBase.pkg b/TEvtGen/CMakelibEvtGenBase.pkg deleted file mode 100644 index d7ecc320301..00000000000 --- a/TEvtGen/CMakelibEvtGenBase.pkg +++ /dev/null @@ -1,34 +0,0 @@ -#--------------------------------------------------------------------------------# -# Package File for EvtGenBase # -# Author : Johny Jose (johny.jose@cern.ch) # -# Variables Defined : # -# # -# SRCS - C++ source files # -# HDRS - C++ header files # -# DHDR - ROOT Dictionary Linkdef header file # -# CSRCS - C source files # -# CHDRS - C header files # -# EINCLUDE - Include directories # -# EDEFINE - Compiler definitions # -# ELIBS - Extra libraries to link # -# ELIBSDIR - Extra library directories # -# PACKFFLAGS - Fortran compiler flags for package # -# PACKCXXFLAGS - C++ compiler flags for package # -# PACKCFLAGS - C compiler flags for package # -# PACKSOFLAGS - Shared library linking flags # -# PACKLDFLAGS - Module linker flags # -# PACKBLIBS - Libraries to link (Executables only) # -# EXPORT - Header files to be exported # -# CINTHDRS - Dictionary header files # -# CINTAUTOLINK - Set automatic dictionary generation # -# ARLIBS - Archive Libraries and objects for linking (Executables only) # -# SHLIBS - Shared Libraries and objects for linking (Executables only) # -#--------------------------------------------------------------------------------# - -set ( 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) - -set ( 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) - -set ( EINCLUDE TEvtGen TEvtGen/EvtGenBase) - -set ( DHDR EvtGenBase/EvtGenBaseLinkDef.h) diff --git a/TEvtGen/CMakelibEvtGenExternal.pkg b/TEvtGen/CMakelibEvtGenExternal.pkg new file mode 100644 index 00000000000..0229134a3a4 --- /dev/null +++ b/TEvtGen/CMakelibEvtGenExternal.pkg @@ -0,0 +1,63 @@ +#--------------------------------------------------------------------------------# +# Package File for EvtGen # +# Author : Johny Jose (johny.jose@cern.ch) # +# Variables Defined : # +# # +# SRCS - C++ source files # +# HDRS - C++ header files # +# DHDR - ROOT Dictionary Linkdef header file # +# CSRCS - C source files # +# CHDRS - C header files # +# EINCLUDE - Include directories # +# EDEFINE - Compiler definitions # +# ELIBS - Extra libraries to link # +# ELIBSDIR - Extra library directories # +# PACKFFLAGS - Fortran compiler flags for package # +# PACKCXXFLAGS - C++ compiler flags for package # +# PACKCFLAGS - C compiler flags for package # +# PACKSOFLAGS - Shared library linking flags # +# PACKLDFLAGS - Module linker flags # +# PACKBLIBS - Libraries to link (Executables only) # +# EXPORT - Header files to be exported # +# CINTHDRS - Dictionary header files # +# CINTAUTOLINK - Set automatic dictionary generation # +# ARLIBS - Archive Libraries and objects for linking (Executables only) # +# SHLIBS - Shared Libraries and objects for linking (Executables only) # +#--------------------------------------------------------------------------------# + +set ( SRCS +EvtGenExternal/EvtExternalGenFactory.cpp +EvtGenExternal/EvtExternalGenList.cpp +EvtGenExternal/EvtPHOTOS.cpp +EvtGenExternal/EvtPhotosEngine.cpp +EvtGenExternal/EvtPythia6CommandConverter.cpp +EvtGenExternal/EvtPythia.cpp +EvtGenExternal/EvtPythiaEngine.cpp +EvtGenExternal/EvtTauola.cpp +EvtGenExternal/EvtTauolaEngine.cpp +) + + +set ( HDRS +EvtGenExternal/EvtExternalGenFactory.hh +EvtGenExternal/EvtExternalGenList.hh +EvtGenExternal/EvtPhotosEngine.hh +EvtGenExternal/EvtPHOTOS.hh +EvtGenExternal/EvtPythia6CommandConverter.hh +EvtGenExternal/EvtPythiaEngine.hh +EvtGenExternal/EvtPythia.hh +EvtGenExternal/EvtPythiaRandom.hh +EvtGenExternal/EvtTauolaEngine.hh +EvtGenExternal/EvtTauola.hh +) + +set (EVTGEN_PYTHIA "ON") +set (EVTGEN_PHOTOS "ON") +set (EVTGEN_TAUOLA "ON") + +set ( CXXFLAGS "${CXXFLAGS} -D EVTGEN_PYTHIA -D EVTGEN_PHOTOS -D EVTGEN_TAUOLA") + + +set ( EINCLUDE TEvtGen EVGEN TEvtGen/Photos TEvtGen/Tauola TEvtGen/HepMC/ PYTHIA8) + + diff --git a/TEvtGen/CMakelibEvtGenModels.pkg b/TEvtGen/CMakelibEvtGenModels.pkg deleted file mode 100644 index 968bf41e64f..00000000000 --- a/TEvtGen/CMakelibEvtGenModels.pkg +++ /dev/null @@ -1,38 +0,0 @@ -#--------------------------------------------------------------------------------# -# Package File for EvtGenModels # -# Author : Johny Jose (johny.jose@cern.ch) # -# Variables Defined : # -# # -# SRCS - C++ source files # -# HDRS - C++ header files # -# DHDR - ROOT Dictionary Linkdef header file # -# CSRCS - C source files # -# CHDRS - C header files # -# EINCLUDE - Include directories # -# EDEFINE - Compiler definitions # -# ELIBS - Extra libraries to link # -# ELIBSDIR - Extra library directories # -# PACKFFLAGS - Fortran compiler flags for package # -# PACKCXXFLAGS - C++ compiler flags for package # -# PACKCFLAGS - C compiler flags for package # -# PACKSOFLAGS - Shared library linking flags # -# PACKLDFLAGS - Module linker flags # -# PACKBLIBS - Libraries to link (Executables only) # -# EXPORT - Header files to be exported # -# CINTHDRS - Dictionary header files # -# CINTAUTOLINK - Set automatic dictionary generation # -# ARLIBS - Archive Libraries and objects for linking (Executables only) # -# SHLIBS - Shared Libraries and objects for linking (Executables only) # -#--------------------------------------------------------------------------------# - -set ( 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) - -set ( 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) - -set ( DHDR EvtGenModels/EvtGenModelsLinkDef.h) - -set ( EXPORT ) - -set ( EINCLUDE TEvtGen TEvtGen/EvtGenModels) - -set ( 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) diff --git a/TEvtGen/CMakelibHepMC.pkg b/TEvtGen/CMakelibHepMC.pkg new file mode 100644 index 00000000000..4fb088716bf --- /dev/null +++ b/TEvtGen/CMakelibHepMC.pkg @@ -0,0 +1,95 @@ +#--------------------------------------------------------------------------------# +# Package File for EvtGen # +# Author : Johny Jose (johny.jose@cern.ch) # +# Variables Defined : # +# # +# SRCS - C++ source files # +# HDRS - C++ header files # +# DHDR - ROOT Dictionary Linkdef header file # +# CSRCS - C source files # +# CHDRS - C header files # +# EINCLUDE - Include directories # +# EDEFINE - Compiler definitions # +# ELIBS - Extra libraries to link # +# ELIBSDIR - Extra library directories # +# PACKFFLAGS - Fortran compiler flags for package # +# PACKCXXFLAGS - C++ compiler flags for package # +# PACKCFLAGS - C compiler flags for package # +# PACKSOFLAGS - Shared library linking flags # +# PACKLDFLAGS - Module linker flags # +# PACKBLIBS - Libraries to link (Executables only) # +# EXPORT - Header files to be exported # +# CINTHDRS - Dictionary header files # +# CINTAUTOLINK - Set automatic dictionary generation # +# ARLIBS - Archive Libraries and objects for linking (Executables only) # +# SHLIBS - Shared Libraries and objects for linking (Executables only) # +#--------------------------------------------------------------------------------# + +set ( SRCS HepMC/CompareGenEvent.cc +HepMC/filterEvent.cc +HepMC/Flow.cc +HepMC/GenCrossSection.cc +HepMC/GenEvent.cc +HepMC/GenEventStreamIO.cc +HepMC/GenParticle.cc +HepMC/GenRanges.cc +HepMC/GenVertex.cc +HepMC/HeavyIon.cc +HepMC/HEPEVT_Wrapper.cc +HepMC/HerwigWrapper.cc +HepMC/IO_AsciiParticles.cc +HepMC/IO_GenEvent.cc +HepMC/IO_HEPEVT.cc +HepMC/IO_HERWIG.cc +HepMC/PdfInfo.cc +HepMC/Polarization.cc +HepMC/SearchVector.cc +HepMC/StreamHelpers.cc +HepMC/StreamInfo.cc +HepMC/WeightContainer.cc +HepMC/Units.cc +) + + + +set ( HDRS HepMC/CompareGenEvent.h +HepMC/enable_if.h +HepMC/Flow.h +HepMC/GenCrossSection.h +HepMC/GenEvent.h +HepMC/GenParticle.h +HepMC/GenRanges.h +HepMC/GenVertex.h +HepMC/HeavyIon.h +HepMC/HEPEVT_Wrapper.h +HepMC/HepMCDefs.h +HepMC/HerwigWrapper.h +HepMC/IO_AsciiParticles.h +HepMC/IO_BaseClass.h +HepMC/IO_Exception.h +HepMC/IO_GenEvent.h +HepMC/IO_HEPEVT.h +HepMC/IO_HERWIG.h +HepMC/is_arithmetic.h +HepMC/IteratorRange.h +HepMC/PdfInfo.h +HepMC/Polarization.h +HepMC/PythiaWrapper6_4.h +HepMC/PythiaWrapper6_4_WIN32.h +HepMC/PythiaWrapper.h +HepMC/SearchVector.h +HepMC/SimpleVector.h +HepMC/SimpleVector.icc +HepMC/StreamHelpers.h +HepMC/StreamInfo.h +HepMC/TempParticleMap.h +HepMC/Units.h +HepMC/Version.h +HepMC/WeightContainer.h +) + +set ( EINCLUDE TEvtGen TEvtGen/HepMC) + + + + diff --git a/TEvtGen/CMakelibphotos.pkg b/TEvtGen/CMakelibPhotos.pkg similarity index 69% rename from TEvtGen/CMakelibphotos.pkg rename to TEvtGen/CMakelibPhotos.pkg index dcc107e8171..55a557d7bbc 100644 --- a/TEvtGen/CMakelibphotos.pkg +++ b/TEvtGen/CMakelibPhotos.pkg @@ -1,5 +1,5 @@ #--------------------------------------------------------------------------------# -# Package File for photos # +# Package File for EvtGen # # Author : Johny Jose (johny.jose@cern.ch) # # Variables Defined : # # # @@ -25,4 +25,49 @@ # SHLIBS - Shared Libraries and objects for linking (Executables only) # #--------------------------------------------------------------------------------# -set ( 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) +set ( SRCS +Photos/forW-MEc.cxx +Photos/forZ-MEc.cxx +Photos/Log.cxx +Photos/PH_HEPEVT_Interface.cxx +Photos/PhotosBranch.cxx +Photos/photosC.cxx +Photos/Photos.cxx +Photos/PhotosDebugRandom.cxx +Photos/PhotosEvent.cxx +Photos/PhotosHEPEVTEvent.cxx +Photos/PhotosHEPEVTParticle.cxx +Photos/PhotosHepMCEvent.cxx +Photos/PhotosHepMCParticle.cxx +Photos/PhotosParticle.cxx +Photos/PhotosRandom.cxx +Photos/PhotosUtilities.cxx +) + + + +set ( HDRS +Photos/f_Init.h +Photos/forW-MEc.h +Photos/forZ-MEc.h +Photos/Log.h +Photos/PH_HEPEVT_Interface.h +Photos/PhotosBranch.h +Photos/PhotosDebugRandom.h +Photos/PhotosEvent.h +Photos/Photos.h +Photos/PhotosHEPEVTEvent.h +Photos/PhotosHEPEVTParticle.h +Photos/PhotosHepMCEvent.h +Photos/PhotosHepMCParticle.h +Photos/PhotosParticle.h +Photos/PhotosRandom.h +Photos/PhotosUtilities.h +) + + +set ( EINCLUDE TEvtGen TEvtGen/HepMC TEvtGen/Photos) + + + + diff --git a/TEvtGen/CMakelibTEvtGen.pkg b/TEvtGen/CMakelibTEvtGen.pkg index cd8a5ea44df..7bcd8d9acd3 100644 --- a/TEvtGen/CMakelibTEvtGen.pkg +++ b/TEvtGen/CMakelibTEvtGen.pkg @@ -31,4 +31,4 @@ string ( REPLACE ".cxx" ".h" HDRS "${SRCS}" ) set ( DHDR TEvtGenLinkDef.h) -set ( EINCLUDE TEvtGen EVGEN STEER/STEER) +set ( EINCLUDE TEvtGen EVGEN) diff --git a/TEvtGen/CMakelibTauola.pkg b/TEvtGen/CMakelibTauola.pkg new file mode 100644 index 00000000000..31c9320340e --- /dev/null +++ b/TEvtGen/CMakelibTauola.pkg @@ -0,0 +1,44 @@ +#--------------------------------------------------------------------------------# +# Package File for EvtGen # +# Author : Johny Jose (johny.jose@cern.ch) # +# Variables Defined : # +# # +# SRCS - C++ source files # +# HDRS - C++ header files # +# DHDR - ROOT Dictionary Linkdef header file # +# CSRCS - C source files # +# CHDRS - C header files # +# EINCLUDE - Include directories # +# EDEFINE - Compiler definitions # +# ELIBS - Extra libraries to link # +# ELIBSDIR - Extra library directories # +# PACKFFLAGS - Fortran compiler flags for package # +# PACKCXXFLAGS - C++ compiler flags for package # +# PACKCFLAGS - C compiler flags for package # +# PACKSOFLAGS - Shared library linking flags # +# PACKLDFLAGS - Module linker flags # +# PACKBLIBS - Libraries to link (Executables only) # +# EXPORT - Header files to be exported # +# CINTHDRS - Dictionary header files # +# CINTAUTOLINK - Set automatic dictionary generation # +# ARLIBS - Archive Libraries and objects for linking (Executables only) # +# SHLIBS - Shared Libraries and objects for linking (Executables only) # +#--------------------------------------------------------------------------------# + +set ( SRCS Tauola/DecayList.cxx Tauola/Log.cxx Tauola/Plots.cxx Tauola/Tauola.cxx Tauola/TauolaEvent.cxx Tauola/TauolaHEPEVTEvent.cxx Tauola/TauolaHEPEVTParticle.cxx Tauola/TauolaHepMCEvent.cxx Tauola/TauolaHepMCParticle.cxx Tauola/TauolaParticle.cxx Tauola/TauolaParticlePair.cxx Tauola/f_Decay.cxx Tauola/f_FilHep.cxx Tauola/f_Init.cxx) + +set ( HDRS Tauola/DecayList.h Tauola/f_Variables.h Tauola/Log.h Tauola/Plots.h Tauola/TauolaEvent.h Tauola/Tauola.h Tauola/TauolaHEPEVTEvent.h Tauola/TauolaHEPEVTParticle.h Tauola/TauolaHepMCEvent.h Tauola/TauolaHepMCParticle.h Tauola/TauolaParticle.h Tauola/TauolaParticlePair.h Tauola/f_Decay.h Tauola/f_FilHep.h Tauola/f_Init.h) + +set ( FFLAGS "-O2 -fPIC -fno-automatic -fno-backslash -ffixed-line-length-132") + + +set ( FSRCS Tauola/tauola-fortran/curr_cleo.f Tauola/tauola-fortran/f3pi.f Tauola/tauola-fortran/formf.f Tauola/tauola-fortran/pkorb.f Tauola/tauola-fortran/tauola.f Tauola/tauola-fortran/new-currents/other-currents/frho_pi_belle.f Tauola/tauola-fortran/new-currents/RChL-currents/rcht_3pi/f3pi_rcht.f Tauola/tauola-fortran/new-currents/RChL-currents/rcht_3pi/funct_3pi.f Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/FA1RCHL.f Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/ffwid3pi.f +Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/funct_rpt.f Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/gaus_integr.f Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/gfact.f Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/initA1Tab.f Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/initA1TabKKpi.f Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/value_parameter.f Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/wid_a1_fit.f Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/wid_a1_fitKKpi.f Tauola/tauola_extras.f) + + + +set ( EINCLUDE TEvtGen/Tauola TEvtGen/Tauola/tauola-fortran TEvtGen/HepMC TEvtGen/Photos) + + + + diff --git a/TEvtGen/EvtGen/DECAY.DEC b/TEvtGen/EvtGen/DECAY.DEC index 4c851137479..57947163fb1 100644 --- a/TEvtGen/EvtGen/DECAY.DEC +++ b/TEvtGen/EvtGen/DECAY.DEC @@ -1,10 +1,24 @@ -# $Id: DECAY.DEC,v 1.271 2009/02/15 18:43:38 ryd Exp $ +# $Id: DECAY.DEC,v 1.55 2009-11-26 14:16:27 robbep Exp $ +# Updated to PDG 2010 by Tomas Pilar - T.Pilar@warwick.ac.uk +# Updated Mixing Parameters Mark Whitehead May 2009 # -#Define the B0B0bar mass difference -Define dm 0.489e12 -Define dgamma 0 -Define qoverp 1 -Define phaseqoverp 0 +Define qoverp_incohMix_B_s0 1.0 +Define dm_incohMix_B_s0 17.8e12 +Define qoverp_incohMix_B0 1.0 +Define dm_incohMix_B0 0.507e12 +# Old definition of dm still in some decay models +Define dm 0.507e12 +#Define dgamma 0 +#Define qoverp 1 +#Define phaseqoverp 0 +#Define values for B0s mixing +#Define dms 20.e12 +# DeltaGammas corresponds to DG/G = 10% +#Define dgammas 6.852e10 +# Activate incoherent Mixing +### TODO: find a way to give mixing parameters through decay file to EvtGen +#####yesIncoherentB0Mixing dm dgamma +#####yesIncoherentBsMixing dms dgammas # define the values of the CKM angles (alpha=70, beta=40) Define alpha 1.365 Define beta 0.39 @@ -30,14 +44,6 @@ 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. @@ -58,339 +64,195 @@ 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 +ChargeConj K*0R K*BR +# +# PR LHCb: Alias for signal productions in LHCb +# +Alias B0sig B0 +Alias anti-B0sig anti-B0 +ChargeConj B0sig anti-B0sig +Alias B+sig B+ +Alias B-sig B- +ChargeConj B+sig B-sig +Alias B_s0sig B_s0 +Alias anti-B_s0sig anti-B_s0 +ChargeConj B_s0sig anti-B_s0sig +Alias B_c+sig B_c+ +Alias B_c-sig B_c- +ChargeConj B_c+sig B_c-sig +Alias eta_bsig eta_b +ChargeConj eta_bsig eta_bsig +Alias h_bsig h_b +ChargeConj h_bsig h_bsig +Alias Sigma_b-sig Sigma_b- +Alias anti-Sigma_b+sig anti-Sigma_b+ +ChargeConj Sigma_b-sig anti-Sigma_b+sig +Alias Lambda_b0sig Lambda_b0 +Alias anti-Lambda_b0sig anti-Lambda_b0 +ChargeConj Lambda_b0sig anti-Lambda_b0sig +Alias Omega_b-sig Omega_b- +Alias anti-Omega_b+sig anti-Omega_b+ +ChargeConj Omega_b-sig anti-Omega_b+sig +Alias Xi_b-sig Xi_b- +Alias anti-Xi_b+sig anti-Xi_b+ +ChargeConj Xi_b-sig anti-Xi_b+sig +Alias Xi_b0sig Xi_b0 +Alias anti-Xi_b0sig anti-Xi_b0 +ChargeConj Xi_b0sig anti-Xi_b0sig +Alias J/psisig J/psi +ChargeConj J/psisig J/psisig +Alias chi_c0sig chi_c0 +ChargeConj chi_c0sig chi_c0sig +Alias chi_c1sig chi_c1 +ChargeConj chi_c1sig chi_c1sig +Alias chi_c2sig chi_c2 +ChargeConj chi_c2sig chi_c2sig +Alias psi(2S)sig psi(2S) +ChargeConj psi(2S)sig psi(2S)sig +Alias psi(3770)sig psi(3770) +ChargeConj psi(3770)sig psi(3770)sig +Alias D*+sig D*+ +Alias D*-sig D*- +ChargeConj D*+sig D*-sig +Alias D*0sig D*0 +Alias anti-D*0sig anti-D*0 +ChargeConj D*0sig anti-D*0sig +Alias D0sig D0 +Alias anti-D0sig anti-D0 +ChargeConj D0sig anti-D0sig +Alias D+sig D+ +Alias D-sig D- +ChargeConj D+sig D-sig +Alias D_s+sig D_s+ +Alias D_s-sig D_s- +ChargeConj D_s+sig D_s-sig +Alias Lambda_c+sig Lambda_c+ +Alias anti-Lambda_c-sig anti-Lambda_c- +ChargeConj Lambda_c+sig anti-Lambda_c-sig +Alias tau+sig tau+ +Alias tau-sig tau- +ChargeConj tau+sig tau-sig +Alias Upsilonsig Upsilon +ChargeConj Upsilonsig Upsilonsig +Alias Upsilon(2S)sig Upsilon(2S) +ChargeConj Upsilon(2S)sig Upsilon(2S)sig +Alias Upsilon(3S)sig Upsilon(3S) +ChargeConj Upsilon(3S)sig Upsilon(3S)sig +Alias Upsilon(4S)sig Upsilon(4S) +ChargeConj Upsilon(4S)sig Upsilon(4S)sig +Alias Upsilon(5S)sig Upsilon(5S) +ChargeConj Upsilon(5S)sig Upsilon(5S)sig +Alias X_1(3872)sig X_1(3872) +ChargeConj X_1(3872)sig X_1(3872)sig +Alias h_csig h_c +ChargeConj h_csig h_csig +Alias Sigma+sig Sigma+ +Alias anti-Sigma-sig anti-Sigma- +ChargeConj Sigma+sig anti-Sigma-sig +Alias Lambda0sig Lambda0 +Alias anti-Lambda0sig anti-Lambda0 +ChargeConj Lambda0sig anti-Lambda0sig +Alias B_10sig B_10 +Alias anti-B_10sig anti-B_10 +ChargeConj B_10sig anti-B_10sig +Alias B_2*0sig B_2*0 +Alias anti-B_2*0sig anti-B_2*0 +ChargeConj B_2*0sig anti-B_2*0sig +Alias B_s10sig B_s10 +Alias anti-B_s10sig anti-B_s10 +ChargeConj B_s10sig anti-B_s10sig +Alias B_s2*0sig B_s2*0 +Alias anti-B_s2*0sig anti-B_s2*0 +ChargeConj B_s2*0sig anti-B_s2*0sig +Alias B_1+sig B_1+ +Alias B_1-sig B_1- +ChargeConj B_1+sig B_1-sig +Alias B_2*+sig B_2*+ +Alias B_2*-sig B_2*- +ChargeConj B_2*+sig B_2*-sig # #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 - - +#JetSetPar MSTJ(26)=0 +# control of L=1 mesons (in order: J1S0 J0S1 J1S1 J2S1) - commented out by NB/WP +#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 (should not be changed) +#####JetSetPar PARJ(33)=0.3 SET NOW IN GAUSS + +# PR LHCb 10/01/2006 # 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; - +0.515122645 B+ B- VSS; #[Reconstructed PDG2011] +0.483122645 B0 anti-B0 VSS_BMIX dm; #[Reconstructed PDG2011] +0.000015583 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] +0.000015766 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] +0.000015766 tau+ tau- PHOTOS VLL; #[Reconstructed PDG2011] +0.000084099 Upsilon(2S) pi+ pi- VVPIPI; #[Reconstructed PDG2011] +0.000044342 Upsilon(2S) pi0 pi0 VVPIPI; #[Reconstructed PDG2011] +0.000080123 Upsilon pi+ pi- VVPIPI; #[Reconstructed PDG2011] +0.000044342 Upsilon pi0 pi0 VVPIPI; #[Reconstructed PDG2011] +0.000194392 Upsilon eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] # 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.; +0.000092625 gamma chi_b0(3P) HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] # V-> gamma V Partial wave (L,S)=(0,1) -0.000141 gamma chi_b1(3P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; +0.000138938 gamma chi_b1(3P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] # 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.; +0.000129084 gamma chi_b2(3P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; #[Reconstructed PDG2011] # V-> gamma S Partial wave (L,S)=(0,0) -0.000003 gamma chi_b0(2P) HELAMP 1. 0. 1. 0.; +0.000002956 gamma chi_b0(2P) HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] # V-> gamma V Partial wave (L,S)=(0,1) -0.000008 gamma chi_b1(2P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; +0.000007883 gamma chi_b1(2P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] # 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; +0.000011825 gamma chi_b2(2P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; #[Reconstructed PDG2011] +0.000837571 g g g PYTHIA 4; #[Reconstructed PDG2011] +0.000039415 gamma g g PYTHIA 4; #[Reconstructed PDG2011] Enddecay # # # Decay anti-B0 +# Updated to PDG 2008 # 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.050100000 D*+ e- anti-nu_e PHOTOS HQET 0.77 1.33 0.92; #[Reconstructed PDG2011] +0.021700000 D+ e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.0054 D_1+ e- anti-nu_e PHOTOS ISGW2; +0.0020 D_0*+ e- anti-nu_e PHOTOS ISGW2; +0.0050 D'_1+ e- anti-nu_e PHOTOS ISGW2; +0.0022 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.004900000 D*0 pi+ e- anti-nu_e PHOTOS GOITY_ROBERTS; #[Reconstructed PDG2011] 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.0000 D0 pi+ e- anti-nu_e PHOTOS GOITY_ROBERTS; + +0.050100000 D*+ mu- anti-nu_mu PHOTOS HQET 0.77 1.33 0.92; #[Reconstructed PDG2011] +0.021700000 D+ mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.0054 D_1+ mu- anti-nu_mu PHOTOS ISGW2; +0.0020 D_0*+ mu- anti-nu_mu PHOTOS ISGW2; +0.0050 D'_1+ mu- anti-nu_mu PHOTOS ISGW2; +0.0022 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.004900000 D*0 pi+ mu- anti-nu_mu PHOTOS GOITY_ROBERTS; #[Reconstructed PDG2011] 0.0010 D+ pi0 mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -0.0032 D0 pi+ mu- anti-nu_mu PHOTOS GOITY_ROBERTS; +0.0000 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.015000000 D*+ tau- anti-nu_tau ISGW2; #[Reconstructed PDG2011] +0.011000000 D+ tau- anti-nu_tau ISGW2; #[Reconstructed PDG2011] 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; @@ -401,42 +263,42 @@ Decay anti-B0 # 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 +# 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 +# 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 +# decays are reweighted in three kinematic # variables mX, q2, and El (=> 512 weights total). -# The list of weights is included as ModelAlias +# 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, +# 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 +# *** 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 +# - 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 +# 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.000134000 pi+ e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000247000 rho+ e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] 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.001892 Xu+ e- anti-nu_e PHOTOS VUB 4.8 1.29 0.22 20 0.30 0.55 1.20 0.61 1.26 0.85 1.34 1.08 1.41 1.21 1.48 1.30 1.55 1.30 1.61 1.33 1.67 1.36 1.73 1.39 1.79 1.33 1.84 1.42 1.90 1.39 1.95 1.39 2.00 1.37 2.50 1.30 3.00 0.74 3.50 0.99 4.00 1.09 4.50 1.00; # -0.000136 pi+ mu- anti-nu_mu PHOTOS ISGW2; -0.000220 rho+ mu- anti-nu_mu PHOTOS ISGW2; +0.000134000 pi+ mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000247000 rho+ mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] 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.001892 Xu+ mu- anti-nu_mu PHOTOS VUB 4.8 1.29 0.22 20 0.30 0.55 1.20 0.61 1.26 0.85 1.34 1.08 1.41 1.21 1.48 1.30 1.55 1.30 1.61 1.33 1.67 1.36 1.73 1.39 1.79 1.33 1.84 1.42 1.90 1.39 1.95 1.39 2.00 1.37 2.50 1.30 3.00 0.74 3.50 0.99 4.00 1.09 4.50 1.00; # 0.000060 pi+ tau- anti-nu_tau ISGW2; 0.000083 rho+ tau- anti-nu_tau ISGW2; @@ -450,139 +312,144 @@ Decay anti-B0 # # -# b->u hadronic +# 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.000024000 D_s- pi+ PHSP; #[Reconstructed PDG2011] +0.000030000 D_s+ K- PHSP; #[Reconstructed PDG2011] +0.000021000 D_s*- pi+ SVS; #[Reconstructed PDG2011] +0.000021900 D_s*+ K- SVS; #[Reconstructed PDG2011] # 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; +0.000035000 K*- D_s+ SVS; #[Reconstructed PDG2011] +0.000041000 D_s*- rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.000032000 D_s*+ K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] # # b -> s gamma # -0.0000401 anti-K*0 gamma HELAMP 1.0 0.0 1.0 0.0; +0.000043300 anti-K*0 gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +# PR LHCb add omega gamma +0.000000440 omega gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] #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; +0.0003118 anti-Xsd gamma BTOXSGAMMA 2 ; +# +0.000000160 anti-K0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.000001030 anti-K*0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.0000050 anti-Xsd e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.000000450 anti-K0 mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.000001050 anti-K*0 mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.0000025 anti-Xsd mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.0000001 anti-K0 tau+ tau- PHOTOS BTOSLLBALL; +0.0000002 anti-K*0 tau+ tau- PHOTOS BTOSLLBALL; +0.0000002 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; +0.000005130 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000001620 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.0000010 pi0 eta PHSP; +0.000001200 pi0 eta' PHSP; #[Reconstructed PDG2011] +0.000001 pi0 a_00 PHSP; +0.000001 pi0 f_0 PHSP; # 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; +0.000001 omega pi0 SVS; +0.000001 a_10 pi0 SVS; +0.000001 b_10 pi0 SVS; +0.000001 eta eta PHSP; +0.000001 eta eta' PHSP; +0.000001 eta a_00 PHSP; +0.000001 eta f_0 PHSP; +0.000001 rho0 eta SVS; +0.000000940 omega eta SVS; #[Reconstructed PDG2011] +0.000001 a_10 eta SVS; +0.000001 b_10 eta SVS; +0.000001 eta' eta' PHSP; +0.000001 eta' a_00 PHSP; +0.000001 eta' f_0 PHSP; +0.000001 rho0 eta' SVS; +0.000001000 omega eta' SVS; #[Reconstructed PDG2011] +0.000001 a_10 eta' SVS; +0.000001 b_10 eta' SVS; +0.000001 a_00 a_00 PHSP; +0.000001 a_00 f_0 PHSP; +0.000001 rho0 a_00 SVS; +0.000001 omega a_00 SVS; +0.000001 a_10 a_00 SVS; +0.000001 b_10 a_00 SVS; +0.000001 f_0 f_0 PHSP; +0.000001 rho0 f_0 SVS; +0.000001 omega f_0 SVS; +0.000001 a_10 f_0 SVS; +0.000001 b_10 f_0 SVS; # 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; +0.000004300 phi K_S0 SVS; #[Reconstructed PDG2011] +0.000004300 phi K_L0 SVS; #[Reconstructed PDG2011] +0.000000550 eta K_S0 PHSP; #[Reconstructed PDG2011] +0.000000550 eta K_L0 PHSP; #[Reconstructed PDG2011] +0.000033000 eta' K_S0 PHSP; #[Reconstructed PDG2011] +0.000033000 eta' K_L0 PHSP; #[Reconstructed PDG2011] +0.000002500 omega K_S0 SVS; #[Reconstructed PDG2011] +0.000002500 omega K_L0 SVS; #[Reconstructed PDG2011] #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 phi anti-K0 PHSP; 0.0 eta K0 PHSP; - -0.0 eta' anti-K0 PHSP; +0.0 eta anti-K0 PHSP; 0.0 eta' K0 PHSP; - -0.0 omega anti-K0 PHSP; +0.0 eta' 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.0 omega anti-K0 PHSP; +# phipi0 has no simple Pengiun or tree so who knows - ditto phieta/eta'? +0.000001 phi pi0 SVS; +0.000001 phi eta SVS; +0.000001 phi eta' SVS; +# +0.000015900 anti-K*0 eta SVS; #[Reconstructed PDG2011] +0.000003800 anti-K*0 eta' SVS; #[Reconstructed PDG2011] +0.000002000 anti-K*0 omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] 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; +0.000019400 K- pi+ PHSP; #[Reconstructed PDG2011] +0.0000004 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.000000240 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] 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; +0.000000240 K_L0 K_L0 PHSP; #[Reconstructed PDG2011] +# declare K0 pi0 not to have it through Pythia +0.000000 anti-K0 pi0 PHSP; +# Split into K_S0 K_L0 (LHCb - P. Robbe) +0.000004750 K_S0 pi0 PHSP; #[Reconstructed PDG2011] +0.000004750 K_L0 pi0 PHSP; #[Reconstructed PDG2011] +# 0 to keep PYTHIA from generating it +0.000000 K0 anti-K0 PHSP; +# +# 3-body decays +# this model generates interferences and higher mass rho # # 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 +# 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 rho0 pi0 SVS; 0.000000 rho- pi+ SVS; 0.000000 rho+ pi- SVS; 0.000000 rho(2S)- pi+ SVS; @@ -591,27 +458,26 @@ Decay anti-B0 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; +0.000002350 rho0 K_S0 SVS; #[Reconstructed PDG2011] +0.000002350 rho0 K_L0 SVS; #[Reconstructed PDG2011] # # rho+ 3-body modes -0.0000085 rho+ K- SVS; +0.000008400 rho+ K- SVS; #[Reconstructed PDG2011] # # 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; +0.0000005 rho(2S)0 K_S0 SVS; +0.0000005 rho(2S)0 K_L0 SVS; # # # f0,a0(980) 3-body modes -0.0000055 f_0 anti-K0 PHSP; +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.000001 a_0+ K- PHSP; 0.000003 a_0+ pi- PHSP; +0.000001 a_0- pi+ PHSP; # # K*0(892) 3-body modes -0.0000017 anti-K*0 pi0 SVS; +0.000003600 anti-K*0 pi0 SVS; #[Reconstructed PDG2011] 0.000003 anti-K*0 K0 SVS; # # K*0(1430) 3-body modes @@ -624,16 +490,16 @@ Decay anti-B0 # # K*-(892) 3-body modes -0.0000085 K*- pi+ SVS; -0.0000002 K*- K+ SVS; +0.000009400 K*- pi+ SVS; #[Reconstructed PDG2011] +0.000002 K*- K+ SVS; # -# K*-1(430) 3-body modes -0.000033 K_0*- pi+ PHSP; -0.0000002 K_0*- K+ PHSP; +# K*-(1430) 3-body modes +0.000033000 K_0*- pi+ PHSP; #[Reconstructed PDG2011] +0.000002 K_0*- K+ PHSP; # # K*0(1680) 3-body modes 0.000001 K''*- pi+ SVS; -0.0000001 K''*- K+ SVS; +0.000001 K''*- K+ SVS; # # # Non-resonant 3-body left-overs @@ -644,21 +510,24 @@ Decay anti-B0 0.000017 pi- pi+ eta PHSP; 0.000001 pi- pi+ eta' PHSP; # -# pi- pi+ anti-K0: -0.000013 pi- pi+ anti-K0 PHSP; +# pi- pi+ anti-K0: total-rhoK0-f0K0-piK*(892)-piK*(1430)=45-5-6-13./3-11./3 +0.000000000 pi- pi+ anti-K0 PHSP; #[Reconstructed PDG2011] # # K- pi+ pi0 -0.000002 K- pi+ pi0 PHSP; +0.000027500 K- pi+ pi0 PHSP; #[Reconstructed PDG2011] 0.000020 K- pi+ eta PHSP; 0.000001 K- pi+ eta' PHSP; # -# pi- K+ K0. +# 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+ anti-K0 +# PR LHCb 09 Apr 2004 split into KL/KS +0.000000 K- K+ anti-K0 PHSP; +0.000012350 K- K+ K_S0 PHSP; #[Reconstructed PDG2011] +0.000012350 K- K+ K_L0 PHSP; #[Reconstructed PDG2011] # # K- K+ pi0 0.000001 K- K+ pi0 PHSP; @@ -694,9 +563,10 @@ Decay anti-B0 # #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; +# PR LHCb 21 Apr 2004 : set polarisation to longitudinal +0.000000730 rho0 rho0 SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.000024200 rho+ rho- SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.000003 rho0 pi+ pi- PHSP; 0.000003 omega pi+ pi- PHSP; 0.000001 rho0 pi0 pi0 PHSP; 0.000001 omega pi0 pi0 PHSP; @@ -708,33 +578,31 @@ Decay anti-B0 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 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.000016500 a_1+ pi- SVS; #[Reconstructed PDG2011] +0.000016500 a_1- pi+ SVS; #[Reconstructed PDG2011] +0.0000055 b_1+ pi- SVS; +0.0000055 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.000003400 rho0 anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] 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.000050600 pi- pi+ anti-K*0 PHSP; #[Reconstructed PDG2011] 0.000010 pi+ pi0 K*- PHSP; 0.000005 pi+ eta K*- PHSP; 0.000002 pi+ eta' K*- PHSP; @@ -750,7 +618,7 @@ Decay anti-B0 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.000005100 omega K- pi+ PHSP; #[Reconstructed PDG2011] 0.000010 pi+ pi0 pi- anti-K0 PHSP; 0.000005 pi+ eta pi- anti-K0 PHSP; 0.000010 pi0 pi0 pi0 anti-K0 PHSP; @@ -769,17 +637,17 @@ Decay anti-B0 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.000005 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.000016000 a_1+ K- SVS; #[Reconstructed PDG2011] +0.000010 b_10 anti-K0 SVS; +0.0000074 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.000001280 K*0 anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] 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 rho0 SVV_HELAMP 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; @@ -799,21 +667,20 @@ Decay anti-B0 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*- K+ 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 K0 anti-K*0 pi0 PHSP; +0.000003320 K+ anti-K*0 pi- PHSP; #[Reconstructed PDG2011] 0.000001 K*+ anti-K0 pi- PHSP; - +0.0000033 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 anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000009800 phi anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] 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.000017700 K- K+ anti-K*0 PHSP; #[Reconstructed PDG2011] 0.000010 K- K*+ anti-K0 PHSP; 0.000010 K*- K+ anti-K0 PHSP; 0.000010 K+ K- K- pi+ PHSP; @@ -821,7 +688,7 @@ Decay anti-B0 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.000003900 phi anti-K_0*0 PHSP; #[Reconstructed PDG2011] 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; @@ -845,10 +712,8 @@ Decay anti-B0 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.000010 rho0 rho+ pi- PHSP; +0.000010 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; @@ -861,15 +726,14 @@ Decay anti-B0 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.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; @@ -879,43 +743,39 @@ Decay anti-B0 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_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_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 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.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; @@ -924,11 +784,10 @@ Decay anti-B0 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; +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; @@ -937,9 +796,8 @@ Decay anti-B0 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 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; @@ -993,12 +851,11 @@ Decay anti-B0 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 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- 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; @@ -1017,35 +874,32 @@ Decay anti-B0 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.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.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*+ 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 rho- pi+ PHSP; 0.000001 phi rho0 pi0 PHSP; 0.0000005 phi rho0 eta PHSP; 0.0000002 phi rho0 eta' PHSP; @@ -1085,11 +939,10 @@ Decay anti-B0 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 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; @@ -1102,41 +955,38 @@ Decay anti-B0 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.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 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*- 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 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 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 anti-K*0 pi0 PHSP; @@ -1155,9 +1005,8 @@ Decay anti-B0 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 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+ anti-K0 rho0 PHSP; @@ -1209,7 +1058,7 @@ Decay anti-B0 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.000004100 phi phi anti-K0 PHSP; #[Reconstructed PDG2011] 0.0000001 phi phi pi0 PHSP; 0.000001 phi K+ K- anti-K0 PHSP; 0.000001 phi K0 anti-K0 anti-K0 PHSP; @@ -1240,7 +1089,10 @@ Decay anti-B0 0.000050 a_10 a_10 PHSP; 0.000050 a_1+ a_1- PHSP; # -# B -> cc= s +# PR LHCb: 7 Nov 2005 Add K*0 pi0 pi0 +0.0000067 K*0 pi0 pi0 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 @@ -1251,32 +1103,29 @@ Decay anti-B0 # 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.000435500 J/psi K_S0 SVS; #[Reconstructed PDG2011] +0.000435500 J/psi K_L0 SVS; #[Reconstructed PDG2011] +# +# +0.001330000 J/psi anti-K*0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] +0.000017600 J/psi pi0 SVS; #[Reconstructed PDG2011] +0.000027000 J/psi rho0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] +0.000030 J/psi omega SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.000000000 J/psi K- pi+ PHSP; #[Reconstructed PDG2011] 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.001300000 J/psi anti-K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] 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.000094000 J/psi phi anti-K0 PHSP; #[Reconstructed PDG2011] +# +0.000310000 psi(2S) K_S0 SVS; #[Reconstructed PDG2011] +0.000310000 psi(2S) K_L0 SVS; #[Reconstructed PDG2011] # -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.000610000 psi(2S) anti-K*0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] 0.0004 psi(2S) K- pi+ PHSP; 0.0002 psi(2S) anti-K0 pi0 PHSP; @@ -1286,66 +1135,66 @@ Decay anti-B0 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.000445000 eta_c K_S0 PHSP; #[Reconstructed PDG2011] +0.000445000 eta_c K_L0 PHSP; #[Reconstructed PDG2011] +# +# +0.000610000 anti-K*0 eta_c SVS; #[Reconstructed PDG2011] 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.00024 eta_c(2S) K_S0 PHSP; +0.00024 eta_c(2S) K_L0 PHSP; +# +# +0.00066 anti-K*0 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.000070000 chi_c0 K_S0 PHSP; #[Reconstructed PDG2011] +0.000070000 chi_c0 K_L0 PHSP; #[Reconstructed PDG2011] +# +# +0.00030 anti-K*0 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.000195000 chi_c1 K_S0 SVS; #[Reconstructed PDG2011] +0.000195000 chi_c1 K_L0 SVS; #[Reconstructed PDG2011] +# +# +0.000222000 chi_c1 anti-K*0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] 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.00005 chi_c2 K_S0 STS; +0.00005 chi_c2 K_L0 STS; +# +# +0.00003 chi_c2 anti-K*0 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.00024 psi(3770) K_S0 SVS; +0.00024 psi(3770) K_L0 SVS; +# +# +0.00048 psi(3770) anti-K*0 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; @@ -1353,24 +1202,21 @@ Decay anti-B0 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; +0.000211000 D- D+ PHSP; #[Reconstructed PDG2011] # 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; +0.000305 D*+ D- SVS; +0.000610000 D*- D+ SVS; #[Reconstructed PDG2011] +0.000820000 D*+ D*- SVV_HELAMP 0.47 0.0 0.96 0.0 0.56 0.0; #[Reconstructed PDG2011] # # 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.007200000 D+ D_s- PHSP; #[Reconstructed PDG2011] +0.008000000 D*+ D_s- SVS; #[Reconstructed PDG2011] +0.007400000 D_s*- D+ SVS; #[Reconstructed PDG2011] +0.017700000 D*+ D_s*- SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; #[Reconstructed PDG2011] 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; @@ -1393,21 +1239,20 @@ Decay anti-B0 # 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; +0.001700000 D+ anti-D0 K- PHSP; #[Reconstructed PDG2011] +0.004600000 D+ anti-D*0 K- PHSP; #[Reconstructed PDG2011] +0.003100000 D*+ anti-D0 K- PHSP; #[Reconstructed PDG2011] +0.011800000 D*+ anti-D*0 K- PHSP; #[Reconstructed PDG2011] # 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; +0.0015 D+ D- anti-K0 PHSP; +0.0018 D*+ D- anti-K0 PHSP; +0.0047 D+ D*- anti-K0 PHSP; +0.007800000 D*+ D*- anti-K0 PHSP; #[Reconstructed PDG2011] # 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.000120000 D*0 anti-D0 anti-K0 PHSP; #[Reconstructed PDG2011] +0.0015 D0 anti-D*0 anti-K0 PHSP; +0.0015 D*0 anti-D*0 anti-K0 PHSP; 0.0025 D+ anti-D0 K*- PHSP; 0.0025 D*+ anti-D0 K*- PHSP; @@ -1427,34 +1272,34 @@ Decay anti-B0 # # B -> D(*) X Exclusive modes # -0.00276 D*+ pi- SVS; -0.00268 D+ pi- PHSP; -0.0075 rho- D+ SVS; +0.002760000 D*+ pi- SVS; #[Reconstructed PDG2011] +0.002680000 D+ pi- PHSP; #[Reconstructed PDG2011] +0.007110000 rho- D+ SVS; #[Reconstructed PDG2011] # # 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.006800000 rho- D*+ SVV_HELAMP 0.152 1.47 0.936 0 0.317 0.19; #[Reconstructed PDG2011] 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.008200000 D*+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.000840000 D0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000620000 D*0 pi+ pi- PHSP; #[Reconstructed PDG2011] 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.006000000 a_1- D+ SVS; #[Reconstructed PDG2011] +0.000000000 D+ rho0 pi- PHSP; #[Reconstructed PDG2011] 0.0011 D+ rho- pi0 PHSP; -0.0039 D+ pi+ pi- pi- PHSP; +0.002000000 D+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] 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 +# 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.013000000 D*+ a_1- SVV_HELAMP 0.200 0.0 0.866 0.0 0.458 0.0; #[Reconstructed PDG2011] # -0.0025 D*+ rho0 pi- PHSP; +0.005700000 D*+ rho0 pi- PHSP; #[Reconstructed PDG2011] 0.0010 D*+ rho- pi0 PHSP; 0.0000 D*+ pi+ pi- pi- PHSP; 0.0010 D*+ pi0 pi- pi0 PHSP; @@ -1466,123 +1311,211 @@ Decay anti-B0 #further updates October 26, 2004 - Lange # October 26, 2004 Lange update # -0.0006 D_1+ pi- SVS; +0.0001 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; +0.00006 D_0*+ pi- PHSP; +0.000215 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 +# 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; +0.000214000 D*+ K- SVS; #[Reconstructed PDG2011] +0.000200000 D+ K- PHSP; #[Reconstructed PDG2011] +0.000330000 D*+ K*- SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; #[Reconstructed PDG2011] +0.000450000 K*- D+ SVS; #[Reconstructed PDG2011] #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.000036 D*0 K0 SVS; +0.000052 D0 K0 PHSP; +0.000042000 anti-K*0 D0 SVS; #[Reconstructed PDG2011] 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 +# 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.000261000 D0 pi0 PHSP; #[Reconstructed PDG2011] +0.000170000 D*0 pi0 SVS; #[Reconstructed PDG2011] # -0.00029 rho0 D0 SVS; +0.000320000 rho0 D0 SVS; #[Reconstructed PDG2011] 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.000202000 D0 eta PHSP; #[Reconstructed PDG2011] +0.000200000 D*0 eta SVS; #[Reconstructed PDG2011] # -0.000125 D0 eta' PHSP; -0.000123 D*0 eta' SVS; +0.000125 D0 eta' PHSP; +0.000123000 D*0 eta' SVS; #[Reconstructed PDG2011] # -0.000259 omega D0 SVS; -0.00027 D*0 omega SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; +0.000259000 omega D0 SVS; #[Reconstructed PDG2011] +0.000330000 D*0 omega SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; #[Reconstructed PDG2011] # # #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; +0.0016 D_s0*- D+ PHSP; +0.0015 D*+ D_s0*- SVS; +0.003500000 D_s1- D+ SVS; #[Reconstructed PDG2011] +0.009300000 D*+ D_s1- SVV_HELAMP 0.4904 0. 0.7204 0. 0.4904 0.; #[Reconstructed PDG2011] +# +# Feb 2009 +# +0.00088 D+ K- anti-K*0 PHSP; +0.00129 D*+ K- anti-K*0 PHSP; +# +# Feb 2009 +# +0.002800000 D+ omega pi- PHSP; #[Reconstructed PDG2011] +0.002890000 D*+ omega pi- PHSP; #[Reconstructed PDG2011] +# +# Feb 2009 +# +0.00049 D+ K0 pi- PHSP; +0.0003 D*+ K0 pi- PHSP; +# +# Feb 2009 +# +0.00043 D'_s1- D+ PHSP; +0.00083 D'_s1- D*+ PHSP; +##### Already included above 0.0023 D_s1- D*+ PHSP; +# +# +# Lam_c X / Sigma_c X 6.0 % +# +#0.01000 cd_0 anti-ud_0 PYTHIA 23; +#0.03000 cd_1 anti-ud_1 PYTHIA 23; +0.010463563 cd_0 anti-ud_0 PYTHIA 23; #[Reconstructed PDG2011] +0.020927220 cd_1 anti-ud_1 PYTHIA 23; #[Reconstructed PDG2011] +# +# Xi_c X 2.5% +# +#0.00600 cs_0 anti-ud_0 PYTHIA 23; +#0.01800 cs_1 anti-ud_1 PYTHIA 23; +0.002853725 cs_0 anti-ud_0 PYTHIA 23; #[Reconstructed PDG2011] +0.005707449 cs_1 anti-ud_1 PYTHIA 23; #[Reconstructed PDG2011] +# +# PR LHCb Add p pbar mode +0.0000001 p+ anti-p- PHSP; +# +0.256690755 anti-u d c anti-d PYTHIA 48; #[Reconstructed PDG2011] +0.043756828 anti-u d c anti-d PYTHIA 25; #[Reconstructed PDG2011] +0.019975978 anti-u s c anti-d PYTHIA 23; #[Reconstructed PDG2011] +0.017122253 anti-u c d anti-d PYTHIA 48; #[Reconstructed PDG2011] +0.000856098 anti-u c s anti-d PYTHIA 48; #[Reconstructed PDG2011] #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; +0.070391402 anti-c s c anti-d PYTHIA 13; #[Reconstructed PDG2011] +0.005707449 anti-c d c anti-d PYTHIA 13; #[Reconstructed PDG2011] +0.002853725 anti-u d u anti-d PYTHIA 48; #[Reconstructed PDG2011] +0.003804966 anti-c s u anti-d PYTHIA 48; #[Reconstructed PDG2011] # 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; +# to solve a double-counting problem for this channel +0.001950007 anti-u u d anti-d PYTHIA 48; #[Reconstructed PDG2011] +0.000066610 anti-d d d anti-d PYTHIA 48; #[Reconstructed PDG2011] +0.000085600 anti-s s d anti-d PYTHIA 48; #[Reconstructed PDG2011] +0.002092675 anti-u u s anti-d PYTHIA 48; #[Reconstructed PDG2011] +0.001712197 anti-d d s anti-d PYTHIA 48; #[Reconstructed PDG2011] +0.001426862 anti-s s s anti-d PYTHIA 48; #[Reconstructed PDG2011] +0.004756208 s anti-d PYTHIA 32; #[Reconstructed PDG2011] +0.000490000 D+ anti-K0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000880000 D+ K- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000000 D*+ anti-K0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001290000 D*+ K- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.017600000 D*+ pi- pi- pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.004700000 D*+ pi- pi- pi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000110000 D_s+ pi- anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000052000 D0 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000046000 D0 K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000006000 anti-D0 K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000036000 D*0 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.002700000 anti-D*0 pi- pi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000890000 eta_c anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000871000 J/psi anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000310000 J/psi omega anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000009500 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000019000 J/psi pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000460000 J/psi anti-K0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000540000 J/psi anti-K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000800000 J/psi K*- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000660000 J/psi anti-K*0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000170000 anti-K0 anti-D0 D0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000620000 psi(2S) anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000140000 chi_c0 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011200 chi_c1 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000390000 chi_c1 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000158000 chi_c1 K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011000 eta anti-K_0*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000009600 eta anti-K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000016000 omega anti-K_0*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000010100 omega anti-K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000004700 anti-K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000002700 f_2 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000001400 f_0 K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000007500 anti-K_2*0 phi PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000007600 eta anti-K0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000004600 K- pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000019500 anti-K0 pi- pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000041000 K- pi+ pi0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000012400 anti-K_2*0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000860 rho0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000002660 anti-p- p+ anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000001240 anti-p- p+ anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000003140 anti-p- Lambda0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000004800 Lambda0 anti-Lambda0 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000002500 Lambda0 anti-Lambda0 anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011000 Lambda0 anti-Lambda0 anti-D0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000114000 D0 anti-p- p+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000028000 D_s+ Lambda0 anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000103000 D*0 anti-p- p+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001500000 D*+ anti-p- n0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000338000 D+ anti-p- p+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000500000 D*+ anti-p- p+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000020000 Lambda_c+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000630000 Lambda_c+ anti-p- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000120000 Sigma_c*++ anti-p- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000150000 Sigma_c0 anti-p- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000220000 Sigma_c++ anti-p- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # # - Decay B0 +# Updated to PDG 2008 # 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.050100000 D*- e+ nu_e PHOTOS HQET 0.77 1.33 0.92; #[Reconstructed PDG2011] +0.021700000 D- e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.0054 D_1- e+ nu_e PHOTOS ISGW2; +0.0020 D_0*- e+ nu_e PHOTOS ISGW2; +0.0050 D'_1- e+ nu_e PHOTOS ISGW2; +0.0022 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.004900000 anti-D*0 pi- e+ nu_e PHOTOS GOITY_ROBERTS; #[Reconstructed PDG2011] 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; +# Now 0 as it duplicates other decays +0.0000 anti-D0 pi- e+ nu_e PHOTOS GOITY_ROBERTS; +# +0.050100000 D*- mu+ nu_mu PHOTOS HQET 0.77 1.33 0.92; #[Reconstructed PDG2011] +0.021700000 D- mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.0054 D_1- mu+ nu_mu PHOTOS ISGW2; +0.0020 D_0*- mu+ nu_mu PHOTOS ISGW2; +0.0050 D'_1- mu+ nu_mu PHOTOS ISGW2; +0.0022 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.004900000 anti-D*0 pi- mu+ nu_mu PHOTOS GOITY_ROBERTS; #[Reconstructed PDG2011] 0.0010 D- pi0 mu+ nu_mu PHOTOS GOITY_ROBERTS; -0.0032 anti-D0 pi- mu+ nu_mu PHOTOS GOITY_ROBERTS; +0.0000 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.015000000 D*- tau+ nu_tau ISGW2; #[Reconstructed PDG2011] +0.011000000 D- tau+ nu_tau ISGW2; #[Reconstructed PDG2011] 0.0013 D_1- tau+ nu_tau ISGW2; 0.0013 D_0*- tau+ nu_tau ISGW2; 0.0020 D'_1- tau+ nu_tau ISGW2; @@ -1590,17 +1523,17 @@ Decay B0 # # b -> u l nu # -0.000136 pi- e+ nu_e PHOTOS ISGW2; -0.000220 rho- e+ nu_e PHOTOS ISGW2; +0.000134000 pi- e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000247000 rho- e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] 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.001892 Xu- e+ nu_e VUB 4.8 1.29 0.22 20 0.30 0.55 1.20 0.61 1.26 0.85 1.34 1.08 1.41 1.21 1.48 1.30 1.55 1.30 1.61 1.33 1.67 1.36 1.73 1.39 1.79 1.33 1.84 1.42 1.90 1.39 1.95 1.39 2.00 1.37 2.50 1.30 3.00 0.74 3.50 0.99 4.00 1.09 4.50 1.00; # -0.000136 pi- mu+ nu_mu PHOTOS ISGW2; -0.000220 rho- mu+ nu_mu PHOTOS ISGW2; +0.000134000 pi- mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000247000 rho- mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] 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.001892 Xu- mu+ nu_mu VUB 4.8 1.29 0.22 20 0.30 0.55 1.20 0.61 1.26 0.85 1.34 1.08 1.41 1.21 1.48 1.30 1.55 1.30 1.61 1.33 1.67 1.36 1.73 1.39 1.79 1.33 1.84 1.42 1.90 1.39 1.95 1.39 2.00 1.37 2.50 1.30 3.00 0.74 3.50 0.99 4.00 1.09 4.50 1.00; # 0.000060 pi- tau+ nu_tau ISGW2; 0.000083 rho- tau+ nu_tau ISGW2; @@ -1614,40 +1547,42 @@ Decay B0 # # -# b->u hadronic +# 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; +0.000024000 D_s+ pi- PHSP; #[Reconstructed PDG2011] +0.000030000 D_s- K+ PHSP; #[Reconstructed PDG2011] +0.000021000 D_s*+ pi- SVS; #[Reconstructed PDG2011] +0.000021900 D_s*- K+ SVS; #[Reconstructed PDG2011] +# +0.000016 rho- D_s+ SVS; +0.000035000 K*+ D_s- SVS; #[Reconstructed PDG2011] +0.000041000 D_s*+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.000032000 D_s*- K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] # # b -> s gamma # -0.0000401 K*0 gamma HELAMP 1.0 0.0 1.0 0.0; +0.000043300 K*0 gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +# PR LHCb add omega gamma +0.000000440 omega gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] #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; +0.0003118 Xsd gamma BTOXSGAMMA 2 ; +# +0.000000160 K0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.000001030 K*0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.0000050 Xsd e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.000000450 K0 mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.000001050 K*0 mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.0000025 Xsd mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.0000001 K0 tau+ tau- PHOTOS BTOSLLBALL; +0.0000002 K*0 tau+ tau- PHOTOS BTOSLLBALL; +0.0000002 Xsd tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; # #------------------------------------------------------------------------------ # 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC @@ -1655,53 +1590,53 @@ Decay B0 # # 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; +# PR LHCb 04/07/04 update BR +0.000005130 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000001620 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.0000010 pi0 eta PHSP; +0.000001200 pi0 eta' PHSP; #[Reconstructed PDG2011] +0.000001 pi0 a_00 PHSP; +0.000001 pi0 f_0 PHSP; # 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; +0.000001 omega pi0 SVS; +0.000001 a_10 pi0 SVS; +0.000001 b_10 pi0 SVS; +0.000001 eta eta PHSP; +0.000001 eta eta' PHSP; +0.000001 eta a_00 PHSP; +0.000001 eta f_0 PHSP; +0.000001 rho0 eta SVS; +0.000000940 omega eta SVS; #[Reconstructed PDG2011] +0.000001 a_10 eta SVS; +0.000001 b_10 eta SVS; +0.000001 eta' eta' PHSP; +0.000001 eta' a_00 PHSP; +0.000001 eta' f_0 PHSP; +0.000001 rho0 eta' SVS; +0.000001000 omega eta' SVS; #[Reconstructed PDG2011] +0.000001 a_10 eta' SVS; +0.000001 b_10 eta' SVS; +0.000001 a_00 a_00 PHSP; +0.000001 a_00 f_0 PHSP; +0.000001 rho0 a_00 SVS; +0.000001 omega a_00 SVS; +0.000001 a_10 a_00 SVS; +0.000001 b_10 a_00 SVS; +0.000001 f_0 f_0 PHSP; +0.000001 rho0 f_0 SVS; +0.000001 omega f_0 SVS; +0.000001 a_10 f_0 SVS; +0.000001 b_10 f_0 SVS; # 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; +0.000004300 phi K_S0 SVS; #[Reconstructed PDG2011] +0.000004300 phi K_L0 SVS; #[Reconstructed PDG2011] +0.000000550 eta K_S0 PHSP; #[Reconstructed PDG2011] +0.000000550 eta K_L0 PHSP; #[Reconstructed PDG2011] +0.000033000 eta' K_S0 PHSP; #[Reconstructed PDG2011] +0.000033000 eta' K_L0 PHSP; #[Reconstructed PDG2011] +0.000002500 omega K_S0 SVS; #[Reconstructed PDG2011] +0.000002500 omega K_L0 SVS; #[Reconstructed PDG2011] #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; @@ -1713,38 +1648,40 @@ Decay B0 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.000001 phi pi0 SVS; +0.000001 phi eta SVS; +0.000001 phi eta' SVS; # -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.000015900 K*0 eta SVS; #[Reconstructed PDG2011] +0.000003800 K*0 eta' SVS; #[Reconstructed PDG2011] +0.000002000 K*0 omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] 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; # +# PR LHCb 04/07/04 update BR #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; +0.000019400 K+ pi- PHSP; #[Reconstructed PDG2011] +0.0000004 K+ K- PHSP; +0.000000240 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] +0.0000000 K_S0 K_L0 PHSP; +0.000000240 K_L0 K_L0 PHSP; #[Reconstructed PDG2011] +# Declare K0 pi0 not to have it through Pythia (LHCb - PR) +0.0000000 K0 pi0 PHSP; +# Split into K_s0 K_l0 (LHCb - P. Robbe) +0.000004750 K_S0 pi0 PHSP; #[Reconstructed PDG2011] +0.000004750 K_L0 pi0 PHSP; #[Reconstructed PDG2011] +#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 +# 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 rho0 pi0 SVS; 0.000000 rho+ pi- SVS; 0.000000 rho- pi+ SVS; 0.000000 rho(2S)+ pi- SVS; @@ -1753,26 +1690,26 @@ Decay B0 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; +0.000002350 rho0 K_S0 SVS; #[Reconstructed PDG2011] +0.000002350 rho0 K_L0 SVS; #[Reconstructed PDG2011] # # rho- 3-body modes -0.0000085 rho- K+ SVS; +0.000008400 rho- K+ SVS; #[Reconstructed PDG2011] # # 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; +0.0000005 rho(2S)0 K_S0 SVS; +0.0000005 rho(2S)0 K_L0 SVS; # # # f0,a0(980) 3-body modes -0.0000055 f_0 K0 PHSP; +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.000003600 K*0 pi0 SVS; #[Reconstructed PDG2011] 0.000003 K*0 anti-K0 SVS; # # K*0(1430) 3-body modes @@ -1781,20 +1718,20 @@ Decay B0 # # K*0(1680) 3-body modes 0.000001 K''*0 pi0 SVS; -0.000001 K''*0 anti-K0 SVS; +0.000001 K''*0 K0 SVS; # # K*+(892) 3-body modes -0.0000085 K*+ pi- SVS; -0.0000002 K*+ K- SVS; +0.000009400 K*+ pi- SVS; #[Reconstructed PDG2011] +0.000002 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; +0.000033000 K_0*+ pi- PHSP; #[Reconstructed PDG2011] +0.000002 K_0*+ K- PHSP; # # K*0(1680) 3-body modes 0.000001 K''*+ pi- SVS; -0.0000001 K''*+ K- SVS; +0.000001 K''*+ K- SVS; # # # Non-resonant 3-body left-overs @@ -1805,22 +1742,24 @@ Decay B0 0.000017 pi+ pi- eta PHSP; 0.000001 pi+ pi- eta' PHSP; # -# pi+ pi- K0: -0.000013 pi+ pi- K0 PHSP; - +# pi+ pi- K0: total-rhoK0-f0K0-piK*(892)-piK*(1430)=45-5-6-13./3-11./3 +0.000000000 pi+ pi- K0 PHSP; #[Reconstructed PDG2011] # # K+ pi- pi0 -0.000002 K+ pi- pi0 PHSP; +0.000027500 K+ pi- pi0 PHSP; #[Reconstructed PDG2011] 0.000020 K+ pi- eta PHSP; 0.000001 K+ pi- eta' PHSP; # -# pi+ K- K0. +# 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- K0 +# PR LHCb 09 Apr 2004 split into KS/KL +0.000000 K+ K- K0 PHSP; +0.000012350 K+ K- K_S0 PHSP; #[Reconstructed PDG2011] +0.000012350 K+ K- K_L0 PHSP; #[Reconstructed PDG2011] # # K+ K- pi0 0.000001 K+ K- pi0 PHSP; @@ -1850,15 +1789,18 @@ Decay B0 0.000001 pi0 eta eta PHSP; 0.000001 pi0 eta eta' PHSP; # +# PR LHCb: 7 Nov 2005 Add K*0 pi0 pi0 +0.0000067 K*0 pi0 pi0 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; +# PR LHCb 20 Apr 2004, set long. pol. +0.000000730 rho0 rho0 SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.000024200 rho+ rho- SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.000003 rho0 pi+ pi- PHSP; 0.000003 omega pi+ pi- PHSP; 0.000001 rho0 pi0 pi0 PHSP; 0.000001 omega pi0 pi0 PHSP; @@ -1880,21 +1822,21 @@ Decay B0 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.000016500 a_1+ pi- SVS; #[Reconstructed PDG2011] +0.000016500 a_1- pi+ SVS; #[Reconstructed PDG2011] +0.0000055 b_1+ pi- SVS; +0.0000055 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; +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.000003400 rho0 K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.0000100 rho- K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000050600 pi- pi+ K*0 PHSP; #[Reconstructed PDG2011] 0.000010 pi- pi0 K*+ PHSP; 0.000005 pi- eta K*+ PHSP; 0.000002 pi- eta' K*+ PHSP; @@ -1910,7 +1852,7 @@ Decay B0 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.000005100 omega K+ pi- PHSP; #[Reconstructed PDG2011] 0.000010 pi+ pi0 pi- K0 PHSP; 0.000005 pi+ eta pi- K0 PHSP; 0.000010 pi0 pi0 pi0 K0 PHSP; @@ -1929,25 +1871,24 @@ Decay B0 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.000005 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.000016000 a_1- K+ SVS; #[Reconstructed PDG2011] +0.000010 b_10 K0 SVS; +0.0000074 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.000001280 K*0 anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] 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.0000001 phi rho0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; 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- K0 rho+ PHSP; +0.0000001 phi pi- pi+ PHSP; 0.000001 K+ K- pi- pi+ PHSP; 0.000001 K+ K- pi0 pi0 PHSP; 0.0000005 K+ K- pi0 eta PHSP; @@ -1966,27 +1907,25 @@ Decay B0 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.000003320 K- K*0 pi+ PHSP; #[Reconstructed PDG2011] 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.000009800 phi K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] 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.000017700 K- K+ K*0 PHSP; #[Reconstructed PDG2011] 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.000003900 phi K_0*0 PHSP; #[Reconstructed PDG2011] 0.000010 K- K+ K_0*0 PHSP; -0.000010 K_0*- K+ K0 PHSP; 0.000010 K- K_0*+ K0 PHSP; - +0.000010 K_0*- K+ 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 -------------------------------- @@ -2007,10 +1946,8 @@ Decay B0 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 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; @@ -2031,7 +1968,7 @@ Decay B0 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.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; @@ -2040,9 +1977,9 @@ Decay B0 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_1- rho+ PHSP; -0.000010 a_10 rho0 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; @@ -2181,8 +2118,7 @@ Decay B0 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_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; @@ -2208,16 +2144,14 @@ Decay B0 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 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; @@ -2225,19 +2159,19 @@ Decay B0 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 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.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 K0 K- pi+ pi+ pi- PHSP; 0.0000002 K0 K- pi+ pi0 pi0 PHSP; 0.0000001 K0 K- pi+ pi0 eta PHSP; @@ -2286,7 +2220,7 @@ Decay B0 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 -------------------- +#--- 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; @@ -2332,9 +2266,8 @@ Decay B0 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 K+ K_0*0 anti-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; @@ -2358,27 +2291,24 @@ Decay B0 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.000004100 phi phi K0 PHSP; #[Reconstructed PDG2011] 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 phi 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 K+ K- K0 K- 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.0000001 K0 anti-K0 K0 K- pi+ PHSP; +#--- 6-body phi-phi-K*, phi-3Kpi, phi-K-K-2pi ------------ 0.000003 phi phi K*0 PHSP; 0.000001 phi K+ K- K*0 PHSP; 0.000001 phi K0 anti-K0 K*0 PHSP; @@ -2392,30 +2322,30 @@ Decay B0 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; +# B -> cc= s +0.000435500 J/psi K_S0 SVS; #[Reconstructed PDG2011] +0.000435500 J/psi K_L0 SVS; #[Reconstructed PDG2011] +# +# +0.001330000 J/psi K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.000017600 J/psi pi0 SVS; #[Reconstructed PDG2011] +0.000027000 J/psi rho0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.00003 J/psi omega SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.000000000 J/psi K+ pi- PHSP; #[Reconstructed PDG2011] 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.001300000 J/psi K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] 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.000094000 J/psi phi K0 PHSP; #[Reconstructed PDG2011] # -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.000310000 psi(2S) K_S0 SVS; #[Reconstructed PDG2011] +0.000310000 psi(2S) K_L0 SVS; #[Reconstructed PDG2011] +# +# +0.000610000 psi(2S) K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] 0.0004 psi(2S) K+ pi- PHSP; 0.0002 psi(2S) K0 pi0 PHSP; @@ -2424,66 +2354,66 @@ Decay B0 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.000445000 eta_c K_S0 PHSP; #[Reconstructed PDG2011] +0.000445000 eta_c K_L0 PHSP; #[Reconstructed PDG2011] +# +# +0.000610000 K*0 eta_c SVS; #[Reconstructed PDG2011] 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.00024 eta_c(2S) K_S0 PHSP; +0.00024 eta_c(2S) K_L0 PHSP; +# +# +0.00066 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.000070000 chi_c0 K_S0 PHSP; #[Reconstructed PDG2011] +0.000070000 chi_c0 K_L0 PHSP; #[Reconstructed PDG2011] +# +# +0.0003 K*0 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.000195000 chi_c1 K_S0 SVS; #[Reconstructed PDG2011] +0.000195000 chi_c1 K_L0 SVS; #[Reconstructed PDG2011] +# +# +0.000222000 chi_c1 K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] 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.00005 chi_c2 K_S0 STS; +0.00005 chi_c2 K_L0 STS; +# +# +0.00003 chi_c2 K*0 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.00024 psi(3770) K_S0 SVS; +0.00024 psi(3770) K_L0 SVS; +# +# +0.00048 psi(3770) K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; 0.00014 psi(3770) K+ pi- PHSP; 0.00014 psi(3770) K0 pi0 PHSP; 0.00014 psi(3770) K0 pi- pi+ PHSP; @@ -2491,24 +2421,24 @@ Decay B0 0.00007 psi(3770) K+ pi- pi0 PHSP; 0.00029 psi(3770) K_10 PHSP; # - - - +### ALREADY Included above 0.0000 phi K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# # -# b-> c (dc=) # -0.00023 D- D+ SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +# b-> c (dc=) +# +0.000211000 D- D+ PHSP; #[Reconstructed PDG2011] # 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; +0.000305 D*- D+ SVS; +0.000610000 D*+ D- SVS; #[Reconstructed PDG2011] +0.000820000 D*- D*+ SVV_HELAMP 0.56 0.0 0.96 0.0 0.47 0.0; #[Reconstructed PDG2011] # # 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.007200000 D- D_s+ PHSP; #[Reconstructed PDG2011] +0.008000000 D*- D_s+ SVS; #[Reconstructed PDG2011] +0.007400000 D_s*+ D- SVS; #[Reconstructed PDG2011] +0.017700000 D_s*+ D*- SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; #[Reconstructed PDG2011] 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; @@ -2531,23 +2461,23 @@ Decay B0 # 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; +0.001700000 D- D0 K+ PHSP; #[Reconstructed PDG2011] +0.004600000 D- D*0 K+ PHSP; #[Reconstructed PDG2011] +0.003100000 D*- D0 K+ PHSP; #[Reconstructed PDG2011] +0.011800000 D*- D*0 K+ PHSP; #[Reconstructed PDG2011] # 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.0015 D- D+ K0 PHSP; +0.0018 D*- D+ K0 PHSP; +0.0047 D- D*+ K0 PHSP; +0.007800000 D*- D*+ K0 PHSP; #[Reconstructed PDG2011] +# 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; +0.0005 D*0 anti-D0 K0 PHSP; +0.0015 D0 anti-D*0 K0 PHSP; +0.0015 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; @@ -2565,35 +2495,35 @@ Decay B0 # # B -> D(*) X Exclusive modes # -0.00276 D*- pi+ SVS; -0.00268 D- pi+ PHSP; -0.0075 rho+ D- SVS; +0.002760000 D*- pi+ SVS; #[Reconstructed PDG2011] +0.002680000 D- pi+ PHSP; #[Reconstructed PDG2011] +0.007110000 rho+ D- SVS; #[Reconstructed PDG2011] # # 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.006800000 rho+ D*- SVV_HELAMP 0.317 0.19 0.936 0.0 0.152 1.47; #[Reconstructed PDG2011] 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.008200000 D*- pi+ pi0 PHSP; #[Reconstructed PDG2011] +0.000840000 anti-D0 pi- pi+ PHSP; #[Reconstructed PDG2011] +0.000620000 anti-D*0 pi- pi+ PHSP; #[Reconstructed PDG2011] 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.006000000 a_1+ D- SVS; #[Reconstructed PDG2011] +0.000000000 D- rho0 pi+ PHSP; #[Reconstructed PDG2011] 0.0011 D- rho+ pi0 PHSP; -0.0039 D- pi- pi+ pi+ PHSP; +0.002000000 D- pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] 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 +# 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.013000000 D*- a_1+ SVV_HELAMP 0.458 0.0 0.866 0.0 0.458 0.0; #[Reconstructed PDG2011] # -0.0025 D*- rho0 pi+ PHSP; +0.005700000 D*- rho0 pi+ PHSP; #[Reconstructed PDG2011] 0.0010 D*- rho+ pi0 PHSP; 0.0000 D*- pi- pi+ pi+ PHSP; 0.0010 D*- pi0 pi+ pi0 PHSP; @@ -2603,125 +2533,207 @@ Decay B0 # 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.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; +0.00006 D_0*- pi+ PHSP; +0.000215 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 +# 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; +0.000214000 D*- K+ SVS; #[Reconstructed PDG2011] +0.000200000 D- K+ PHSP; #[Reconstructed PDG2011] +0.000330000 D*- K*+ SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; #[Reconstructed PDG2011] +0.000450000 K*+ D- SVS; #[Reconstructed PDG2011] #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.; +0.000036 anti-D*0 anti-K0 SVS; +0.000052 anti-D0 anti-K0 PHSP; +0.000042000 K*0 anti-D0 SVS; #[Reconstructed PDG2011] +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 +# 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.000261000 anti-D0 pi0 PHSP; #[Reconstructed PDG2011] +0.000170000 anti-D*0 pi0 SVS; #[Reconstructed PDG2011] # -0.00029 rho0 anti-D0 SVS; +0.000320000 rho0 anti-D0 SVS; #[Reconstructed PDG2011] 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; +0.000202000 anti-D0 eta PHSP; #[Reconstructed PDG2011] +0.000200000 anti-D*0 eta SVS; #[Reconstructed PDG2011] +# +0.000125 anti-D0 eta' PHSP; +0.000123000 anti-D*0 eta' SVS; #[Reconstructed PDG2011] +# +0.000259000 omega anti-D0 SVS; #[Reconstructed PDG2011] +0.000330000 anti-D*0 omega SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; #[Reconstructed PDG2011] +# +# PR LHCb : add ppbar mode +0.0000001 p+ anti-p- PHSP; +# +#October 26, 2004 - Lange +0.0016 D_s0*+ D- PHSP; +0.0015 D*- D_s0*+ SVS; +0.003500000 D_s1+ D- SVS; #[Reconstructed PDG2011] +0.009300000 D*- D_s1+ SVV_HELAMP 0.4904 0. 0.7204 0. 0.4904 0.; #[Reconstructed PDG2011] +# +# Feb 2009 +# +0.000880000 D- K+ anti-K*0 PHSP; #[Reconstructed PDG2011] +0.001290000 D*- K+ anti-K*0 PHSP; #[Reconstructed PDG2011] +# +# Feb 2009 +# +0.002800000 D- omega pi+ PHSP; #[Reconstructed PDG2011] +0.002890000 D*- omega pi+ PHSP; #[Reconstructed PDG2011] +# +# Feb 2009 +# +0.000490000 D- K0 pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 D*- K0 pi+ PHSP; #[Reconstructed PDG2011] +# +# Feb 2009 +# +0.00043 D'_s1+ D- PHSP; +0.00083 D'_s1+ D*- PHSP; +#### Already included above 0.0023 D_s1+ D*- PHSP; +# +# Lam_c X / Sigma_c X 4.0 % +# +#0.01000 anti-cd_0 ud_0 PYTHIA 23; +#0.03000 anti-cd_1 ud_1 PYTHIA 23; +0.010520663 anti-cd_0 ud_0 PYTHIA 23; #[Reconstructed PDG2011] +0.021041421 anti-cd_1 ud_1 PYTHIA 23; #[Reconstructed PDG2011] +# +# Xi_c X 2.5% +# +#0.00600 anti-cs_0 ud_0 PYTHIA 23; +#0.01800 anti-cs_1 ud_1 PYTHIA 23; +0.002869298 anti-cs_0 ud_0 PYTHIA 23; #[Reconstructed PDG2011] +0.005738595 anti-cs_1 ud_1 PYTHIA 23; #[Reconstructed PDG2011] +# +# +0.258091538 u anti-d anti-c d PYTHIA 48; #[Reconstructed PDG2011] +0.043995612 u anti-d anti-c d PYTHIA 13; #[Reconstructed PDG2011] +0.020084989 u anti-s anti-c d PYTHIA 13; #[Reconstructed PDG2011] +0.017215691 u anti-c anti-d d PYTHIA 48; #[Reconstructed PDG2011] +0.000860770 u anti-c anti-s d PYTHIA 48; #[Reconstructed PDG2011] #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; +0.070775534 c anti-s anti-c d PYTHIA 13; #[Reconstructed PDG2011] +0.005738595 c anti-d anti-c d PYTHIA 13; #[Reconstructed PDG2011] +0.002869298 u anti-d anti-u d PYTHIA 48; #[Reconstructed PDG2011] +0.003825730 c anti-s anti-u d PYTHIA 48; #[Reconstructed PDG2011] # 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; +# to solve a double-counting problem for this channel +0.001960649 u anti-u anti-d d PYTHIA 48; #[Reconstructed PDG2011] +0.000066973 d anti-d anti-d d PYTHIA 48; #[Reconstructed PDG2011] +0.000086068 s anti-s anti-d d PYTHIA 48; #[Reconstructed PDG2011] +0.002104095 u anti-u anti-s d PYTHIA 48; #[Reconstructed PDG2011] +0.001721541 d anti-d anti-s d PYTHIA 48; #[Reconstructed PDG2011] +0.001434649 s anti-s anti-s d PYTHIA 48; #[Reconstructed PDG2011] +0.004782163 anti-s d PYTHIA 32; #[Reconstructed PDG2011] +0.017600000 D*- pi+ pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.004700000 D*- pi+ pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000110000 D_s- pi+ K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000052000 anti-D0 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000046000 anti-D0 K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000006000 D0 K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000036000 anti-D*0 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.002700000 D*0 pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000890000 eta_c K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000871000 J/psi K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000310000 J/psi omega K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000009500 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000019000 J/psi pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000460000 J/psi K0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000540000 J/psi K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000800000 J/psi K*+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000660000 J/psi K*0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000170000 K0 D0 anti-D0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000620000 psi(2S) K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000140000 chi_c0 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011200 chi_c1 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000390000 chi_c1 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000158000 chi_c1 K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011000 eta K_0*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000009600 eta K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000016000 omega K_0*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000010100 omega K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000004700 K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000002700 f_2 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000001400 f_0 K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000007500 K_2*0 phi PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000007600 eta K0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000004600 K+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000019500 K0 pi+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000041000 K+ pi- pi0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000012400 K_2*0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000860 rho0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000002660 p+ anti-p- K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000001240 p+ anti-p- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000003140 p+ anti-Lambda0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000004800 anti-Lambda0 Lambda0 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000002500 anti-Lambda0 Lambda0 K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011000 anti-Lambda0 Lambda0 D0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000114000 anti-D0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000028000 D_s- anti-Lambda0 p+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000103000 anti-D*0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001500000 D*- p+ anti-n0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000338000 D- p+ anti-p- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000500000 D*- p+ anti-p- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000020000 anti-Lambda_c- p+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000630000 anti-Lambda_c- p+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000120000 anti-Sigma_c*-- p+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000150000 anti-Sigma_c0 p+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000220000 anti-Sigma_c-- p+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # # # Decay B- -# +# Updated to PDG 2008 # 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.056800000 D*0 e- anti-nu_e PHOTOS HQET 0.77 1.33 0.92; #[Reconstructed PDG2011] +0.022300000 D0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.0040 D_10 e- anti-nu_e PHOTOS ISGW2; +0.0024 D_0*0 e- anti-nu_e PHOTOS ISGW2; +0.0007 D'_10 e- anti-nu_e PHOTOS ISGW2; +0.0018 D_2*0 e- anti-nu_e PHOTOS ISGW2; +0.006100000 D*+ pi- e- anti-nu_e PHOTOS GOITY_ROBERTS; #[Reconstructed PDG2011] 0.0003 D*0 pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; -0.0052 D+ pi- e- anti-nu_e PHOTOS GOITY_ROBERTS; +# covered by other decays +0.0000 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.056800000 D*0 mu- anti-nu_mu PHOTOS HQET 0.77 1.33 0.92; #[Reconstructed PDG2011] +0.022300000 D0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.0040 D_10 mu- anti-nu_mu PHOTOS ISGW2; +0.0024 D_0*0 mu- anti-nu_mu PHOTOS ISGW2; +0.0007 D'_10 mu- anti-nu_mu PHOTOS ISGW2; +0.0018 D_2*0 mu- anti-nu_mu PHOTOS ISGW2; +0.006100000 D*+ pi- mu- anti-nu_mu PHOTOS GOITY_ROBERTS; #[Reconstructed PDG2011] 0.0003 D*0 pi0 mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -0.0052 D+ pi- mu- anti-nu_mu PHOTOS GOITY_ROBERTS; +0.0000 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.020000000 D*0 tau- anti-nu_tau ISGW2; #[Reconstructed PDG2011] +0.007000000 D0 tau- anti-nu_tau ISGW2; #[Reconstructed PDG2011] 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; @@ -2729,26 +2741,26 @@ Decay B- # # b -> u l nu # -# NOTE: Do NOT CHANGE any BFs without using the corresponding set of -# hybrid weights (and vice versa). +# 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.000077000 pi0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000037000 eta e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000128000 rho0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000115000 omega e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000270 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.001948 Xu0 e- anti-nu_e VUB 4.8 1.29 0.22 20 0.30 0.54 1.20 0.95 1.26 0.78 1.34 0.98 1.41 0.91 1.48 1.23 1.55 1.36 1.61 1.39 1.67 1.38 1.73 1.43 1.79 1.41 1.84 1.42 1.90 1.45 1.95 1.40 2.00 1.42 2.50 1.31 3.00 1.36 3.50 1.15 4.00 1.01 4.50 1.51; # -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.000077000 pi0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000037000 eta mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000128000 rho0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000115000 omega mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000270 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.001948 Xu0 mu- anti-nu_mu VUB 4.8 1.29 0.22 20 0.30 0.54 1.20 0.95 1.26 0.78 1.34 0.98 1.41 0.91 1.48 1.23 1.55 1.36 1.61 1.39 1.67 1.38 1.73 1.43 1.79 1.41 1.84 1.42 1.90 1.45 1.95 1.40 2.00 1.42 2.50 1.31 3.00 1.36 3.50 1.15 4.00 1.01 4.50 1.51; # 0.000030 pi0 tau- anti-nu_tau ISGW2; 0.000012 eta tau- anti-nu_tau ISGW2; @@ -2769,18 +2781,12 @@ Decay B- 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 +# b->u hadronic # Ref. [B1]: # -0.000016 D_s- pi0 PHSP; +0.000016000 D_s- pi0 PHSP; #[Reconstructed PDG2011] 0.000020 D_s*- pi0 SVS; # 0.000028 rho0 D_s- SVS; @@ -2789,67 +2795,75 @@ Decay B- # # b-> s gamma # -0.0000403 K*- gamma HELAMP 1.0 0.0 1.0 0.0; +0.000042100 K*- gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] #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.0003118 anti-Xsu gamma BTOXSGAMMA 2 ; +# +0.000000550 K- e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.000001550 K*- e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.0000050 anti-Xsu e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.000000520 K- mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.000001160 K*- mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.0000025 anti-Xsu mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.0000001 K- tau+ tau- PHOTOS BTOSLLBALL; +0.0000002 K*- tau+ tau- PHOTOS BTOSLLBALL; +0.0000002 anti-Xsu tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; # -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; +# b -> l nu # +0.000180000 tau- anti-nu_tau SLN; #[Reconstructed PDG2011] +0.000000 mu- anti-nu_mu PHOTOS SLN; +0.000000 e- anti-nu_e PHOTOS SLN; # #------------------------------------------------------------------------------ # 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.000000 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; +0.000004070 eta pi- PHSP; #[Reconstructed PDG2011] +0.000002330 eta K- PHSP; #[Reconstructed PDG2011] +0.000019300 K*- eta SVS; #[Reconstructed PDG2011] +0.000007000 rho- eta SVS; #[Reconstructed PDG2011] +0.000002700 eta' pi- PHSP; #[Reconstructed PDG2011] +0.000070600 eta' K- PHSP; #[Reconstructed PDG2011] +0.000004900 K*- eta' SVS; #[Reconstructed PDG2011] +0.000008700 rho- eta' SVS; #[Reconstructed PDG2011] +0.000006900 omega pi- SVS; #[Reconstructed PDG2011] +0.000006700 omega K- SVS; #[Reconstructed PDG2011] +0.0000010 omega K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000015900 omega rho- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.0000000 phi pi- SVS; +0.000008300 phi K- SVS; #[Reconstructed PDG2011] +#2-body modes from Jim Olsen +# (K_S0 K- and K_L0 K- -> 1x10^-6, Jim Olsen - Mar 27, 2001) +# (pi- pi0 -> 5x10^-6 and K- pi0 -> 11x10^-6, Jim Olsen - Mar 27, 2001) +# PR LHCb 04/08/2004 Split into Ks/KL +0.000000 anti-K0 pi- PHSP; +0.000011550 K_S0 pi- PHSP; #[Reconstructed PDG2011] +0.000011550 K_L0 pi- PHSP; #[Reconstructed PDG2011] +0.000001360 K0 K- PHSP; #[Reconstructed PDG2011] +0.000005700 pi- pi0 PHSP; #[Reconstructed PDG2011] +0.000012900 K- pi0 PHSP; #[Reconstructed PDG2011] # # 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; +0.000008300 rho0 pi- SVS; #[Reconstructed PDG2011] +0.000003700 rho0 K- SVS; #[Reconstructed PDG2011] # # 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; - - +0.000008000 rho- anti-K0 SVS; #[Reconstructed PDG2011] +0.000010900 rho- pi0 SVS; #[Reconstructed PDG2011] # # rho(1450) 3-body modes 0.0000022 rho(2S)0 pi- SVS; @@ -2857,25 +2871,24 @@ Decay B- # # f0,a0(980) 3-body modes 0.000001 f_0 pi- PHSP; -0.0000177 f_0 K- PHSP; +0.0000092 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; +0.000001600 f_2 pi- PHSP; #[Reconstructed PDG2011] # # 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.000045000 anti-K_0*0 pi- PHSP; #[Reconstructed PDG2011] +0.000001 K_0*0 K- PHSP; +0.000002 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; +# K*-(892) 3-body modes +0.000006900 K*- pi0 SVS; #[Reconstructed PDG2011] +0.0000030 K*- K0 SVS; # # # @@ -2886,15 +2899,15 @@ Decay B- #0402270.000002 pi- pi+ pi- PHSP; # # K- pi+ pi-: high mass + f0(400-1200) = (5+5)e-6 -0.0000100 K- pi+ pi- PHSP; +0.000000000 K- pi+ pi- PHSP; #[Reconstructed PDG2011] # # K- K+ pi-: just non-resonant -0.000001 K- K+ pi- PHSP; +0.000005000 K- K+ pi- PHSP; #[Reconstructed PDG2011] +# +# K- K+ K-: high mass structure near 1500 + non-res: total - phiK = 30 - 4 +0.000025400 K- K+ K- PHSP; #[Reconstructed PDG2011] # -# 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) @@ -2938,7 +2951,8 @@ Decay B- # #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; +# PR LHCb 22 Apr 2004 Set long. pol. for rho rho +0.000024000 rho- rho0 SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] 0.000010 rho0 pi- pi0 PHSP; 0.000005 rho0 pi- eta PHSP; 0.000002 rho0 pi- eta' PHSP; @@ -2946,6 +2960,8 @@ Decay B- 0.000005 omega pi- eta PHSP; 0.000002 omega pi- eta' PHSP; 0.000010 rho- pi- pi+ PHSP; +# PR LHCb Add rho+ pi- pi- +0.000010 rho+ pi- pi- PHSP; 0.000010 rho- pi0 pi0 PHSP; 0.000005 rho- pi0 eta PHSP; 0.000002 rho- eta eta PHSP; @@ -2958,11 +2974,11 @@ Decay B- 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.000020000 a_10 pi- SVS; #[Reconstructed PDG2011] +0.000026000 a_1- pi0 SVS; #[Reconstructed PDG2011] +0.0000067 b_10 pi- SVS; +0.000010 b_1- pi0 SVS; +0.000010 rho- f_0 SVS; 0.000010 rho- a_00 SVS; 0.000002 rho0 a_0- SVS; 0.000010 f_0 pi- pi0 PHSP; @@ -2970,11 +2986,11 @@ Decay B- 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.000009200 rho- anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.000010 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.000069800 pi+ pi- K*- PHSP; #[Reconstructed PDG2011] 0.000010 pi0 pi0 K*- PHSP; 0.000005 pi0 eta K*- PHSP; 0.000002 eta eta K*- PHSP; @@ -3005,14 +3021,14 @@ Decay B- 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.000006 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.000005200 K*- f_0 SVS; #[Reconstructed PDG2011] 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.000035000 a_1- anti-K0 SVS; #[Reconstructed PDG2011] +0.0000091 b_10 K- SVS; +0.000010 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 ------------ @@ -3031,18 +3047,16 @@ Decay B- 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.000001 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- eta eta PHSP; 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*- K+ pi- PHSP; 0.000001 K*0 anti-K0 pi- PHSP; +0.000001 K0 anti-K*0 pi- PHSP; 0.000001 K- K*0 pi0 PHSP; 0.0000005 K- K*0 eta PHSP; 0.0000002 K- K*0 eta' PHSP; @@ -3050,16 +3064,15 @@ Decay B- 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.000010000 phi K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] 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.000026000 K- K+ K*- PHSP; #[Reconstructed PDG2011] 0.000010 K- K*+ K- PHSP; - -0.000010 K- K0 anti-K*0 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; @@ -3069,7 +3082,7 @@ Decay B- 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.000007000 phi K_0*- PHSP; #[Reconstructed PDG2011] 0.000010 K- K+ K_0*- PHSP; 0.000010 K- K- K_0*+ PHSP; 0.000010 K- anti-K_0*0 K0 PHSP; @@ -3080,6 +3093,7 @@ Decay B- 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; @@ -3208,7 +3222,6 @@ Decay B- 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; @@ -3304,9 +3317,8 @@ Decay B- 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 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; @@ -3348,7 +3360,7 @@ Decay B- 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 K- K- anti-K'_10 pi+ PHSP; 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; @@ -3357,15 +3369,14 @@ Decay B- 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; +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.000004900 phi phi K- PHSP; #[Reconstructed PDG2011] 0.000001 phi phi pi- PHSP; 0.000001 phi K+ K- K- PHSP; 0.000001 phi K0 anti-K0 K- PHSP; @@ -3379,7 +3390,7 @@ Decay B- 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 K0 K- K*0 PHSP; 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; @@ -3390,39 +3401,38 @@ Decay B- # # 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.001014000 J/psi K- SVS; #[Reconstructed PDG2011] +0.001430000 J/psi K*- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] +0.000049000 J/psi pi- SVS; #[Reconstructed PDG2011] +0.000050000 J/psi rho- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] 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.001800000 J/psi K_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] +0.000052000 J/psi phi K- PHSP; #[Reconstructed PDG2011] # -0.000648 psi(2S) K- SVS; -0.00067 psi(2S) K*- SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.000646000 psi(2S) K- SVS; #[Reconstructed PDG2011] +0.000620000 psi(2S) K*- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] 0.0004 psi(2S) anti-K0 pi- PHSP; 0.0002 psi(2S) K- pi0 PHSP; -0.0019 psi(2S) K- pi+ pi- PHSP; +0.001900000 psi(2S) K- pi+ pi- PHSP; #[Reconstructed PDG2011] 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.000910000 eta_c K- PHSP; #[Reconstructed PDG2011] +0.001200000 K*- eta_c SVS; #[Reconstructed PDG2011] 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.000340000 eta_c(2S) K- PHSP; #[Reconstructed PDG2011] 0.00048 K*- eta_c(2S) SVS; 0.00008 eta_c(2S) anti-K0 pi- PHSP; 0.00005 eta_c(2S) K- pi0 PHSP; @@ -3430,7 +3440,7 @@ Decay B- 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.000133000 chi_c0 K- PHSP; #[Reconstructed PDG2011] 0.0004 K*- chi_c0 SVS; 0.0002 chi_c0 anti-K0 pi- PHSP; 0.0001 chi_c0 K- pi0 PHSP; @@ -3438,8 +3448,8 @@ Decay B- 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.000460000 chi_c1 K- SVS; #[Reconstructed PDG2011] +0.000300000 chi_c1 K*- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] 0.0004 chi_c1 anti-K0 pi- PHSP; 0.0002 chi_c1 K- pi0 PHSP; 0.0004 chi_c1 K- pi+ pi- PHSP; @@ -3447,14 +3457,14 @@ Decay B- 0.0002 chi_c1 anti-K0 pi- pi0 PHSP; # 0.00002 chi_c2 K- STS; -0.00001 chi_c2 K*- PHSP; +0.00002 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.000490000 psi(3770) K- SVS; #[Reconstructed PDG2011] 0.0005 psi(3770) K*- PHSP; 0.0003 psi(3770) anti-K0 pi- PHSP; 0.0002 psi(3770) K- pi0 PHSP; @@ -3465,10 +3475,10 @@ Decay B- # # 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.010000000 D0 D_s- PHSP; #[Reconstructed PDG2011] +0.008200000 D*0 D_s- SVS; #[Reconstructed PDG2011] +0.007600000 D_s*- D0 SVS; #[Reconstructed PDG2011] +0.017100000 D_s*- D*0 SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; #[Reconstructed PDG2011] 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; @@ -3491,32 +3501,33 @@ Decay B- 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; +0.0017 D0 D- anti-K0 PHSP; +0.0052 D0 D*- anti-K0 PHSP; +0.0031 D*0 D- anti-K0 PHSP; +0.007800000 D*0 D*- anti-K0 PHSP; #[Reconstructed PDG2011] # External+internal W-emission amplitude -0.00137 D0 anti-D0 K- PHSP; +0.002100000 D0 anti-D0 K- PHSP; #[Reconstructed PDG2011] 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; +0.004700000 D0 anti-D*0 K- PHSP; #[Reconstructed PDG2011] +0.005300000 D*0 anti-D*0 K- PHSP; #[Reconstructed PDG2011] # Internal W-emission amplitude (color suppressed modes) -0.0003 D- D+ K- PHSP; +0.0005 D- D+ K- PHSP; 0.0005 D*- D+ K- PHSP; -0.0015 D- D*+ K- PHSP; +0.001500000 D- D*+ K- PHSP; #[Reconstructed PDG2011] 0.0015 D*- D*+ K- PHSP; # -0.0025 D0 D- anti-K*0 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.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; @@ -3526,43 +3537,44 @@ Decay B- # # 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; +0.000380000 D- D0 PHSP; #[Reconstructed PDG2011] +0.000390000 D*- D0 SVS; #[Reconstructed PDG2011] +0.000630000 D*0 D- SVS; #[Reconstructed PDG2011] +0.000810000 D*0 D*- SVV_HELAMP 0.47 0.0 0.96 0.0 0.56 0.0; #[Reconstructed PDG2011] # # B -> D(*) X Exclusive Modes # -0.00519 D*0 pi- SVS; -0.00484 D0 pi- PHSP; -0.0134 rho- D0 SVS; +0.005190000 D*0 pi- SVS; #[Reconstructed PDG2011] +0.004840000 D0 pi- PHSP; #[Reconstructed PDG2011] +0.013400000 rho- D0 SVS; #[Reconstructed PDG2011] # 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.009800000 D*0 rho- SVV_HELAMP 0.228 0.95 0.932 0.0 0.283 1.13; #[Reconstructed PDG2011] # 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; +0.001070000 D+ pi- pi- PHSP; #[Reconstructed PDG2011] +0.001350000 D*+ pi- pi- PHSP; #[Reconstructed PDG2011] # # D a1 updated Ref. [B1]: -0.00887 a_1- D0 SVS; -0.0021 D0 rho0 pi- PHSP; -0.0050 D0 pi+ pi- pi- PHSP; +0.004000000 a_1- D0 SVS; #[Reconstructed PDG2011] +0.000200000 D0 rho0 pi- PHSP; #[Reconstructed PDG2011] +0.006800000 D0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] # # 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.019000000 D*0 a_1- SVV_HELAMP 0.200 0.0 0.866 0.0 0.458 0.0; #[Reconstructed PDG2011] +# +0.00042 D*0 rho0 pi- PHSP; +0.010300000 D*0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] # 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.015000000 D*+ pi0 pi- pi- PHSP; #[Reconstructed PDG2011] 0.0005 D*0 rho- pi0 PHSP; 0.0005 D*0 pi- pi0 pi0 PHSP; # @@ -3570,96 +3582,163 @@ Decay B- # 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.000876 D_10 pi- SVS; +0.0005 D'_10 pi- SVS; +0.00052 D_2*0 pi- STS; 0.0007 D_10 rho- PHSP; 0.0022 D'_10 rho- PHSP; 0.0038 D_2*0 rho- PHSP; - +0.00061 D_0*0 pi- PHSP; # # -# B->DK, recommendation +# 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; +0.000368000 D0 K- PHSP; #[Reconstructed PDG2011] +0.000421000 D*0 K- SVS; #[Reconstructed PDG2011] +0.000530000 K*- D0 SVS; #[Reconstructed PDG2011] +0.000810000 D*0 K*- SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; #[Reconstructed PDG2011] #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 +0.0000005 D- pi0 PHSP; +0.0000005 D*- pi0 SVS; +0.000011 D- anti-K0 PHSP; +0.000006 D*- anti-K0 SVS; # #October 26, 2004 - Lange -0.00073 D0 D_s0*- PHSP; +0.00075 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; +0.003100000 D_s1- D0 SVS; #[Reconstructed PDG2011] +0.012000000 D*0 D_s1- SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; #[Reconstructed PDG2011] +# +# Feb 2009 +# +0.00055 D0 K- anti-K0 PHSP; +0.00075 D0 K- anti-K*0 PHSP; +0.001500000 D*0 K- anti-K*0 PHSP; #[Reconstructed PDG2011] +# +# Feb 2009 +# +0.002750000 D0 omega pi- PHSP; #[Reconstructed PDG2011] +0.004500000 D*0 omega pi- PHSP; #[Reconstructed PDG2011] +# +# Feb 2009 +# +0.00045 D0 D'_s1- PHSP; +0.00094 D*0 D'_s1- PHSP; +# +# Lam_c X / Sigma_c X 4.0 % +# +#0.04000 cd_1 anti-uu_1 PYTHIA 23; +0.032587684 cd_1 anti-uu_1 PYTHIA 23; #[Reconstructed PDG2011] +# +# Xi_c X 2.5% +# +#0.02400 cs_1 anti-uu_1 PYTHIA 23; +0.008887593 cs_1 anti-uu_1 PYTHIA 23; #[Reconstructed PDG2011] +# +# +0.222451667 anti-u d c anti-u PYTHIA 48; #[Reconstructed PDG2011] +0.042462776 anti-u d c anti-u PYTHIA 13; #[Reconstructed PDG2011] +0.022218888 anti-u s c anti-u PYTHIA 13; #[Reconstructed PDG2011] #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; +0.073075460 anti-c s c anti-u PYTHIA 13; #[Reconstructed PDG2011] +0.003950000 anti-c d c anti-u PYTHIA 13; #[Reconstructed PDG2011] +0.002962500 anti-u d u anti-u PYTHIA 48; #[Reconstructed PDG2011] +0.003950000 anti-c s u anti-u PYTHIA 48; #[Reconstructed PDG2011] # 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; +# to solve a double-counting problem for this channel +0.002024389 anti-u u d anti-u PYTHIA 48; #[Reconstructed PDG2011] +0.000069145 anti-d d d anti-u PYTHIA 48; #[Reconstructed PDG2011] +0.000088900 anti-s s d anti-u PYTHIA 48; #[Reconstructed PDG2011] +0.002172556 anti-u u s anti-u PYTHIA 48; #[Reconstructed PDG2011] +0.001777537 anti-d d s anti-u PYTHIA 48; #[Reconstructed PDG2011] +0.001481296 anti-s s s anti-u PYTHIA 48; #[Reconstructed PDG2011] +0.004937500 s anti-u PYTHIA 32; #[Reconstructed PDG2011] # #### - +0.000550000 D0 K- K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000750000 D0 K- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.018000000 D*0 pi+ pi- pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.005700000 D*0 pi- pi- pi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.002600000 D*+ pi- pi- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000180000 D_s+ pi- K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000145000 D_s*+ pi- K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011000 D_s+ K- K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001070000 J/psi K- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000108000 J/psi eta K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000350000 J/psi omega K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011800 J/psi anti-p- Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000025800 psi(2S) pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000020000 chi_c1 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000018000 eta K_0*- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000009100 eta K_2*- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000024000 omega K_0*- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000021000 omega K_2*- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000010100 anti-K*0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000001070 f_2 K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000005600 anti-K_2*0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000001200 K*- anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000006100 phi K_1- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000008400 phi K_2*- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000043000 K_1- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000007900 eta K- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000003500 phi K- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000007600 K- pi+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000020000 anti-K*0 pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000046000 anti-K0 pi- pi0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000014000 K_2*- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000980 rho- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000001620 anti-p- p+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000005900 anti-p- p+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000003600 anti-p- p+ K*- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000002500 anti-p- Lambda0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000003000 anti-p- Lambda0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000000 anti-p- Lambda0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000004800 anti-p- Lambda0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000002000 anti-p- Lambda0 f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000003400 anti-Lambda0 Lambda0 K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000002200 anti-Lambda0 Lambda0 K*- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000280000 Lambda_c+ anti-p- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001800000 Lambda_c+ anti-p- pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.002300000 Lambda_c+ anti-p- pi- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000035000 Sigma_c0 anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000440000 Sigma_c0 anti-p- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000440000 Sigma_c0 anti-p- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000280000 Sigma_c++ anti-p- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # - Decay B+ -# +# Updated to PDG 2008 # 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.056800000 anti-D*0 e+ nu_e PHOTOS HQET 0.77 1.33 0.92; #[Reconstructed PDG2011] +0.022300000 anti-D0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.0040 anti-D_10 e+ nu_e PHOTOS ISGW2; +0.0024 anti-D_0*0 e+ nu_e PHOTOS ISGW2; +0.0007 anti-D'_10 e+ nu_e PHOTOS ISGW2; +0.0018 anti-D_2*0 e+ nu_e PHOTOS ISGW2; +0.006100000 D*- pi+ e+ nu_e PHOTOS GOITY_ROBERTS; #[Reconstructed PDG2011] 0.0003 anti-D*0 pi0 e+ nu_e PHOTOS GOITY_ROBERTS; -0.0052 D- pi+ e+ nu_e PHOTOS GOITY_ROBERTS; +# covered by other decays +0.0000 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.056800000 anti-D*0 mu+ nu_mu PHOTOS HQET 0.77 1.33 0.92; #[Reconstructed PDG2011] +0.022300000 anti-D0 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.0040 anti-D_10 mu+ nu_mu PHOTOS ISGW2; +0.0024 anti-D_0*0 mu+ nu_mu PHOTOS ISGW2; +0.0007 anti-D'_10 mu+ nu_mu PHOTOS ISGW2; +0.0018 anti-D_2*0 mu+ nu_mu PHOTOS ISGW2; +0.006100000 D*- pi+ mu+ nu_mu PHOTOS GOITY_ROBERTS; #[Reconstructed PDG2011] 0.0003 anti-D*0 pi0 mu+ nu_mu PHOTOS GOITY_ROBERTS; -0.0052 D- pi+ mu+ nu_mu PHOTOS GOITY_ROBERTS; +0.0000 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.020000000 anti-D*0 tau+ nu_tau ISGW2; #[Reconstructed PDG2011] +0.007000000 anti-D0 tau+ nu_tau ISGW2; #[Reconstructed PDG2011] 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; @@ -3667,23 +3746,26 @@ Decay B+ # # 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.000077000 pi0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000037000 eta e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000128000 rho0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000115000 omega e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000270 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.001948 Xu0 e+ nu_e VUB 4.8 1.29 0.22 20 0.30 0.54 1.20 0.95 1.26 0.78 1.34 0.98 1.41 0.91 1.48 1.23 1.55 1.36 1.61 1.39 1.67 1.38 1.73 1.43 1.79 1.41 1.84 1.42 1.90 1.45 1.95 1.40 2.00 1.42 2.50 1.31 3.00 1.36 3.50 1.15 4.00 1.01 4.50 1.51; # -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.000077000 pi0 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000037000 eta mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000128000 rho0 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000115000 omega mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000270 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.001948 Xu0 mu+ nu_mu VUB 4.8 1.29 0.22 20 0.30 0.54 1.20 0.95 1.26 0.78 1.34 0.98 1.41 0.91 1.48 1.23 1.55 1.36 1.61 1.39 1.67 1.38 1.73 1.43 1.79 1.41 1.84 1.42 1.90 1.45 1.95 1.40 2.00 1.42 2.50 1.31 3.00 1.36 3.50 1.15 4.00 1.01 4.50 1.51; # 0.000030 pi0 tau+ nu_tau ISGW2; 0.000012 eta tau+ nu_tau ISGW2; @@ -3705,17 +3787,11 @@ Decay B+ 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 +# b->u hadronic # Ref. [B1]: # -0.000016 D_s+ pi0 PHSP; +0.000016000 D_s+ pi0 PHSP; #[Reconstructed PDG2011] 0.000020 D_s*+ pi0 SVS; # 0.000028 rho0 D_s+ SVS; @@ -3724,23 +3800,29 @@ Decay B+ # # b-> s gamma # -0.0000403 K*+ gamma HELAMP 1.0 0.0 1.0 0.0; +0.000042100 K*+ gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] #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; +0.0003118 Xsu gamma BTOXSGAMMA 2; +# +0.000000550 K+ e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.000001550 K*+ e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.0000050 Xsu e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.000000520 K+ mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.000001160 K*+ mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.0000025 Xsu mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.0000001 K+ tau+ tau- PHOTOS BTOSLLBALL; +0.0000002 K*+ tau+ tau- PHOTOS BTOSLLBALL; +0.0000002 Xsu tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +# +# b -> l nu +# +0.000180000 tau+ nu_tau SLN; #[Reconstructed PDG2011] +0.000000 mu+ nu_mu PHOTOS SLN; +0.000000 e+ nu_e PHOTOS SLN; # #------------------------------------------------------------------------------ # 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC @@ -3749,40 +3831,44 @@ Decay B+ # Exclusive hadronic b->u # 0.000026 pi+ pi0 pi0 CB3PI-P00 alpha; -0.0000121 pi+ pi+ pi- CB3PI-MPP alpha; +0.000000 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; +0.000004070 eta pi+ PHSP; #[Reconstructed PDG2011] +0.000002330 eta K+ PHSP; #[Reconstructed PDG2011] +0.000019300 K*+ eta SVS; #[Reconstructed PDG2011] +0.000007000 rho+ eta SVS; #[Reconstructed PDG2011] +0.000002700 eta' pi+ PHSP; #[Reconstructed PDG2011] +0.000070600 eta' K+ PHSP; #[Reconstructed PDG2011] +0.000004900 K*+ eta' SVS; #[Reconstructed PDG2011] +0.000008700 rho+ eta' SVS; #[Reconstructed PDG2011] +0.000006900 omega pi+ SVS; #[Reconstructed PDG2011] +0.000006700 omega K+ SVS; #[Reconstructed PDG2011] +0.0000010 omega K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000015900 omega rho+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.0000000 phi pi+ SVS; +0.000008300 phi K+ SVS; #[Reconstructed PDG2011] +#2-body modes from Jim Olsen +# (K_S0 K- and K_L0 K- -> 1x10^-6, Jim Olsen - Mar 27, 2001) +# (pi- pi0 -> 5x10^-6 and K- pi0 -> 11x10^-6, Jim Olsen - Mar 27, 2001) +# PR LHCb 04/08/04 split into KS/KL +0.000000 K0 pi+ PHSP; +0.000011550 K_S0 pi+ PHSP; #[Reconstructed PDG2011] +0.000011550 K_L0 pi+ PHSP; #[Reconstructed PDG2011] +0.000001360 anti-K0 K+ PHSP; #[Reconstructed PDG2011] +0.000005700 pi+ pi0 PHSP; #[Reconstructed PDG2011] +0.000012900 K+ pi0 PHSP; #[Reconstructed PDG2011] # # 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; +0.000008300 rho0 pi+ SVS; #[Reconstructed PDG2011] +0.000003700 rho0 K+ SVS; #[Reconstructed PDG2011] # # 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; +0.000010900 rho+ pi0 SVS; #[Reconstructed PDG2011] +0.000008000 rho+ K0 SVS; #[Reconstructed PDG2011] # # rho(1450) 3-body modes 0.0000022 rho(2S)0 pi+ SVS; @@ -3790,26 +3876,24 @@ Decay B+ # # f0(980) 3-body modes 0.000001 f_0 pi+ PHSP; -0.0000177 f_0 K+ PHSP; +0.0000092 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; +0.000001600 f_2 pi+ PHSP; #[Reconstructed PDG2011] # -# 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; +# K*0(892) 3-body modes +0.000045000 K_0*0 pi+ PHSP; #[Reconstructed PDG2011] +0.0000010 anti-K_0*0 K+ PHSP; +0.000002 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; +# K*+(892) 3-body modes +0.000006900 K*+ pi0 SVS; #[Reconstructed PDG2011] 0.000003 K*+ anti-K0 SVS; - # # # Non-resonant 3-body left-overs @@ -3818,16 +3902,16 @@ Decay B+ # 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+ pi- pi+: high mass + f0(400-1200) = (5+5)e-6 +0.000000000 K+ pi- pi+ PHSP; #[Reconstructed PDG2011] # -# K+ K- pi+: just non resonant -0.000001 K+ K- pi+ PHSP; +# K+ K- pi+: just non-resonant +0.000005000 K+ K- pi+ PHSP; #[Reconstructed PDG2011] +# +# K+K-K+: high mass structure near 1500 + non-res: total - phiK = 30-4 +0.000025400 K+ K- K+ PHSP; #[Reconstructed PDG2011] # -# 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) @@ -3844,14 +3928,14 @@ Decay B+ 0.000001 pi+ K0 eta PHSP; 0.000001 pi+ K0 eta' PHSP; # -# pi+ pi0 pi0 +# 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 +# K+ pi0 pi0 0.000001 K+ pi0 pi0 PHSP; 0.000001 K+ pi0 eta PHSP; 0.000001 K+ pi0 eta' PHSP; @@ -3859,9 +3943,8 @@ Decay B+ 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; +0.0000460 K+ K0 anti-K0 PHSP; # # pi+ K0 anti-K0 0.000001 pi+ K0 anti-K0 PHSP; @@ -3871,8 +3954,9 @@ Decay B+ #--------------------------------------------------------------------------- # #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; +#--- 4-body rho-rho, rho-pi-pi, pi-pi-pi-pi -------------------------- +# PR LHCb 22 Apr 2004 Set long. pol. for rho rho +0.000024000 rho+ rho0 SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] 0.000010 rho0 pi+ pi0 PHSP; 0.000005 rho0 pi+ eta PHSP; 0.000002 rho0 pi+ eta' PHSP; @@ -3880,6 +3964,8 @@ Decay B+ 0.000005 omega pi+ eta PHSP; 0.000002 omega pi+ eta' PHSP; 0.000010 rho+ pi+ pi- PHSP; +# PR Add rho- pi+ pi+ +0.000010 rho- pi+ pi+ PHSP; 0.000010 rho+ pi0 pi0 PHSP; 0.000005 rho+ pi0 eta PHSP; 0.000002 rho+ eta eta PHSP; @@ -3892,11 +3978,11 @@ Decay B+ 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.000020000 a_10 pi+ SVS; #[Reconstructed PDG2011] +0.000026000 a_1+ pi0 SVS; #[Reconstructed PDG2011] +0.0000067 b_10 pi+ SVS; +0.000010 b_1+ pi0 SVS; +0.000010 rho+ f_0 SVS; 0.000010 rho+ a_00 SVS; 0.000002 rho0 a_0+ SVS; 0.000010 f_0 pi+ pi0 PHSP; @@ -3904,11 +3990,11 @@ Decay B+ 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.000009200 rho+ K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.000010 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.000069800 pi- pi+ K*+ PHSP; #[Reconstructed PDG2011] 0.000010 pi0 pi0 K*+ PHSP; 0.000005 pi0 eta K*+ PHSP; 0.000002 eta eta K*+ PHSP; @@ -3939,14 +4025,14 @@ Decay B+ 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.000006 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.000005200 K*+ f_0 SVS; #[Reconstructed PDG2011] 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.000035000 a_1+ K0 SVS; #[Reconstructed PDG2011] +0.0000091 b_10 K+ SVS; +0.000010 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 ------------ @@ -3965,11 +4051,10 @@ Decay B+ 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.000001 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+ eta eta PHSP; 0.0000002 anti-K0 K+ pi0 eta' PHSP; 0.0000001 anti-K0 K+ eta eta' PHSP; 0.000001 K*+ K- pi+ PHSP; @@ -3983,12 +4068,12 @@ Decay B+ 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.000010000 phi K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] 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.000026000 K- K+ K*+ PHSP; #[Reconstructed PDG2011] 0.000010 K+ K*- K+ PHSP; 0.000010 K+ K*0 anti-K0 PHSP; 0.000010 K+ K0 anti-K*0 PHSP; @@ -4001,12 +4086,11 @@ Decay B+ 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.000007000 phi K_0*+ PHSP; #[Reconstructed PDG2011] 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.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 -------------------------------- @@ -4142,7 +4226,6 @@ Decay B+ 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; @@ -4162,7 +4245,7 @@ Decay B+ 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 ------------ +#--- 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; @@ -4177,9 +4260,8 @@ Decay B+ 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+ 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; @@ -4197,7 +4279,6 @@ Decay B+ 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; @@ -4219,16 +4300,15 @@ Decay B+ 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 K0 anti-K*0 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 -------------------- +#--- 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; @@ -4269,13 +4349,12 @@ Decay B+ 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.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 K'_10 pi+ PHSP; 0.000002 phi K'_1+ pi0 PHSP; 0.000001 phi K'_1+ eta PHSP; @@ -4285,7 +4364,7 @@ Decay B+ 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 K+ K+ anti-K'_10 pi- PHSP; 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; @@ -4301,7 +4380,7 @@ Decay B+ 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.000004900 phi phi K+ PHSP; #[Reconstructed PDG2011] 0.000001 phi phi pi+ PHSP; 0.000001 phi K+ K- K+ PHSP; 0.000001 phi K0 anti-K0 K+ PHSP; @@ -4311,11 +4390,11 @@ Decay B+ 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 ------------ +#--- 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 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; @@ -4324,40 +4403,40 @@ Decay B+ #--- 6-body a1a1 ------------ 0.000050 a_1+ a_10 PHSP; # -# B -> cc= s sum = 1.92% done +# B -> cc= s sum = 1.92% # -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.001014000 J/psi K+ SVS; #[Reconstructed PDG2011] +0.001430000 J/psi K*+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.000049000 J/psi pi+ SVS; #[Reconstructed PDG2011] +0.000050000 J/psi rho+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] 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.001800000 J/psi K_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] +0.000052000 J/psi phi K+ PHSP; #[Reconstructed PDG2011] # -0.000648 psi(2S) K+ SVS; -0.00067 psi(2S) K*+ SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.000646000 psi(2S) K+ SVS; #[Reconstructed PDG2011] +0.000620000 psi(2S) K*+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] 0.0004 psi(2S) K0 pi+ PHSP; 0.0002 psi(2S) K+ pi0 PHSP; -0.0019 psi(2S) K+ pi- pi+ PHSP; +0.001900000 psi(2S) K+ pi- pi+ PHSP; #[Reconstructed PDG2011] 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.000910000 eta_c K+ PHSP; #[Reconstructed PDG2011] +0.001200000 K*+ eta_c SVS; #[Reconstructed PDG2011] 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.000340000 eta_c(2S) K+ PHSP; #[Reconstructed PDG2011] 0.00048 K*+ eta_c(2S) SVS; 0.00008 eta_c(2S) K0 pi+ PHSP; 0.00005 eta_c(2S) K+ pi0 PHSP; @@ -4365,7 +4444,7 @@ Decay B+ 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.000133000 chi_c0 K+ PHSP; #[Reconstructed PDG2011] 0.0004 K*+ chi_c0 SVS; 0.0002 chi_c0 K0 pi+ PHSP; 0.0001 chi_c0 K+ pi0 PHSP; @@ -4373,8 +4452,8 @@ Decay B+ 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.000460000 chi_c1 K+ SVS; #[Reconstructed PDG2011] +0.000300000 chi_c1 K*+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] 0.0004 chi_c1 K0 pi+ PHSP; 0.0002 chi_c1 K+ pi0 PHSP; 0.0004 chi_c1 K+ pi- pi+ PHSP; @@ -4382,14 +4461,14 @@ Decay B+ 0.0002 chi_c1 K0 pi+ pi0 PHSP; # 0.00002 chi_c2 K+ STS; -0.00001 chi_c2 K*+ PHSP; +0.00002 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.000490000 psi(3770) K+ SVS; #[Reconstructed PDG2011] 0.0005 psi(3770) K*+ PHSP; 0.0003 psi(3770) K0 pi+ PHSP; 0.0002 psi(3770) K+ pi0 PHSP; @@ -4398,12 +4477,12 @@ Decay B+ 0.0001 psi(3770) K0 pi+ pi0 PHSP; 0.0003 psi(3770) K_1+ PHSP; # -# b -> c (sc=) -> D Ds X +# b -> c (sc=) -> D Ds X Sum = 10% # -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.010000000 anti-D0 D_s+ PHSP; #[Reconstructed PDG2011] +0.008200000 anti-D*0 D_s+ SVS; #[Reconstructed PDG2011] +0.007600000 D_s*+ anti-D0 SVS; #[Reconstructed PDG2011] +0.017100000 D_s*+ anti-D*0 SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; #[Reconstructed PDG2011] 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; @@ -4412,6 +4491,9 @@ Decay B+ 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; @@ -4427,20 +4509,21 @@ Decay B+ # 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; +0.0017 anti-D0 D+ K0 PHSP; +0.0052 anti-D0 D*+ K0 PHSP; +0.0031 anti-D*0 D+ K0 PHSP; +0.007800000 anti-D*0 D*+ K0 PHSP; #[Reconstructed PDG2011] # External+internal W-emission amplitude -0.00137 anti-D0 D0 K+ PHSP; +0.002100000 anti-D0 D0 K+ PHSP; #[Reconstructed PDG2011] 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; +0.004700000 anti-D0 D*0 K+ PHSP; #[Reconstructed PDG2011] +0.005300000 anti-D*0 D*0 K+ PHSP; #[Reconstructed PDG2011] # Internal W-emission amplitude (color suppressed modes) -0.0003 D+ D- K+ PHSP; +0.0005 D+ D- K+ PHSP; 0.0005 D*+ D- K+ PHSP; -0.0015 D+ D*- K+ PHSP; -0.0015 D*+ D*- K+ PHSP; +0.001500000 D+ D*- K+ PHSP; #[Reconstructed PDG2011] +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; @@ -4455,110 +4538,176 @@ Decay B+ 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; +0.000380000 D+ anti-D0 PHSP; #[Reconstructed PDG2011] +0.000390000 D*+ anti-D0 SVS; #[Reconstructed PDG2011] +0.000630000 anti-D*0 D+ SVS; #[Reconstructed PDG2011] +0.000810000 anti-D*0 D*+ SVV_HELAMP 0.56 0.0 0.96 0.0 0.47 0.0; #[Reconstructed PDG2011] # # 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; +0.005190000 anti-D*0 pi+ SVS; #[Reconstructed PDG2011] +0.004840000 anti-D0 pi+ PHSP; #[Reconstructed PDG2011] +0.013400000 rho+ anti-D0 SVS; #[Reconstructed PDG2011] # 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.009800000 anti-D*0 rho+ SVV_HELAMP 0.283 1.13 0.932 0.0 0.228 0.95; #[Reconstructed PDG2011] # 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; +0.001070000 D- pi+ pi+ PHSP; #[Reconstructed PDG2011] +0.001350000 D*- pi+ pi+ PHSP; #[Reconstructed PDG2011] # -# 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; +# D a1 updated Ref. [B1]: +0.004000000 a_1+ anti-D0 SVS; #[Reconstructed PDG2011] +0.000200000 anti-D0 rho0 pi+ PHSP; #[Reconstructed PDG2011] +0.006800000 anti-D0 pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] # # 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.019000000 anti-D*0 a_1+ SVV_HELAMP 0.458 0.0 0.866 0.0 0.200 0.0; #[Reconstructed PDG2011] # -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.00042 anti-D*0 rho0 pi+ PHSP; +0.010300000 anti-D*0 pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] # 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.015000000 D*- pi0 pi+ pi+ PHSP; #[Reconstructed PDG2011] 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.000876 anti-D_10 pi+ SVS; +0.0005 anti-D'_10 pi+ SVS; +0.00052 anti-D_2*0 pi+ STS; 0.0007 anti-D_10 rho+ PHSP; 0.0022 anti-D'_10 rho+ PHSP; 0.0038 anti-D_2*0 rho+ PHSP; +0.00061 anti-D_0*0 pi+ PHSP; # # -# B->DK, recommendation +# 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; +0.000368000 anti-D0 K+ PHSP; #[Reconstructed PDG2011] +0.000421000 anti-D*0 K+ SVS; #[Reconstructed PDG2011] +0.000530000 K*+ anti-D0 SVS; #[Reconstructed PDG2011] +0.000810000 anti-D*0 K*+ SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; #[Reconstructed PDG2011] #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 +0.0000005 D+ pi0 PHSP; +0.0000005 D*+ pi0 SVS; +0.000011 D+ anti-K0 PHSP; +0.000006 D*+ anti-K0 SVS; # #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; +0.00075 anti-D0 D_s0*+ PHSP; +0.00090 anti-D*0 D_s0*+ SVS; +0.003100000 D_s1+ anti-D0 SVS; #[Reconstructed PDG2011] +0.012000000 anti-D*0 D_s1+ SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; #[Reconstructed PDG2011] +# +# Feb 2009 +# +0.000550000 anti-D0 K+ anti-K0 PHSP; #[Reconstructed PDG2011] +0.000750000 anti-D0 K+ anti-K*0 PHSP; #[Reconstructed PDG2011] +0.00150 anti-D*0 K+ anti-K*0 PHSP; +# +# Feb 2009 +# +0.002750000 anti-D0 omega pi+ PHSP; #[Reconstructed PDG2011] +0.004500000 anti-D*0 omega pi+ PHSP; #[Reconstructed PDG2011] +# +# Feb 2009 +# +0.00045 anti-D0 D'_s1+ PHSP; +0.00094 anti-D*0 D'_s1+ PHSP; +# +# Lam_c X / Sigma_c X +# +#0.04000 anti-cd_1 uu_1 PYTHIA 23; +0.032572352 anti-cd_1 uu_1 PYTHIA 23; #[Reconstructed PDG2011] +# +# Xi_c X 2.4% +# +#0.02400 anti-cs_1 uu_1 PYTHIA 23; +0.008883411 anti-cs_1 uu_1 PYTHIA 23; #[Reconstructed PDG2011] +# +# +0.222347008 u anti-d anti-c u PYTHIA 48; #[Reconstructed PDG2011] +0.042442798 u anti-d anti-c u PYTHIA 13; #[Reconstructed PDG2011] +0.022208435 u anti-s anti-c u PYTHIA 13; #[Reconstructed PDG2011] #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; +0.073041080 c anti-s anti-c u PYTHIA 13; #[Reconstructed PDG2011] +0.003948141 c anti-d anti-c u PYTHIA 13; #[Reconstructed PDG2011] +0.002961106 u anti-d anti-u u PYTHIA 48; #[Reconstructed PDG2011] +0.003948141 c anti-s anti-u u PYTHIA 48; #[Reconstructed PDG2011] # 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; +# to solve a double-counting problem for this channel +0.002023436 u anti-u anti-d u PYTHIA 48; #[Reconstructed PDG2011] +0.000069112 d anti-d anti-d u PYTHIA 48; #[Reconstructed PDG2011] +0.000088858 s anti-s anti-d u PYTHIA 48; #[Reconstructed PDG2011] +0.002171534 u anti-u anti-s u PYTHIA 48; #[Reconstructed PDG2011] +0.001776701 d anti-d anti-s u PYTHIA 48; #[Reconstructed PDG2011] +0.001480600 s anti-s anti-s u PYTHIA 48; #[Reconstructed PDG2011] +0.004935177 anti-s u PYTHIA 32; #[Reconstructed PDG2011] #### +0.001500000 anti-D*0 K+ K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.018000000 anti-D*0 pi- pi+ pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.005700000 anti-D*0 pi+ pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.002600000 D*- pi+ pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000180000 D_s- pi+ K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000145000 D_s*- pi+ K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011000 D_s- K+ K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001070000 J/psi K+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000108000 J/psi eta K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000350000 J/psi omega K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011800 J/psi p+ anti-Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000025800 psi(2S) pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000020000 chi_c1 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000018000 eta K_0*+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000009100 eta K_2*+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000024000 omega K_0*+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000021000 omega K_2*+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000010100 K*0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000001070 f_2 K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000005600 K_2*0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000001200 K*+ K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000006100 phi K_1+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000008400 phi K_2*+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000043000 K_1+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000007900 eta K+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000003500 phi K+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000007600 K+ pi- pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000020000 K*0 pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000046000 K0 pi+ pi0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000014000 K_2*+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000980 rho+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000001620 p+ anti-p- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000005900 p+ anti-p- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000003600 p+ anti-p- K*+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000002500 p+ anti-Lambda0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000003000 p+ anti-Lambda0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000000 p+ anti-Lambda0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000004800 p+ anti-Lambda0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000002000 p+ anti-Lambda0 f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000003400 Lambda0 anti-Lambda0 K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000002200 Lambda0 anti-Lambda0 K*+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000280000 anti-Lambda_c- p+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001800000 anti-Lambda_c- p+ pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.002300000 anti-Lambda_c- p+ pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000035000 anti-Sigma_c0 p+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000440000 anti-Sigma_c0 p+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000440000 anti-Sigma_c0 p+ pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000280000 anti-Sigma_c-- p+ pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay #----------------------------------------------------------------- @@ -4585,98 +4734,18 @@ 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; +Decay B_s*0 +1.0000 B_s0 gamma VSP_PWAVE; 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; +Decay anti-B_s*0 +1.0000 anti-B_s0 gamma VSP_PWAVE; 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 +# awk ' /^0./{ sum = sum + $1 ;print sum } ' junk.dec # # anti-B_s decays. # ------------------------------------------------------- @@ -4722,50 +4791,49 @@ Decay anti-B_s0 # 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. +# 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 !!! +# 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 +# < 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.010400000 D_s- D_s+ PHSP; #[Reconstructed PDG2011] +0.0099 D_s*+ D_s- SVS; +0.0099 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. +# 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.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.0024 D_s*- D+ pi0 K0 PHSP; 0.0048 D_s*- D0 pi+ K0 PHSP; -0.0048 D_s*- D+ pi- K+ PHSP; +0.0048 D_s*- D+ pi- K+ PHSP; 0.0024 D_s*- D0 pi0 K+ PHSP; # # @@ -4778,62 +4846,62 @@ Decay anti-B_s0 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*+ 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+ 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+ 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*+ 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.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+ 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+ 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+ 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 +# 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- 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.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.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.00015 D_s*+ K- SVS; +0.000150000 D_s+ K- PHSP; #[Reconstructed PDG2011] 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; +0.00030 K*- D_s+ SVS; # # fkw 4/28/00 Strategy for charmonium modes: -# Take Bd BR's, replace spectator, +# Take Bd BR's, replace spectator, # assume etaprime = 2/3 ss # and eta = 1/3 ss # @@ -4846,31 +4914,48 @@ Decay anti-B_s0 # 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.001300000 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] 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; -# +# LHCb PR 04/02/04 Add (cc) phi n pi(+/0) +0.00039 J/psi phi pi+ pi- PHSP; +0.00039 J/psi phi pi0 pi0 PHSP; +# LHCb PR add (cc) phi eta(') + npi see CDF QQ +0.0002 J/psi eta pi+ pi- PHSP; +0.0002 J/psi eta pi0 pi0 PHSP; +0.0004 J/psi eta' pi+ pi- PHSP; +0.0004 J/psi eta' pi0 pi0 PHSP; +0.0002 J/psi pi+ pi- PHSP; +0.0002 J/psi pi0 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.000680000 psi(2S) phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +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; +0.00034 psi(2S) phi pi+ pi- PHSP; +0.00034 psi(2S) phi pi0 pi0 PHSP; +0.0002 psi(2S) eta pi+ pi- PHSP; +0.0002 psi(2S) eta pi0 pi0 PHSP; +0.0004 psi(2S) eta' pi+ pi- PHSP; +0.0004 psi(2S) eta' pi0 pi0 PHSP; +0.0002 psi(2S) pi+ pi- PHSP; +0.0002 psi(2S) pi0 pi0 PHSP; # # chic0 = 0.05% (20% of chic2) # Bodwin et.al. Phys Rev D46 1992 -0.00010 chi_c0 eta' PHSP; +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.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; @@ -4881,15 +4966,21 @@ Decay anti-B_s0 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 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; +0.00040 chi_c1 phi pi+ pi- PHSP; +0.00040 chi_c1 phi pi0 pi0 PHSP; +0.0001 chi_c1 eta pi+ pi- PHSP; +0.0001 chi_c1 eta pi0 pi0 PHSP; +0.0002 chi_c1 eta' pi+ pi- PHSP; +0.0002 chi_c1 eta' pi0 pi0 PHSP; # # # chic2 = 0.25% CLNS 94/1315 -0.000465 chi_c2 eta' STS; +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; @@ -4909,6 +5000,12 @@ Decay anti-B_s0 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; +0.00040 eta_c phi pi+ pi- PHSP; +0.00040 eta_c phi pi0 pi0 PHSP; +0.0001 eta_c eta pi+ pi- PHSP; +0.0001 eta_c eta pi0 pi0 PHSP; +0.0002 eta_c eta' pi+ pi- PHSP; +0.0002 eta_c eta' pi0 pi0 PHSP; # # # etac(2s) = 0.18% Guess: CBX 97-65 @@ -4921,7 +5018,7 @@ Decay anti-B_s0 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 # @@ -4938,24 +5035,24 @@ Decay anti-B_s0 # b --> c (d u=) # Exclusive Channels = 6.33% # fkw 4/28/00 I rearanged this a bit after copying it from -# B0B decay list. -# +# 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.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.0027 D_s*+ pi- SVS; +0.003200000 D_s+ pi- PHSP; #[Reconstructed PDG2011] +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.0085 a_1- D_s+ SVS; +0.0009 D_s+ rho0 pi- PHSP; +0.0009 D_s+ rho- pi0 PHSP; +0.008400000 D_s+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] 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; @@ -4968,43 +5065,46 @@ Decay anti-B_s0 # # 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 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; +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; # +# PR LHCb Add p pbar mode +0.000000001 p+ anti-p- PHSP; # 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: +# 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; +# Mark Whitehead 30/4/2010 Weighted PYHTIA to get total BF = 100% +0.019574780 cs_0 anti-ud_0 PYTHIA 23; #[Reconstructed PDG2011] +0.039129957 cs_1 anti-ud_1 PYTHIA 23; #[Reconstructed PDG2011] # # 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; +0.301256716 anti-u d c anti-s PYTHIA 48; #[Reconstructed PDG2011] +0.048443906 anti-u d c anti-s PYTHIA 25; #[Reconstructed PDG2011] # Now the internal W-emission: -0.02000 anti-u c d anti-s PYTHIA 48; +0.019086636 anti-u c d anti-s PYTHIA 48; #[Reconstructed PDG2011] # Then some b->u external W-emission with upper vertex charm -0.00400 anti-c s u anti-s PYTHIA 48; +0.003912996 anti-c s u anti-s PYTHIA 48; #[Reconstructed PDG2011] # 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; +0.014683536 anti-u s c anti-s PYTHIA 48; #[Reconstructed PDG2011] +0.002152148 anti-u s c anti-s PYTHIA 25; #[Reconstructed PDG2011] +0.000880424 anti-u c s anti-s PYTHIA 48; #[Reconstructed PDG2011] # 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; +0.005391151 anti-c d c anti-s PYTHIA 13; #[Reconstructed PDG2011] +0.001468354 anti-c d c anti-s PYTHIA 13; #[Reconstructed PDG2011] +# and some miscellaneous charmless stuff +0.003521696 anti-u u d anti-s PYTHIA 48; #[Reconstructed PDG2011] +0.000684774 anti-d d d anti-s PYTHIA 48; #[Reconstructed PDG2011] +0.000880424 anti-s s d anti-s PYTHIA 48; #[Reconstructed PDG2011] +0.001956498 anti-u u s anti-s PYTHIA 48; #[Reconstructed PDG2011] +0.001565198 anti-d d s anti-s PYTHIA 48; #[Reconstructed PDG2011] +0.001271724 anti-s s s anti-s PYTHIA 48; #[Reconstructed PDG2011] +0.004891245 s anti-s PYTHIA 32; #[Reconstructed PDG2011] # 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; @@ -5012,7 +5112,7 @@ Decay anti-B_s0 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; @@ -5034,13 +5134,23 @@ Decay anti-B_s0 # None of this should be taken too serious! # #*********************************************************** -0.0000193 K- K+ PHSP; -0.0000079 anti-K0 K0 PHSP; -0.0000043 pi- K+ PHSP; +# Mark Whitehead 30/4/2010 Updated K+K- +# PR LHCb 04/07/04 update BR +0.000033000 K- K+ PHSP; #[Reconstructed PDG2011] +# PR LHCb 04/07/04 split into KS/KL +0.0000000 anti-K0 K0 PHSP; +0.0000100 K_S0 K_S0 PHSP; +0.0000100 K_L0 K_L0 PHSP; +# PR LHCb 04/07/04 update BR +0.000004900 pi- K+ PHSP; #[Reconstructed PDG2011] 0.0000002 pi0 K0 PHSP; +# PR LHCb 04/07/04 add Bs->pi+ pi- +0.00000001 pi+ pi- PHSP; # 0.0000012 omega eta SVS; 0.0000025 omega eta' SVS; +0.0000013 phi eta SVS; +0.0000025 phi eta' SVS; 0.00000008 omega anti-K0 SVS; 0.000000002 phi anti-K0 SVS; # @@ -5051,15 +5161,21 @@ Decay anti-B_s0 0.00000002 K*0 pi0 SVS; # 0.0000046 K*- K+ SVS; -0.0000005 anti-K*0 K0 SVS; +# PR LHCb 04/07/04 Split into KS/KL +0.0000000 anti-K*0 K0 SVS; +0.0000020 anti-K*0 K_S0 SVS; +0.0000020 anti-K*0 K_L0 SVS; 0.0000082 K*+ K- SVS; -0.0000066 K*0 anti-K0 SVS; +# PR LHCb 04/07/04 Split into KS/KL +0.0000000 K*0 anti-K0 SVS; +0.0000020 K*0 K_S0 SVS; +0.0000020 K*0 K_L0 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; +#### Already included above 0.0000200 phi eta SVS; +#### Already included above 0.0000100 phi eta' SVS; # #next comes stuff from Ali,Kramer,Lue PRD58, 094009 FOR NC=3 0.00000007 K0 eta' PHSP; @@ -5074,14 +5190,28 @@ Decay anti-B_s0 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; +# PR LHCb 04/07/04 Update BR +0.000004 anti-K*0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.000014000 phi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.000000004 phi K*0 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; +#### Already included above 0.0000004 phi K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# PR LHCb : add Bs -> mu+ mu- +0.0000000035 mu- mu+ PHSP; +#PR LHCb 04/08/2004 add Bs -> tau+ tau- (BR not to take too seriously) +0.0000000020 tau- tau+ PHSP; +# PR LHCb 04/05/2004 : add Bs -> phi gamma +0.000057000 phi gamma SVP_HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +# PR LHCb 04/08/2004 : add Bs -> phi mu mu, phi e e +0.0000023 phi e- e+ BTOSLLALI; +0.0000023 phi mu- mu+ BTOSLLALI; +# PR LHCb 16 apr 2004 : add Bs -> gamma gamma +0.0000005 gamma gamma PHSP; #-------------- # 257.122e-6 for all the charmless hadronic # +0.000150000 D_s- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # # B_s decays. @@ -5127,11 +5257,11 @@ Decay B_s0 #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 !!! +# 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)% +# < 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 # @@ -5139,14 +5269,14 @@ Decay B_s0 # 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.010400000 D_s- D_s+ PHSP; #[Reconstructed PDG2011] +0.0099 D_s*+ D_s- SVS; +0.0099 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. +# 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; @@ -5154,13 +5284,13 @@ Decay B_s0 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.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+ 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.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; # @@ -5173,13 +5303,13 @@ Decay B_s0 # 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*- D0 K+ PHSP; 0.0050 D_s*- D+ K0 PHSP; -0.0050 D_s- D*0 K+ 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.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; @@ -5196,20 +5326,20 @@ Decay B_s0 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 +# 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- 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.0007 D*+ anti-D0 pi- anti-K0 PHSP; 0.0003 D*+ D- pi+ K- PHSP; 0.0007 D*+ anti-D0 pi0 K- PHSP; # @@ -5217,12 +5347,12 @@ Decay B_s0 # exclusive # Sum = 0.9% 0.00015 D_s*- K+ SVS; -0.00015 D_s- K+ PHSP; +0.000150000 D_s- K+ PHSP; #[Reconstructed PDG2011] 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; +0.00030 K*+ D_s- SVS; # # fkw 4/28/00 Strategy for charmonium modes: -# Take Bd BR's, replace spectator, +# Take Bd BR's, replace spectator, # assume etaprime = 2/3 ss # and eta = 1/3 ss # @@ -5232,25 +5362,43 @@ Decay B_s0 # # B --> (c c=) (s s=) # 2.65% -# should be: psi = 0.80% CLNS 94/1315 but isn't quite right. +# 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.001300000 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +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 K0 K- pi+ PHSP; 0.00070 J/psi anti-K0 K0 pi0 PHSP; 0.00070 J/psi K- K+ pi0 PHSP; +# LHCb PR 04/02/04 Add (cc) phi n pi(+/0) +0.00039 J/psi phi pi+ pi- PHSP; +0.00039 J/psi phi pi0 pi0 PHSP; +# LHCb PR Add (cc) phi eta(') + npi like in CDF QQ +0.0002 J/psi eta pi+ pi- PHSP; +0.0002 J/psi eta pi0 pi0 PHSP; +0.0004 J/psi eta' pi+ pi- PHSP; +0.0004 J/psi eta' pi0 pi0 PHSP; +0.0002 J/psi pi+ pi- PHSP; +0.0002 J/psi pi0 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.000680000 psi(2S) phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] 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; +0.00034 psi(2S) phi pi+ pi- PHSP; +0.00034 psi(2S) phi pi0 pi0 PHSP; +0.0002 psi(2S) eta pi+ pi- PHSP; +0.0002 psi(2S) eta pi0 pi0 PHSP; +0.0004 psi(2S) eta' pi+ pi- PHSP; +0.0004 psi(2S) eta' pi0 pi0 PHSP; +0.0002 psi(2S) pi+ pi- PHSP; +0.0002 psi(2S) pi0 pi0 PHSP; # # chic0 = 0.05% (20% of chic2) # Bodwin et.al. Phys Rev D46 1992 @@ -5273,6 +5421,12 @@ Decay B_s0 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; +0.00040 chi_c1 phi pi+ pi- PHSP; +0.00040 chi_c1 phi pi0 pi0 PHSP; +0.0001 chi_c1 eta pi+ pi- PHSP; +0.0001 chi_c1 eta pi0 pi0 PHSP; +0.0002 chi_c1 eta' pi+ pi- PHSP; +0.0002 chi_c1 eta' pi0 pi0 PHSP; # # # chic2 = 0.25% CLNS 94/1315 @@ -5295,6 +5449,12 @@ Decay B_s0 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; +0.00040 eta_c phi pi+ pi- PHSP; +0.00040 eta_c phi pi0 pi0 PHSP; +0.0001 eta_c eta pi+ pi- PHSP; +0.0001 eta_c eta pi0 pi0 PHSP; +0.0002 eta_c eta' pi+ pi- PHSP; +0.0002 eta_c eta' pi0 pi0 PHSP; # # # etac(2s) = 0.18% Guess: CBX 97-65 @@ -5307,7 +5467,7 @@ Decay B_s0 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; @@ -5323,25 +5483,25 @@ Decay B_s0 # b --> c (d u=) # Exclusive Channels = 6.33% # fkw 4/28/00 I rearanged this a bit after copying it from -# B0B decay list. -# +# 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.0037 D_s2*- rho+ STV; #whb: STV does not exist yet # 0.0027 D_s*- pi+ SVS; -0.0026 D_s- pi+ PHSP; +0.003200000 D_s- pi+ PHSP; #[Reconstructed PDG2011] 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.008400000 D_s- pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] +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; @@ -5358,38 +5518,41 @@ Decay B_s0 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; # +# PR LHCb : add p ppbar mode +0.000000001 p+ anti-p- PHSP; # 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: +# 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; +# Mark Whitehead 30/4/2010 Weight PYTHIA to get Total BF=100% +0.019574780 anti-cs_0 ud_0 PYTHIA 23; #[Reconstructed PDG2011] +0.039129957 anti-cs_1 ud_1 PYTHIA 23; #[Reconstructed PDG2011] # # 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; +0.301256716 u anti-d anti-c s PYTHIA 48; #[Reconstructed PDG2011] +0.048443906 u anti-d anti-c s PYTHIA 25; #[Reconstructed PDG2011] # Now the internal W-emission: -0.02000 u anti-c anti-d s PYTHIA 48; +0.019086636 u anti-c anti-d s PYTHIA 48; #[Reconstructed PDG2011] # Then some b->u external W-emission with upper vertex charm -0.00400 c anti-s anti-u s PYTHIA 48; +0.003912996 c anti-s anti-u s PYTHIA 48; #[Reconstructed PDG2011] # 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; +0.014683536 u anti-s anti-c s PYTHIA 48; #[Reconstructed PDG2011] +0.002152148 u anti-s anti-c s PYTHIA 25; #[Reconstructed PDG2011] +0.000880424 u anti-c anti-s s PYTHIA 48; #[Reconstructed PDG2011] # 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; +0.005391151 c anti-d anti-c s PYTHIA 13; #[Reconstructed PDG2011] +0.001468354 c anti-d anti-c s PYTHIA 13; #[Reconstructed PDG2011] +# and some miscellaneous charmless stuff +0.003521696 u anti-u anti-d s PYTHIA 48; #[Reconstructed PDG2011] +0.000684774 d anti-d anti-d s PYTHIA 48; #[Reconstructed PDG2011] +0.000880424 s anti-s anti-d s PYTHIA 48; #[Reconstructed PDG2011] +0.001956498 u anti-u anti-s s PYTHIA 48; #[Reconstructed PDG2011] +0.001565198 d anti-d anti-s s PYTHIA 48; #[Reconstructed PDG2011] +0.001271724 s anti-s anti-s s PYTHIA 48; #[Reconstructed PDG2011] +0.004891245 anti-s s PYTHIA 32; #[Reconstructed PDG2011] # fkw 5/10/00 the b->ulnu decays are loosely modelled according to B0 in EvtGen 0.000200 K- e+ nu_e PHOTOS ISGW2; @@ -5397,7 +5560,7 @@ Decay B_s0 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; @@ -5419,31 +5582,47 @@ Decay B_s0 # None of this should be taken too serious! # #*********************************************************** -0.0000193 K- K+ PHSP; -0.0000079 anti-K0 K0 PHSP; -0.0000043 pi+ K- PHSP; +# Mark Whitehead 30/4/2010 Update K+K- +# PR LHCb update Br Bs -> K- K+ +0.000033000 K- K+ PHSP; #[Reconstructed PDG2011] +# PR LHCb 4/07/04 Split in KS/KL +0.0000000 anti-K0 K0 PHSP; +0.0000100 K_S0 K_S0 PHSP; +0.0000100 K_L0 K_L0 PHSP; +# +0.000004900 pi+ K- PHSP; #[Reconstructed PDG2011] 0.0000002 pi0 anti-K0 PHSP; +# PR LHCb 4/07/04 add Bs -> pi+ pi- +0.00000001 pi+ pi- PHSP; # 0.0000012 omega eta SVS; 0.0000025 omega eta' SVS; +0.0000013 phi eta SVS; +0.0000025 phi 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 rho0 K0 SVS; 0.00000002 anti-K*0 pi0 SVS; # 0.0000046 K*+ K- SVS; -0.0000005 K*0 anti-K0 SVS; +# PR LHCb 4/07/04 split in KS/KL +0.0000000 K*0 anti-K0 SVS; +0.0000020 K*0 K_S0 SVS; +0.0000020 K*0 K_L0 SVS; 0.0000082 K*- K+ SVS; -0.0000066 anti-K*0 K0 SVS; +# PR LHCb 4/07/04 split in KS/KL +0.0000000 anti-K*0 K0 SVS; +0.0000020 anti-K*0 K_S0 SVS; +0.0000020 anti-K*0 K_L0 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; +### Already included above 0.0000200 phi eta SVS; +### Already included above 0.0000100 phi eta' SVS; # #next comes stuff from Ali,Kramer,Lue PRD58, 094009 FOR NC=3 0.00000007 anti-K0 eta' PHSP; @@ -5458,26 +5637,31 @@ Decay B_s0 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; +# PR LHCb Update BR +0.000004 anti-K*0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.000014000 phi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.000000004 phi anti-K*0 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; +#### Already included above 0.0000004 phi anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +#PR LHCb add Bs -> mu+ mu- +0.0000000035 mu+ mu- PHSP; +#PR LHCb 04/08/2004 add Bs -> tau+ tau- (BR not to take too seriously) +0.0000000020 tau+ tau- PHSP; +# PR LHCb 04/05/2004 : add Bs -> phi gamma +0.000057000 phi gamma SVP_HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +# PR LHCb 04/08/2004 : add Bs -> phi mu mu, phi e e +0.0000023 phi e+ e- BTOSLLALI; +0.0000023 phi mu+ mu- BTOSLLALI; +# PR LHCb 16 Apr 2004 : add Bs -> gamma gamma +0.0000005 gamma gamma PHSP; #-------------- # 257.122e-6 for all the charmless hadronic # +0.000150000 D_s+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] 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! +# whb: QQ B_c included- Near end of File #Decay B_c- #CHANNEL 0 0.0700 TAU- NUTB #CHANNEL 1 0.1100 NUEB E- *CC* @@ -5513,56 +5697,88 @@ Enddecay #Enddecay # -# The tau branching fractions needs to be looked over! +# Updated to PDG 2008 # 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.154002925 e- anti-nu_e nu_tau PHOTOS TAULNUNU; #[Reconstructed PDG2011] +0.170000000 mu- anti-nu_mu nu_tau PHOTOS TAULNUNU; #[Reconstructed PDG2011] +0.109100000 pi- nu_tau TAUSCALARNU; #[Reconstructed PDG2011] +0.006960000 K- nu_tau TAUSCALARNU; #[Reconstructed PDG2011] +0.255100000 pi- pi0 nu_tau TAUHADNU -0.108 0.775 0.149 1.364 0.400; #[Reconstructed PDG2011] +0.001124109 nu_tau gamma pi- pi0 PYTHIA 41; #[Reconstructed PDG2011] +0.079301562 pi0 pi0 pi- nu_tau TAUHADNU -0.108 0.775 0.149 1.364 0.400 1.23 0.4; #[Reconstructed PDG2011] +0.000385656 nu_tau K- pi0 pi0 PYTHIA 41; #[Reconstructed PDG2011] +0.008508640 nu_tau pi- pi0 pi0 pi0 PYTHIA 41; #[Reconstructed PDG2011] +0.000864699 nu_tau pi- pi0 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] #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; +# Modes with K0s +# +0.000319939 nu_tau pi- anti-K0 PYTHIA 41; #[Reconstructed PDG2011] +0.001590000 nu_tau K- K0 PYTHIA 41; #[Reconstructed PDG2011] +0.001700000 nu_tau K0 pi- anti-K0 PYTHIA 41; #[Reconstructed PDG2011] +0.001590000 nu_tau K- pi0 K0 PYTHIA 41; #[Reconstructed PDG2011] +0.004000000 nu_tau pi- anti-K0 pi0 PYTHIA 41; #[Reconstructed PDG2011] +# 3 Charged Particles +# +0.093200000 pi- pi- pi+ nu_tau TAUHADNU -0.108 0.775 0.149 1.364 0.400 1.23 0.4; #[Reconstructed PDG2011] +0.046100000 nu_tau pi- pi+ pi- pi0 PYTHIA 41; #[Reconstructed PDG2011] +0.000501526 nu_tau pi- pi- pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.000155646 nu_tau pi- pi- pi+ pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.003420000 nu_tau K- pi+ pi- PYTHIA 41; #[Reconstructed PDG2011] +0.001360000 nu_tau K- pi+ pi- pi0 PYTHIA 41; #[Reconstructed PDG2011] +0.001400000 nu_tau K- pi- K+ PYTHIA 41; #[Reconstructed PDG2011] +0.000015800 nu_tau K- K+ K- PYTHIA 41; #[Reconstructed PDG2011] +# 5 Charged Particles +# +0.000700406 nu_tau pi- pi- pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] +0.000129705 nu_tau pi- pi- pi- pi+ pi+ pi0 PHSP; #[Reconstructed PDG2011] +# Misc other modes +# +0.012000000 K*- nu_tau TAUVECTORNU; #[Reconstructed PDG2011] +0.001390000 nu_tau eta pi- pi0 PYTHIA 41; #[Reconstructed PDG2011] +0.003199387 nu_tau pi- omega pi0 PYTHIA 41; #[Reconstructed PDG2011] +0.000410000 nu_tau K- omega PYTHIA 41; #[Reconstructed PDG2011] +0.002200000 anti-K*0 pi- nu_tau PHSP; #[Reconstructed PDG2011] +0.002100000 K*0 K- nu_tau PHSP; #[Reconstructed PDG2011] +0.000034000 phi pi- nu_tau PHSP; #[Reconstructed PDG2011] +0.000037000 phi K- nu_tau PHSP; #[Reconstructed PDG2011] +0.003600000 mu- anti-nu_mu nu_tau gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.017500000 e- anti-nu_e nu_tau gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.004290000 K- pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] +0.002200000 anti-K0 rho- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000260000 pi- anti-K0 pi0 pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000310000 pi- K0 anti-K0 pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000061000 K- K+ pi- pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000028000 e- e- e+ anti-nu_e nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] +0.004700000 K_1- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001700000 K'_1- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001500000 K'*- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000150000 eta pi- pi0 pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000161000 eta K- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000138000 eta K*- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000048000 eta K- pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000093000 eta anti-K0 pi- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000360000 f_1 pi- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # CDecay tau+ # -# Vector Mesons +# Vector Mesons Updated PDG 2008 # Decay D*+ -0.6830 D0 pi+ VSS; -0.3060 D+ pi0 VSS; -0.0110 D+ gamma VSP_PWAVE; +0.6770 D0 pi+ VSS; +0.3070 D+ pi0 VSS; +0.0160 D+ gamma VSP_PWAVE; Enddecay Decay D*- -0.6830 anti-D0 pi- VSS; -0.3060 D- pi0 VSS; -0.0110 D- gamma VSP_PWAVE; +0.6770 anti-D0 pi- VSS; +0.3070 D- pi0 VSS; +0.0160 D- gamma VSP_PWAVE; Enddecay Decay D*0 -0.6190 D0 pi0 VSS; -0.3810 D0 gamma VSP_PWAVE; +0.619000000 D0 pi0 VSS; #[Reconstructed PDG2011] +0.381000000 D0 gamma VSP_PWAVE; #[Reconstructed PDG2011] Enddecay Decay anti-D*0 0.6190 anti-D0 pi0 VSS; @@ -5570,269 +5786,301 @@ Decay anti-D*0 Enddecay # Decay D_s*+ -0.942 D_s+ gamma VSP_PWAVE; -0.058 D_s+ pi0 VSS; +0.942000000 D_s+ gamma VSP_PWAVE; #[Reconstructed PDG2011] +0.058000000 D_s+ pi0 VSS; #[Reconstructed PDG2011] Enddecay Decay D_s*- -0.942 D_s- gamma VSP_PWAVE; -0.058 D_s- pi0 VSS; +0.942000000 D_s- gamma VSP_PWAVE; #[Reconstructed PDG2011] +0.058000000 D_s- pi0 VSS; #[Reconstructed PDG2011] 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+, +0.055300000 anti-K*0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.088300000 anti-K0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002773020 anti-K_10 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002927076 anti-K_2*0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.004050000 pi0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.001330000 eta e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000385142 eta' e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002200000 rho0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.001600000 omega e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.041000000 K- pi+ e+ nu_e PHOTOS PHSP; #[Reconstructed PDG2011] +0.001078397 anti-K0 pi0 e+ nu_e PHOTOS PHSP; #[Reconstructed PDG2011] +# +0.055000000 anti-K*0 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.094000000 anti-K0 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002773020 anti-K_10 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002927076 anti-K_2*0 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.003312218 pi0 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002002736 eta mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000385142 eta' mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002500000 rho0 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002156793 omega mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.039000000 K- pi+ mu+ nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] +0.001078397 anti-K0 pi0 mu+ nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] +# +# +0.000382000 mu+ nu_mu PHOTOS SLN; #[Reconstructed PDG2011] +0.000770283 tau+ nu_tau SLN; #[Reconstructed PDG2011] +# +0.014900000 K_S0 pi+ PHSP; #[Reconstructed PDG2011] +0.014600000 K_L0 pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 pi+ PHSP; #[Reconstructed PDG2011] +# +0.025950843 a_1+ K_S0 SVS; #[Reconstructed PDG2011] +0.025950843 a_1+ K_L0 SVS; #[Reconstructed PDG2011] +0.000000000 a_1+ anti-K0 SVS; #[Reconstructed PDG2011] +# +0.027090862 anti-K'_10 pi+ SVS; #[Reconstructed PDG2011] +#0.0115 anti-K_0*0N pi+ PHSP; +0.013387523 anti-K*0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +# +# 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+, +0.094000000 K- pi+ pi+ D_DALITZ; #[Reconstructed PDG2011] +# 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; +0.069000000 K_S0 pi+ pi0 D_DALITZ; #[Reconstructed PDG2011] +0.051539652 K_L0 pi+ pi0 D_DALITZ; #[Reconstructed PDG2011] +0.000000000 anti-K0 pi+ pi0 D_DALITZ; #[Reconstructed PDG2011] +#0.0100 anti-K0 eta pi+ PHSP; +# +0.001247859 K_S0 rho0 pi+ PHSP; #[Reconstructed PDG2011] +0.001247859 K_L0 rho0 pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 rho0 pi+ PHSP; #[Reconstructed PDG2011] +# +0.003851416 anti-K0 omega pi+ PHSP; #[Reconstructed PDG2011] +0.007032686 K- rho+ pi+ PHSP; #[Reconstructed PDG2011] +0.009274210 K*- pi+ pi+ PHSP; #[Reconstructed PDG2011] +0.047187552 anti-K*0 pi0 pi+ PHSP; #[Reconstructed PDG2011] +#0.0100 anti-K*0 eta pi+ PHSP; +0.001101505 anti-K*0 rho0 pi+ PHSP; #[Reconstructed PDG2011] +0.003851416 anti-K*0 omega pi+ PHSP; #[Reconstructed PDG2011] +#0.0100 K*- rho+ pi+ PHSP; +# +0.008473116 K- pi+ pi+ pi0 PHSP; #[Reconstructed PDG2011] +# +0.002472609 K_S0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.002472609 K_L0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +# +#0.0188 anti-K0 pi+ pi0 pi0 PHSP; +0.005700000 K- pi+ pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.003851416 K- pi+ pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.006701464 anti-K0 pi+ pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.002695991 anti-K0 pi+ pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +# +0.004600000 K_S0 K_S0 K+ PHSP; #[Reconstructed PDG2011] +0.003111944 K_L0 K_L0 K+ PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 anti-K0 K+ PHSP; #[Reconstructed PDG2011] +# +0.004660214 phi pi+ SVS; #[Reconstructed PDG2011] +0.023000000 phi pi+ pi0 PHSP; #[Reconstructed PDG2011] +# +0.002860000 K_S0 K+ PHSP; #[Reconstructed PDG2011] +0.002195307 K_L0 K+ PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K+ PHSP; #[Reconstructed PDG2011] +# +0.002179902 anti-K*0 K+ SVS; #[Reconstructed PDG2011] +# +0.016000000 K*+ K_S0 SVS; #[Reconstructed PDG2011] +0.011145999 K*+ K_L0 SVS; #[Reconstructed PDG2011] +0.000000000 K*+ anti-K0 SVS; #[Reconstructed PDG2011] +# +#0.0180 anti-K*0 K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.002826940 K+ K- pi+ PHSP; #[Reconstructed PDG2011] +0.000770283 K+ anti-K0 pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K0 pi+ PHSP; #[Reconstructed PDG2011] +0.000770283 K*+ K- pi+ PHSP; #[Reconstructed PDG2011] +0.000770283 K+ K*- pi+ PHSP; #[Reconstructed PDG2011] +0.000770283 K*+ anti-K0 pi0 PHSP; #[Reconstructed PDG2011] +0.000770283 K+ anti-K*0 pi0 PHSP; #[Reconstructed PDG2011] +0.000770283 anti-K*0 K0 pi+ PHSP; #[Reconstructed PDG2011] +0.000770283 anti-K0 K*0 pi+ PHSP; #[Reconstructed PDG2011] +# +0.001260000 pi0 pi+ PHSP; #[Reconstructed PDG2011] +0.000830000 rho0 pi+ SVS; #[Reconstructed PDG2011] +0.002440000 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.004700000 pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.011600000 pi+ pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.003851416 pi+ pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.003430000 eta pi+ PHSP; #[Reconstructed PDG2011] +0.004400000 eta' pi+ PHSP; #[Reconstructed PDG2011] +0.001380000 eta pi+ pi0 PHSP; #[Reconstructed PDG2011] +0.002310850 eta pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.001540566 eta pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] +#lange jul22,2002 +0.001660000 pi+ pi+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] +# +# March 2009 New Modes +0.009300000 anti-K*0 a_1+ PHSP; #[Reconstructed PDG2011] +0.010545178 K+ K- pi+ pi0 PHSP; #[Reconstructed PDG2011] +# +0.001740000 K+ K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.001270967 K+ K_L0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 K+ anti-K0 pi+ pi- PHSP; #[Reconstructed PDG2011] +# +0.002380000 K_S0 K- pi+ pi+ PHSP; #[Reconstructed PDG2011] +0.001756246 K_L0 K- pi+ pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 K0 K- pi+ pi+ PHSP; #[Reconstructed PDG2011] +# +0.000230000 K+ K- pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +# +0.000240000 K+ K- K_S0 pi+ PHSP; #[Reconstructed PDG2011] +0.000161759 K+ K- K_L0 pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 K+ K- anti-K0 pi+ PHSP; #[Reconstructed PDG2011] +# Doubly Cabibbo suppressed modes +0.000237000 K+ pi0 PHSP; #[Reconstructed PDG2011] +0.000332000 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000089000 K+ K+ K- PHSP; #[Reconstructed PDG2011] +0.001720000 K- rho0 pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001600000 eta' pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000210000 K+ rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] 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; +0.055300000 K*0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.088300000 K0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002773020 K_10 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002927076 K_2*0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.004050000 pi0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.001330000 eta e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000385142 eta' e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002200000 rho0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.001600000 omega e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.041000000 K+ pi- e- anti-nu_e PHOTOS PHSP; #[Reconstructed PDG2011] +0.001078397 K0 pi0 e- anti-nu_e PHOTOS PHSP; #[Reconstructed PDG2011] +# +0.055000000 K*0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.094000000 K0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002773020 K_10 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002927076 K_2*0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.003312218 pi0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002002736 eta mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000385142 eta' mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002500000 rho0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002156793 omega mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.039000000 K+ pi- mu- anti-nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] +0.001078397 K0 pi0 mu- anti-nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] +# +0.000382000 mu- anti-nu_mu PHOTOS SLN; #[Reconstructed PDG2011] +0.000770283 tau- anti-nu_tau SLN; #[Reconstructed PDG2011] +# +0.014900000 K_S0 pi- PHSP; #[Reconstructed PDG2011] +0.014600000 K_L0 pi- PHSP; #[Reconstructed PDG2011] +0.000000000 K0 pi- PHSP; #[Reconstructed PDG2011] +# +0.025950843 a_1- K_S0 SVS; #[Reconstructed PDG2011] +0.025950843 a_1- K_L0 SVS; #[Reconstructed PDG2011] +0.000000000 a_1- K0 SVS; #[Reconstructed PDG2011] +# +0.027090862 K'_10 pi- SVS; #[Reconstructed PDG2011] +#0.0115 K_0*0N pi- PHSP; +0.013387523 K*0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] # # 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; +0.094000000 K+ pi- pi- D_DALITZ; #[Reconstructed PDG2011] # 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; +0.069000000 K_S0 pi- pi0 D_DALITZ; #[Reconstructed PDG2011] +0.051539652 K_L0 pi- pi0 D_DALITZ; #[Reconstructed PDG2011] +0.000000000 K0 pi- pi0 D_DALITZ; #[Reconstructed PDG2011] +# +#0.0100 K0 eta pi- PHSP; +0.001247859 K_S0 rho0 pi- PHSP; #[Reconstructed PDG2011] +0.001247859 K_L0 rho0 pi- PHSP; #[Reconstructed PDG2011] +0.000000000 K0 rho0 pi- PHSP; #[Reconstructed PDG2011] +# +0.003851416 K0 omega pi- PHSP; #[Reconstructed PDG2011] +0.007032686 K+ rho- pi- PHSP; #[Reconstructed PDG2011] +0.009274210 K*+ pi- pi- PHSP; #[Reconstructed PDG2011] +0.047187552 K*0 pi0 pi- PHSP; #[Reconstructed PDG2011] +#0.0100 K*0 eta pi- PHSP; +0.001101505 K*0 rho0 pi- PHSP; #[Reconstructed PDG2011] +0.003851416 K*0 omega pi- PHSP; #[Reconstructed PDG2011] +#0.0100 K*+ rho- pi- PHSP; +# +0.008473116 K+ pi- pi- pi0 PHSP; #[Reconstructed PDG2011] +# +0.002472609 K_S0 pi- pi- pi+ PHSP; #[Reconstructed PDG2011] +0.002472609 K_L0 pi- pi- pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 K0 pi- pi- pi+ PHSP; #[Reconstructed PDG2011] +# +#0.0188 K0 pi- pi0 pi0 PHSP; +0.005700000 K+ pi- pi- pi- pi+ PHSP; #[Reconstructed PDG2011] +0.003851416 K+ pi- pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.006701464 K0 pi- pi- pi+ pi0 PHSP; #[Reconstructed PDG2011] +0.002695991 K0 pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +# +0.004600000 K_S0 K_S0 K- PHSP; #[Reconstructed PDG2011] +0.003111944 K_L0 K_L0 K- PHSP; #[Reconstructed PDG2011] +0.000000000 K0 K0 K- PHSP; #[Reconstructed PDG2011] +# +0.004660214 phi pi- SVS; #[Reconstructed PDG2011] +0.023000000 phi pi- pi0 PHSP; #[Reconstructed PDG2011] +# +0.002860000 K_S0 K- PHSP; #[Reconstructed PDG2011] +0.002195307 K_L0 K- PHSP; #[Reconstructed PDG2011] +0.000000000 K0 K- PHSP; #[Reconstructed PDG2011] +# +0.002179902 K*0 K- SVS; #[Reconstructed PDG2011] +# +0.016000000 K*- K_S0 SVS; #[Reconstructed PDG2011] +0.011145999 K*- K_L0 SVS; #[Reconstructed PDG2011] +0.000000000 K*- K0 SVS; #[Reconstructed PDG2011] +# +#0.0180 K*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.002826940 K- K+ pi- PHSP; #[Reconstructed PDG2011] +0.000770283 K- K0 pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K0 pi- PHSP; #[Reconstructed PDG2011] +0.000770283 K*- K+ pi- PHSP; #[Reconstructed PDG2011] +0.000770283 K- K*+ pi- PHSP; #[Reconstructed PDG2011] +0.000770283 K*- K0 pi0 PHSP; #[Reconstructed PDG2011] +0.000770283 K- K*0 pi0 PHSP; #[Reconstructed PDG2011] +0.000770283 K*0 anti-K0 pi- PHSP; #[Reconstructed PDG2011] +0.000770283 K0 anti-K*0 pi- PHSP; #[Reconstructed PDG2011] +# +0.001260000 pi0 pi- PHSP; #[Reconstructed PDG2011] +0.000830000 rho0 pi- SVS; #[Reconstructed PDG2011] +0.002440000 pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.004700000 pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.011600000 pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.003851416 pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.003430000 eta pi- PHSP; #[Reconstructed PDG2011] +0.004400000 eta' pi- PHSP; #[Reconstructed PDG2011] +0.001380000 eta pi- pi0 PHSP; #[Reconstructed PDG2011] +0.002310850 eta pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.001540566 eta pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] +#lange jul22,2002 +0.001660000 pi+ pi- pi+ pi- pi- PHSP; #[Reconstructed PDG2011] +# +# March 2009 New Modes +0.009300000 K*0 a_1- PHSP; #[Reconstructed PDG2011] +0.010545178 K+ K- pi- pi0 PHSP; #[Reconstructed PDG2011] +# +0.001740000 K- K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.001270967 K- K_L0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 K- K0 pi+ pi- PHSP; #[Reconstructed PDG2011] +# +0.002380000 K_S0 K+ pi- pi- PHSP; #[Reconstructed PDG2011] +0.001756246 K_L0 K+ pi- pi- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K+ pi- pi- PHSP; #[Reconstructed PDG2011] +# +0.000230000 K+ K- pi+ pi- pi- PHSP; #[Reconstructed PDG2011] +# +0.000240000 K+ K- K_S0 pi- PHSP; #[Reconstructed PDG2011] +0.000161759 K+ K- K_L0 pi- PHSP; #[Reconstructed PDG2011] +0.000000000 K+ K- K0 pi- PHSP; #[Reconstructed PDG2011] +# Doubly Cabibbo suppressed modes +0.000237000 K- pi0 PHSP; #[Reconstructed PDG2011] +0.000332000 K- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000089000 K- K+ K- PHSP; #[Reconstructed PDG2011] +0.001720000 K+ rho0 pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001600000 eta' pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000210000 K- rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # Decay K*BR @@ -5840,172 +6088,191 @@ Decay K*BR 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, +# updated according to suggestions by P. Roudeau, +# using PDG2004 measurements and imposing the equality +# of sl partial widths for D+ and D0. +# Include additional decay anti-K0 pi- e+ nu_e , K- pi0 e+ nu_e. +# +0.021700000 K*- e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.035500000 K- e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000760000 K_1- e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.001374504 K_2*- e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002890000 pi- e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.001900000 rho- e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.027000000 anti-K0 pi- e+ nu_e PHOTOS PHSP; #[Reconstructed PDG2011] +0.016000000 K- pi0 e+ nu_e PHOTOS PHSP; #[Reconstructed PDG2011] +# +0.019800000 K*- mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.033100000 K- mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000815539 K_1- mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.001374504 K_2*- mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002370000 pi- mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002015940 rho- mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.001007970 anti-K0 pi- mu+ nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] +0.000549802 K- pi0 mu+ nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] +# +0.038900000 K- pi+ PHSP; #[Reconstructed PDG2011] +# +0.012200000 K_S0 pi0 PHSP; #[Reconstructed PDG2011] +0.010000000 K_L0 pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 pi0 PHSP; #[Reconstructed PDG2011] +# +0.004290000 K_S0 eta PHSP; #[Reconstructed PDG2011] +0.003802795 K_L0 eta PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 eta PHSP; #[Reconstructed PDG2011] +# +0.009300000 K_S0 eta' PHSP; #[Reconstructed PDG2011] +0.008980094 K_L0 eta' PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 eta' PHSP; #[Reconstructed PDG2011] +# +0.011100000 omega K_S0 SVS; #[Reconstructed PDG2011] +0.010904400 omega K_L0 SVS; #[Reconstructed PDG2011] +0.000000000 omega anti-K0 SVS; #[Reconstructed PDG2011] +# +0.001603588 anti-K*0 eta SVS; #[Reconstructed PDG2011] +0.000916336 anti-K*0 eta' SVS; #[Reconstructed PDG2011] +0.078000000 a_1+ K- SVS; #[Reconstructed PDG2011] +0.067625607 K*- rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.015800000 anti-K*0 rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.011000000 anti-K*0 omega SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +# 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; +0.139000000 K- pi+ pi0 D_DALITZ; #[Reconstructed PDG2011] +0.006634274 K*BR pi0 SVS; #[Reconstructed PDG2011] +0.016000000 K_1- pi+ SVS; #[Reconstructed PDG2011] +0.006505987 anti-K_10 pi0 SVS; #[Reconstructed PDG2011] +# +# the Dalitz mode below includes K*(892)- pi+ and Kbar0 rho(770)0 resonances +# LHCb PR 09 Apr 2004 split into KS/KL +0.029400000 K_S0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] +0.027856619 K_L0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] +0.000000000 anti-K0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] +# +0.008300000 K_S0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.004425904 K_L0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +# +0.024000000 anti-K*0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.010629499 anti-K*0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.009163361 K*- pi+ pi0 PHSP; #[Reconstructed PDG2011] +0.006231086 K- rho+ pi0 PHSP; #[Reconstructed PDG2011] +0.005305586 K- pi+ rho0 PHSP; #[Reconstructed PDG2011] +0.019000000 K- pi+ omega PHSP; #[Reconstructed PDG2011] +0.009163361 K- pi+ eta PHSP; #[Reconstructed PDG2011] +0.007500000 K- pi+ eta' PHSP; #[Reconstructed PDG2011] +0.013300000 K- pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +# +0.054000000 K_S0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.010079698 K_L0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +# +# K- pi+ pi0 pi0 is (15 +/- 5)% in the PDG, but we decrease it to +# have everything add to 1 and get enough neutral kaons: +#0.02575 K- pi+ pi0 pi0 PHSP; +# +#0.0143 anti-K0 pi0 pi0 pi0 PHSP; +0.000000000 K- pi+ pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.003482077 K- pi+ pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +# +0.002800000 K_S0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.002684865 K_L0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +# +#0.0638 anti-K0 pi+ pi- pi0 pi0 PHSP; +#0.0192 anti-K0 pi+ pi- pi0 pi0 pi0 PHSP; +# +0.002034266 phi K_S0 SVS; #[Reconstructed PDG2011] +0.002034266 phi K_L0 SVS; #[Reconstructed PDG2011] +0.000000000 phi anti-K0 SVS; #[Reconstructed PDG2011] +# +0.004650000 K_S0 K+ K- PHSP; #[Reconstructed PDG2011] +0.002785662 K_L0 K+ K- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K+ K- PHSP; #[Reconstructed PDG2011] +# +0.000950000 K_S0 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] +0.003940000 K+ K- PHSP; #[Reconstructed PDG2011] +0.000190000 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] +0.000366534 K_L0 K_L0 PHSP; #[Reconstructed PDG2011] +0.000366534 K*0 anti-K0 SVS; #[Reconstructed PDG2011] +# +0.000091634 anti-K*0 K_S0 SVS; #[Reconstructed PDG2011] +0.000091634 anti-K*0 K_L0 SVS; #[Reconstructed PDG2011] +0.000000000 anti-K*0 K0 SVS; #[Reconstructed PDG2011] +# +0.000485658 K*- K+ SVS; #[Reconstructed PDG2011] +0.001365341 K*+ K- SVS; #[Reconstructed PDG2011] +0.001282871 anti-K*0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.000714742 phi pi0 SVS; #[Reconstructed PDG2011] +0.001007970 phi pi+ pi- PHSP; #[Reconstructed PDG2011] +0.002430000 K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.002749008 K+ K- pi0 pi0 PHSP; #[Reconstructed PDG2011] +# +0.001280000 K_S0 K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.001255381 K_L0 K_L0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K0 pi+ pi- PHSP; #[Reconstructed PDG2011] +# +0.001374504 anti-K0 K0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +# +0.001397000 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000800000 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.000640000 eta pi0 PHSP; #[Reconstructed PDG2011] +0.000810000 eta' pi0 PHSP; #[Reconstructed PDG2011] +0.001670000 eta eta PHSP; #[Reconstructed PDG2011] +0.009800000 rho+ pi- SVS; #[Reconstructed PDG2011] +0.004970000 rho- pi+ SVS; #[Reconstructed PDG2011] +0.003730000 rho0 pi0 SVS; #[Reconstructed PDG2011] +0.001209564 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.000091634 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.005620000 pi+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] +0.009360000 pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.001510000 pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.005498017 pi+ pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.000420000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] # # 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; +0.000137450 pi- K+ PHSP; #[Reconstructed PDG2011] +0.000128287 pi- K*+ PHSP; #[Reconstructed PDG2011] +0.000274901 pi- K+ pi0 PHSP; #[Reconstructed PDG2011] +0.000247411 K+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +# PR LHCb - 19 Apr. 2004 Add D0 -> mu+ mu- +0.000000000 mu+ mu- PHSP; #[Reconstructed PDG2011] +# +# March 2009 New Modes +0.000140000 phi eta PHSP; #[Reconstructed PDG2011] +0.019000000 anti-K*0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.000220000 K- pi+ pi- pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] +0.000641435 K+ K- pi0 PHSP; #[Reconstructed PDG2011] +0.003100000 K+ K- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.000221000 K+ K- K- pi+ PHSP; #[Reconstructed PDG2011] +# +0.005600000 K_S0 eta pi0 PHSP; #[Reconstructed PDG2011] +0.003665345 K_L0 eta pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 eta pi0 PHSP; #[Reconstructed PDG2011] +# +0.002600000 K_S0 K+ pi- PHSP; #[Reconstructed PDG2011] +0.002382474 K_L0 K+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K+ pi- PHSP; #[Reconstructed PDG2011] +# +0.003500000 K_S0 K- pi+ PHSP; #[Reconstructed PDG2011] +0.003344627 K_L0 K- pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 K0 K- pi+ PHSP; #[Reconstructed PDG2011] +# +0.000310000 K_S0 K_S0 K+ pi- PHSP; #[Reconstructed PDG2011] +0.000293228 K_L0 K_L0 K+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K0 K+ pi- PHSP; #[Reconstructed PDG2011] +# +0.000310000 K_S0 K_S0 K- pi+ PHSP; #[Reconstructed PDG2011] +0.000293228 K_L0 K_L0 K- pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K0 K- pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 K- pi+ pi- e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001820000 rho0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001090000 eta pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001600000 omega pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000450000 eta' pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001260000 eta eta' PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000027000 phi gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000328000 anti-K*0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # # @@ -6015,311 +6282,383 @@ 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; +0.021700000 K*+ e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.035500000 K+ e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000760000 K_1+ e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.001380270 K_2*+ e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002890000 pi+ e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.001900000 rho+ e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.027000000 K0 pi+ e- anti-nu_e PHOTOS PHSP; #[Reconstructed PDG2011] +0.016000000 K+ pi0 e- anti-nu_e PHOTOS PHSP; #[Reconstructed PDG2011] +# +0.019800000 K*+ mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.033100000 K+ mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000818960 K_1+ mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.001380270 K_2*+ mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002370000 pi+ mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002024397 rho+ mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.001012198 K0 pi+ mu- anti-nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] +0.000552108 K+ pi0 mu- anti-nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] +# +0.038900000 K+ pi- PHSP; #[Reconstructed PDG2011] +# +0.012200000 K_S0 pi0 PHSP; #[Reconstructed PDG2011] +0.010000000 K_L0 pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 K0 pi0 PHSP; #[Reconstructed PDG2011] +# +0.004290000 K_S0 eta PHSP; #[Reconstructed PDG2011] +0.003818748 K_L0 eta PHSP; #[Reconstructed PDG2011] +0.000000000 K0 eta PHSP; #[Reconstructed PDG2011] +# +0.009300000 K_S0 eta' PHSP; #[Reconstructed PDG2011] +0.009017767 K_L0 eta' PHSP; #[Reconstructed PDG2011] +0.000000000 K0 eta' PHSP; #[Reconstructed PDG2011] +# +0.011100000 omega K_S0 SVS; #[Reconstructed PDG2011] +0.010950146 omega K_L0 SVS; #[Reconstructed PDG2011] +0.000000000 omega K0 SVS; #[Reconstructed PDG2011] +# +0.001610316 K*0 eta SVS; #[Reconstructed PDG2011] +0.000920180 K*0 eta' SVS; #[Reconstructed PDG2011] +0.078000000 a_1- K+ SVS; #[Reconstructed PDG2011] +0.067909308 K*+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.015800000 K*0 rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.011000000 K*0 omega SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] # 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; +0.139000000 K+ pi- pi0 D_DALITZ; #[Reconstructed PDG2011] +0.006662106 K*0R pi0 SVS; #[Reconstructed PDG2011] +0.016000000 K_1+ pi- SVS; #[Reconstructed PDG2011] +0.006533280 K_10 pi0 SVS; #[Reconstructed PDG2011] # 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; +# LHCb PR 09 Apr 2004, split into KS/KL +0.000000000 K0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] +0.029400000 K_S0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] +0.027973482 K_L0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] +# +0.008300000 K_S0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.004444471 K_L0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 K0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +# +0.024000000 K*0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.010674092 K*0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.009201803 K*+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.006257226 K+ rho- pi0 PHSP; #[Reconstructed PDG2011] +0.005327844 K+ pi- rho0 PHSP; #[Reconstructed PDG2011] +0.019000000 K+ pi- omega PHSP; #[Reconstructed PDG2011] +0.009201803 K+ pi- eta PHSP; #[Reconstructed PDG2011] +0.007500000 K+ pi- eta' PHSP; #[Reconstructed PDG2011] +0.013300000 K+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +# +0.054000000 K_S0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.010121984 K_L0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 K0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +# +# K+ pi- pi0 pi0 is (15 +/- 5)% in the PDG, but we decrease it to +# have everything add to 1 and get enough neutral kaons: +#0.02575 K+ pi- pi0 pi0 PHSP; +# +#0.0143 K0 pi0 pi0 pi0 PHSP; +0.000000000 K+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.003496685 K+ pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +# +0.002800000 K_S0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.002696128 K_L0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 K0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +# +#0.0638 K0 pi- pi+ pi0 pi0 PHSP; +#0.0192 K0 pi- pi+ pi0 pi0 pi0 PHSP; +# +0.002042800 phi K_S0 SVS; #[Reconstructed PDG2011] +0.002042800 phi K_L0 SVS; #[Reconstructed PDG2011] +0.000000000 phi K0 SVS; #[Reconstructed PDG2011] +# +0.004650000 K_S0 K+ K- PHSP; #[Reconstructed PDG2011] +0.002797348 K_L0 K+ K- PHSP; #[Reconstructed PDG2011] +0.000000000 K0 K+ K- PHSP; #[Reconstructed PDG2011] +# +0.000950000 K_S0 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] +0.003940000 K+ K- PHSP; #[Reconstructed PDG2011] +0.000190000 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] +0.000368072 K_L0 K_L0 PHSP; #[Reconstructed PDG2011] +0.000368072 anti-K*0 K0 SVS; #[Reconstructed PDG2011] +# +0.000092018 K*0 K_S0 SVS; #[Reconstructed PDG2011] +0.000092018 K*0 K_L0 SVS; #[Reconstructed PDG2011] +0.000000000 K*0 anti-K0 SVS; #[Reconstructed PDG2011] +# +0.000487696 K*+ K- SVS; #[Reconstructed PDG2011] +0.001371069 K*- K+ SVS; #[Reconstructed PDG2011] +0.001288252 K*0 anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.000717741 phi pi0 SVS; #[Reconstructed PDG2011] +0.001012198 phi pi+ pi- PHSP; #[Reconstructed PDG2011] +0.002430000 K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.002760541 K+ K- pi0 pi0 PHSP; #[Reconstructed PDG2011] +# +0.001280000 K_S0 K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.001260647 K_L0 K_L0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K0 pi+ pi- PHSP; #[Reconstructed PDG2011] +# +0.001380270 anti-K0 K0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +# +0.001397000 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000800000 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.000640000 eta pi0 PHSP; #[Reconstructed PDG2011] +0.000810000 eta' pi0 PHSP; #[Reconstructed PDG2011] +0.001670000 eta eta PHSP; #[Reconstructed PDG2011] +0.009128189 rho+ pi- SVS; #[Reconstructed PDG2011] +0.004637709 rho- pi+ SVS; #[Reconstructed PDG2011] +0.003730000 rho0 pi0 SVS; #[Reconstructed PDG2011] +0.001214638 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.000092018 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.005620000 pi+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] +0.009360000 pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.001510000 pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.005521082 pi+ pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.000420000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] # # 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 -# +0.000138027 pi+ K- PHSP; #[Reconstructed PDG2011] +0.000128825 pi+ K*- PHSP; #[Reconstructed PDG2011] +0.000276054 pi+ K- pi0 PHSP; #[Reconstructed PDG2011] +0.000248449 K- pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +# PR LHCb - 19 Apr. 2004 Add anti-D0 -> mu+ mu- +0.000000000 mu- mu+ PHSP; #[Reconstructed PDG2011] +# +# March 2009 New Modes +0.000140000 phi eta PHSP; #[Reconstructed PDG2011] +0.019000000 K*0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.000220000 K+ pi- pi- pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] +0.000644126 K+ K- pi0 PHSP; #[Reconstructed PDG2011] +0.003100000 K+ K- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.000221000 K+ K+ K- pi- PHSP; #[Reconstructed PDG2011] +# +0.005600000 K_S0 eta pi0 PHSP; #[Reconstructed PDG2011] +0.003680721 K_L0 eta pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 K0 eta pi0 PHSP; #[Reconstructed PDG2011] +# +0.002600000 K_S0 K- pi+ PHSP; #[Reconstructed PDG2011] +0.002392469 K_L0 K- pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 K0 K- pi+ PHSP; #[Reconstructed PDG2011] +# +0.003500000 K_S0 K+ pi- PHSP; #[Reconstructed PDG2011] +0.003358658 K_L0 K+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K+ pi- PHSP; #[Reconstructed PDG2011] +# +0.000310000 K_S0 K_S0 K+ pi- PHSP; #[Reconstructed PDG2011] +0.000294458 K_L0 K_L0 K+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K0 K+ pi- PHSP; #[Reconstructed PDG2011] +# +0.000310000 K_S0 K_S0 K- pi+ PHSP; #[Reconstructed PDG2011] +0.000294458 K_L0 K_L0 K- pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K0 K- pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 K+ pi- pi+ e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001820000 rho0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001090000 eta pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001600000 omega pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000450000 eta' pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001260000 eta eta' PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000027000 phi gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000328000 K*0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +Enddecay +# +# Updated to PDG 2008 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 -# +0.024900000 phi e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.026700000 eta e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.009900000 eta' e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002058115 anti-K0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000762265 anti-K*0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.018309605 phi mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.022845082 eta mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.008186726 eta' mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002058115 anti-K0 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000762265 anti-K*0 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.005800000 mu+ nu_mu PHOTOS SLN; #[Reconstructed PDG2011] +0.031100000 tau+ nu_tau SLN; #[Reconstructed PDG2011] +### Lange Nov14, 2004 - average cleo + babar (prelim) using stat error only.. +0.045000000 phi pi+ SVS; #[Reconstructed PDG2011] +0.015600000 eta pi+ PHSP; #[Reconstructed PDG2011] +0.038000000 eta' pi+ PHSP; #[Reconstructed PDG2011] +0.002300000 omega pi+ SVS; #[Reconstructed PDG2011] +0.000200000 rho0 pi+ SVS; #[Reconstructed PDG2011] +0.000304906 rho+ pi0 SVS; #[Reconstructed PDG2011] +#? +0.000076226 pi+ pi0 PHSP; #[Reconstructed PDG2011] +0.007622650 f_0 pi+ PHSP; #[Reconstructed PDG2011] +0.000914718 f_2 pi+ PHSP; #[Reconstructed PDG2011] +0.084000000 phi rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.089000000 rho+ eta SVS; #[Reconstructed PDG2011] +0.125000000 rho+ eta' SVS; #[Reconstructed PDG2011] +0.010800000 pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] +0.006500000 pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.007622650 phi pi+ pi0 PHSP; #[Reconstructed PDG2011] +0.011433975 eta pi+ pi0 PHSP; #[Reconstructed PDG2011] +0.011433975 eta' pi+ pi0 PHSP; #[Reconstructed PDG2011] +0.012100000 phi pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] +0.003811325 phi pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.003811325 eta pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] +0.003811325 eta pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] +# +0.014900000 K_S0 K+ PHSP; #[Reconstructed PDG2011] +0.011472088 K_L0 K+ PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K+ PHSP; #[Reconstructed PDG2011] +# +0.030490600 anti-K*0 K+ SVS; #[Reconstructed PDG2011] +0.054000000 K*+ anti-K0 SVS; #[Reconstructed PDG2011] +0.072000000 anti-K*0 K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.002286795 anti-K0 K+ pi0 PHSP; #[Reconstructed PDG2011] +0.000914718 anti-K*0 K+ pi0 PHSP; #[Reconstructed PDG2011] +0.000914718 K*+ anti-K0 pi0 PHSP; #[Reconstructed PDG2011] +0.003049060 anti-K*0 K*+ pi0 PHSP; #[Reconstructed PDG2011] +0.003811325 K+ K- pi+ PHSP; #[Reconstructed PDG2011] +# +0.009600000 K_S0 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.007470197 K_L0 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] +# +0.000762265 anti-K0 K+ pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 K+ K- pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] +0.000152453 phi K+ SVS; #[Reconstructed PDG2011] +0.001390000 eta K+ PHSP; #[Reconstructed PDG2011] +0.001600000 eta' K+ PHSP; #[Reconstructed PDG2011] +0.000152453 eta K+ pi0 PHSP; #[Reconstructed PDG2011] +0.000152453 eta K+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000152453 eta' K+ pi0 PHSP; #[Reconstructed PDG2011] +0.000152453 eta' K+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000490000 K+ K- K+ PHSP; #[Reconstructed PDG2011] +# +0.001200000 K_S0 pi+ PHSP; #[Reconstructed PDG2011] +0.000968077 K_L0 pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 K0 pi+ PHSP; #[Reconstructed PDG2011] +# +0.001143397 rho+ K0 SVS; #[Reconstructed PDG2011] +0.002700000 rho0 K+ SVS; #[Reconstructed PDG2011] +0.010000000 K0 pi+ pi0 PHSP; #[Reconstructed PDG2011] +0.001905662 a_1+ K0 SVS; #[Reconstructed PDG2011] +0.006021893 K*0 pi+ SVS; #[Reconstructed PDG2011] +0.003811325 K*0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.003811325 K*0 pi+ pi0 PHSP; #[Reconstructed PDG2011] +# +# March 2009 New Modes +0.000820000 K+ pi0 PHSP; #[Reconstructed PDG2011] +0.004200000 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.008000000 pi+ pi+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] +0.049000000 pi+ pi+ pi+ pi- pi- pi0 PHSP; #[Reconstructed PDG2011] +0.001300000 p+ anti-n0 PHSP; #[Reconstructed PDG2011] +# +0.000840000 K_S0 K_S0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000686038 K_L0 K_L0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +# +0.002900000 K_S0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.002424003 K_L0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] +# Doubly Cabibbo suppressed +0.000129000 K+ K+ pi- PHSP; #[Reconstructed PDG2011] +0.003700000 K0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001800000 K*0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000000 K+ K- pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.028000000 omega pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.016000000 omega pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +Enddecay +# +# Updated to PDG 2008 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; +0.024900000 phi e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.026700000 eta e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.009900000 eta' e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002058115 K0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000762265 K*0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.018309605 phi mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.022845082 eta mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.008186726 eta' mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.002058115 K0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000762265 K*0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] +0.005800000 mu- anti-nu_mu PHOTOS SLN; #[Reconstructed PDG2011] +0.031100000 tau- anti-nu_tau SLN; #[Reconstructed PDG2011] +0.045000000 phi pi- SVS; #[Reconstructed PDG2011] +0.015600000 eta pi- PHSP; #[Reconstructed PDG2011] +0.038000000 eta' pi- PHSP; #[Reconstructed PDG2011] +0.002300000 omega pi- SVS; #[Reconstructed PDG2011] +0.000200000 rho0 pi- SVS; #[Reconstructed PDG2011] +0.000304906 rho- pi0 SVS; #[Reconstructed PDG2011] +0.000076226 pi- pi0 PHSP; #[Reconstructed PDG2011] +0.007622650 f_0 pi- PHSP; #[Reconstructed PDG2011] +0.000914718 f_2 pi- PHSP; #[Reconstructed PDG2011] +0.084000000 phi rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.089000000 rho- eta SVS; #[Reconstructed PDG2011] +0.125000000 rho- eta' SVS; #[Reconstructed PDG2011] +0.010800000 pi- pi- pi+ PHSP; #[Reconstructed PDG2011] +0.006500000 pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.007622650 phi pi- pi0 PHSP; #[Reconstructed PDG2011] +0.011433975 eta pi- pi0 PHSP; #[Reconstructed PDG2011] +0.011433975 eta' pi- pi0 PHSP; #[Reconstructed PDG2011] +0.012100000 phi pi- pi- pi+ PHSP; #[Reconstructed PDG2011] +0.003811325 phi pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.003811325 eta pi- pi- pi+ PHSP; #[Reconstructed PDG2011] +0.003811325 eta pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] +# +0.014900000 K_S0 K- PHSP; #[Reconstructed PDG2011] +0.011472088 K_L0 K- PHSP; #[Reconstructed PDG2011] +0.000000000 K0 K- PHSP; #[Reconstructed PDG2011] +# +0.030490600 K*0 K- SVS; #[Reconstructed PDG2011] +0.054000000 K*- K0 SVS; #[Reconstructed PDG2011] +0.072000000 K*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.002286795 K0 K- pi0 PHSP; #[Reconstructed PDG2011] +0.000914718 K*0 K- pi0 PHSP; #[Reconstructed PDG2011] +0.000914718 K*- K0 pi0 PHSP; #[Reconstructed PDG2011] +0.003049060 K*0 K*- pi0 PHSP; #[Reconstructed PDG2011] +0.003811325 K+ K- pi- PHSP; #[Reconstructed PDG2011] +# +0.009600000 K_S0 K- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.007470197 K_L0 K- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 K0 K- pi+ pi- PHSP; #[Reconstructed PDG2011] +# +0.000762265 K0 K- pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 K- K+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000152453 phi K- SVS; #[Reconstructed PDG2011] +0.001390000 eta K- PHSP; #[Reconstructed PDG2011] +0.001600000 eta' K- PHSP; #[Reconstructed PDG2011] +0.000152453 eta K- pi0 PHSP; #[Reconstructed PDG2011] +0.000152453 eta K- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000152453 eta' K- pi0 PHSP; #[Reconstructed PDG2011] +0.000152453 eta' K- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000490000 K- K- K+ PHSP; #[Reconstructed PDG2011] +# +0.001200000 K_S0 pi- PHSP; #[Reconstructed PDG2011] +0.000968077 K_L0 pi- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 pi- PHSP; #[Reconstructed PDG2011] +# +0.001143397 rho- anti-K0 SVS; #[Reconstructed PDG2011] +0.002700000 rho0 K- SVS; #[Reconstructed PDG2011] +0.010000000 anti-K0 pi- pi0 PHSP; #[Reconstructed PDG2011] +0.001905662 a_1- anti-K0 SVS; #[Reconstructed PDG2011] +0.006021893 anti-K*0 pi- SVS; #[Reconstructed PDG2011] +0.003811325 anti-K*0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.003811325 anti-K*0 pi- pi0 PHSP; #[Reconstructed PDG2011] +# +# March 2009 New Modes +0.000820000 K- pi0 PHSP; #[Reconstructed PDG2011] +0.004200000 K- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.008000000 pi+ pi+ pi- pi- pi- PHSP; #[Reconstructed PDG2011] +0.049000000 pi+ pi+ pi- pi- pi- pi0 PHSP; #[Reconstructed PDG2011] +0.001300000 anti-p- n0 PHSP; #[Reconstructed PDG2011] +# +0.000840000 K_S0 K_S0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] +0.000686038 K_L0 K_L0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] +0.000000000 anti-K0 K0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] +# +0.002900000 K_S0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] +0.002424003 K_L0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] +0.000000000 K0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] +# Doubly Cabibbo suppressed +0.000129000 K- K- pi+ PHSP; #[Reconstructed PDG2011] +0.003700000 anti-K0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001800000 anti-K*0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000000 K- K+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.028000000 omega pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.016000000 omega pi- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # # D** @@ -6352,28 +6691,20 @@ 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; +0.3333 D*+ pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.6667 D*0 pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; 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; +0.3333 D*- pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.6667 anti-D*0 pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; 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; +0.3333 D*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.6667 D*+ pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; 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; +0.3333 anti-D*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.6667 D*- pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; Enddecay # Decay D'_1+ @@ -6389,9 +6720,8 @@ Decay D'_10 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; - +0.6667 D*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; Enddecay # @@ -6423,9 +6753,8 @@ Decay D_2*0 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.2090 D*- pi+ 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 @@ -6483,9 +6812,8 @@ Decay D(2S)0 0.3333 D*0 pi0 SVS; Enddecay Decay anti-D(2S)0 -0.6667 D*- pi+ SVS; 0.3333 anti-D*0 pi0 SVS; - +0.6667 D*- pi+ SVS; Enddecay Decay D(2S)+ 0.3333 D*+ pi0 SVS; @@ -6502,9 +6830,8 @@ Decay D*(2S)0 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.3333 D*- pi+ 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 @@ -6522,12 +6849,19 @@ Decay D*(2S)- Enddecay # # -# Strange Mesons +# Strange Mesons updated to PDG 2008 # # Decay K_S0 -0.6861 pi+ pi- PHSP; -0.3139 pi0 pi0 PHSP; +0.691321852 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.306221852 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.000000201 pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001722185 pi+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000042831 pi+ pi- e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000025 pi0 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000002399 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000344328 pi+ e- nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000344328 pi- e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # # K_L0 is decayed in GEANT @@ -6546,20 +6880,23 @@ Decay K*0 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; +0.6657 K0 pi+ VSS; +0.3323 K+ pi0 VSS; +0.0020 K+ gamma VSP_PWAVE; Enddecay +# Decay K*- -0.6660 anti-K0 pi- VSS; -0.3330 K- pi0 VSS; -0.0010 K- gamma VSP_PWAVE; +0.6657 anti-K0 pi- VSS; +0.3323 K- pi0 VSS; +0.0020 K- gamma VSP_PWAVE; Enddecay # # The decays below are for particle aliases and used when @@ -6625,6 +6962,7 @@ Decay K_10 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; @@ -6648,6 +6986,7 @@ Decay K_1+ 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; @@ -6669,6 +7008,7 @@ Decay K'_1+ 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; @@ -6678,6 +7018,7 @@ Decay K'_1- 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; @@ -6687,6 +7028,7 @@ Decay K'_10 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; @@ -6698,55 +7040,62 @@ Decay anti-K'_10 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; +0.3340 K0 pi+ TSS; +0.1670 K+ pi0 TSS; +0.1645 K*0 pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0835 K*+ pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0450 K*0 pi+ pi0 PHSP; +0.0450 K*+ pi+ pi- PHSP; +0.0450 K*+ pi0 pi0 PHSP; +0.0580 rho+ K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0290 rho0 K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0290 omega 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; +0.3340 anti-K0 pi- TSS; +0.1670 K- pi0 TSS; +0.1645 anti-K*0 pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0835 K*- pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0450 anti-K*0 pi- pi0 PHSP; +0.0450 K*- pi+ pi- PHSP; +0.0450 K*- pi0 pi0 PHSP; +0.0580 rho- K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0290 rho0 K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0290 omega 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; +0.3340 K+ pi- TSS; +0.1670 K0 pi0 TSS; +0.1645 K*+ pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0835 K*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0450 K*0 pi+ pi- PHSP; +0.0450 K*0 pi0 pi0 PHSP; +0.0450 K*+ pi- pi0 PHSP; +0.0580 rho- K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0290 rho0 K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0290 omega 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; +0.3340 K- pi+ TSS; +0.1670 anti-K0 pi0 TSS; +0.1645 K*- pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0835 anti-K*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0450 anti-K*0 pi+ pi- PHSP; +0.0450 anti-K*0 pi0 pi0 PHSP; +0.0450 K*- pi+ pi0 PHSP; +0.0580 rho+ K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0290 rho0 anti-K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0290 omega anti-K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; Enddecay # Decay K*(1410) -Decay K'*0 +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; @@ -6755,7 +7104,7 @@ Decay K'*0 0.0220 rho0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; Enddecay # -Decay anti-K'*0 +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; @@ -6764,7 +7113,7 @@ Decay anti-K'*0 0.0220 rho0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; Enddecay # -Decay K'*+ +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; @@ -6773,19 +7122,19 @@ Decay K'*+ 0.0220 rho0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; Enddecay # -Decay K'*- +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.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*(1680) -Decay K''*0 +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; @@ -6794,7 +7143,7 @@ Decay K''*0 0.0997 rho0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; Enddecay # -Decay anti-K''*0 +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; @@ -6803,8 +7152,8 @@ Decay anti-K''*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; +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; @@ -6812,12 +7161,12 @@ Decay K''*+ 0.0997 rho0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; Enddecay # -Decay K''*- +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.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 @@ -6837,21 +7186,6 @@ 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; @@ -6862,77 +7196,25 @@ Decay anti-Xss Enddecay # -# Light Mesons +# Light Mesons Updated to PDG 2008 # Decay pi0 -0.9880 gamma gamma PHSP; -0.0120 e+ e- gamma PI0_DALITZ; +0.988228297 gamma gamma PHSP; #[Reconstructed PDG2011] +0.011738247 e+ e- gamma PI0_DALITZ; #[Reconstructed PDG2011] +0.000033392 e+ e+ e- e- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000065 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] 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; +0.393100000 gamma gamma PHSP; #[Reconstructed PDG2011] +0.325700000 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.227400000 pi- pi+ pi0 ETA_DALITZ; #[Reconstructed PDG2011] +0.046000000 gamma pi- pi+ PHSP; #[Reconstructed PDG2011] +0.007000000 gamma e+ e- PHSP; #[Reconstructed PDG2011] +0.000310000 gamma mu+ mu- PHSP; #[Reconstructed PDG2011] +0.000270000 gamma gamma pi0 PHSP; #[Reconstructed PDG2011] +0.000214200 pi+ pi- e+ e- PHSP; #[Reconstructed PDG2011] +0.000005800 mu+ mu- PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # Decay rho0 @@ -6946,38 +7228,53 @@ Decay rho- 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; +0.892000000 pi- pi+ pi0 OMEGA_DALITZ; #[Reconstructed PDG2011] +0.082800000 pi0 gamma VSP_PWAVE; #[Reconstructed PDG2011] +0.015300000 pi- pi+ VSS; #[Reconstructed PDG2011] +0.000460000 eta gamma VSP_PWAVE; #[Reconstructed PDG2011] +0.000770000 pi0 e+ e- PHOTOS PHSP; #[Reconstructed PDG2011] +0.000130000 pi0 mu+ mu- PHOTOS PHSP; #[Reconstructed PDG2011] +0.00150 pi+ pi- gamma PHSP; +0.000066000 pi0 pi0 gamma PHSP; #[Reconstructed PDG2011] +0.00050 pi+ pi- pi+ pi- PHSP; +0.000072800 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000090000 mu+ mu- PHSP; #[New mode added] #[Reconstructed PDG2011] 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; +0.432000000 pi+ pi- eta PHSP; #[Reconstructed PDG2011] +0.217000000 pi0 pi0 eta PHSP; #[Reconstructed PDG2011] +0.293511000 rho0 gamma SVP_HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.027500000 omega gamma SVP_HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +0.022200000 gamma gamma PHSP; #[Reconstructed PDG2011] +0.001680000 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.000109000 gamma mu- mu+ PHOTOS PHSP; #[Reconstructed PDG2011] +0.003600000 pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.002400000 pi+ pi- e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] 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.489000000 K+ K- VSS; #[Reconstructed PDG2011] +0.342000000 K_L0 K_S0 VSS; #[Reconstructed PDG2011] +0.0425 rho+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0425 rho0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0425 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; +0.013090000 eta gamma VSP_PWAVE; #[Reconstructed PDG2011] +0.000687600 pi0 gamma VSP_PWAVE; #[Reconstructed PDG2011] +0.000295400 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] +0.000287000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] +0.000113000 pi0 pi0 gamma PHSP; #[Reconstructed PDG2011] +0.000115000 eta e+ e- PHSP; #[Reconstructed PDG2011] +0.000322000 f_0 gamma PHSP; #[Reconstructed PDG2011] +0.000074000 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000047000 omega pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000041000 pi+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000004000 pi+ pi- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011200 pi0 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000072700 pi0 eta gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000062500 eta' gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000014000 mu+ mu- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # Decay a_1+ @@ -6996,28 +7293,33 @@ 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; +0.1430 eta pi+ TSS; +0.1000 omega pi+ pi0 PHSP; +0.0490 anti-K0 K+ TSS; +0.0027 pi+ gamma PHSP; +0.0053 eta' pi+ TSS; 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; +0.1430 eta pi- TSS; +0.1000 omega pi- pi0 PHSP; +0.0490 anti-K0 K- TSS; +0.0027 pi- gamma PHSP; +0.0053 eta' pi- TSS; 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; +0.1430 eta pi0 TSS; +0.1000 omega pi+ pi- PHSP; +0.0245 K+ K- TSS; +0.01225 K_L0 K_L0 TSS; +0.01225 K_S0 K_S0 TSS; +0.0027 pi0 gamma PHSP; +0.0053 eta' pi0 TSS; Enddecay # Decay b_1+ @@ -7049,11 +7351,11 @@ Decay a_0- 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; +0.6667 pi+ pi- PHSP; +0.3333 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 @@ -7067,20 +7369,23 @@ Decay f'_0 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; +0.110000000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.043364159 rho0 pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.043442860 rho+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.043442860 rho- pi+ pi0 PHSP; #[Reconstructed PDG2011] +0.094440999 a_00 pi0 VSS; #[Reconstructed PDG2011] +0.094440999 a_0+ pi- VSS; #[Reconstructed PDG2011] +0.094440999 a_0- pi+ VSS; #[Reconstructed PDG2011] +0.086570916 eta pi+ pi- PHSP; #[Reconstructed PDG2011] +0.043285458 eta pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.020226114 K+ K- pi0 PHSP; #[Reconstructed PDG2011] +0.010152407 K0 anti-K0 pi0 PHSP; #[Reconstructed PDG2011] +0.020226114 anti-K0 K+ pi- PHSP; #[Reconstructed PDG2011] +0.020226114 K0 K- pi+ PHSP; #[Reconstructed PDG2011] +0.055000000 gamma rho0 PHSP; #[Reconstructed PDG2011] +0.220000000 pi0 pi0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000000 pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000740000 phi gamma PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # Decay f'_1 @@ -7093,34 +7398,36 @@ 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.028000000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.071000000 pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.003000000 pi0 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] 0.0230 K+ K- TSS; 0.0115 K_S0 K_S0 TSS; 0.0115 K_L0 K_L0 TSS; -0.0040 eta eta TSS; +0.004000000 eta eta TSS; #[Reconstructed PDG2011] +0.000016400 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] 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; +0.019000000 eta eta' PHSP; #[Reconstructed PDG2011] +0.051000000 eta eta PHSP; #[Reconstructed PDG2011] +0.1410 pi0 pi0 pi0 pi0 PHSP; +0.3540 pi+ pi- pi+ pi- PHSP; +0.2330 pi+ pi- PHSP; +0.1160 pi0 pi0 PHSP; +0.0430 K+ K- PHSP; +0.0215 K_S0 K_S0 PHSP; +0.0215 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; +0.443904021 K+ K- TSS; #[Reconstructed PDG2011] +0.221952010 K_S0 K_S0 TSS; #[Reconstructed PDG2011] +0.221952010 K_L0 K_L0 TSS; #[Reconstructed PDG2011] +0.104000000 eta eta TSS; #[Reconstructed PDG2011] +0.005493862 pi+ pi- TSS; #[Reconstructed PDG2011] +0.002696987 pi0 pi0 TSS; #[Reconstructed PDG2011] +0.000001110 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # Decay h_1 @@ -7135,9 +7442,9 @@ Decay h'_1 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+ pi0 PHSP; 0.4000 pi+ pi+ pi- pi0 PHSP; 0.2000 pi+ pi0 pi0 pi0 PHSP; Enddecay @@ -7152,1368 +7459,1007 @@ Decay rho(2S)0 0.1500 pi+ pi- pi0 pi0 PHSP; 0.1000 pi0 pi0 pi0 pi0 PHSP; Enddecay -Decay rho(3S)0 +Decay phi(1680) 0.08 pi+ pi- PHSP; 0.05 pi+ pi+ pi- pi- PHSP; -0.10 pi0 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.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.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.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.02 eta pi0 pi+ pi- PHSP; 0.01 eta rho- pi0 pi+ PHSP; 0.01 eta rho+ pi0 pi- PHSP; Enddecay -Decay omega(1650) +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- 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.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.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.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.02 eta pi0 pi+ pi- PHSP; 0.01 eta rho- pi0 pi+ PHSP; 0.01 eta rho+ pi0 pi- PHSP; Enddecay -Decay rho(1900) +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- 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.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.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.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.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- 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.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.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.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.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 # # -# cc= mesons +# cc= mesons Updated to PDG 2008 # 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.001300000 p+ anti-p- PHSP; #[Reconstructed PDG2011] +0.002700000 phi phi SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0; #[Reconstructed PDG2011] +0.002900000 phi K+ K- PHSP; #[Reconstructed PDG2011] 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.012000000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.001600000 K+ K- K+ K- PHSP; #[Reconstructed PDG2011] +0.015000000 K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.0327 eta pi+ pi- PHSP; +0.0163 eta pi0 pi0 PHSP; +0.0273 eta' pi+ pi- PHSP; +0.0137 eta' pi0 pi0 PHSP; +0.0117 pi0 K+ K- PHSP; +0.0233 K+ anti-K0 pi- PHSP; +0.0233 K- K0 pi+ PHSP; +0.0117 K0 anti-K0 pi0 PHSP; 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.01 K*0 K- pi+ PHSP; +0.01 anti-K*0 K+ pi- PHSP; # -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; +#March 2009 New Modes +0.01500 K*0 anti-K*0 pi+ pi- PHSP; +0.007100000 K+ K- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.015000000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.001040000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] +0.007600000 f_2 f_2 PHSP; #[Reconstructed PDG2011] +0.027000000 f_2 f'_2 PHSP; #[Reconstructed PDG2011] +# +0.682497000 rndmflav anti-rndmflav PYTHIA 12; #[Reconstructed PDG2011] +0.000063000 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] 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 + 0.019 K+ anti-K0 pi- PHSP; + 0.019 K- K0 pi+ PHSP; + 0.0095 pi0 K+ K- PHSP; + 0.0095 K0 anti-K0 pi0 PHSP; + 0.943 rndmflav anti-rndmflav PYTHIA 12; +Enddecay # 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). +0.059400000 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] +0.059300000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] +0.005600000 rho0 pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +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.004000000 omega pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.00364 a_20 rho0 PHSP; +0.00363 a_2+ rho- PHSP; +0.00363 a_2- rho+ PHSP; +0.008500000 omega pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.004300000 omega f_2 PHSP; #[Reconstructed PDG2011] +0.004300000 omega pi+ pi- PHSP; #[Reconstructed PDG2011] +0.00300 K*0 anti-K_2*0 PHSP; +0.00300 anti-K*0 K_2*0 PHSP; +0.00305 omega K*0 anti-K0 PHSP; +0.00305 omega anti-K*0 K0 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.002195 K*0 anti-K0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.002195 anti-K*0 K0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.00190 K_1+ K- PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.00190 K_1- K+ PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.003400000 omega pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.001500000 b_1+ pi- PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.001500000 b_1- pi+ PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +# +0.001700000 omega pi- K+ K_S0 PHSP; #[Reconstructed PDG2011] +0.0017 omega pi- K+ K_L0 PHSP; +0.001700000 omega pi+ K- K_S0 PHSP; #[Reconstructed PDG2011] +0.0017 omega pi+ K- K_L0 PHSP; +0.0000 omega pi- K+ K0 PHSP; +0.0000 omega pi- K+ anti-K0 PHSP; +0.0000 omega pi+ K- K0 PHSP; +0.0000 omega pi+ K- anti-K0 PHSP; +# +0.002300000 b_10 pi0 PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.002290000 eta pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000545 phi K*0 anti-K0 PHSP; +0.000545 phi anti-K*0 K0 PHSP; +0.000545 phi K*+ K- PHSP; +0.000545 phi K*- K+ PHSP; +0.0008 omega K0 anti-K0 PHSP; +0.0008 omega K+ K- PHSP; +0.001660000 phi pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.001600000 Delta++ anti-p- pi- PHSP; #[Reconstructed PDG2011] +0.0016 anti-Delta-- p+ pi+ PHSP; +0.001740000 omega eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.000915 phi K0 anti-K0 PHSP; +0.000915 phi K+ K- PHSP; +0.001100000 omega p+ anti-p- PHSP; #[Reconstructed PDG2011] +0.0011 Delta++ anti-Delta-- PHSP; +0.000515 Sigma- anti-Sigma+ PHSP; +0.001500000 Sigma+ anti-Sigma- PHSP; #[Reconstructed PDG2011] +0.000720000 eta pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000147000 pi+ pi- PHSP; #[Reconstructed PDG2011] + +0.017000000 gamma eta_c PHSP; #[Reconstructed PDG2011] +0.008300000 gamma pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.0061 gamma eta pi+ pi- PHSP; +0.00225 gamma rho+ rho- PHSP; +0.00225 gamma rho0 rho0 PHSP; +0.005280000 gamma eta' PHSP; #[Reconstructed PDG2011] +0.001850000 gamma pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.002100000 gamma K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.001610000 gamma omega omega PHSP; #[Reconstructed PDG2011] +0.001430000 gamma f_2 PHSP; #[Reconstructed PDG2011] +0.0040 gamma K*0 anti-K*0 PHSP; +# +# March 2009 New Modes +0.001100000 eta pi- K+ K_S0 PHSP; #[Reconstructed PDG2011] +0.0011 eta pi- K+ K_L0 PHSP; +0.001100000 eta pi+ K- K_S0 PHSP; #[Reconstructed PDG2011] +0.0011 eta pi+ K- K_L0 PHSP; +0.0000 eta pi- K+ K0 PHSP; +0.0000 eta pi- K+ anti-K0 PHSP; +0.0000 eta pi+ K- K0 PHSP; +0.0000 eta pi+ K- anti-K0 PHSP; +# +0.055000000 pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.029000000 pi+ pi- pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.020700000 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.019400000 pi+ pi- pi0 K+ K- PHSP; #[Reconstructed PDG2011] +0.016100000 pi+ pi- pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.009000000 pi+ pi- pi+ pi- pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.006600000 pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] +0.001840000 pi+ pi- K+ K- eta PHSP; #[Reconstructed PDG2011] +0.002450000 pi0 pi0 K+ K- PHSP; #[Reconstructed PDG2011] +0.005000000 pi+ pi- pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] +0.00102 K+ K- pi0 PHSP; +0.00102 K0 anti-K0 pi0 PHSP; +0.00203 K+ anti-K0 pi- PHSP; +0.00203 K- K0 pi+ PHSP; +0.003550000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +#### Already included above 0.00229 pi+ pi- pi+ pi- eta PHSP; +0.004300000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.002170000 p+ anti-p- PHSP; #[Reconstructed PDG2011] +0.001190000 p+ anti-p- pi0 PHSP; #[Reconstructed PDG2011] +0.006000000 p+ anti-p- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.002300000 p+ anti-p- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.002000000 p+ anti-p- eta PHSP; #[Reconstructed PDG2011] +0.002200000 n0 anti-n0 PHSP; #[Reconstructed PDG2011] +0.004000000 n0 anti-n0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.001290000 Sigma0 anti-Sigma0 PHSP; #[Reconstructed PDG2011] +0.002120000 p+ anti-n0 pi- PHSP; #[Reconstructed PDG2011] +0.001200000 Xi0 anti-Xi0 PHSP; #[Reconstructed PDG2011] +0.000850000 Xi- anti-Xi+ PHSP; #[Reconstructed PDG2011] +0.001610000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] +# +0.084693481 rndmflav anti-rndmflav PYTHIA 12; #[Reconstructed PDG2011] +0.365559757 g g g PYTHIA 4; #[Reconstructed PDG2011] +0.032103862 gamma g g PYTHIA 4; #[Reconstructed PDG2011] +0.0 K0 anti-K0 PHSP; +0.0 K_S0 K_S0 PHSP; +0.0 K_L0 K_L0 PHSP; +0.000146000 K_S0 K_L0 PHSP; #[Reconstructed PDG2011] +0.001900000 K'_1+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001900000 K'_1- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000800000 phi f'_2 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000870000 phi pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000560000 phi pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000680000 omega f'_1 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000750000 phi eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000590000 Xi*- anti-Xi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000450000 omega pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000400000 phi eta' PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000320000 phi f_0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000320000 Xi*0 anti-Xi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000260000 phi f_1 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000400000 eta pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000182000 omega eta' PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000140000 omega f_0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000230000 K*0 anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000720000 phi f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000210000 p+ anti-p- eta' PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000045000 p+ anti-p- phi PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000890000 p+ K- anti-Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000760000 K+ K- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000290000 p+ K- anti-Sigma0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000237000 K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000260000 Lambda0 anti-Lambda0 eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000012000 gamma gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000950000 gamma f_2 f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001104000 gamma eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000610000 gamma f_1 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000450000 gamma f'_2 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000400000 gamma phi phi PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000380000 gamma p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000034900 gamma pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.008800000 gamma e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] +Enddecay # 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; +0.007720000 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] +0.007700000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] +0.003000000 tau+ tau- PHOTOS VLL; #[Reconstructed PDG2011] +0.336000000 J/psi pi+ pi- VVPIPI; #[Reconstructed PDG2011] +0.177300000 J/psi pi0 pi0 VVPIPI; #[Reconstructed PDG2011] +0.032800000 J/psi eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.001300000 J/psi pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.096200000 gamma chi_c0 PHSP; #[Reconstructed PDG2011] +0.092000000 gamma chi_c1 PHSP; #[Reconstructed PDG2011] +0.087400000 gamma chi_c2 PHSP; #[Reconstructed PDG2011] +0.003400000 gamma eta_c PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.000121000 gamma eta' PHSP; #[Reconstructed PDG2011] +0.000210000 gamma f_2 PHSP; #[Reconstructed PDG2011] +0.003500000 pi+ pi- pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.000350000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.002900000 pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.000200000 b_1+ pi- PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.000200000 b_1- pi+ PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.000240000 b_10 pi0 PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.000168000 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +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.000022 rho0 eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.000021000 omega pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.000028000 phi eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +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.000001 phi pi0 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.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.000185000 omega K+ K- PHSP; #[Reconstructed PDG2011] +0.000340000 K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000600000 p+ anti-p- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000133000 p+ anti-p- pi0 PHSP; #[Reconstructed PDG2011] +0.000276000 p+ anti-p- PHSP; #[Reconstructed PDG2011] +0.000500000 K_1+ K- PHSP; #[Reconstructed PDG2011] +0.000500000 K_1- K+ PHSP; #[Reconstructed PDG2011] +0.000220000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000280000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] +0.000128000 Delta++ anti-Delta-- PHSP; #[Reconstructed PDG2011] +0.000220000 Sigma0 anti-Sigma0 PHSP; #[Reconstructed PDG2011] +0.00026 Sigma*+ anti-Sigma*- PHSP; +0.000180000 Xi- anti-Xi+ PHSP; #[Reconstructed PDG2011] +0.000080000 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000063000 K+ K- PHSP; #[Reconstructed PDG2011] +0.000070000 phi K- K+ PHSP; #[Reconstructed PDG2011] +0.000117000 phi pi- pi+ PHSP; #[Reconstructed PDG2011] +0.000170000 pi+ pi- K_S0 K_S0 PHSP; #[Reconstructed PDG2011] +0.0008 h_c pi0 PHSP; +0.0 K0 anti-K0 PHSP; +0.0 K_S0 K_S0 PHSP; +0.0 K_L0 K_L0 PHSP; +0.000054000 K_S0 K_L0 PHSP; #[Reconstructed PDG2011] +# +# March 2009 New Modes +0.004800000 pi+ pi- pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.001200000 pi+ pi- pi+ pi- eta PHSP; #[Reconstructed PDG2011] +0.001300000 K+ K- pi+ pi- eta PHSP; #[Reconstructed PDG2011] +0.001000000 K+ K- pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +0.001900000 K+ K- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.001260000 K+ K- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] +# +0.013568632 rndmflav anti-rndmflav PYTHIA 12; #[Reconstructed PDG2011] +0.103318590 g g g PYTHIA 4; #[Reconstructed PDG2011] +0.007344778 gamma g g PYTHIA 4; #[Reconstructed PDG2011] +0.000100000 Lambda0 anti-p- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000180000 Lambda0 anti-p- K+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000280000 Lambda0 anti-Lambda0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000260000 Sigma+ anti-Sigma- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000280000 Xi0 anti-Xi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000060000 eta p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000069000 omega p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000320000 p+ anti-n0 pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000950000 eta pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000450000 eta' pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000000 omega pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000220000 omega f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000220000 rho0 K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000190000 K*0 anti-K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000050000 rho0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000020000 pi+ pi- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000730000 p+ anti-p- pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000060000 K+ K- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000110000 K+ K- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000031000 phi eta' PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000032000 omega eta' PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000027000 p+ anti-p- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000044000 phi f'_2 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000870000 gamma eta pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000400000 gamma pi+ pi- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000190000 gamma K+ K- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000029000 gamma p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000028000 gamma pi+ pi- p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] 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; +0.000010700 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] +0.000014000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] +0.000005000 tau+ tau- VLL; #[Reconstructed PDG2011] +0.002099938 D0 anti-D0 VSS; #[Reconstructed PDG2011] +0.000899973 D+ D- VSS; #[Reconstructed PDG2011] +0.167895013 D*0 anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.167895013 anti-D*0 D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.181494610 D*+ D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.181494610 D*- D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.159695257 D*0 anti-D*0 PHSP; #[Reconstructed PDG2011] +0.098197084 D*+ D*- PHSP; #[Reconstructed PDG2011] +0.000000000 D0 anti-D0 pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D+ D- pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D0 D- pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 anti-D0 D+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 D*+ D- pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D*- D+ pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D*+ anti-D0 pi- PHSP; #[Reconstructed PDG2011] +0.000000000 D*- D0 pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 D+ anti-D*0 pi- PHSP; #[Reconstructed PDG2011] +0.000000000 D- D*0 pi+ PHSP; #[Reconstructed PDG2011] +0.040298803 D_s+ D_s- VSS; #[Reconstructed PDG2011] 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; +0.000008100 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] +0.000009999 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] +0.000006000 tau+ tau- VLL; #[Reconstructed PDG2011] +0.039697852 D0 anti-D0 VSS; #[Reconstructed PDG2011] +0.038697906 D+ D- VSS; #[Reconstructed PDG2011] +0.051997187 D*0 anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.051997187 anti-D*0 D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.051497214 D*+ D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.051497214 D*- D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.298613845 D*0 anti-D*0 PHSP; #[Reconstructed PDG2011] +0.308183327 D*+ D*- PHSP; #[Reconstructed PDG2011] +0.000000000 D0 anti-D0 pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D+ D- pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D0 D- pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 anti-D0 D+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 D*+ D- pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D*- D+ pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D*+ anti-D0 pi- PHSP; #[Reconstructed PDG2011] +0.000000000 D*- D0 pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 D+ anti-D*0 pi- PHSP; #[Reconstructed PDG2011] +0.000000000 D- D*0 pi+ PHSP; #[Reconstructed PDG2011] +0.009999459 D_s+ D_s- VSS; #[Reconstructed PDG2011] +0.048897355 D_s*+ D_s- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.048897355 D_s*- D_s+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.000000000 D_s+ D_s- pi0 PHSP; #[Reconstructed PDG2011] 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 +0.000009400 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] +0.000011000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] +0.000007000 tau+ tau- VLL; #[Reconstructed PDG2011] +0.024399331 D0 anti-D0 VSS; #[Reconstructed PDG2011] +0.021899400 D+ D- VSS; #[Reconstructed PDG2011] +0.031999123 D*0 anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.031999123 anti-D*0 D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.034299060 D*+ D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.034299060 D*- D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.345090544 D*0 anti-D*0 PHSP; #[Reconstructed PDG2011] +0.353890303 D*+ D*- PHSP; #[Reconstructed PDG2011] +0.000000000 D0 anti-D0 pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D+ D- pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D0 D- pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 anti-D0 D+ pi- PHSP; #[Reconstructed PDG2011] +0.000000000 D*+ D- pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D*- D+ pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D*+ anti-D0 pi- PHSP; #[Reconstructed PDG2011] +0.000000000 D*- D0 pi+ PHSP; #[Reconstructed PDG2011] +0.000000000 D+ anti-D*0 pi- PHSP; #[Reconstructed PDG2011] +0.000000000 D- D*0 pi+ PHSP; #[Reconstructed PDG2011] +0.011799677 D_s+ D_s- VSS; #[Reconstructed PDG2011] +0.041998849 D_s*+ D_s- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.041998849 D_s*- D_s+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.026299279 D_s*+ D_s*- PHSP; #[Reconstructed PDG2011] +0.000000000 D_s+ D_s- pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D_s*+ D_s- pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D_s+ D_s*- pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 D_s+ D- anti-K0 PHSP; #[Reconstructed PDG2011] +0.000000000 D_s- D+ anti-K0 PHSP; #[Reconstructed PDG2011] +0.000000000 D0 D_s- K+ PHSP; #[Reconstructed PDG2011] +0.000000000 anti-D0 D_s+ K- PHSP; #[Reconstructed PDG2011] +Enddecay # 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; +0.011600000 gamma J/psi PHSP; #[Reconstructed PDG2011] +0.000228000 p+ anti-p- PHSP; #[Reconstructed PDG2011] +0.000222000 gamma gamma PHSP; #[Reconstructed PDG2011] +0.00243 pi0 pi0 PHSP; +0.00487 pi+ pi- PHSP; +0.013800000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.002810000 K+ K- K+ K- PHSP; #[Reconstructed PDG2011] +0.012000000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.008900000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.0100 rho+ pi- pi0 PHSP; +0.0100 rho- pi+ pi0 PHSP; +0.00057 K+ K- PHSP; +0.000920000 phi phi PHSP; #[Reconstructed PDG2011] +0.001700000 anti-K*0 K*0 PHSP; #[Reconstructed PDG2011] +0.0036 anti-K*0 K+ pi- PHSP; +0.0036 K*0 K- pi+ PHSP; +0.0043 K*+ anti-K0 pi- PHSP; +0.0043 K*- K0 pi+ PHSP; +0.018000000 pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] +0.002100000 pi+ pi- p+ anti-p- PHSP; #[Reconstructed PDG2011] +0.002680000 eta eta PHSP; #[Reconstructed PDG2011] +0.000330000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] +0.00086 f_0 f_0 PHSP; +0.0 K0 anti-K0 PHSP; +0.003160000 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] +0.00282 K_L0 K_L0 PHSP; +0.0 K_S0 K_L0 PHSP; +# +# March 2009 New Modes +0.002030000 eta' eta' PHSP; #[Reconstructed PDG2011] +0.002200000 omega omega PHSP; #[Reconstructed PDG2011] +0.00325 K_1+ K- PHSP; +0.00325 K_1- K+ PHSP; +0.000990000 K+ K- phi PHSP; #[Reconstructed PDG2011] +0.001140000 p+ anti-n0 pi- PHSP; #[Reconstructed PDG2011] +0.000525 K+ anti-p- Lambda0 PHSP; +0.000525 K- p+ Lambda0 PHSP; +0.005800000 K_S0 K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.00590 K_L0 K_L0 pi+ pi- PHSP; +0.00000 K0 anti-K0 pi+ pi- PHSP; +0.001400000 K+ K- K_S0 K_S0 PHSP; #[Reconstructed PDG2011] +0.00150 K+ K- K_L0 K_L0 PHSP; +0.00000 K+ K- K0 anti-K0 PHSP; +# +0.799360000 rndmflav anti-rndmflav PYTHIA 12; #[Reconstructed PDG2011] +0.034000000 pi+ pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.005700000 K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.003100000 K+ K- eta pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000570000 p+ anti-p- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000370000 p+ anti-p- eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001050000 pi0 pi0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000420000 Sigma0 anti-Sigma0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000310000 Sigma+ anti-Sigma- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000320000 Xi0 anti-Xi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000490000 Xi- anti-Xi+ PHSP; #[New mode added] #[Reconstructed PDG2011] 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; +0.344000000 J/psi gamma VVP 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] +0.007600000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000073000 p+ anti-p- PHSP; #[Reconstructed PDG2011] +0.005800000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.004500000 pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] +0.003900000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.0020 rho+ pi- pi0 PHSP; +0.0020 rho- pi+ pi0 PHSP; +0.0016 anti-K*0 K+ pi- PHSP; +0.0016 K*0 K- pi+ PHSP; +0.001500000 anti-K*0 K*0 PHSP; #[Reconstructed PDG2011] +0.0009 K*+ anti-K0 pi- PHSP; +0.0009 K*- K0 pi+ PHSP; +0.000500000 pi+ pi- p+ anti-p- PHSP; #[Reconstructed PDG2011] +0.000720000 pi+ pi- K_S0 K_S0 PHSP; #[Reconstructed PDG2011] +0.0003 K+ K- K_S0 K_S0 PHSP; +0.000118000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] +0.00385 K+ anti-K0 pi- PHSP; +0.00385 K- K0 pi+ PHSP; +0.000560000 K+ K- K+ K- PHSP; #[Reconstructed PDG2011] +0.00000 K0 anti-K0 PHSP; +0.00001 K_S0 K_S0 PHSP; +0.00001 K_L0 K_L0 PHSP; +0.00000 K_S0 K_L0 PHSP; +# +# March 2009 New Modes +0.002200000 pi+ pi- eta PHSP; #[Reconstructed PDG2011] +0.002400000 pi+ pi- eta' PHSP; #[Reconstructed PDG2011] +0.001910000 K+ K- pi0 PHSP; #[Reconstructed PDG2011] +# +0.587724 rndmflav anti-rndmflav PYTHIA 12; +0.008700000 pi+ pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001180000 K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001200000 K+ K- eta pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000330000 K+ K- eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.002800000 f_2 eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000430000 K+ K- phi PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000120000 p+ anti-p- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000320000 K+ anti-p- Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000084000 Xi- anti-Xi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000229000 gamma rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000078000 gamma omega PHSP; #[New mode added] #[Reconstructed PDG2011] 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; +0.195000000 gamma J/psi PHSP; #[Reconstructed PDG2011] +0.000256000 gamma gamma PHSP; #[Reconstructed PDG2011] +0.000072000 p+ anti-p- PHSP; #[Reconstructed PDG2011] +0.00072 pi0 pi0 TSS; +0.00145 pi+ pi- TSS; +0.011100000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.001780000 K+ K- K+ K- PHSP; #[Reconstructed PDG2011] +0.008600000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] +0.009200000 pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] +0.004000000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] +0.0046 rho+ pi- pi0 PHSP; +0.0046 rho- pi+ pi0 PHSP; +0.001090000 K+ K- TSS; #[Reconstructed PDG2011] +0.002400000 pi+ pi- K_S0 K_S0 PHSP; #[Reconstructed PDG2011] +0.0003 K+ K- K_S0 K_S0 PHSP; +0.001480000 phi phi PHSP; #[Reconstructed PDG2011] +0.00115 anti-K*0 K+ pi- PHSP; +0.00115 K*0 K- pi+ PHSP; +0.002500000 anti-K*0 K*0 PHSP; #[Reconstructed PDG2011] +0.0016 K*+ anti-K0 pi- PHSP; +0.0016 K*- K0 pi+ PHSP; +0.001320000 pi+ pi- p+ anti-p- PHSP; #[Reconstructed PDG2011] +0.000186000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] +0.00000 K0 anti-K0 PHSP; +0.000580000 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] +0.00065 K_L0 K_L0 PHSP; +0.00000 K_S0 K_L0 PHSP; +# +# March 2009 New Modes +0.001900000 omega omega PHSP; #[Reconstructed PDG2011] +0.0007 anti-K0 K+ pi- PHSP; +0.0007 K0 K- pi+ PHSP; +0.001550000 K+ K- phi PHSP; #[Reconstructed PDG2011] +0.001100000 p+ anti-n0 pi- PHSP; #[Reconstructed PDG2011] +# +0.709461000 rndmflav anti-rndmflav PYTHIA 12; #[Reconstructed PDG2011] +0.020000000 pi+ pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.002200000 K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001400000 K+ K- eta pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000520000 pi+ pi- eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000540000 pi+ pi- eta' PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000540000 eta eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000330000 K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000470000 p+ anti-p- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000200000 p+ anti-p- eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000850000 pi0 pi0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000155000 Xi- anti-Xi+ PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # -# Decay psi(3770) -0.4243 D+ D- VSS; -0.5723 D0 anti-D0 VSS; -0.0034 J/psi pi+ pi- PHSP; +0.410000000 D+ D- VSS; #[Reconstructed PDG2011] +0.520000000 D0 anti-D0 VSS; #[Reconstructed PDG2011] +0.001930000 J/psi pi+ pi- PHSP; #[Reconstructed PDG2011] +0.000800000 J/psi pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.0073 gamma chi_c0 PHSP; +0.0029 gamma chi_c1 PHSP; +0.055850300 rndmflav anti-rndmflav PYTHIA 12; #[Reconstructed PDG2011] +0.000900000 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000009700 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000310000 phi eta PHSP; #[New mode added] #[Reconstructed PDG2011] +Enddecay +# +Decay X_1(3872) +1.000 rndmflav anti-rndmflav PYTHIA 12; Enddecay # # -# bb= Mesons +# bb= Mesons Updated to PDG 2008 # -##################### 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; +1.000 rndmflav anti-rndmflav PYTHIA 12; 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; +# +Decay Upsilon +0.024800000 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] +0.024800000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] +0.026000000 tau+ tau- VLL; #[Reconstructed PDG2011] +0.014959973 d anti-d PYTHIA 32; #[Reconstructed PDG2011] +0.044879919 u anti-u PYTHIA 32; #[Reconstructed PDG2011] +0.014959973 s anti-s PYTHIA 32; #[Reconstructed PDG2011] +0.044879919 c anti-c PYTHIA 32; #[Reconstructed PDG2011] +0.774328202 g g g PYTHIA 4; #[Reconstructed PDG2011] +0.028922614 gamma g g PYTHIA 4; #[Reconstructed PDG2011] +0.000063000 gamma pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000017000 gamma pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011400 gamma K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000290000 gamma pi+ pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000250000 gamma pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000250000 gamma pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000240000 gamma pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000150000 gamma pi+ pi- p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000040000 gamma pi+ pi+ pi- pi- p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000020000 gamma K+ K+ K- K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000037000 gamma f'_2 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000101000 gamma f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay - -##################### H_b(2P) ######################### -Decay h_b(2P) -# no information -0.4 gamma eta_b(2S) PHSP; -0.6 g g PYTHIA 32; +# +Decay Upsilon(2S) +0.019100000 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] +0.019300000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] +0.020000000 tau+ tau- VLL; #[Reconstructed PDG2011] +0.181000000 Upsilon pi+ pi- PHSP; #[Reconstructed PDG2011] +0.086000000 Upsilon pi0 pi0 PHSP; #[Reconstructed PDG2011] +# V-> gamma S Partial wave (L,S)=(0,1) +0.038000000 gamma chi_b0 HELAMP 1. 0. +1. 0.; #[Reconstructed PDG2011] +# V-> gamma V Partial wave (L,S)=(0,1) +0.069000000 gamma chi_b1 HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] +# V-> gamma T Partial wave (L,S)=(0,1) +0.071500000 gamma chi_b2 HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; #[Reconstructed PDG2011] +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.42160 g g g PYTHIA 4; +0.01600 gamma g g PYTHIA 4; +0.000210000 Upsilon eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000390000 gamma eta_b PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay +# +Decay Upsilon(3S) +0.0181 e+ e- PHOTOS VLL; +0.021800000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] +0.022900000 tau+ tau- VLL; #[Reconstructed PDG2011] +0.044000000 Upsilon pi+ pi- PHSP; #[Reconstructed PDG2011] +0.022000000 Upsilon pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.024500000 Upsilon(2S) pi+ pi- PHSP; #[Reconstructed PDG2011] +0.018500000 Upsilon(2S) pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.050000000 Upsilon(2S) gamma gamma PHSP; #[Reconstructed PDG2011] +# V-> gamma S Partial wave (L,S)=(0,1) +0.059000000 gamma chi_b0(2P) HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] +# V-> gamma V Partial wave (L,S)=(0,1) +0.126000000 gamma chi_b1(2P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] +# V-> gamma T Partial wave (L,S)=(0,1) +0.131000000 gamma chi_b2(2P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; #[Reconstructed PDG2011] +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.37780 g g g PYTHIA 4; +0.01000 gamma g g PYTHIA 4; +0.003000000 gamma chi_b0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000510000 gamma eta_b PHSP; #[New mode added] #[Reconstructed PDG2011] +Enddecay +# -##################### H_b(3P) ######################### -Decay h_b(3P) -# no information -0.4 gamma eta_b(3S) PHSP; -0.6 g g PYTHIA 32; +Decay Upsilon(5S) +0.5 B+ B- PHSP; +0.481487200 g g g PYTHIA 4; #[Reconstructed PDG2011] +0.000002800 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.005300000 Upsilon pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.007800000 Upsilon(2S) pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.004800000 Upsilon(3S) pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000610000 Upsilon K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay -##################### UPSILON_1(1D) ######################### -Decay Upsilon_1(1D) +Decay chi_b0 +# S-> gamma V Partial wave (L,S)=(0,0) +0.0500 gamma Upsilon HELAMP 1. 0. 1. 0.; +0.949650000 rndmflav anti-rndmflav PYTHIA 12; #[Reconstructed PDG2011] +0.000110000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000240000 pi+ pi+ pi+ pi- pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +Enddecay +# +Decay chi_b1 +# V-> gamma V Partial wave (L,S)=(0,1) +0.350000000 gamma Upsilon HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] +0.643080000 g g PYTHIA 32; #[Reconstructed PDG2011] +0.000200000 pi+ pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000800000 pi+ pi+ pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000150000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000350000 pi+ pi+ pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000860000 pi+ pi+ pi- pi- K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000190000 pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001700000 pi+ pi+ pi+ pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000260000 pi+ pi+ pi+ pi- pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000750000 pi+ pi+ pi+ pi- pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000260000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001400000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +Enddecay +# +Decay chi_b2 +# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. +0.220000000 gamma Upsilon PHSP; #[Reconstructed PDG2011] +#0.2200 gamma Upsilon HELAMP 1. 0. 1.7320508 0. 2.4494897 0. +# 2.4494897 0. 1.7320508 0. 1. 0.; +0.775550000 g g PYTHIA 32; #[Reconstructed PDG2011] +0.000080000 pi+ pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000350000 pi+ pi+ pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000110000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000210000 pi+ pi+ pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000390000 pi+ pi+ pi- pi- K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000070000 pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001000000 pi+ pi+ pi+ pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000360000 pi+ pi+ pi+ pi- pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000080000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001800000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +Enddecay +# +Decay chi_b0(2P) +# S-> gamma V Partial wave (L,S)=(0,0) +0.009000000 gamma Upsilon HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] +0.046000000 gamma Upsilon(2S) HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] +# S-> gamma V Partial wave (L,S)=(0,0) +0.00150 gamma Upsilon_1(1D) HELAMP 1. 0. 1. 0.; +0.94350 g g PYTHIA 32; +Enddecay +# +Decay chi_b1(2P) +# V-> gamma V Partial wave (L,S)=(0,1) +0.085000000 gamma Upsilon HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] +0.210000000 gamma Upsilon(2S) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] +# V-> gamma V Partial wave (L,S)=(0,1) +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.; +0.648650000 g g PYTHIA 32; #[Reconstructed PDG2011] +0.016300000 omega Upsilon PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000310000 pi+ pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000590000 pi+ pi+ pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000100000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000550000 pi+ pi+ pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001000000 pi+ pi+ pi- pi- K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000120000 pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001200000 pi+ pi+ pi+ pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000200000 pi+ pi+ pi+ pi- pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000610000 pi+ pi+ pi+ pi- pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000170000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001900000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +Enddecay +# +Decay chi_b2(2P) +# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. +0.071000000 gamma Upsilon PHSP; #[Reconstructed PDG2011] +#0.0710 gamma Upsilon HELAMP 1. 0. 1.7320508 0. 2.4494897 0. +# 2.4494897 0. 1.7320508 0. 1. 0.; +0.162000000 gamma Upsilon(2S) PHSP; #[Reconstructed PDG2011] +#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.; +0.734240000 g g PYTHIA 32; #[Reconstructed PDG2011] +0.011000000 omega Upsilon PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000390000 pi+ pi+ pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000090000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000240000 pi+ pi+ pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000470000 pi+ pi+ pi- pi- K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000090000 pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001200000 pi+ pi+ pi+ pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000140000 pi+ pi+ pi+ pi- pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000420000 pi+ pi+ pi+ pi- pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000090000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001300000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +Enddecay +# +Decay h_b +1.00000 g g PYTHIA 32; +Enddecay + +Decay chi_b0(3P) +#see Kwong and Rosner, PRD 38,279 (1988) +# S-> gamma V Partial wave (L,S)=(0,0) +0.01700 gamma Upsilon(3S) HELAMP 1. 0. 1. 0.; +# S-> gamma V Partial wave (L,S)=(0,0) +0.00400 gamma Upsilon_1(2D) HELAMP 1. 0. 1. 0.; +0.97900 g g PYTHIA 32; +Enddecay + +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.80600 g g PYTHIA 32; +Enddecay + +Decay chi_b2(3P) #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; +# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. +0.08700 gamma Upsilon(3S) PHSP; +0.00000 gamma Upsilon(2S) PHSP; +0.00000 gamma Upsilon PHSP; +#0.08700 gamma Upsilon(3S) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. +# 2.4494897 0. 1.7320508 0. 1. 0.; +#0.00000 gamma Upsilon(2S) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. +# 2.4494897 0. 1.7320508 0. 1. 0.; +#0.00000 gamma Upsilon HELAMP 1. 0. 1.7320508 0. 2.4494897 0. +# 2.4494897 0. 1.7320508 0. 1. 0.; +# spin 3 not yet in HELAMP +0.02200 Upsilon_3(2D) gamma PHSP; +# T -> gamma 3 Partial wave (L,S)=(0,2) +#0.02200 gamma Upsilon_3(2D) 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.; +# T -> gamma T Partial wave (L,S)=(0,2) +0.00400 gamma Upsilon_2(2D) PHSP; +#0.00400 gamma Upsilon_2(2D) 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) +0.00040 gamma Upsilon_1(2D) PHSP; +#0.00040 gamma Upsilon_1(2D) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. +# 2.4494897 0. 1.7320508 0. 1. 0.; +0.88660 g g PYTHIA 32; +Enddecay +Decay Upsilon_1(1D) +#see Kwong and Rosner, PRD 38,279 (1988) 0.00140 Upsilon pi+ pi- PHSP; 0.00070 Upsilon pi0 pi0 PHSP; # V-> gamma S Partial wave (L,S)=(0,1) @@ -8521,12 +8467,10 @@ Decay Upsilon_1(1D) # 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; +0.02600 gamma chi_b2 HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; +0.05190 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; @@ -8534,17 +8478,16 @@ Decay Upsilon_2(1D) # 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.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. +# 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; @@ -8553,14 +8496,8 @@ Decay Upsilon_3(1D) 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; @@ -8570,12 +8507,10 @@ Decay Upsilon_1(2D) # 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; +0.01400 gamma chi_b2(2P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; +0.21600 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; @@ -8585,17 +8520,16 @@ Decay Upsilon_2(2D) # 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.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. +# 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; @@ -8606,341 +8540,60 @@ Decay Upsilon_3(2D) 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; +Decay h_b(2P) +1.00000 g g PYTHIA 32; 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; +Decay h_b(3P) +1.00000 g g PYTHIA 32; 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; +Decay eta_b2(1D) +1.00000 g g 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; +Decay eta_b2(2D) +1.00000 g g PYTHIA 32; Enddecay # # Charm Baryons # Decay Lambda_c+ -0.01800 e+ nu_e Lambda0 PYTHIA 42; +0.021000000 e+ nu_e Lambda0 PYTHIA 42; #[Reconstructed PDG2011] 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.020000000 mu+ nu_mu Lambda0 PYTHIA 42; #[Reconstructed PDG2011] 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.008600000 Delta++ K- PYTHIA 0; #[Reconstructed PDG2011] 0.02500 Delta++ K*- PYTHIA 0; -0.02300 p+ anti-K0 PYTHIA 0; -0.04000 p+ anti-K*0 PYTHIA 0; +0.023000000 p+ anti-K0 PYTHIA 0; #[Reconstructed PDG2011] +0.016000000 p+ anti-K*0 PYTHIA 0; #[Reconstructed PDG2011] 0.00500 Delta+ anti-K0 PYTHIA 0; 0.00500 Delta+ anti-K*0 PYTHIA 0; -0.00580 Lambda0 pi+ PYTHIA 0; +0.010700000 Lambda0 pi+ PYTHIA 0; #[Reconstructed PDG2011] 0.00500 Lambda0 rho+ PYTHIA 0; -0.00550 Sigma0 pi+ PYTHIA 0; +0.010500000 Sigma0 pi+ PYTHIA 0; #[Reconstructed PDG2011] 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.010000000 Sigma+ pi0 PYTHIA 0; #[Reconstructed PDG2011] +0.005500000 Sigma+ eta PYTHIA 0; #[Reconstructed PDG2011] 0.00200 Sigma+ eta' PYTHIA 0; 0.00400 Sigma+ rho0 PYTHIA 0; -0.00400 Sigma+ omega PYTHIA 0; +0.027000000 Sigma+ omega PYTHIA 0; #[Reconstructed PDG2011] 0.00300 Sigma*+ pi0 PYTHIA 0; -0.00200 Sigma*+ eta PYTHIA 0; +0.008500000 Sigma*+ eta PYTHIA 0; #[Reconstructed PDG2011] 0.00300 Sigma*+ rho0 PYTHIA 0; 0.00300 Sigma*+ omega PYTHIA 0; -0.00200 Xi0 K+ PYTHIA 0; +0.003900000 Xi0 K+ PYTHIA 0; #[Reconstructed PDG2011] 0.00200 Xi0 K*+ PYTHIA 0; -0.00200 Xi*0 K+ PYTHIA 0; +0.002600000 Xi*0 K+ PYTHIA 0; #[Reconstructed PDG2011] 0.00100 Delta++ pi- PYTHIA 0; 0.00100 Delta++ rho- PYTHIA 0; 0.00200 p+ pi0 PYTHIA 0; @@ -8948,8 +8601,8 @@ Decay Lambda_c+ 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.000820000 p+ phi PYTHIA 0; #[Reconstructed PDG2011] +0.002800000 p+ f_0 PYTHIA 0; #[Reconstructed PDG2011] 0.00100 Delta+ pi0 PYTHIA 0; 0.00100 Delta+ eta PYTHIA 0; 0.00100 Delta+ eta' PYTHIA 0; @@ -8966,19 +8619,45 @@ Decay Lambda_c+ 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.002800000 Sigma+ K*0 PYTHIA 0; #[Reconstructed PDG2011] 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; +0.064094509 u anti-d d su_0 PYTHIA 13; #[Reconstructed PDG2011] +0.028102977 u anti-d d su_1 PYTHIA 13; #[Reconstructed PDG2011] +0.017256214 u anti-s d su_0 PYTHIA 13; #[Reconstructed PDG2011] +0.017256214 u anti-d d ud_0 PYTHIA 13; #[Reconstructed PDG2011] +0.046838295 s uu_1 PYTHIA 13; #[Reconstructed PDG2011] +0.069024855 u su_0 PYTHIA 13; #[Reconstructed PDG2011] +0.069024855 u su_1 PYTHIA 13; #[Reconstructed PDG2011] +0.014791040 d uu_1 PYTHIA 13; #[Reconstructed PDG2011] +0.007395520 u ud_0 PYTHIA 13; #[Reconstructed PDG2011] +0.007395520 u ud_1 PYTHIA 13; #[Reconstructed PDG2011] +0.025400000 p+ K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.033000000 p+ anti-K0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.012000000 p+ anti-K0 eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.026000000 p+ anti-K0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.023000000 p+ K- pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.011000000 p+ K*- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001100000 p+ K- pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.008000000 p+ K- pi+ pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000700000 p+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001800000 p+ pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000000 p+ K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.036000000 Lambda0 pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.015000000 Lambda0 pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.011000000 Lambda0 pi+ rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000000 Lambda0 pi+ pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.009500000 Lambda0 pi+ eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.012000000 Lambda0 pi+ omega PHSP; #[New mode added] #[Reconstructed PDG2011] +0.004700000 Lambda0 K+ anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.036000000 Sigma+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.017000000 Sigma- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.018000000 Sigma0 pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.008300000 Sigma0 pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000000 Sigma+ K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.003100000 Sigma+ phi PHSP; #[New mode added] #[Reconstructed PDG2011] +0.002500000 Xi- K+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000000000 Sigma+ K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay CDecay anti-Lambda_c- # @@ -9012,13 +8691,42 @@ Decay anti-Sigma_c- Enddecay # Decay Xi_c+ -0.98 PYTHIA 84; -0.02 Xi- pi+ pi+ PHSP; +0.079535513 PYTHIA 84; #[Reconstructed PDG2011] +0.079535513 Sigma*+ anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.025689971 Lambda0 K- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.010339617 Sigma+ K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.064423765 Sigma+ anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.023065299 Sigma0 K- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.043744532 Xi0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.079535513 Xi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.186113099 Xi0 pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.138391792 Xi0 pi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.182931679 Xi0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.005567486 Omega- K+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.007158196 p+ K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.009544262 p+ anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.038177046 Sigma+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.014316392 Sigma- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.011930327 Sigma+ K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay - Decay anti-Xi_c- -0.98 PYTHIA 84; -0.02 anti-Xi+ pi- pi- PHSP; +0.079535513 PYTHIA 84; #[Reconstructed PDG2011] +0.079535513 anti-Sigma*- K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.025689971 anti-Lambda0 K+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.010339617 anti-Sigma- K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.064423765 anti-Sigma- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.023065299 anti-Sigma0 K+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.043744532 anti-Xi0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.079535513 anti-Xi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.186113099 anti-Xi0 pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.138391792 anti-Xi0 pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.182931679 anti-Xi0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.005567486 anti-Omega+ K- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.007158196 anti-p- K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.009544262 anti-p- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.038177046 anti-Sigma- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.014316392 anti-Sigma+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.011930327 anti-Sigma- K- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # Decay Sigma_c++ @@ -9029,10 +8737,14 @@ Decay anti-Sigma_c-- Enddecay # Decay Xi'_c+ -1.0 gamma Xi_c+ PHSP; +0.1000 Lambda0 K- pi+ pi+ PHSP; +0.0800 Sigma0 K- pi+ pi+ PHSP; +0.8200 gamma Xi_c+ PHSP; Enddecay Decay anti-Xi'_c- -1.0 gamma anti-Xi_c- PHSP; +0.1000 anti-Lambda0 K+ pi- pi- PHSP; +0.0800 anti-Sigma0 K+ pi- pi- PHSP; +0.8200 gamma anti-Xi_c- PHSP; Enddecay # Decay Xi'_c0 @@ -9043,34 +8755,32 @@ Decay anti-Xi'_c0 Enddecay # # Light Baryons -# +# Lambda0 updated Feb 2009 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; +0.638719992 p+ pi- PHSP; #[Reconstructed PDG2011] +0.357719992 n0 pi0 PHSP; #[Reconstructed PDG2011] +0.001741600 n0 gamma PHSP; #[Reconstructed PDG2011] +0.000832160 p+ pi- gamma PHSP; #[Reconstructed PDG2011] +0.000831216 p+ e- anti-nu_e PHOTOS PHSP; #[Reconstructed PDG2011] +0.000155040 p+ mu- anti-nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] 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; +0.638719992 anti-p- pi+ PHSP; #[Reconstructed PDG2011] +0.357719992 anti-n0 pi0 PHSP; #[Reconstructed PDG2011] +0.001741600 anti-n0 gamma PHSP; #[Reconstructed PDG2011] +0.000832160 anti-p- pi+ gamma PHSP; #[Reconstructed PDG2011] +0.000831216 anti-p- e+ nu_e PHOTOS PHSP; #[Reconstructed PDG2011] +0.000155040 anti-p- mu+ nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] Enddecay # Decay Lambda(1405)0 - -0.3333 Sigma- pi+ PHSP; 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; @@ -9079,9 +8789,8 @@ 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 Sigma- pi+ PHSP; 0.14 Sigma0 pi0 PHSP; 0.0333 Lambda0 pi0 pi0 PHSP; 0.0667 Lambda0 pi+ pi- PHSP; @@ -9095,15 +8804,13 @@ 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-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.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; @@ -9112,9 +8819,8 @@ 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 Sigma- pi+ PHSP; 0.216 Sigma0 pi0 PHSP; Enddecay # @@ -9129,9 +8835,8 @@ 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 Sigma- pi+ PHSP; 0.16 Sigma0 pi0 PHSP; 0.32 Lambda0 eta PHSP; Enddecay @@ -9162,15 +8867,13 @@ 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-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.067 anti-Sigma- pi+ pi0 PHSP; 0.022 anti-Sigma0 pi0 pi0 PHSP; 0.044 anti-Sigma0 pi+ pi- PHSP; Enddecay @@ -9178,13 +8881,11 @@ 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 Sigma- pi+ PHSP; 0.08 Sigma0 pi0 PHSP; - -0.003 Sigma*- pi+ 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; @@ -9206,13 +8907,11 @@ 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 Sigma- pi+ PHSP; 0.08 Sigma0 pi0 PHSP; -0.003 Sigma*- pi+ 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; @@ -9234,13 +8933,11 @@ 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 Sigma- pi+ PHSP; 0.06 Sigma0 pi0 PHSP; -0.04 Sigma*- pi+ 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; @@ -9259,9 +8956,8 @@ Decay anti-Lambda(1820)0 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.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 @@ -9269,13 +8965,11 @@ 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 Sigma- pi+ PHSP; 0.24 Sigma0 pi0 PHSP; - -0.06 Sigma*- pi+ PHSP; 0.06 Sigma*+ pi- PHSP; +0.06 Sigma*- pi+ PHSP; 0.06 Sigma*0 pi0 PHSP; Enddecay # @@ -9295,9 +8989,8 @@ 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; +0.35 Sigma- pi+ PHSP; Enddecay # Decay anti-Sigma(1660)0 @@ -9312,9 +9005,8 @@ 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; +0.35 Sigma- pi+ PHSP; Enddecay # Decay anti-Sigma(1670)0 @@ -9329,12 +9021,10 @@ 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.02 Sigma- pi+ PHSP; 0.055 Sigma*+ pi- PHSP; +0.055 Sigma*- pi+ PHSP; 0.22 Lambda(1520)0 pi0 PHSP; Enddecay # @@ -9349,14 +9039,18 @@ Decay anti-Sigma(1775)0 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; +0.515454300 p+ pi0 PHSP; #[Reconstructed PDG2011] +0.482854300 n0 pi+ PHSP; #[Reconstructed PDG2011] +0.001225905 p+ gamma PHSP; #[Reconstructed PDG2011] +0.000445905 n0 pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000019590 Lambda0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay Decay anti-Sigma- -0.5157 anti-p- pi0 PHSP; -0.4831 anti-n0 pi- PHSP; -0.0012 anti-p- gamma PHSP; +0.515454300 anti-p- pi0 PHSP; #[Reconstructed PDG2011] +0.482854300 anti-n0 pi- PHSP; #[Reconstructed PDG2011] +0.001225905 anti-p- gamma PHSP; #[Reconstructed PDG2011] +0.000445905 anti-n0 pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000019590 anti-Lambda0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # Decay Delta+ @@ -9405,17 +9099,27 @@ Decay anti-Delta+ Enddecay # Decay Sigma- -1.0000 n0 pi- PHSP; +0.998015700 n0 pi- PHSP; #[Reconstructed PDG2011] +0.000460000 n0 pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001017000 n0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000450000 n0 mu- anti-nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000057300 Lambda0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay Decay anti-Sigma+ -1.0000 anti-n0 pi+ PHSP; +0.998015700 anti-n0 pi+ PHSP; #[Reconstructed PDG2011] +0.000460000 anti-n0 pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.001017000 anti-n0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000450000 anti-n0 mu+ nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000057300 anti-Lambda0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # Decay Sigma0 -1.0000 gamma Lambda0 PHSP; +0.995024876 gamma Lambda0 PHSP; #[Reconstructed PDG2011] +0.004975124 Lambda0 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay Decay anti-Sigma0 -1.0000 gamma anti-Lambda0 PHSP; +0.995024876 gamma anti-Lambda0 PHSP; #[Reconstructed PDG2011] +0.004975124 anti-Lambda0 e- e+ PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # Decay Sigma*- @@ -9452,17 +9156,35 @@ Decay anti-Sigma*0 Enddecay # Decay Xi0 -1.0000 Lambda0 pi0 PHSP; +0.995242400 Lambda0 pi0 PHSP; #[Reconstructed PDG2011] +0.001162400 Lambda0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000007600 Lambda0 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.003330000 Sigma0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000253000 Sigma+ e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000004600 Sigma+ mu- anti-nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay Decay anti-Xi0 -1.0000 anti-Lambda0 pi0 PHSP; +0.995242400 anti-Lambda0 pi0 PHSP; #[Reconstructed PDG2011] +0.001162400 anti-Lambda0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000007600 anti-Lambda0 e- e+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.003330000 anti-Sigma0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000253000 anti-Sigma- e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000004600 anti-Sigma- mu+ nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # Decay Xi- -1.0000 Lambda0 pi- PHSP; +0.998870000 Lambda0 pi- PHSP; #[Reconstructed PDG2011] +0.000127000 Sigma- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000563000 Lambda0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000350000 Lambda0 mu- anti-nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000087000 Sigma0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay Decay anti-Xi+ -1.0000 anti-Lambda0 pi+ PHSP; +0.998870000 anti-Lambda0 pi+ PHSP; #[Reconstructed PDG2011] +0.000127000 anti-Sigma+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000563000 anti-Lambda0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000350000 anti-Lambda0 mu+ nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000087000 anti-Sigma0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # Decay Xi*- @@ -9475,14 +9197,20 @@ Decay anti-Xi*+ Enddecay # Decay Omega- -0.6780 Lambda0 K- PHSP; -0.2360 Xi0 pi- PHSP; -0.0860 Xi- pi0 PHSP; +0.675949296 Lambda0 K- PHSP; #[Reconstructed PDG2011] +0.233949296 Xi0 pi- PHSP; #[Reconstructed PDG2011] +0.084828169 Xi- pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 Xi- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000493521 Xi*0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.004779718 Xi0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay Decay anti-Omega+ -0.6780 anti-Lambda0 K+ PHSP; -0.2360 anti-Xi0 pi+ PHSP; -0.0860 anti-Xi+ pi0 PHSP; +0.675949296 anti-Lambda0 K+ PHSP; #[Reconstructed PDG2011] +0.233949296 anti-Xi0 pi+ PHSP; #[Reconstructed PDG2011] +0.084828169 anti-Xi+ pi0 PHSP; #[Reconstructed PDG2011] +0.000000000 anti-Xi+ pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000493521 anti-Xi*0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.004779718 anti-Xi0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay # # @@ -9502,14 +9230,14 @@ Enddecay CDecay anti-Sigma_c*-- # Decay Xi_c*0 -0.33 Xi_c0 pi0 PHSP; -0.67 Xi_c+ pi- PHSP; +0.5000 Xi_c0 pi0 PHSP; +0.5000 Xi_c0 gamma PHSP; Enddecay CDecay anti-Xi_c*0 # Decay Xi_c*+ -0.33 Xi_c+ pi0 PHSP; -0.67 Xi_c0 pi+ PHSP; +0.5000 Xi_c+ pi0 PHSP; +0.5000 Xi_c+ gamma PHSP; Enddecay CDecay anti-Xi_c*- # @@ -9540,40 +9268,17 @@ 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; +0.01 J/psi pi0 PHSP; +0.5 eta_c gamma PHSP; +0.49 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.050000000 Lambda_c+ e- anti-nu_e PHSP; #[Reconstructed PDG2011] +0.006300000 Lambda_c(2593)+ e- anti-nu_e PHSP; #[Reconstructed PDG2011] +0.011000000 Lambda_c(2625)+ e- anti-nu_e PHSP; #[Reconstructed PDG2011] 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; @@ -9581,9 +9286,9 @@ Decay Lambda_b0 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.050000000 Lambda_c+ mu- anti-nu_mu PHSP; #[Reconstructed PDG2011] +0.006300000 Lambda_c(2593)+ mu- anti-nu_mu PHSP; #[Reconstructed PDG2011] +0.011000000 Lambda_c(2625)+ mu- anti-nu_mu PHSP; #[Reconstructed PDG2011] 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; @@ -9601,13 +9306,26 @@ Decay Lambda_b0 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.008800000 Lambda_c+ pi- PHSP; #[Reconstructed PDG2011] 0.02200 Lambda_c+ pi- pi+ pi- PHSP; 0.00055 Lambda_c+ K- PHSP; 0.02200 Lambda_c+ D_s- PHSP; + 0.04400 Lambda_c+ D_s*- PHSP; + 0.01000 Lambda_c+ rho- PHSP; + 0.02000 Lambda_c+ a_1- PHSP; + 0.02000 Lambda0 K0 pi+ pi+ pi- pi- PHSP; +# Addition PR LHCb 09 Apr 2004, Lambda_b -> Lambda D0b + 0.00080 Lambda0 anti-D0 PHSP; +# Addition PR LHCb 04/07/04 +0.000006000 p+ K- PHSP; #[Reconstructed PDG2011] +0.000003800 p+ pi- PHSP; #[Reconstructed PDG2011] +# Addition PR LHCb 09 Apr 2004, Lambda_b -> Lambda rho0 and -> Lambda phi + 0.0000050 Lambda0 rho0 PHSP; + 0.0000200 Lambda0 phi PHSP; # 0.00047 Lambda0 J/psi PHSP; 0.00038 Lambda0 psi(2S) PHSP; + 0.00100 Lambda0 eta_c PHSP; 0.00080 n0 D0 PHSP; # # Additional decays from hep-ph/9709372 scaled to the Lambda_c0 pi rate @@ -9617,36 +9335,26 @@ Decay Lambda_b0 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; +# PR LHCb 27 Apr 2004, addition of Pythia decays +0.398544837 anti-u d c ud_0 PYTHIA 48; #[Reconstructed PDG2011] +0.082218903 anti-u c d ud_0 PYTHIA 13; #[Reconstructed PDG2011] +0.072280354 anti-c s c ud_0 PYTHIA 13; #[Reconstructed PDG2011] +0.010842053 anti-u d u ud_0 PYTHIA 42; #[Reconstructed PDG2011] +0.010842053 anti-c s u ud_0 PYTHIA 42; #[Reconstructed PDG2011] +# PR LHCb 2 Dec 2004, add Lambda gamma decay mode + 0.000065 Lambda0 gamma HELAMP 1. 0. 0. 0. ; + 0.000059 Lambda(1520)0 gamma PHSP ; + 0.000056 Lambda(1670)0 gamma HELAMP 1. 0. 0. 0. ; + 0.000057 Lambda(1600)0 gamma HELAMP 1. 0. 0. 0. ; +0.056000000 Lambda_c+ pi+ pi- mu- anti-nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] +0.056000000 Lambda_c+ pi+ pi- e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] 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.050000000 anti-Lambda_c- e+ nu_e PHSP; #[Reconstructed PDG2011] +0.006300000 anti-Lambda_c(2593)- e+ nu_e PHSP; #[Reconstructed PDG2011] +0.011000000 anti-Lambda_c(2625)- e+ nu_e PHSP; #[Reconstructed PDG2011] 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; @@ -9654,9 +9362,9 @@ Decay anti-Lambda_b0 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.050000000 anti-Lambda_c- mu+ nu_mu PHSP; #[Reconstructed PDG2011] +0.006300000 anti-Lambda_c(2593)- mu+ nu_mu PHSP; #[Reconstructed PDG2011] +0.011000000 anti-Lambda_c(2625)- mu+ nu_mu PHSP; #[Reconstructed PDG2011] 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; @@ -9674,13 +9382,26 @@ Decay anti-Lambda_b0 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.008800000 anti-Lambda_c- pi+ PHSP; #[Reconstructed PDG2011] 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.04400 anti-Lambda_c- D_s*+ PHSP; + 0.01000 anti-Lambda_c- rho+ PHSP; + 0.02000 anti-Lambda_c- a_1+ PHSP; + 0.02000 Lambda0 anti-K0 pi- pi- pi+ pi+ PHSP; + # Addition LHCb PR 09 Apr 2004 Lambda_b -> Lambda D0b + 0.00080 anti-Lambda0 D0 PHSP; + # PR LHCb 04/07/04 Addition +0.000006000 anti-p- K+ PHSP; #[Reconstructed PDG2011] +0.000003800 anti-p- pi+ PHSP; #[Reconstructed PDG2011] +# Addition PR LHCb 09 Apr 2004, Lambda_b -> Lambda rho0 and -> Lambda phi + 0.0000050 anti-Lambda0 rho0 PHSP; + 0.0000200 anti-Lambda0 phi PHSP; # 0.00047 anti-Lambda0 J/psi PHSP; 0.00038 anti-Lambda0 psi(2S) PHSP; + 0.001000 anti-Lambda0 eta_c PHSP; 0.00080 anti-n0 anti-D0 PHSP; # # Additional decays from hep-ph/9709372 scaled to the Lambda_c0 pi rate @@ -9690,28 +9411,19 @@ Decay anti-Lambda_b0 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; +# PR LHCb 27 Apr 2004, addition of Pythia decays +0.398544837 u anti-d anti-c anti-ud_0 PYTHIA 48; #[Reconstructed PDG2011] +0.082218903 u anti-c anti-d anti-ud_0 PYTHIA 13; #[Reconstructed PDG2011] +0.072280354 c anti-s anti-c anti-ud_0 PYTHIA 13; #[Reconstructed PDG2011] +0.010842053 u anti-d anti-u anti-ud_0 PYTHIA 42; #[Reconstructed PDG2011] +0.010842053 c anti-s anti-u anti-ud_0 PYTHIA 42; #[Reconstructed PDG2011] +# PR LHCb 2 Dec 2004 add Lambda gamma + 0.000065 anti-Lambda0 gamma HELAMP 0. 0. 1. 0. ; + 0.000059 anti-Lambda(1520)0 gamma PHSP ; + 0.000056 anti-Lambda(1670)0 gamma HELAMP 0. 0. 1. 0. ; + 0.000057 anti-Lambda(1600)0 gamma HELAMP 0. 0. 1. 0. ; +0.056000000 anti-Lambda_c- pi- pi+ mu+ nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] +0.056000000 anti-Lambda_c- pi- pi+ e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay Decay Xi_b- @@ -9903,70 +9615,6 @@ 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 @@ -10067,10 +9715,14 @@ Decay B_c- 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; +# PR LHCb 09 Apr 2004 Add B_c+ -> rho0 pi+ + 0.00002 rho0 pi- SVS; + 0.06005 anti-c s PYTHIA 11; +# PR LHCb 27 Apr 2004 Add Pythia Modes # # 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; +#0.0200235 cs_0 anti-uu_0 PYTHIA 23; +#0.0400470 cs_1 anti-uu_1 PYTHIA 23; # Enddecay @@ -10166,74 +9818,431 @@ Decay B_c+ 0.00037 B+ pi0 PHSP; 0.00034 rho0 B+ SVS; 0.01980 B+ anti-K0 PHSP; -0.00430 anti-K*0 B+ SVS; +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*+ anti-K0 SVS; -0.01670 B*+ anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.01670 B*+ K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# PR LHCb 09 Apr 2004 Add B_c+ -> rho0 pi+ + 0.00002 rho0 pi+ SVS; + 0.06005 c anti-s PYTHIA 11; +# PR LHCb 27 Apr 2004 Add Pythia Modes # # 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; +#0.0200235 anti-cs_0 uu_0 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)+]. +# Add excited Lambda_c decays (R.J. Tesarek 12/9/03) +# Just a guess for the last two 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; +0.096585366 Sigma_c++ pi- PHSP; #[Reconstructed PDG2011] +0.096585366 Sigma_c0 pi+ PHSP; #[Reconstructed PDG2011] +0.190000000 Lambda_c+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.096585366 Sigma_c+ pi0 PHSP; #[Reconstructed PDG2011] +0.036219512 Lambda_c+ pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.004024390 Lambda_c+ gamma PHSP; #[Reconstructed PDG2011] +0.240000000 Sigma_c*++ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.240000000 Sigma_c*0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] 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; +0.096585366 anti-Sigma_c-- pi+ PHSP; #[Reconstructed PDG2011] +0.096585366 anti-Sigma_c0 pi- PHSP; #[Reconstructed PDG2011] +0.190000000 anti-Lambda_c- pi- pi+ PHSP; #[Reconstructed PDG2011] +0.096585366 anti-Sigma_c- pi0 PHSP; #[Reconstructed PDG2011] +0.036219512 anti-Lambda_c- pi0 pi0 PHSP; #[Reconstructed PDG2011] +0.004024390 anti-Lambda_c- gamma PHSP; #[Reconstructed PDG2011] +0.240000000 anti-Sigma_c*-- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.240000000 anti-Sigma_c*0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] 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; +0.670000000 Lambda_c+ pi+ pi- PHSP; #[Reconstructed PDG2011] +0.320294118 Lambda_c+ pi0 PHSP; #[Reconstructed PDG2011] +0.009705882 Lambda_c+ gamma PHSP; #[Reconstructed PDG2011] 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; +0.670000000 anti-Lambda_c- pi- pi+ PHSP; #[Reconstructed PDG2011] +0.320294118 anti-Lambda_c- pi0 PHSP; #[Reconstructed PDG2011] +0.009705882 anti-Lambda_c- gamma PHSP; #[Reconstructed PDG2011] Enddecay -Decay gammaFSR -1.0000 gamma PHSP; +# Add excited B hadrons (LHCb PR 10/03/04) +# Reference : Pythia 6.205 decay table +# PDG Id = 5312 +Decay Xi'_b- + 1.0000 Xi_b- 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-; +Decay anti-Xi'_b+ + 1.0000 anti-Xi_b+ gamma PHSP; Enddecay -RemoveDecay f_0_A -K+ K-; +# PDG Id = 5322 +Decay Xi'_b0 + 1.0000 Xi_b0 gamma PHSP; +Enddecay +Decay anti-Xi'_b0 + 1.0000 anti-Xi_b0 gamma PHSP; Enddecay -RemoveDecay f'_0_A -K+ K-; +# PDG Id = 10521 +Decay B_0*+ + 0.6670 B0 pi+ PHSP; + 0.3330 B+ pi0 PHSP; Enddecay -RemoveDecay f_2_A -K+ K-; +Decay B_0*- + 0.6670 anti-B0 pi- PHSP; + 0.3330 B- pi0 PHSP; +Enddecay +# PDG Id = 20523 Broad : S wave +Decay B'_1+ + 0.6670 B*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; + 0.3330 B*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +Decay B'_1- + 0.6670 anti-B*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; + 0.3330 B*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +# PDG Id = 10523 Narrow : D wave +Decay B_1+ + 0.6670 B*0 pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; + 0.3330 B*+ pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +Enddecay +Decay B_1- + 0.6670 anti-B*0 pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; + 0.3330 B*- pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +Enddecay +# PDG Id = 525 Narrow : D wave +Decay B_2*+ + 0.3000 B0 pi+ TSS; + 0.1500 B+ pi0 TSS; + 0.1600 B*0 pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; + 0.0800 B*+ pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; + 0.1300 B*0 pi+ pi0 PHSP; + 0.0600 B*+ pi+ pi- PHSP; + 0.0800 B0 pi+ pi0 PHSP; + 0.0400 B+ pi+ pi- PHSP; +Enddecay +Decay B_2*- + 0.3000 anti-B0 pi- TSS; + 0.1500 B- pi0 TSS; + 0.1600 anti-B*0 pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; + 0.0800 B*- pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; + 0.1300 anti-B*0 pi- pi0 PHSP; + 0.0600 B*- pi- pi+ PHSP; + 0.0800 anti-B0 pi- pi0 PHSP; + 0.0400 B- pi- pi+ PHSP; +Enddecay +# PDG Id = 10511 +Decay B_0*0 + 0.6670 B+ pi- PHSP; + 0.3330 B0 pi0 PHSP; +Enddecay +Decay anti-B_0*0 + 0.6670 B- pi+ PHSP; + 0.3330 anti-B0 pi0 PHSP; +Enddecay +# PDG Id = 20513 Broad : S wave +Decay B'_10 + 0.6670 B*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; + 0.3330 B*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +Decay anti-B'_10 + 0.6670 B*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; + 0.3330 anti-B*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +# PDG Id = 10513 Narrow : D wave +Decay B_10 + 0.6670 B*+ pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; + 0.3330 B*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +Enddecay +Decay anti-B_10 + 0.6670 B*- pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; + 0.3330 anti-B*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +Enddecay +# PDG Id = 515 +Decay B_2*0 + 0.3000 B+ pi- TSS; + 0.1500 B0 pi0 TSS; + 0.1600 B*+ pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; + 0.0800 B*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; + 0.1300 B*+ pi- pi0 PHSP; + 0.0600 B*0 pi+ pi- PHSP; + 0.0800 B+ pi- pi0 PHSP; + 0.0400 B0 pi+ pi- PHSP; +Enddecay +Decay anti-B_2*0 + 0.3000 B- pi+ TSS; + 0.1500 anti-B0 pi0 TSS; + 0.1600 B*- pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; + 0.0800 anti-B*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; + 0.1300 B*- pi+ pi0 PHSP; + 0.0600 anti-B*0 pi- pi+ PHSP; + 0.0800 B- pi+ pi0 PHSP; + 0.0400 anti-B0 pi- pi+ PHSP; +Enddecay +# PDG Id = 10531 +Decay B_s0*0 + 0.5000 B+ K- PHSP; + 0.5000 B0 anti-K0 PHSP; +Enddecay +Decay anti-B_s0*0 + 0.5000 B- K+ PHSP; + 0.5000 anti-B0 K0 PHSP; +Enddecay +# PDG Id = 20533 Broad : S wave +Decay B'_s10 + 0.5000 B*+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; + 0.5000 B*0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +Decay anti-B'_s10 + 0.5000 B*- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; + 0.5000 anti-B*0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +# PDG Id = 10533 Narrow : D wave +Decay B_s10 + 0.5000 B*+ K- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; + 0.5000 B*0 anti-K0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +Enddecay +Decay anti-B_s10 + 0.5000 B*- K+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; + 0.5000 anti-B*0 K0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +Enddecay +# PDG Id = 535 Narrow : D wave +Decay B_s2*0 + 0.3000 B+ K- TSS; + 0.3000 B0 anti-K0 TSS; + 0.2000 B*+ K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; + 0.2000 B*0 anti-K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +Enddecay +Decay anti-B_s2*0 + 0.3000 B- K+ TSS; + 0.3000 anti-B0 K0 TSS; + 0.2000 B*- K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; + 0.2000 anti-B*0 K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +Enddecay +# PDG Id = 543 +Decay B_c*+ + 1.0000 B_c+ gamma VSP_PWAVE; +Enddecay +Decay B_c*- + 1.0000 B_c- gamma VSP_PWAVE; +Enddecay +# PDG Id = 545 Narrow : D wave +Decay B_c2*+ + 0.3000 B0 D+ TSS; + 0.3000 B+ D0 TSS; + 0.2000 B*0 D+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; + 0.2000 B*+ D0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +Enddecay +Decay B_c2*- + 0.3000 anti-B0 D- TSS; + 0.3000 B- anti-D0 TSS; + 0.2000 anti-B*0 D- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; + 0.2000 B*- anti-D0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +Enddecay +# PDG Id = 5114 +Decay Sigma_b*- + 1.0000 Lambda_b0 pi- PHSP; +Enddecay +Decay anti-Sigma_b*+ + 1.0000 anti-Lambda_b0 pi+ PHSP; +Enddecay +# PDG Id = 5224 +Decay Sigma_b*+ + 1.0000 Lambda_b0 pi+ PHSP; +Enddecay +Decay anti-Sigma_b*- + 1.0000 anti-Lambda_b0 pi- PHSP; +Enddecay +# PDG Id = 5214 +Decay Sigma_b*0 + 1.0000 Lambda_b0 pi0 PHSP; +Enddecay +Decay anti-Sigma_b*0 + 1.0000 anti-Lambda_b0 pi0 PHSP; +Enddecay +# PDG Id = 5314 +Decay Xi_b*- + 1.0000 Xi_b- gamma PHSP; +Enddecay +Decay anti-Xi_b*+ + 1.0000 anti-Xi_b+ gamma PHSP; +Enddecay +# PDG Id = 5324 +Decay Xi_b*0 + 1.0000 Xi_b0 gamma PHSP; +Enddecay +Decay anti-Xi_b*0 + 1.0000 anti-Xi_b0 gamma PHSP; +Enddecay +# PDG Id = 5334 +Decay Omega_b*- + 1.0000 Omega_b- gamma PHSP; +Enddecay +Decay anti-Omega_b*+ + 1.0000 anti-Omega_b+ gamma PHSP; +Enddecay +# PDG Id = 10541 +Decay B_c0*+ + 0.5000 B0 D+ PHSP; + 0.5000 B+ D0 PHSP; +Enddecay +Decay B_c0*- + 0.5000 anti-B0 D- PHSP; + 0.5000 B- anti-D0 PHSP; +Enddecay +# PDG Id = 10543 Narrow : D wave +Decay B_c1+ + 0.5000 B*0 D+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; + 0.5000 B*+ D0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +Enddecay +Decay B_c1- + 0.5000 anti-B*0 D- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; + 0.5000 B*- anti-D0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +Enddecay +# PDG Id = 20543 Broad : S wave +Decay B'_c1+ + 0.5000 B*0 D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; + 0.5000 B*+ D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +Decay B'_c1- + 0.5000 anti-B*0 D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; + 0.5000 B*- anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay + +# Excited charmed Baryons LHCb PR 3-05-2006 +Decay Xi_cc*++ + 0.08 e+ nu_e Xi_c+ PHSP ; + 0.08 mu+ nu_mu Xi_c+ PHSP ; + 0.51 u anti-d s cu_0 PYTHIA 11 ; + 0.25 u anti-d s cu_1 PYTHIA 11 ; + 0.05 u anti-s s cu_0 PYTHIA 11 ; + 0.03 u anti-s s cu_1 PYTHIA 11 ; +Enddecay + +Decay anti-Xi_cc*-- + 0.08 e- anti-nu_e anti-Xi_c- PHSP; + 0.08 mu- anti-nu_mu anti-Xi_c- PHSP; + 0.51 anti-u d anti-s anti-cu_0 PYTHIA 11 ; + 0.25 anti-u d anti-s anti-cu_0 PYTHIA 11 ; + 0.05 anti-u s anti-s anti-cu_1 PYTHIA 11 ; + 0.03 anti-u s anti-s anti-cu_1 PYTHIA 11 ; +Enddecay + +Decay Xi_cc++ + 0.08 e+ nu_e Xi_c+ PHSP ; + 0.08 mu+ nu_mu Xi_c+ PHSP ; + 0.51 u anti-d s cu_0 PYTHIA 11 ; + 0.25 u anti-d s cu_1 PYTHIA 11 ; + 0.05 u anti-s s cu_0 PYTHIA 11 ; + 0.03 u anti-s s cu_1 PYTHIA 11 ; +Enddecay + +Decay anti-Xi_cc-- + 0.08 e- anti-nu_e anti-Xi_c- PHSP; + 0.08 mu- anti-nu_mu anti-Xi_c- PHSP; + 0.51 anti-u d anti-s anti-cu_0 PYTHIA 11 ; + 0.25 anti-u d anti-s anti-cu_0 PYTHIA 11 ; + 0.05 anti-u s anti-s anti-cu_1 PYTHIA 11 ; + 0.03 anti-u s anti-s anti-cu_1 PYTHIA 11 ; +Enddecay + +Decay Xi_cc*+ + 0.08 e+ nu_e Xi_c0 PHSP; + 0.08 mu+ nu_mu Xi_c0 PHSP; + 0.51 u anti-d s cd_0 PYTHIA 11 ; + 0.25 u anti-d s cd_1 PYTHIA 11 ; + 0.05 u anti-s s cd_0 PYTHIA 11 ; + 0.03 u anti-s s cd_1 PYTHIA 11 ; +Enddecay + +Decay anti-Xi_cc*- + 0.08 e- anti-nu_e anti-Xi_c0 PHSP; + 0.08 mu- anti-nu_mu anti-Xi_c0 PHSP; + 0.51 anti-u d anti-s anti-cd_0 PYTHIA 11 ; + 0.25 anti-u d anti-s anti-cd_1 PYTHIA 11 ; + 0.05 anti-u s anti-s anti-cd_0 PYTHIA 11 ; + 0.03 anti-u s anti-s anti-cd_1 PYTHIA 11 ; +Enddecay + +Decay Xi_cc+ + 0.08 e+ nu_e Xi_c0 PHSP; + 0.08 mu+ nu_mu Xi_c0 PHSP; + 0.51 u anti-d s cd_0 PYTHIA 11 ; + 0.25 u anti-d s cd_1 PYTHIA 11 ; + 0.05 u anti-s s cd_0 PYTHIA 11 ; + 0.03 u anti-s s cd_1 PYTHIA 11 ; +Enddecay + +Decay anti-Xi_cc- + 0.08 e- anti-nu_e anti-Xi_c0 PHSP; + 0.08 mu- anti-nu_mu anti-Xi_c0 PHSP; + 0.51 anti-u d anti-s anti-cd_0 PYTHIA 11 ; + 0.25 anti-u d anti-s anti-cd_1 PYTHIA 11 ; + 0.05 anti-u s anti-s anti-cd_0 PYTHIA 11 ; + 0.03 anti-u s anti-s anti-cd_1 PYTHIA 11 ; +Enddecay + +Decay Omega_cc+ + 0.08 e+ nu_e Omega_c0 PHSP; + 0.08 mu+ nu_mu Omega_c0 PHSP; + 0.51 u anti-d s cs_0 PYTHIA 11; + 0.25 u anti-d s cs_1 PYTHIA 11; + 0.05 u anti-s s cs_0 PYTHIA 11; + 0.03 u anti-s s cs_1 PYTHIA 11; +Enddecay + +Decay anti-Omega_cc- + 0.08 e- anti-nu_e anti-Omega_c0 PHSP; + 0.08 mu- anti-nu_mu anti-Omega_c0 PHSP; + 0.51 anti-u d anti-s anti-cs_0 PYTHIA 11; + 0.25 anti-u d anti-s anti-cs_1 PYTHIA 11; + 0.05 anti-u s anti-s anti-cs_0 PYTHIA 11; + 0.03 anti-u s anti-s anti-cs_1 PYTHIA 11; +Enddecay + +Decay Omega_cc*+ + 0.08 e+ nu_e Omega_c0 PHSP; + 0.08 mu+ nu_mu Omega_c0 PHSP; + 0.51 u anti-d s cs_0 PYTHIA 11; + 0.25 u anti-d s cs_1 PYTHIA 11; + 0.05 u anti-s s cs_0 PYTHIA 11; + 0.03 u anti-s s cs_1 PYTHIA 11; +Enddecay + +Decay anti-Omega_cc*- + 0.08 e- anti-nu_e anti-Omega_c0 PHSP; + 0.08 mu- anti-nu_mu anti-Omega_c0 PHSP; + 0.51 anti-u d anti-s anti-cs_0 PYTHIA 11; + 0.25 anti-u d anti-s anti-cs_1 PYTHIA 11; + 0.05 anti-u s anti-s anti-cs_0 PYTHIA 11; + 0.03 anti-u s anti-s anti-cs_1 PYTHIA 11; +Enddecay + +Decay K_L0 +#0.202464226 pi+ e- nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.202464226 pi- e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.135033299 pi+ mu- nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.135033299 pi- mu+ nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.000025738 pi0 pi+ e- nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.000025738 pi0 pi- e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.000006205 pi+ e- nu_e e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.000006205 pi- e+ nu_e e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.194795855 pi0 pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.125231606 pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.001880711 pi+ e- nu_e gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.001880711 pi- e+ nu_e gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.000277023 pi+ mu- nu_mu gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.000277023 pi- mu+ nu_mu gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.000040995 pi+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.000001262 pi0 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.000000016 pi0 gamma e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.000545653 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.000009265 e+ e- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.000000355 mu+ mu- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.000000584 e+ e- gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] +#0.000000007 mu+ mu- gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] Enddecay - End - - - - diff --git a/TEvtGen/EvtGen/DecayTable/BTOELE.DEC b/TEvtGen/EvtGen/DecayTable/BTOELE.DEC index e1fc60f7166..2d448a966ec 100644 --- a/TEvtGen/EvtGen/DecayTable/BTOELE.DEC +++ b/TEvtGen/EvtGen/DecayTable/BTOELE.DEC @@ -1,268 +1,122 @@ -## -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; +# Updated to PDG 2008 +# b -> c semileptonic +# +0.050100000 D*- e+ nu_e PHOTOS HQET 0.77 1.33 0.92; #[Reconstructed PDG2011] +0.021700000 D- e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.0054 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.0050 D'_1- e+ nu_e PHOTOS ISGW2; +0.0022 D_2*- e+ nu_e PHOTOS ISGW2; +0.0003 D*- pi0 e+ nu_e PHOTOS GOITY_ROBERTS; +0.004900000 anti-D*0 pi- e+ nu_e PHOTOS GOITY_ROBERTS; #[Reconstructed PDG2011] +0.0010 D- pi0 e+ nu_e PHOTOS GOITY_ROBERTS; +### +# +# b -> u l nu +# +0.000134000 pi- e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000247000 rho- e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +##0.000000 D(2S)- e+ nu_e PHOTOS ISGW2; +##0.000000 D*(2S)- e+ nu_e PHOTOS ISGW2; +0.001892 Xu- e+ nu_e VUB 4.8 1.29 0.22 20 0.30 0.55 1.20 0.61 1.26 0.85 1.34 1.08 1.41 1.21 1.48 1.30 1.55 1.30 1.61 1.33 1.67 1.36 1.73 1.39 1.79 1.33 1.84 1.42 1.90 1.39 1.95 1.39 2.00 1.37 2.50 1.30 3.00 0.74 3.50 0.99 4.00 1.09 4.50 1.00; +# +0.000000160 K0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.000001030 K*0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.0000050 Xsd e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +### -#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; +# Updated to PDG 2008 +# b -> c semileptonic +# +0.050100000 D*+ e- anti-nu_e PHOTOS HQET 0.77 1.33 0.92; #[Reconstructed PDG2011] +0.021700000 D+ e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.0054 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.0050 D'_1+ e- anti-nu_e PHOTOS ISGW2; +0.0022 D_2*+ e- anti-nu_e PHOTOS ISGW2; +0.0003 D*+ pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.004900000 D*0 pi+ e- anti-nu_e PHOTOS GOITY_ROBERTS; #[Reconstructed PDG2011] +0.0010 D+ pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; +#### +0.000134000 pi+ e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000247000 rho+ e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +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 VUB 4.8 1.29 0.22 20 0.30 0.55 1.20 0.61 1.26 0.85 1.34 1.08 1.41 1.21 1.48 1.30 1.55 1.30 1.61 1.33 1.67 1.36 1.73 1.39 1.79 1.33 1.84 1.42 1.90 1.39 1.95 1.39 2.00 1.37 2.50 1.30 3.00 0.74 3.50 0.99 4.00 1.09 4.50 1.00; +# +0.000000160 anti-K0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.000001030 anti-K*0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.0000050 anti-Xsd e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -#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; +Decay B- +# Updated to PDG 2008 +# b -> c semileptonic +# +0.056800000 D*0 e- anti-nu_e PHOTOS HQET 0.77 1.33 0.92; #[Reconstructed PDG2011] +0.022300000 D0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.0040 D_10 e- anti-nu_e PHOTOS ISGW2; +0.0024 D_0*0 e- anti-nu_e PHOTOS ISGW2; +0.0007 D'_10 e- anti-nu_e PHOTOS ISGW2; +0.0018 D_2*0 e- anti-nu_e PHOTOS ISGW2; +0.006100000 D*+ pi- e- anti-nu_e PHOTOS GOITY_ROBERTS; #[Reconstructed PDG2011] +0.0003 D*0 pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0000 D+ pi- e- anti-nu_e PHOTOS GOITY_ROBERTS; #### covered by other decays +0.0010 D0 pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; +##### +0.000077000 pi0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000037000 eta e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000128000 rho0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000115000 omega e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000270 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 VUB 4.8 1.29 0.22 20 0.30 0.54 1.20 0.95 1.26 0.78 1.34 0.98 1.41 0.91 1.48 1.23 1.55 1.36 1.61 1.39 1.67 1.38 1.73 1.43 1.79 1.41 1.84 1.42 1.90 1.45 1.95 1.40 2.00 1.42 2.50 1.31 3.00 1.36 3.50 1.15 4.00 1.01 4.50 1.51; +# +0.000000550 K- e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.000001550 K*- e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.0000050 anti-Xsu e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -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- -# + +Decay B+ +# Updated to PDG 2008 # 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.056800000 anti-D*0 e+ nu_e PHOTOS HQET 0.77 1.33 0.92; #[Reconstructed PDG2011] +0.022300000 anti-D0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.0040 anti-D_10 e+ nu_e PHOTOS ISGW2; +0.0024 anti-D_0*0 e+ nu_e PHOTOS ISGW2; +0.0007 anti-D'_10 e+ nu_e PHOTOS ISGW2; +0.0018 anti-D_2*0 e+ nu_e PHOTOS ISGW2; +0.006100000 D*- pi+ e+ nu_e PHOTOS GOITY_ROBERTS; #[Reconstructed PDG2011] +0.0003 anti-D*0 pi0 e+ nu_e PHOTOS GOITY_ROBERTS; +0.0000 D- pi+ e+ nu_e PHOTOS GOITY_ROBERTS; ## covered by other decays +0.0010 anti-D0 pi0 e+ nu_e PHOTOS GOITY_ROBERTS; +#### +0.000077000 pi0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000037000 eta e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000128000 rho0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000115000 omega e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] +0.000270 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 VUB 4.8 1.29 0.22 20 0.30 0.54 1.20 0.95 1.26 0.78 1.34 0.98 1.41 0.91 1.48 1.23 1.55 1.36 1.61 1.39 1.67 1.38 1.73 1.43 1.79 1.41 1.84 1.42 1.90 1.45 1.95 1.40 2.00 1.42 2.50 1.31 3.00 1.36 3.50 1.15 4.00 1.01 4.50 1.51; +# +0.000000550 K+ e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.000001550 K*+ e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] +0.0000050 Xsu e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -#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; @@ -270,8 +124,18 @@ Decay B_s0 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; +### +# 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; +# PR LHCb 04/08/2004 : add Bs -> phi mu mu, phi e e +0.0000023 phi e+ e- BTOSLLALI; + Enddecay + Decay anti-B_s0 # b --> c (l nu) # Sum = 24.5% @@ -281,30 +145,44 @@ Decay anti-B_s0 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; +#### +# 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; +### +# PR LHCb 04/08/2004 : add Bs -> phi mu mu, phi e e +0.0000023 phi e- e+ BTOSLLALI; + Enddecay Decay Lambda_b0 -0.05460 Lambda_c+ e- anti-nu_e PHSP; +# SemiLeptonic Decays (inclusive BR = 7.7 +/- 1.8%) +0.050000000 Lambda_c+ e- anti-nu_e PHSP; #[Reconstructed PDG2011] +0.006300000 Lambda_c(2593)+ e- anti-nu_e PHSP; #[Reconstructed PDG2011] +0.011000000 Lambda_c(2625)+ e- anti-nu_e PHSP; #[Reconstructed PDG2011] + Enddecay Decay anti-Lambda_b0 # SemiLeptonic Decays (inclusive BR = 7.7 +/- 1.8%) - 0.05460 anti-Lambda_c- e+ nu_e PHSP; +0.050000000 anti-Lambda_c- e+ nu_e PHSP; #[Reconstructed PDG2011] +0.006300000 anti-Lambda_c(2593)- e+ nu_e PHSP; #[Reconstructed PDG2011] +0.011000000 anti-Lambda_c(2625)- e+ nu_e PHSP; #[Reconstructed PDG2011] + 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 @@ -313,14 +191,16 @@ Decay anti-Xi_b0 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 deleted file mode 100644 index 2e02702707a..00000000000 --- a/TEvtGen/EvtGen/DecayTable/BTOELEold.DEC +++ /dev/null @@ -1,329 +0,0 @@ -## -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 index 93ec72f0eb7..8db475c82bd 100644 --- a/TEvtGen/EvtGen/DecayTable/BTOJPSI.DEC +++ b/TEvtGen/EvtGen/DecayTable/BTOJPSI.DEC @@ -1,199 +1,187 @@ -## -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 +#### +Decay B0 +# B -> cc= s +0.000435500 J/psi K_S0 SVS; #[Reconstructed PDG2011] +0.000435500 J/psi K_L0 SVS; #[Reconstructed PDG2011] # -#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.001330000 J/psi K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.000017600 J/psi pi0 SVS; #[Reconstructed PDG2011] +0.000027000 J/psi rho0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.00003 J/psi omega SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.000000000 J/psi K+ pi- PHSP; #[Reconstructed PDG2011] 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.001300000 J/psi K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] 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.000094000 J/psi phi K0 PHSP; #[Reconstructed PDG2011] +#### +0.000871000 J/psi K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000310000 J/psi omega K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000009500 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000019000 J/psi pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000460000 J/psi K0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000540000 J/psi K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000800000 J/psi K*+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000660000 J/psi K*0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] + 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.000435500 J/psi K_S0 SVS; #[Reconstructed PDG2011] +0.000435500 J/psi K_L0 SVS; #[Reconstructed PDG2011] +# +# +0.001330000 J/psi anti-K*0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] +0.000017600 J/psi pi0 SVS; #[Reconstructed PDG2011] +0.000027000 J/psi rho0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] +0.000030 J/psi omega SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.000000000 J/psi K- pi+ PHSP; #[Reconstructed PDG2011] 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.001300000 J/psi anti-K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] 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.000094000 J/psi phi anti-K0 PHSP; #[Reconstructed PDG2011] +### +0.000871000 J/psi anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000310000 J/psi omega anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000009500 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000019000 J/psi pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000460000 J/psi anti-K0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000540000 J/psi anti-K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000800000 J/psi K*- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000660000 J/psi anti-K*0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +#### 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; +# +# B -> cc= s sum = 1.92% +# +0.001014000 J/psi K- SVS; #[Reconstructed PDG2011] +0.001430000 J/psi K*- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] +0.000049000 J/psi pi- SVS; #[Reconstructed PDG2011] +0.000050000 J/psi rho- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] 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.001800000 J/psi K_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] +0.000052000 J/psi phi K- PHSP; #[Reconstructed PDG2011] +# +0.001070000 J/psi K- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000108000 J/psi eta K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000350000 J/psi omega K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011800 J/psi anti-p- Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] + +Enddecay + +Decay B+ +# +# B -> cc= s sum = 1.92% +# +0.001014000 J/psi K+ SVS; #[Reconstructed PDG2011] +0.001430000 J/psi K*+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.000049000 J/psi pi+ SVS; #[Reconstructed PDG2011] +0.000050000 J/psi rho+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.0002 J/psi K0 pi+ PHSP; +0.0001 J/psi K+ pi0 PHSP; +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.001800000 J/psi K_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] +0.000052000 J/psi phi K+ PHSP; #[Reconstructed PDG2011] +# +#### +0.001070000 J/psi K+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000108000 J/psi eta K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000350000 J/psi omega K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011800 J/psi p+ anti-Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] -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.001300000 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +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 K0 K- pi+ PHSP; 0.00070 J/psi anti-K0 K0 pi0 PHSP; 0.00070 J/psi K- K+ pi0 PHSP; +# LHCb PR 04/02/04 Add (cc) phi n pi(+/0) +0.00039 J/psi phi pi+ pi- PHSP; +0.00039 J/psi phi pi0 pi0 PHSP; +# LHCb PR Add (cc) phi eta(') + npi like in CDF QQ +0.0002 J/psi eta pi+ pi- PHSP; +0.0002 J/psi eta pi0 pi0 PHSP; +0.0004 J/psi eta' pi+ pi- PHSP; +0.0004 J/psi eta' pi0 pi0 PHSP; +0.0002 J/psi pi+ pi- PHSP; +0.0002 J/psi pi0 pi0 PHSP; +# PR LHCb 04/08/2004 : add Bs -> phi mu mu, phi e e +0.0000023 phi e+ e- BTOSLLALI; 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.001300000 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] 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; +# LHCb PR 04/02/04 Add (cc) phi n pi(+/0) +0.00039 J/psi phi pi+ pi- PHSP; +0.00039 J/psi phi pi0 pi0 PHSP; +# LHCb PR add (cc) phi eta(') + npi see CDF QQ +0.0002 J/psi eta pi+ pi- PHSP; +0.0002 J/psi eta pi0 pi0 PHSP; +0.0004 J/psi eta' pi+ pi- PHSP; +0.0004 J/psi eta' pi0 pi0 PHSP; +0.0002 J/psi pi+ pi- PHSP; +0.0002 J/psi pi0 pi0 PHSP; +# PR LHCb 04/08/2004 : add Bs -> phi mu mu, phi e e +0.0000023 phi e- e+ BTOSLLALI; + Enddecay Decay Lambda_b0 -0.00047 Lambda0 J/psi PHSP; +# + 0.00047 Lambda0 J/psi PHSP; Enddecay Decay anti-Lambda_b0 -0.00047 anti-Lambda0 J/psi PHSP; + 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; +Decay Xi_b- + 0.00047 Xi- J/psi PHSP; 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; + +Decay anti-Xi_b+ + 0.00047 anti-Xi+ J/psi PHSP; Enddecay Decay Xi_b0 -0.00047 Xi0 J/psi PHSP; + 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; + 0.00047 anti-Xi0 J/psi PHSP; Enddecay Decay Omega_b- -0.00047 Omega- J/psi PHSP; + 0.00047 Omega- J/psi PHSP; Enddecay Decay anti-Omega_b+ -0.00047 anti-Omega+ J/psi PHSP; + 0.00047 anti-Omega+ J/psi PHSP; Enddecay End diff --git a/TEvtGen/EvtGen/DecayTable/BTOJPSITOELE.DEC b/TEvtGen/EvtGen/DecayTable/BTOJPSITOELE.DEC index 51983db5008..d2cab71bc64 100644 --- a/TEvtGen/EvtGen/DecayTable/BTOJPSITOELE.DEC +++ b/TEvtGen/EvtGen/DecayTable/BTOJPSITOELE.DEC @@ -1,199 +1,187 @@ -## -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 +#### +Decay B0 +# B -> cc= s +0.000435500 J/psi K_S0 SVS; #[Reconstructed PDG2011] +0.000435500 J/psi K_L0 SVS; #[Reconstructed PDG2011] # -#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.001330000 J/psi K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.000017600 J/psi pi0 SVS; #[Reconstructed PDG2011] +0.000027000 J/psi rho0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.00003 J/psi omega SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.000000000 J/psi K+ pi- PHSP; #[Reconstructed PDG2011] 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.001300000 J/psi K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] 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.000094000 J/psi phi K0 PHSP; #[Reconstructed PDG2011] +#### +0.000871000 J/psi K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000310000 J/psi omega K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000009500 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000019000 J/psi pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000460000 J/psi K0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000540000 J/psi K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000800000 J/psi K*+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000660000 J/psi K*0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] + 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.000435500 J/psi K_S0 SVS; #[Reconstructed PDG2011] +0.000435500 J/psi K_L0 SVS; #[Reconstructed PDG2011] +# +# +0.001330000 J/psi anti-K*0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] +0.000017600 J/psi pi0 SVS; #[Reconstructed PDG2011] +0.000027000 J/psi rho0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] +0.000030 J/psi omega SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.000000000 J/psi K- pi+ PHSP; #[Reconstructed PDG2011] 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.001300000 J/psi anti-K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] 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.000094000 J/psi phi anti-K0 PHSP; #[Reconstructed PDG2011] +### +0.000871000 J/psi anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000310000 J/psi omega anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000009500 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000019000 J/psi pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000460000 J/psi anti-K0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000540000 J/psi anti-K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000800000 J/psi K*- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000660000 J/psi anti-K*0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +#### 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; +# +# B -> cc= s sum = 1.92% +# +0.001014000 J/psi K- SVS; #[Reconstructed PDG2011] +0.001430000 J/psi K*- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] +0.000049000 J/psi pi- SVS; #[Reconstructed PDG2011] +0.000050000 J/psi rho- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] 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.001800000 J/psi K_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] +0.000052000 J/psi phi K- PHSP; #[Reconstructed PDG2011] +# +0.001070000 J/psi K- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000108000 J/psi eta K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000350000 J/psi omega K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011800 J/psi anti-p- Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] + +Enddecay + +Decay B+ +# +# B -> cc= s sum = 1.92% +# +0.001014000 J/psi K+ SVS; #[Reconstructed PDG2011] +0.001430000 J/psi K*+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.000049000 J/psi pi+ SVS; #[Reconstructed PDG2011] +0.000050000 J/psi rho+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.0002 J/psi K0 pi+ PHSP; +0.0001 J/psi K+ pi0 PHSP; +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.001800000 J/psi K_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] +0.000052000 J/psi phi K+ PHSP; #[Reconstructed PDG2011] +# +#### +0.001070000 J/psi K+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000108000 J/psi eta K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000350000 J/psi omega K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011800 J/psi p+ anti-Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] -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.001300000 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +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 K0 K- pi+ PHSP; 0.00070 J/psi anti-K0 K0 pi0 PHSP; 0.00070 J/psi K- K+ pi0 PHSP; +# LHCb PR 04/02/04 Add (cc) phi n pi(+/0) +0.00039 J/psi phi pi+ pi- PHSP; +0.00039 J/psi phi pi0 pi0 PHSP; +# LHCb PR Add (cc) phi eta(') + npi like in CDF QQ +0.0002 J/psi eta pi+ pi- PHSP; +0.0002 J/psi eta pi0 pi0 PHSP; +0.0004 J/psi eta' pi+ pi- PHSP; +0.0004 J/psi eta' pi0 pi0 PHSP; +0.0002 J/psi pi+ pi- PHSP; +0.0002 J/psi pi0 pi0 PHSP; +# PR LHCb 04/08/2004 : add Bs -> phi mu mu, phi e e +0.0000023 phi e+ e- BTOSLLALI; 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.001300000 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] 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; +# LHCb PR 04/02/04 Add (cc) phi n pi(+/0) +0.00039 J/psi phi pi+ pi- PHSP; +0.00039 J/psi phi pi0 pi0 PHSP; +# LHCb PR add (cc) phi eta(') + npi see CDF QQ +0.0002 J/psi eta pi+ pi- PHSP; +0.0002 J/psi eta pi0 pi0 PHSP; +0.0004 J/psi eta' pi+ pi- PHSP; +0.0004 J/psi eta' pi0 pi0 PHSP; +0.0002 J/psi pi+ pi- PHSP; +0.0002 J/psi pi0 pi0 PHSP; +# PR LHCb 04/08/2004 : add Bs -> phi mu mu, phi e e +0.0000023 phi e- e+ BTOSLLALI; + Enddecay Decay Lambda_b0 -0.00047 Lambda0 J/psi PHSP; +# + 0.00047 Lambda0 J/psi PHSP; Enddecay Decay anti-Lambda_b0 -0.00047 anti-Lambda0 J/psi PHSP; + 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; +Decay Xi_b- + 0.00047 Xi- J/psi PHSP; 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; + +Decay anti-Xi_b+ + 0.00047 anti-Xi+ J/psi PHSP; Enddecay Decay Xi_b0 -0.00047 Xi0 J/psi PHSP; + 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; + 0.00047 anti-Xi0 J/psi PHSP; Enddecay Decay Omega_b- -0.00047 Omega- J/psi PHSP; + 0.00047 Omega- J/psi PHSP; Enddecay Decay anti-Omega_b+ -0.00047 anti-Omega+ J/psi PHSP; + 0.00047 anti-Omega+ J/psi PHSP; Enddecay Decay J/psi diff --git a/TEvtGen/EvtGen/DecayTable/BTOJPSITOMU.DEC b/TEvtGen/EvtGen/DecayTable/BTOJPSITOMU.DEC index 89212da3b23..3da32b2d58f 100644 --- a/TEvtGen/EvtGen/DecayTable/BTOJPSITOMU.DEC +++ b/TEvtGen/EvtGen/DecayTable/BTOJPSITOMU.DEC @@ -1,203 +1,192 @@ -## -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 +#### +Decay B0 +# B -> cc= s +0.000435500 J/psi K_S0 SVS; #[Reconstructed PDG2011] +0.000435500 J/psi K_L0 SVS; #[Reconstructed PDG2011] # -#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.001330000 J/psi K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.000017600 J/psi pi0 SVS; #[Reconstructed PDG2011] +0.000027000 J/psi rho0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.00003 J/psi omega SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.000000000 J/psi K+ pi- PHSP; #[Reconstructed PDG2011] 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.001300000 J/psi K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] 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.000094000 J/psi phi K0 PHSP; #[Reconstructed PDG2011] +#### +0.000871000 J/psi K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000310000 J/psi omega K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000009500 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000019000 J/psi pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000460000 J/psi K0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000540000 J/psi K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000800000 J/psi K*+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000660000 J/psi K*0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] + 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.000435500 J/psi K_S0 SVS; #[Reconstructed PDG2011] +0.000435500 J/psi K_L0 SVS; #[Reconstructed PDG2011] +# +# +0.001330000 J/psi anti-K*0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] +0.000017600 J/psi pi0 SVS; #[Reconstructed PDG2011] +0.000027000 J/psi rho0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] +0.000030 J/psi omega SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.000000000 J/psi K- pi+ PHSP; #[Reconstructed PDG2011] 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.001300000 J/psi anti-K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] 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.000094000 J/psi phi anti-K0 PHSP; #[Reconstructed PDG2011] +### +0.000871000 J/psi anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000310000 J/psi omega anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000009500 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000019000 J/psi pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000460000 J/psi anti-K0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000540000 J/psi anti-K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000800000 J/psi K*- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000660000 J/psi anti-K*0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +#### 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; +# +# B -> cc= s sum = 1.92% +# +0.001014000 J/psi K- SVS; #[Reconstructed PDG2011] +0.001430000 J/psi K*- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] +0.000049000 J/psi pi- SVS; #[Reconstructed PDG2011] +0.000050000 J/psi rho- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] 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.001800000 J/psi K_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] +0.000052000 J/psi phi K- PHSP; #[Reconstructed PDG2011] +# +0.001070000 J/psi K- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000108000 J/psi eta K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000350000 J/psi omega K- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011800 J/psi anti-p- Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] + +Enddecay + +Decay B+ +# +# B -> cc= s sum = 1.92% +# +0.001014000 J/psi K+ SVS; #[Reconstructed PDG2011] +0.001430000 J/psi K*+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.000049000 J/psi pi+ SVS; #[Reconstructed PDG2011] +0.000050000 J/psi rho+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] +0.0002 J/psi K0 pi+ PHSP; +0.0001 J/psi K+ pi0 PHSP; +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.001800000 J/psi K_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] +0.000052000 J/psi phi K+ PHSP; #[Reconstructed PDG2011] +# +#### +0.001070000 J/psi K+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000108000 J/psi eta K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000350000 J/psi omega K+ PHSP; #[New mode added] #[Reconstructed PDG2011] +0.000011800 J/psi p+ anti-Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] -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.001300000 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] +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 K0 K- pi+ PHSP; 0.00070 J/psi anti-K0 K0 pi0 PHSP; 0.00070 J/psi K- K+ pi0 PHSP; +# LHCb PR 04/02/04 Add (cc) phi n pi(+/0) +0.00039 J/psi phi pi+ pi- PHSP; +0.00039 J/psi phi pi0 pi0 PHSP; +# LHCb PR Add (cc) phi eta(') + npi like in CDF QQ +0.0002 J/psi eta pi+ pi- PHSP; +0.0002 J/psi eta pi0 pi0 PHSP; +0.0004 J/psi eta' pi+ pi- PHSP; +0.0004 J/psi eta' pi0 pi0 PHSP; +0.0002 J/psi pi+ pi- PHSP; +0.0002 J/psi pi0 pi0 PHSP; +# PR LHCb 04/08/2004 : add Bs -> phi mu mu, phi e e +0.0000023 phi e+ e- BTOSLLALI; 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.001300000 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] 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; +# LHCb PR 04/02/04 Add (cc) phi n pi(+/0) +0.00039 J/psi phi pi+ pi- PHSP; +0.00039 J/psi phi pi0 pi0 PHSP; +# LHCb PR add (cc) phi eta(') + npi see CDF QQ +0.0002 J/psi eta pi+ pi- PHSP; +0.0002 J/psi eta pi0 pi0 PHSP; +0.0004 J/psi eta' pi+ pi- PHSP; +0.0004 J/psi eta' pi0 pi0 PHSP; +0.0002 J/psi pi+ pi- PHSP; +0.0002 J/psi pi0 pi0 PHSP; +# PR LHCb 04/08/2004 : add Bs -> phi mu mu, phi e e +0.0000023 phi e- e+ BTOSLLALI; + Enddecay Decay Lambda_b0 -0.00047 Lambda0 J/psi PHSP; +# + 0.00047 Lambda0 J/psi PHSP; Enddecay Decay anti-Lambda_b0 -0.00047 anti-Lambda0 J/psi PHSP; + 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; +Decay Xi_b- + 0.00047 Xi- J/psi PHSP; 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; + +Decay anti-Xi_b+ + 0.00047 anti-Xi+ J/psi PHSP; Enddecay Decay Xi_b0 -0.00047 Xi0 J/psi PHSP; + 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; + 0.00047 anti-Xi0 J/psi PHSP; Enddecay Decay Omega_b- -0.00047 Omega- J/psi PHSP; + 0.00047 Omega- J/psi PHSP; Enddecay Decay anti-Omega_b+ -0.00047 anti-Omega+ J/psi PHSP; + 0.00047 anti-Omega+ J/psi PHSP; Enddecay Decay J/psi 1.000 mu+ mu- PHOTOS VLL; Enddecay + End diff --git a/TEvtGen/EvtGen/DecayTable/PSI2STOMU.DEC b/TEvtGen/EvtGen/DecayTable/PSI2STOMU.DEC new file mode 100644 index 00000000000..0db8a3ba04a --- /dev/null +++ b/TEvtGen/EvtGen/DecayTable/PSI2STOMU.DEC @@ -0,0 +1,6 @@ +#### +Decay psi(2S) +1.000 mu+ mu- PHOTOS VLL; +Enddecay + +End diff --git a/TEvtGen/EvtGen/DecayTable/UPSILONTO2SMU.DEC b/TEvtGen/EvtGen/DecayTable/UPSILONTO2SMU.DEC new file mode 100644 index 00000000000..63cb312931c --- /dev/null +++ b/TEvtGen/EvtGen/DecayTable/UPSILONTO2SMU.DEC @@ -0,0 +1,6 @@ +#### +Decay Upsilon(2S) +1.000 mu+ mu- PHOTOS VLL; +Enddecay + +End diff --git a/TEvtGen/EvtGen/DecayTable/UPSILONTOMU.DEC b/TEvtGen/EvtGen/DecayTable/UPSILONTOMU.DEC new file mode 100644 index 00000000000..0051e917873 --- /dev/null +++ b/TEvtGen/EvtGen/DecayTable/UPSILONTOMU.DEC @@ -0,0 +1,7 @@ +#### + +Decay Upsilon +1.000 mu+ mu- PHOTOS VLL; +Enddecay + +End diff --git a/TEvtGen/EvtGen/EvtCheckDecays.cxx b/TEvtGen/EvtGen/EvtCheckDecays.cxx deleted file mode 100644 index ba6e52b466f..00000000000 --- a/TEvtGen/EvtGen/EvtCheckDecays.cxx +++ /dev/null @@ -1,383 +0,0 @@ -//-------------------------------------------------------------------------- -// -// 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 deleted file mode 100644 index b6c851a26fe..00000000000 --- a/TEvtGen/EvtGen/EvtCheckDecays.hh +++ /dev/null @@ -1,34 +0,0 @@ -//-------------------------------------------------------------------------- -// -// 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.cpp b/TEvtGen/EvtGen/EvtGen.cpp new file mode 100644 index 00000000000..558c7db059f --- /dev/null +++ b/TEvtGen/EvtGen/EvtGen.cpp @@ -0,0 +1,203 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the 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 +// JBack June 2011 Added HepMC event interface +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGen/EvtGen.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtRandomEngine.hh" +#include "EvtGenBase/EvtSimpleRandomEngine.hh" +#include "EvtGenBase/EvtParticleFactory.hh" +#include "EvtGenModels/EvtModelReg.hh" +#include "EvtGenBase/EvtStatus.hh" +#include "EvtGenBase/EvtAbsRadCorr.hh" +#include "EvtGenBase/EvtRadCorr.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtHepMCEvent.hh" + +#include "EvtGenModels/EvtNoRadCorr.hh" + +#include +#include +#include + +using std::endl; +using std::fstream; +using std::ifstream; + +EvtGen::~EvtGen(){ + + //This is a bit ugly, 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 destruction of objects that it depends on, e.g., EvtPDL. + + if (getenv("EVTINFO")){ + EvtDecayTable::getInstance()->printSummary(); + } + +} + +EvtGen::EvtGen(const char* const decayName, + const char* const pdtTableName, + EvtRandomEngine* randomEngine, + EvtAbsRadCorr* isrEngine, + const std::list* extraModels, + int mixingType, bool useXml){ + + + report(INFO,"EvtGen") << "Initializing EvtGen"<readXMLDecayFile(decayName,false); + } else { + EvtDecayTable::getInstance()->readDecayFile(decayName,false); + } + + _mixingType = mixingType; + report(INFO,"EvtGen") << "Mixing type integer set to "<<_mixingType<setMixingType(_mixingType); + + // Set the radiative correction engine + + if (isrEngine != 0) { + + EvtRadCorr::setRadCorrEngine(isrEngine); + + } else { + + // Owing to the pure abstract interface, we still need to define a concrete + // implementation of a radiative correction engine. Use one which does nothing. + EvtAbsRadCorr* noRadCorr = new EvtNoRadCorr(); + EvtRadCorr::setRadCorrEngine(noRadCorr); + + } + + report(INFO,"EvtGen") << "Done initializing EvtGen"<readXMLDecayFile(uDecayName,true); + } else { + EvtDecayTable::getInstance()->readDecayFile(uDecayName,true); + } + } + else{ + + report(INFO,"EvtGen") << "Can not find UDECAY file '" + <constructEvent(theParticle, translation); + + theParticle->deleteTree(); + + return hepMCEvent; + +} + +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!"< -#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 EvtVector4R; class EvtStdHep; class EvtSpinDensity; class EvtAbsRadCorr; class EvtDecayBase; - -//#ifdef NOCLHEPNAMESPACE -//namespace CLHEP { -//typedef HepLorentzVector HepLorentzVector ; -//} -//#endif +class EvtHepMCEvent; class EvtGen{ @@ -55,26 +49,23 @@ public: EvtGen(const char* const decayName,const char* const pdtTableName, EvtRandomEngine* randomEngine=0, EvtAbsRadCorr *isrEngine=0, - const std::list* extraModels=0); + const std::list* extraModels=0, + int mixingType = 1, bool useXml = false); ~EvtGen(); - void readUDecay(const char* const udecay_name); + void readUDecay(const char* const udecay_name, bool useXml = false); - void generateDecay(int stdhepid, EvtVector4R P, EvtVector4R D, - EvtStdHep *evtStdHep,EvtSpinDensity *spinDensity=0); + EvtHepMCEvent* generateDecay(int PDGid, EvtVector4R refFrameP4, + EvtVector4R translation, + 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; + int _mixingType; }; diff --git a/TEvtGen/EvtGen/EvtGenLinkDef.h b/TEvtGen/EvtGen/EvtGenLinkDef.h deleted file mode 100644 index a3503c7d5d1..00000000000 --- a/TEvtGen/EvtGen/EvtGenLinkDef.h +++ /dev/null @@ -1,10 +0,0 @@ -#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 deleted file mode 100644 index 2913de9d7ec..00000000000 --- a/TEvtGen/EvtGen/Makefile +++ /dev/null @@ -1,327 +0,0 @@ -#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 deleted file mode 100644 index fdfae6d8756..00000000000 --- a/TEvtGen/EvtGen/config.mk +++ /dev/null @@ -1,11 +0,0 @@ -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 deleted file mode 100644 index 0e47e3e4c23..00000000000 --- a/TEvtGen/EvtGen/decay.evt +++ /dev/null @@ -1,1349 +0,0 @@ -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 index 52aeb48bcc2..e62aa12dea3 100644 --- a/TEvtGen/EvtGen/evt.pdl +++ b/TEvtGen/EvtGen/evt.pdl @@ -1,673 +1,551 @@ -* 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 +*--------------------------------------------------------------------------------------------------------------------------------------- +* 5/10/2013 Updated by R. Godang. The format and convention are based on the current evt.pdl and PDG 2012 +*--------------------------------------------------------------------------------------------------------------------------------------- +* name id mass/GeV width/GeV max_Dm/GeV 3*charge 2*spin lifetime*c/mm PythiaId +add p Particle K_4*+ 329 2.0450000e+00 1.9800000e-01 2.0000000e-01 3 8 0.0000000e+00 0 +add p Particle h_b(2P) 110553 1.0255000e+01 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 110553 +add p Particle b 5 5.0000000e+00 0.0000000e+00 0.0000000e+00 -1 1 0.0000000e+00 5 +add p Particle anti-nu_e -12 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 -12 +add p Particle D_2*0 425 2.4611000e+00 4.3000001e-02 3.0900000e-01 0 4 0.0000000e+00 425 +add p Particle Upsilon 553 9.4603000e+00 5.4000022e-05 5.0000000e-04 0 2 0.0000000e+00 553 +add p Particle anti-B'_10 -20513 5.7570000e+00 2.5027080e-01 2.0000000e-01 0 2 0.0000000e+00 -20513 +add p Particle anti-K0 -311 4.9761400e-01 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 -311 +add p Particle Lambda(1405)0 13122 1.4060000e+00 5.0000015e-02 7.0000000e-02 0 1 0.0000000e+00 0 +add p Particle K*+ 323 8.9166000e-01 5.0800012e-02 2.3000000e-01 3 2 0.0000000e+00 323 +add p Particle e+ -11 5.1099891e-04 0.0000000e+00 0.0000000e+00 3 1 0.0000000e+00 -11 +add p Particle B0H 510 5.2795300e+00 0.0000000e+00 0.0000000e+00 0 0 4.5718350e-01 0 +add p Particle K_2*- -325 1.4256000e+00 9.8500006e-02 7.0000000e-01 -3 4 0.0000000e+00 -325 +add p Particle B'_10 20513 5.7570000e+00 2.5027080e-01 2.0000000e-01 0 2 0.0000000e+00 20513 +add p Particle K- -321 4.9367700e-01 0.0000000e+00 0.0000000e+00 -3 0 3.7114306e+03 -321 +add p Particle eta_b2(2D) 110555 1.0441000e+01 0.0000000e+00 0.0000000e+00 0 4 0.0000000e+00 110555 +add p Particle K'*0 100313 1.4140000e+00 2.3199996e-01 6.0000000e-01 0 2 0.0000000e+00 0 +add p Particle B_s10 10533 5.8310000e+00 3.9891649e-02 1.0000000e-02 0 2 0.0000000e+00 10533 +add p Particle K_S0 310 4.9761400e-01 0.0000000e+00 0.0000000e+00 0 0 2.6840419e+01 310 +add p Particle Upsilon_1(2D) 130553 1.0434900e+01 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 130553 +add p Particle B_0*- -10521 5.7380000e+00 1.4993444e-01 2.0000000e-01 -3 0 0.0000000e+00 -10521 +add p Particle D'_10 20423 2.4450000e+00 2.5027080e-01 3.0000000e-01 0 2 0.0000000e+00 20423 +add p Particle B+ 521 5.2791500e+00 0.0000000e+00 0.0000000e+00 3 0 4.9106005e-01 521 +add p Particle B_0*+ 10521 5.7380000e+00 1.4993444e-01 2.0000000e-01 3 0 0.0000000e+00 10521 +add p Particle Sigma_b*- 5114 5.8364000e+00 0.0000000e+00 0.0000000e+00 -3 3 0.0000000e+00 5114 +add p Particle anti-Lambda(1405)0 -13122 1.4060000e+00 5.0000015e-02 7.0000000e-02 0 1 0.0000000e+00 0 +add p Particle anti-B_s10 -10533 5.8310000e+00 3.9891649e-02 1.0000000e-02 0 2 0.0000000e+00 -10533 +add p Particle B0L 150 5.2795300e+00 0.0000000e+00 0.0000000e+00 0 0 4.5718350e-01 0 +add p Particle anti-B_0*0 -10511 5.7380000e+00 1.4993444e-01 2.0000000e-01 0 0 0.0000000e+00 -10511 +add p Particle anti-Sigma(1660)0 -13212 1.6600000e+00 1.0000000e-01 4.0000000e-01 0 1 0.0000000e+00 0 +add p Particle Xi_b0 5232 5.7924000e+00 0.0000000e+00 0.0000000e+00 0 1 4.2570529e-01 5232 +add p Particle D_2*- -415 2.4601000e+00 3.6999998e-02 3.1200000e-01 -3 4 0.0000000e+00 -415 +add p Particle b_1- -10213 1.2295000e+00 1.4200001e-01 2.5000000e-01 -3 2 0.0000000e+00 -10213 +add p Particle K*0 313 8.9600000e-01 5.0299999e-02 2.3000000e-01 0 2 0.0000000e+00 313 +add p Particle anti-K'*0 -100313 1.4140000e+00 2.3199996e-01 6.0000000e-01 0 2 0.0000000e+00 0 +add p Particle anti-Lambda(1600)0 -23122 1.6000000e+00 1.5000001e-01 2.5000000e-01 0 1 0.0000000e+00 0 +add p Particle B'_1+ 20523 5.7570000e+00 2.5027080e-01 2.0000000e-01 3 2 0.0000000e+00 20523 +add p Particle tau- 15 1.7768400e+00 0.0000000e+00 0.0000000e+00 -3 1 8.7119688e-02 15 +add p Particle f'_1 20333 1.4264000e+00 5.4900015e-02 1.0000000e-01 0 2 0.0000000e+00 20333 +add p Particle D(2S)- -100411 2.5800000e+00 0.0000000e+00 0.0000000e+00 -3 0 0.0000000e+00 0 +add p Particle D_s2*- -435 2.5726000e+00 2.0000000e-02 6.0000000e-02 -3 4 0.0000000e+00 -435 +add p Particle n0 2112 9.3956536e-01 0.0000000e+00 0.0000000e+00 0 1 2.6552618e+14 2112 +add p Particle anti-Xi*+ -3314 1.5350000e+00 9.9000002e-03 5.0000000e-02 3 3 0.0000000e+00 -3314 +add p Particle D*- -413 2.0102700e+00 9.6000002e-05 4.0000000e-04 -3 2 0.0000000e+00 -413 +add p Particle a_1+ 20213 1.2300000e+00 4.1999998e-01 6.0000000e-01 3 2 0.0000000e+00 20213 +add p Particle D*+ 413 2.0102700e+00 9.6000002e-05 4.0000000e-04 3 2 0.0000000e+00 413 +add p Particle rndmflav 82 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 82 +add p Particle anti-uu_1 -2203 0.0000000e+00 0.0000000e+00 0.0000000e+00 -4 2 0.0000000e+00 -2203 +add p Particle anti-c -4 1.3500000e+00 0.0000000e+00 0.0000000e+00 -2 1 0.0000000e+00 -4 +add p Particle Upsilon(5S) 9000553 1.0865000e+01 1.1000001e-01 1.6500000e+00 0 2 0.0000000e+00 0 +add p Particle Xi_cc++ 4422 3.5979800e+00 0.0000000e+00 0.0000000e+00 6 1 1.0000000e-01 4422 +add p Particle B_c- -541 6.2760000e+00 0.0000000e+00 0.0000000e+00 -3 0 1.3490661e-01 -541 +add p Particle anti-Sigma*+ -3114 1.3872000e+00 3.9400008e-02 4.0000000e-02 3 3 0.0000000e+00 -3114 +add p Particle anti-b'-hadron -87 4.0000000e+02 0.0000000e+00 0.0000000e+00 1 0 0.0000000e+00 0 +add p Particle Upsilon_1(1D) 30553 1.0150100e+01 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 30553 +add p Particle eta_c(2S) 100441 3.6370000e+00 1.3999999e-02 2.0000000e-02 0 0 0.0000000e+00 100441 +add p Particle anti-Delta- -2214 1.2320000e+00 1.1800001e-01 1.4000000e-01 -3 3 0.0000000e+00 -2214 +add p Particle anti-D_0*0 -10421 2.4000000e+00 1.5027676e-01 2.9900000e-01 0 0 0.0000000e+00 -10421 +add p Particle anti-nu_L -18 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 -18 +add p Particle Lambda(1830)0 13126 1.8300000e+00 9.5000007e-02 4.8000000e-01 0 5 0.0000000e+00 0 +add p Particle Lambda0 3122 1.1156830e+00 0.0000000e+00 0.0000000e+00 0 1 7.8875396e+01 3122 +add p Particle uu_1 2203 0.0000000e+00 0.0000000e+00 0.0000000e+00 4 2 0.0000000e+00 2203 +add p Particle psi(4160) 9010443 4.1530000e+00 7.8000000e-02 1.5000000e-01 0 2 0.0000000e+00 0 +add p Particle Xi'_b0 5322 5.9600000e+00 6.5821220e-06 1.0000000e-04 0 1 0.0000000e+00 5322 +add p Particle b'-hadron 87 4.0000000e+02 0.0000000e+00 0.0000000e+00 -1 0 0.0000000e+00 0 +add p Particle Omega- 3334 1.6724500e+00 0.0000000e+00 0.0000000e+00 -3 3 2.4612961e+01 3334 +add p Particle B_10 10513 5.7320000e+00 3.9891649e-02 2.0000000e-01 0 2 0.0000000e+00 10513 +add p Particle anti-ud_1 -2103 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 2 0.0000000e+00 -2103 +add p Particle t-hadron 86 1.7500000e+02 0.0000000e+00 0.0000000e+00 2 0 0.0000000e+00 0 +add p Particle anti-t-hadron -86 1.7500000e+02 0.0000000e+00 0.0000000e+00 -2 0 0.0000000e+00 0 +add p Particle anti-Sigma0 -3212 1.1926420e+00 8.8947595e-06 1.3000000e-04 0 1 0.0000000e+00 -3212 +add p Particle B'_1- -20523 5.7570000e+00 2.5027080e-01 2.0000000e-01 -3 2 0.0000000e+00 -20523 +add p Particle Lambda_c(2593)+ 14122 2.5954000e+00 3.6000005e-03 5.4000000e-02 3 1 0.0000000e+00 0 +add p Particle anti-Lambda(1820)0 -3126 1.8200000e+00 7.9999995e-02 4.0000000e-01 0 5 0.0000000e+00 0 +add p Particle Omega_cc+ 4432 3.7866300e+00 0.0000000e+00 0.0000000e+00 3 1 1.0000000e-01 4432 +add p Particle anti-Delta-- -2224 1.2320000e+00 1.1800001e-01 1.4000000e-01 -6 3 0.0000000e+00 -2224 +add p Particle B_2*0 515 5.7469000e+00 5.0245206e-02 2.0000000e-01 0 4 0.0000000e+00 515 +add p Particle K'_10 20313 1.4030000e+00 1.7399999e-01 4.0000000e-01 0 2 0.0000000e+00 20313 +add p Particle sigma_0 9000221 4.7800000e-01 0.0000000e+00 4.7800000e-01 0 0 0.0000000e+00 0 +add p Particle anti-Xi_cc*-- -4424 3.6564800e+00 0.0000000e+00 0.0000000e+00 -6 3 0.0000000e+00 -4424 +add p Particle anti-D_10 -10423 2.4223000e+00 2.0400003e-02 2.7200000e-01 0 2 0.0000000e+00 -10423 +add p Particle anti-Lambda_c(2593)- -14122 2.5954000e+00 3.6000005e-03 5.4000000e-02 -3 1 0.0000000e+00 0 +add p Particle B_1- -10523 5.7320000e+00 3.9891649e-02 2.0000000e-01 -3 2 0.0000000e+00 -10523 +add p Particle anti-Xi_cc- -4412 3.5979800e+00 0.0000000e+00 0.0000000e+00 -3 1 1.0000000e-01 -4412 +add p Particle D_s- -431 1.9684900e+00 0.0000000e+00 0.0000000e+00 -3 0 1.4989623e-01 -431 +add p Particle anti-Lambda_c- -4122 2.2864600e+00 0.0000000e+00 0.0000000e+00 -3 1 5.9958492e-02 -4122 +add p Particle Xi_cc+ 4412 3.5979800e+00 0.0000000e+00 0.0000000e+00 3 1 1.0000000e-01 4412 +add p Particle B_1+ 10523 5.7320000e+00 3.9891649e-02 2.0000000e-01 3 2 0.0000000e+00 10523 +add p Particle D_0*- -10411 2.4000000e+00 1.5027676e-01 3.0300000e-01 -3 0 0.0000000e+00 -10411 +add p Particle anti-Xi_cc-- -4422 3.5979800e+00 0.0000000e+00 0.0000000e+00 -6 1 1.0000000e-01 -4422 +add p Particle anti-Sigma_b*+ -5114 5.8364000e+00 0.0000000e+00 0.0000000e+00 3 3 0.0000000e+00 -5114 +add p Particle chi_b2(3P) 200555 1.0526400e+01 0.0000000e+00 0.0000000e+00 0 4 0.0000000e+00 200555 +add p Particle K''*- -30323 1.7170000e+00 3.2000002e-01 7.0000000e-01 -3 2 0.0000000e+00 0 +add p Particle vpho 10022 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 0 +add p Particle K_4*- -329 2.0450000e+00 1.9800000e-01 2.0000000e-01 -3 8 0.0000000e+00 0 +add p Particle K_L0 130 4.9761400e-01 0.0000000e+00 0.0000000e+00 0 0 1.5337382e+04 130 +add p Particle eta_b(3S) 200551 1.0335000e+01 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 0 +add p Particle K''*+ 30323 1.7170000e+00 3.2000002e-01 7.0000000e-01 3 2 0.0000000e+00 0 +add p Particle Lambda(1800)0 43122 1.8000000e+00 2.9999996e-01 4.5000000e-01 0 1 0.0000000e+00 0 +add p Particle anti-Lambda(1800)0 -43122 1.8000000e+00 2.9999996e-01 4.5000000e-01 0 1 0.0000000e+00 0 +add p Particle K_10 10313 1.2720000e+00 8.9999999e-02 2.0000000e-01 0 2 0.0000000e+00 10313 +add p Particle D*(2S)- -100413 2.6400000e+00 0.0000000e+00 0.0000000e+00 -3 2 0.0000000e+00 0 +add p Particle CELLjet 98 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 98 +add p Particle B_c2*- -545 7.3500000e+00 0.0000000e+00 6.0000000e-02 -3 4 0.0000000e+00 -545 +add p Particle K_0*0 10311 1.4200000e+00 2.7000000e-01 6.0000000e-01 0 0 0.0000000e+00 10311 +add p Particle D_s0*- -10431 2.3178000e+00 1.0000033e-03 1.0000000e-02 -3 0 0.0000000e+00 -10431 +add p Particle h_b(3P) 210553 1.0516000e+01 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 210553 +add p Particle Lambda_c+ 4122 2.2864600e+00 0.0000000e+00 0.0000000e+00 3 1 5.9958492e-02 4122 +add p Particle Xi_c0 4132 2.4710000e+00 0.0000000e+00 0.0000000e+00 0 1 3.3576755e-02 4132 +add p Particle D_s0*+ 10431 2.3178000e+00 1.0000033e-03 1.0000000e-02 3 0 0.0000000e+00 10431 +add p Particle junction 88 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 88 +add p Particle K'_1- -20323 1.4030000e+00 1.7399999e-01 4.0000000e-01 -3 2 0.0000000e+00 -20323 +add p Particle X_2(3872) 9910445 3.8722000e+00 3.1700598e-04 2.9000000e-03 0 4 0.0000000e+00 9910445 +add p Particle K+ 321 4.9367700e-01 0.0000000e+00 0.0000000e+00 3 0 3.7114306e+03 321 +add p Particle anti-Xi_cc*- -4414 3.6564800e+00 0.0000000e+00 0.0000000e+00 -3 3 0.0000000e+00 -4414 +add p Particle s 3 1.9900000e-01 0.0000000e+00 0.0000000e+00 -1 1 0.0000000e+00 3 +add p Particle D*(2S)+ 100413 2.6400000e+00 0.0000000e+00 0.0000000e+00 3 2 0.0000000e+00 0 +add p Particle D_s*+ 433 2.1123000e+00 6.5821023e-06 1.0000000e-04 3 2 0.0000000e+00 433 +add p Particle anti-Omega_c*0 -4334 2.7683000e+00 0.0000000e+00 0.0000000e+00 0 3 0.0000000e+00 -4334 +add p Particle D_0*+ 10411 2.4000000e+00 1.5027676e-01 3.0300000e-01 3 0 0.0000000e+00 10411 +add p Particle anti-p- -2212 9.3827203e-01 0.0000000e+00 0.0000000e+00 -3 1 0.0000000e+00 -2212 +add p Particle anti-bd_1 -5103 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 2 0.0000000e+00 -5103 +add p Particle h_b 10553 9.8750000e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 10553 +add p Particle anti-Lambda(1830)0 -13126 1.8300000e+00 9.5000007e-02 4.8000000e-01 0 5 0.0000000e+00 0 +add p Particle anti-u -2 5.6000000e-03 0.0000000e+00 0.0000000e+00 -2 1 0.0000000e+00 -2 +add p Particle mu+ -13 1.0565837e-01 0.0000000e+00 0.0000000e+00 3 1 6.5864973e+05 -13 +add p Particle bc_0 5401 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0.0000000e+00 5401 +add p Particle alpha 1000020040 3.7274170e+00 0.0000000e+00 0.0000000e+00 6 0 0.0000000e+00 0 +add p Particle Sigma*- 3114 1.3872000e+00 3.9400008e-02 4.0000000e-02 -3 3 0.0000000e+00 3114 +add p Particle K''*0 30313 1.7170000e+00 3.2000002e-01 7.0000000e-01 0 2 0.0000000e+00 0 +add p Particle B*- -523 5.3251000e+00 6.5819970e-06 1.0000000e-04 -3 2 0.0000000e+00 -523 +add p Particle phasespa 83 1.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 83 +add p Particle b_10 10113 1.2295000e+00 1.4200001e-01 2.5000000e-01 0 2 0.0000000e+00 10113 +add p Particle D+ 411 1.8696200e+00 0.0000000e+00 0.0000000e+00 3 0 3.1178416e-01 411 +add p Particle b-hadron 85 5.0000000e+00 0.0000000e+00 0.0000000e+00 -1 0 3.8699999e-01 85 +add p Particle anti-Xi_b*0 -5324 5.9700000e+00 0.0000000e+00 0.0000000e+00 0 3 0.0000000e+00 -5324 +add p Particle chi_b1(3P) 220553 1.0516000e+01 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 220553 +add p Particle D*(2S)0 100423 2.6400000e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 0 +add p Particle anti-D*0 -423 2.0069700e+00 6.5821023e-06 3.0000000e-04 0 2 0.0000000e+00 -423 +add p Particle Lambda(1810)0 53122 1.8100000e+00 1.5000001e-01 4.6000000e-01 0 1 0.0000000e+00 0 +add p Particle rho0 113 7.7549000e-01 1.4940001e-01 4.8000000e-01 0 2 0.0000000e+00 113 +add p Particle anti-B*0 -513 5.3251000e+00 6.5819970e-06 1.0000000e-04 0 2 0.0000000e+00 -513 +add p Particle pi- -211 1.3957018e-01 0.0000000e+00 0.0000000e+00 -3 0 7.8044971e+03 -211 +add p Particle anti-B'_s10 -20533 5.8590000e+00 2.5027080e-01 2.0000000e-02 0 2 0.0000000e+00 -20533 +add p Particle h_1 10223 1.1700000e+00 3.6000005e-01 2.0000000e-01 0 2 0.0000000e+00 10223 +add p Particle geantino 480000000 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 0 +add p Particle indep 93 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 93 +add p Particle Cerenkov 20022 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 0 +add p Particle anti-Sigma*0 -3214 1.3837000e+00 3.6000005e-02 3.5000000e-02 0 3 0.0000000e+00 -3214 +add p Particle a_10 20113 1.2300000e+00 4.1999998e-01 6.0000000e-01 0 2 0.0000000e+00 20113 +add p Particle Higgs+ 37 3.1000000e+02 7.0022575e+00 0.0000000e+00 3 0 0.0000000e+00 37 +add p Particle Sigma*0 3214 1.3837000e+00 3.6000005e-02 3.5000000e-02 0 3 0.0000000e+00 3214 +add p Particle Xi_cc*+ 4414 3.6564800e+00 0.0000000e+00 0.0000000e+00 3 3 0.0000000e+00 4414 +add p Particle f'_2 335 1.5250000e+00 7.3000004e-02 2.0000000e-01 0 4 0.0000000e+00 335 +add p Particle Xi_b- 5132 5.7924000e+00 0.0000000e+00 0.0000000e+00 -3 1 4.2570529e-01 5132 +add p Particle anti-K_4*0 -319 2.0450000e+00 1.9800000e-01 2.0000000e-01 0 8 0.0000000e+00 0 +add p Particle rho(2S)+ 100213 1.4650000e+00 4.0000012e-01 5.0000000e-01 3 2 0.0000000e+00 0 +add p Particle eta_c 441 2.9803000e+00 2.6700003e-02 1.5000000e-01 0 0 0.0000000e+00 441 +add p Particle D_0*0 10421 2.4000000e+00 1.5027676e-01 2.9900000e-01 0 0 0.0000000e+00 10421 +add p Particle bu_1 5203 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 2 0.0000000e+00 5203 +add p Particle anti-su_1 -3203 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 2 0.0000000e+00 -3203 +add p Particle K_2*0 315 1.4324000e+00 1.0900000e-01 7.0000000e-01 0 4 0.0000000e+00 315 +add p Particle anti-Omega_c0 -4332 2.6975000e+00 0.0000000e+00 0.0000000e+00 0 1 2.0685680e-02 -4332 +add p Particle D_s1- -20433 2.4596000e+00 1.0000033e-03 1.0000000e-02 -3 2 0.0000000e+00 -20433 +add p Particle anti-deuteron -1000010020 1.8756130e+00 0.0000000e+00 0.0000000e+00 -3 0 0.0000000e+00 0 +add p Particle cd_1 4103 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 2 0.0000000e+00 4103 +add p Particle B_c1+ 10543 7.3000000e+00 0.0000000e+00 6.0000000e-02 3 2 0.0000000e+00 10543 +add p Particle D_s2*+ 435 2.5726000e+00 2.0000000e-02 6.0000000e-02 3 4 0.0000000e+00 435 +add p Particle Omega_b- 5332 6.1200000e+00 0.0000000e+00 0.0000000e+00 -3 1 4.6467831e-01 5332 +add p Particle B_c0*- -10541 7.2500000e+00 0.0000000e+00 6.0000000e-02 -3 0 0.0000000e+00 -10541 +add p Particle Upsilon(4S) 300553 1.0579400e+01 2.0500001e-02 3.9000000e-02 0 2 0.0000000e+00 300553 +add p Particle Sigma_b*+ 5224 5.8290000e+00 0.0000000e+00 0.0000000e+00 3 3 0.0000000e+00 5224 +add p Particle anti-Delta0 -2114 1.2320000e+00 1.1800001e-01 1.4000000e-01 0 3 0.0000000e+00 -2114 +add p Particle sd_0 3101 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 0 0.0000000e+00 3101 +add p Particle anti-sd_0 -3101 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 0 0.0000000e+00 -3101 +add p Particle D_s1+ 20433 2.4596000e+00 1.0000033e-03 1.0000000e-02 3 2 0.0000000e+00 20433 +add p Particle Upsilon(2S) 100553 1.0023260e+01 3.2000002e-05 4.0000000e-04 0 2 0.0000000e+00 100553 +add p Particle eta' 331 9.5766000e-01 2.0500001e-04 2.0000000e-03 0 0 0.0000000e+00 331 +add p Particle anti-Sigma(1775)0 -3216 1.7750000e+00 1.1999999e-01 5.0000000e-01 0 5 0.0000000e+00 0 +add p Particle D_10 10423 2.4223000e+00 2.0400003e-02 2.7200000e-01 0 2 0.0000000e+00 10423 +add p Particle Sigma_b*0 5214 5.8290000e+00 0.0000000e+00 0.0000000e+00 0 3 0.0000000e+00 5214 +add p Particle K*- -323 8.9166000e-01 5.0800012e-02 2.3000000e-01 -3 2 0.0000000e+00 -323 +add p Particle anti-nu_mu -14 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 -14 +add p Particle Sigma_b+ 5222 5.8078000e+00 6.5821220e-06 1.0000000e-04 3 1 0.0000000e+00 5222 +add p Particle anti-K_2*0 -315 1.4324000e+00 1.0900000e-01 7.0000000e-01 0 4 0.0000000e+00 -315 +add p Particle chi_c1 20443 3.5106600e+00 8.8999997e-04 1.0000000e-02 0 2 0.0000000e+00 20443 +add p Particle D'_1+ 20413 2.4450000e+00 2.5027080e-01 3.0000000e-01 3 2 0.0000000e+00 20413 +add p Particle anti-Xi_b+ -5132 5.7924000e+00 0.0000000e+00 0.0000000e+00 3 1 4.2570529e-01 -5132 +add p Particle anti-Xss -30363 1.8000000e+00 0.0000000e+00 1.0000000e+00 0 2 0.0000000e+00 -30363 +add p Particle D- -411 1.8696200e+00 0.0000000e+00 0.0000000e+00 -3 0 3.1178416e-01 -411 +add p Particle B*0 513 5.3251000e+00 6.5819970e-06 1.0000000e-04 0 2 0.0000000e+00 513 +add p Particle Xu+ 44 1.0000000e+00 0.0000000e+00 0.0000000e+00 3 0 0.0000000e+00 44 +add p Particle B'_s10 20533 5.8590000e+00 2.5027080e-01 2.0000000e-02 0 2 0.0000000e+00 20533 +add p Particle anti-Xi0 -3322 1.3148600e+00 0.0000000e+00 0.0000000e+00 0 1 8.6939813e+01 -3322 +add p Particle Xi*0 3324 1.5318000e+00 9.1000002e-03 5.0000000e-02 0 3 0.0000000e+00 3324 +add p Particle anti-b-hadron -85 5.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 3.8699999e-01 -85 +add p Particle CLUSjet 97 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 97 +add p Particle d 1 9.9000000e-03 0.0000000e+00 0.0000000e+00 -1 1 0.0000000e+00 1 +add p Particle psi(4415) 9020443 4.4210000e+00 6.1999976e-02 8.0000000e-02 0 2 0.0000000e+00 0 +add p Particle B_0*0 10511 5.7380000e+00 1.4993444e-01 2.0000000e-01 0 0 0.0000000e+00 10511 +add p Particle h'_1 10333 1.4000000e+00 0.0000000e+00 1.0000000e-02 0 2 0.0000000e+00 10333 +add p Particle anti-Xi_c- -4232 2.4679000e+00 0.0000000e+00 0.0000000e+00 -3 1 1.3250827e-01 -4232 +add p Particle anti-b -5 5.0000000e+00 0.0000000e+00 0.0000000e+00 1 1 0.0000000e+00 -5 +add p Particle cu_0 4201 0.0000000e+00 0.0000000e+00 0.0000000e+00 4 0 0.0000000e+00 4201 +add p Particle K_1- -10323 1.2720000e+00 8.9999999e-02 2.0000000e-01 -3 2 0.0000000e+00 -10323 +add p Particle f_1 20223 1.2818000e+00 2.4300002e-02 5.0000000e-02 0 2 0.0000000e+00 20223 +add p Particle omega(2S) 100223 1.4250000e+00 2.1500001e-01 4.0000000e-01 0 2 0.0000000e+00 0 +add p Particle Sigma*+ 3224 1.3828000e+00 3.5799992e-02 3.5000000e-02 3 3 0.0000000e+00 3224 +add p Particle bu_0 5201 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0.0000000e+00 5201 +add p Particle a_1- -20213 1.2300000e+00 4.1999998e-01 6.0000000e-01 -3 2 0.0000000e+00 -20213 +add p Particle f'_0 30221 1.3500000e+00 3.5000005e-01 3.5000000e-01 0 0 0.0000000e+00 10331 +add p Particle anti-K''*0 -30313 1.7170000e+00 3.2000002e-01 7.0000000e-01 0 2 0.0000000e+00 0 +add p Particle rho(3S)- -30213 1.7200000e+00 2.4999998e-01 5.0000000e-01 -3 2 0.0000000e+00 0 +add p Particle K_2*+ 325 1.4256000e+00 9.8500006e-02 7.0000000e-01 3 4 0.0000000e+00 325 +add p Particle D'_s1- -10433 2.5353000e+00 1.0000033e-03 1.0000000e-02 -3 2 0.0000000e+00 -10433 +add p Particle D'_s1+ 10433 2.5353000e+00 1.0000033e-03 1.0000000e-02 3 2 0.0000000e+00 10433 +add p Particle K'_1+ 20323 1.4030000e+00 1.7399999e-01 4.0000000e-01 3 2 0.0000000e+00 20323 +add p Particle anti-Omega_b+ -5332 6.1200000e+00 0.0000000e+00 0.0000000e+00 3 1 4.6467831e-01 -5332 +add p Particle b_1+ 10213 1.2295000e+00 1.4200001e-01 2.5000000e-01 3 2 0.0000000e+00 10213 +add p Particle rho- -213 7.7549000e-01 1.4940001e-01 4.8000000e-01 -3 2 0.0000000e+00 -213 +add p Particle B_c*- -543 6.6020000e+00 0.0000000e+00 0.0000000e+00 -3 2 0.0000000e+00 -543 +add p Particle Upsilon(3S) 200553 1.0355200e+01 2.0299998e-05 2.6000000e-04 0 2 0.0000000e+00 200553 +add p Particle B*+ 523 5.3251000e+00 6.5819970e-06 1.0000000e-04 3 2 0.0000000e+00 523 +add p Particle Sigma(1660)0 13212 1.6600000e+00 1.0000000e-01 4.0000000e-01 0 1 0.0000000e+00 0 +add p Particle anti-cu_0 -4201 0.0000000e+00 0.0000000e+00 0.0000000e+00 -4 0 0.0000000e+00 -4201 +add p Particle su_1 3203 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 2 0.0000000e+00 3203 +add p Particle f_2 225 1.2751000e+00 1.8509998e-01 2.7000000e-01 0 4 0.0000000e+00 225 +add p Particle anti-c-hadron -84 2.0000000e+00 0.0000000e+00 0.0000000e+00 -2 0 1.0000000e-01 -84 +add p Particle a_2- -215 1.3183000e+00 1.0700000e-01 5.0000000e-01 -3 4 0.0000000e+00 -215 +add p Particle c-hadron 84 2.0000000e+00 0.0000000e+00 0.0000000e+00 2 0 1.0000000e-01 84 +add p Particle anti-cd_1 -4103 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 2 0.0000000e+00 -4103 +add p Particle b' 7 4.0000000e+02 0.0000000e+00 0.0000000e+00 -1 1 0.0000000e+00 7 +add p Particle anti-Sigma_b*- -5224 5.8290000e+00 0.0000000e+00 0.0000000e+00 -3 3 0.0000000e+00 -5224 +add p Particle anti-t -6 1.7500000e+02 1.3981600e+00 1.3981560e+01 -2 1 0.0000000e+00 -6 +add p Particle t 6 1.7500000e+02 1.3981600e+00 1.3981560e+01 2 1 0.0000000e+00 6 +add p Particle pi+ 211 1.3957018e-01 0.0000000e+00 0.0000000e+00 3 0 7.8044971e+03 211 +add p Particle anti-Lambda(1690)0 -13124 1.6900000e+00 6.0000018e-02 3.0000000e-01 0 3 0.0000000e+00 0 +add p Particle Delta0 2114 1.2320000e+00 1.1800001e-01 1.4000000e-01 0 3 0.0000000e+00 2114 +add p Particle B- -521 5.2791500e+00 0.0000000e+00 0.0000000e+00 -3 0 4.9106005e-01 -521 +add p Particle ud_1 2103 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 2 0.0000000e+00 2103 +add p Particle Z''0 33 9.0000000e+02 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 33 +add p Particle anti-ss_1 -3303 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 2 0.0000000e+00 -3303 +add p Particle anti-cd_0 -4101 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 0 0.0000000e+00 -4101 +add p Particle anti-cs_0 -4301 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 0 0.0000000e+00 -4301 +add p Particle D_s+ 431 1.9684900e+00 0.0000000e+00 0.0000000e+00 3 0 1.4989623e-01 431 +add p Particle anti-D_2*0 -425 2.4611000e+00 4.3000001e-02 3.0900000e-01 0 4 0.0000000e+00 -425 +add p Particle L- 17 4.0000000e+02 0.0000000e+00 0.0000000e+00 -3 1 0.0000000e+00 17 +add p Particle omega 223 7.8265000e-01 8.4899999e-03 1.8000000e-01 0 2 0.0000000e+00 223 +add p Particle e- 11 5.1099891e-04 0.0000000e+00 0.0000000e+00 -3 1 0.0000000e+00 11 +add p Particle a_20 115 1.3183000e+00 1.0700000e-01 5.0000000e-01 0 4 0.0000000e+00 115 +add p Particle t' 8 5.0000000e+02 0.0000000e+00 0.0000000e+00 2 1 0.0000000e+00 8 +add p Particle cs_0 4301 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0.0000000e+00 4301 +add p Particle pi(2S)+ 100211 1.3000000e+00 3.9999988e-01 5.0000000e-01 3 0 0.0000000e+00 0 +add p Particle cu_1 4203 0.0000000e+00 0.0000000e+00 0.0000000e+00 4 2 0.0000000e+00 4203 +add p Particle Sigma_b0 5212 5.8078000e+00 6.5821220e-06 1.0000000e-04 0 1 0.0000000e+00 5212 +add p Particle anti-su_0 -3201 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 0 0.0000000e+00 -3201 +add p Particle anti-D'_10 -20423 2.4450000e+00 2.5027080e-01 3.0000000e-01 0 2 0.0000000e+00 -20423 +add p Particle anti-Sigma_c- -4212 2.4529000e+00 1.6455309e-03 2.4680000e-02 -3 1 0.0000000e+00 -4212 +add p Particle chi_b1(2P) 120553 1.0255500e+01 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 120553 +add p Particle bd_0 5101 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 0 0.0000000e+00 5101 +add p Particle Omega_cc*+ 4434 3.8246600e+00 0.0000000e+00 0.0000000e+00 3 3 0.0000000e+00 4434 +add p Particle anti-Lambda(1670)0 -33122 1.6700000e+00 3.5000005e-02 1.8000000e-01 0 1 0.0000000e+00 0 +add p Particle nu_e 12 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 12 +add p Particle CMshower 94 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 94 +add p Particle su_0 3201 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0.0000000e+00 3201 +add p Particle Omega_b*- 5334 6.1300000e+00 0.0000000e+00 0.0000000e+00 -3 3 0.0000000e+00 5334 +add p Particle eta_b(2S) 100551 9.9970000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 0 +add p Particle h_c 10443 3.5259300e+00 0.0000000e+00 2.0000000e-02 0 2 0.0000000e+00 10443 +add p Particle W+ 24 8.0398000e+01 2.1400000e+00 1.0000000e+01 3 2 0.0000000e+00 24 +add p Particle a_2+ 215 1.3183000e+00 1.0700000e-01 5.0000000e-01 3 4 0.0000000e+00 215 +add p Particle K_0*- -10321 1.4200000e+00 2.7000000e-01 6.0000000e-01 -3 0 0.0000000e+00 -10321 +add p Particle Upsilon_3(1D) 557 1.0159900e+01 0.0000000e+00 0.0000000e+00 0 6 0.0000000e+00 557 +add p Particle eta_b2(1D) 10555 1.0157000e+01 0.0000000e+00 0.0000000e+00 0 4 0.0000000e+00 10555 +add p Particle cluster 91 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 91 +add p Particle D*0 423 2.0069700e+00 6.5821023e-06 3.0000000e-04 0 2 0.0000000e+00 423 +add p Particle Sigma_c*0 4114 2.5180000e+00 1.6100002e-02 9.1900000e-02 0 3 0.0000000e+00 4114 +add p Particle K_3*- -327 1.7760000e+00 1.5900001e-01 7.0000000e-01 -3 6 0.0000000e+00 0 +add p Particle anti-rndmflav -82 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 -82 +add p Particle anti-Sigma_c*0 -4114 2.5180000e+00 1.6100002e-02 9.1900000e-02 0 3 0.0000000e+00 -4114 +add p Particle anti-K_10 -10313 1.2720000e+00 8.9999999e-02 2.0000000e-01 0 2 0.0000000e+00 -10313 +add p Particle omega(1650) 30223 1.6700000e+00 3.1499993e-01 0.0000000e+00 0 2 0.0000000e+00 0 +add p Particle anti-t' -8 5.0000000e+02 0.0000000e+00 0.0000000e+00 -2 1 0.0000000e+00 -8 +add p Particle Lambda_b0 5122 5.6202000e+00 0.0000000e+00 0.0000000e+00 0 1 4.1371359e-01 5122 +add p Particle chi_b0(3P) 210551 1.0500700e+01 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 210551 +add p Particle anti-Omega+ -3334 1.6724500e+00 0.0000000e+00 0.0000000e+00 3 3 2.4612961e+01 -3334 +add p Particle bs_1 5303 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 2 0.0000000e+00 5303 +add p Particle tritium 1000010030 2.8092500e+00 0.0000000e+00 0.0000000e+00 3 0 0.0000000e+00 0 +add p Particle Lambda(1670)0 33122 1.6700000e+00 3.5000005e-02 1.8000000e-01 0 1 0.0000000e+00 0 +add p Particle anti-cc_1 -4403 0.0000000e+00 0.0000000e+00 0.0000000e+00 -4 2 0.0000000e+00 -4403 +add p Particle anti-Sigma(1670)0 -13214 1.6700000e+00 6.0000018e-02 3.0000000e-01 0 3 0.0000000e+00 0 +add p Particle B_s0 531 5.3663000e+00 0.0000000e+00 0.0000000e+00 0 0 4.4129450e-01 531 +add p Particle A0 36 3.1000000e+02 7.0022575e+00 0.0000000e+00 0 0 0.0000000e+00 36 +add p Particle anti-Lambda_c(2625)- -4124 2.6266000e+00 0.0000000e+00 2.8500000e-02 -3 3 0.0000000e+00 0 +add p Particle THRUaxis 96 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 96 +add p Particle chi_b2(2P) 100555 1.0268600e+01 0.0000000e+00 0.0000000e+00 0 4 0.0000000e+00 100555 +add p Particle SPHEaxis 95 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 95 +add p Particle B'_c1- -20543 7.4000000e+00 0.0000000e+00 2.0000000e-01 -3 2 0.0000000e+00 -20543 +add p Particle string 92 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 92 +add p Particle eta(2S) 100221 1.2940000e+00 5.5000021e-02 2.0000000e-01 0 0 0.0000000e+00 0 +add p Particle Xi'_c0 4312 2.5780000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 4312 +add p Particle cc_1 4403 0.0000000e+00 0.0000000e+00 0.0000000e+00 4 2 0.0000000e+00 4403 +add p Particle anti-Xi_c0 -4132 2.4710000e+00 0.0000000e+00 0.0000000e+00 0 1 3.3576755e-02 -4132 +add p Particle anti-D(2S)0 -100421 2.5800000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 0 +add p Particle a_00 9000111 9.8470000e-01 7.4999997e-02 5.0000000e-02 0 0 0.0000000e+00 10111 +add p Particle Delta+ 2214 1.2320000e+00 1.1800001e-01 1.4000000e-01 3 3 0.0000000e+00 2214 +add p Particle sd_1 3103 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 2 0.0000000e+00 3103 +add p Particle pi(2S)- -100211 1.3000000e+00 3.9999988e-01 5.0000000e-01 -3 0 0.0000000e+00 0 +add p Particle bb_1 5503 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 2 0.0000000e+00 5503 +add p Particle K_3*+ 327 1.7760000e+00 1.5900001e-01 7.0000000e-01 3 6 0.0000000e+00 0 +add p Particle anti-bs_1 -5303 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 2 0.0000000e+00 -5303 +add p Particle cs_1 4303 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 2 0.0000000e+00 4303 +add p Particle anti-bu_1 -5203 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 2 0.0000000e+00 -5203 +add p Particle phi(1680) 100333 1.6800000e+00 1.5000001e-01 0.0000000e+00 0 2 0.0000000e+00 0 +add p Particle Sigma_c++ 4222 2.4540200e+00 2.2300002e-03 2.7000000e-02 6 1 0.0000000e+00 4222 +add p Particle Xss 30363 1.8000000e+00 0.0000000e+00 1.0000000e+00 0 2 0.0000000e+00 30363 +add p Particle anti-Omega_cc*- -4434 3.8246600e+00 0.0000000e+00 0.0000000e+00 -3 3 0.0000000e+00 -4434 +add p Particle anti-sd_1 -3103 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 2 0.0000000e+00 -3103 +add p Particle W'+ 34 5.0000000e+02 0.0000000e+00 0.0000000e+00 3 2 0.0000000e+00 34 +add p Particle Sigma(1670)0 13214 1.6700000e+00 6.0000018e-02 3.0000000e-01 0 3 0.0000000e+00 0 +add p Particle bd_1 5103 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 2 0.0000000e+00 5103 +add p Particle anti-B0 -511 5.2795300e+00 0.0000000e+00 0.0000000e+00 0 0 4.5718350e-01 -511 +add p Particle phi 333 1.0194550e+00 4.2600002e-03 3.2000000e-02 0 2 0.0000000e+00 333 +add p Particle B0 511 5.2795300e+00 0.0000000e+00 0.0000000e+00 0 0 4.5718350e-01 511 +add p Particle system 90 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 90 +add p Particle Xi_c*0 4314 2.6461000e+00 0.0000000e+00 0.0000000e+00 0 3 0.0000000e+00 4314 +add p Particle anti-Xi_c*- -4324 2.6466000e+00 0.0000000e+00 0.0000000e+00 -3 3 0.0000000e+00 -4324 +add p Particle Lambda(1600)0 23122 1.6000000e+00 1.5000001e-01 2.5000000e-01 0 1 0.0000000e+00 0 +add p Particle anti-Lambda(1520)0 -3124 1.5195000e+00 1.5600000e-02 1.8000000e-01 0 3 0.0000000e+00 0 +add p Particle anti-B_s*0 -533 5.4128000e+00 6.5821220e-06 1.0000000e-04 0 2 0.0000000e+00 -533 +add p Particle Higgs0 25 1.1500000e+02 7.0022575e+00 0.0000000e+00 0 0 0.0000000e+00 25 +add p Particle D(2S)0 100421 2.5800000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 0 +add p Particle Xi_cc*++ 4424 3.6564800e+00 0.0000000e+00 0.0000000e+00 6 3 0.0000000e+00 4424 +add p Particle anti-R0 -41 5.0000000e+03 0.0000000e+00 4.1729150e+03 0 2 0.0000000e+00 -41 +add p Particle psi(3770) 30443 3.7729200e+00 2.7199998e-02 3.0000000e-02 0 2 0.0000000e+00 30443 +add p Particle B_2*- -525 5.7469000e+00 5.0245206e-02 2.0000000e-01 -3 4 0.0000000e+00 -525 +add p Particle anti-Xi*0 -3324 1.5318000e+00 9.1000002e-03 5.0000000e-02 0 3 0.0000000e+00 -3324 +add p Particle rho+ 213 7.7549000e-01 1.4940001e-01 4.8000000e-01 3 2 0.0000000e+00 213 +add p Particle K'*+ 100323 1.4140000e+00 2.3199996e-01 6.0000000e-01 3 2 0.0000000e+00 0 +add p Particle R0 41 5.0000000e+03 0.0000000e+00 4.1729150e+03 0 2 0.0000000e+00 41 +add p Particle Xsu 30353 1.6000000e+00 0.0000000e+00 1.0000000e+00 3 2 0.0000000e+00 30353 +add p Particle anti-Xsu -30353 1.6000000e+00 0.0000000e+00 1.0000000e+00 -3 2 0.0000000e+00 -30353 +add p Particle anti-Sigma+ -3112 1.1974490e+00 0.0000000e+00 0.0000000e+00 3 1 4.4339305e+01 -3112 +add p Particle Lambda_c(2625)+ 4124 2.6266000e+00 0.0000000e+00 2.8500000e-02 3 3 0.0000000e+00 0 +add p Particle Xi'_c+ 4322 2.5757000e+00 0.0000000e+00 0.0000000e+00 3 1 0.0000000e+00 4322 +add p Particle anti-K_3*0 -317 1.7760000e+00 1.5900001e-01 7.0000000e-01 0 6 0.0000000e+00 0 +add p Particle Lambda(1520)0 3124 1.5195000e+00 1.5600000e-02 1.8000000e-01 0 3 0.0000000e+00 0 +add p Particle anti-B_s0*0 -10531 5.8410000e+00 1.4993444e-01 6.5000000e-02 0 0 0.0000000e+00 -10531 +add p Particle Sigma(1775)0 3216 1.7750000e+00 1.1999999e-01 5.0000000e-01 0 5 0.0000000e+00 0 +add p Particle tau+ -15 1.7768400e+00 0.0000000e+00 0.0000000e+00 3 1 8.7119688e-02 -15 +add p Particle anti-Sigma- -3222 1.1893700e+00 0.0000000e+00 0.0000000e+00 -3 1 2.4037359e+01 -3222 +add p Particle K_4*0 319 2.0450000e+00 1.9800000e-01 2.0000000e-01 0 8 0.0000000e+00 0 +add p Particle D'_1- -20413 2.4450000e+00 2.5027080e-01 3.0000000e-01 -3 2 0.0000000e+00 -20413 +add p Particle B_2*+ 525 5.7469000e+00 5.0245206e-02 2.0000000e-01 3 4 0.0000000e+00 525 +add p Particle anti-He3 -1000020030 2.8092300e+00 0.0000000e+00 0.0000000e+00 -6 0 0.0000000e+00 0 +add p Particle anti-K'_10 -20313 1.4030000e+00 1.7399999e-01 4.0000000e-01 0 2 0.0000000e+00 -20313 +add p Particle Z(4430)- -9042413 4.4330000e+00 3.1700598e-04 0.0000000e+00 -3 2 0.0000000e+00 -9042413 +add p Particle D_2*+ 415 2.4601000e+00 3.6999998e-02 3.1200000e-01 3 4 0.0000000e+00 415 +add p Particle Z0 23 9.1187600e+01 2.4951996e+00 1.0000000e+01 0 2 0.0000000e+00 23 +add p Particle Xi0 3322 1.3148600e+00 0.0000000e+00 0.0000000e+00 0 1 8.6939813e+01 3322 +add p Particle chi_c2 445 3.5562000e+00 2.0299998e-03 6.0000000e-03 0 4 0.0000000e+00 445 +add p Particle B_s0*0 10531 5.8410000e+00 1.4993444e-01 6.5000000e-02 0 0 0.0000000e+00 10531 +add p Particle anti-Omega_b*+ -5334 6.1300000e+00 0.0000000e+00 0.0000000e+00 3 3 0.0000000e+00 -5334 +add p Particle Xsd 30343 1.6000000e+00 0.0000000e+00 1.0000000e+00 0 2 0.0000000e+00 30343 +add p Particle bc_1 5403 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 2 0.0000000e+00 5403 +add p Particle anti-bc_1 -5403 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 2 0.0000000e+00 -5403 +add p Particle Xi_c*+ 4324 2.6466000e+00 0.0000000e+00 0.0000000e+00 3 3 0.0000000e+00 4324 +add p Particle anti-Sigma_b- -5222 5.8078000e+00 6.5821220e-06 1.0000000e-04 -3 1 0.0000000e+00 -5222 +add p Particle bs_0 5301 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 0 0.0000000e+00 5301 +add p Particle chi_b1 20553 9.8927000e+00 9.8928000e+00 0.0000000e+00 0 2 0.0000000e+00 20553 +add p Particle Omega_c0 4332 2.6975000e+00 0.0000000e+00 0.0000000e+00 0 1 2.0685680e-02 4332 +add p Particle chi_b0(2P) 110551 1.0232500e+01 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 110551 +add p Particle anti-D0 -421 1.8648400e+00 0.0000000e+00 0.0000000e+00 0 0 1.2294489e-01 -421 +add p Particle anti-Xsd -30343 1.6000000e+00 0.0000000e+00 1.0000000e+00 0 2 0.0000000e+00 -30343 +add p Particle anti-cu_1 -4203 0.0000000e+00 0.0000000e+00 0.0000000e+00 -4 2 0.0000000e+00 -4203 +add p Particle K0 311 4.9761400e-01 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 311 +add p Particle psi(2S) 100443 3.6860900e+00 3.1700003e-04 8.0000000e-04 0 2 0.0000000e+00 100443 +add p Particle anti-B_2*0 -515 5.7469000e+00 5.0245206e-02 2.0000000e-01 0 4 0.0000000e+00 -515 +add p Particle mu- 13 1.0565837e-01 0.0000000e+00 0.0000000e+00 -3 1 6.5864973e+05 13 +add p Particle anti-Xi'_b+ -5312 5.9600000e+00 6.5821220e-06 1.0000000e-04 3 1 0.0000000e+00 -5312 +add p Particle anti-tritium -1000010030 2.8092500e+00 0.0000000e+00 0.0000000e+00 -3 0 0.0000000e+00 0 +add p Particle u 2 5.6000000e-03 0.0000000e+00 0.0000000e+00 2 1 0.0000000e+00 2 +add p Particle Xi_b*0 5324 5.9700000e+00 0.0000000e+00 0.0000000e+00 0 3 0.0000000e+00 5324 +add p Particle ud_0 2101 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0.0000000e+00 2101 +add p Particle anti-bc_0 -5401 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 0 0.0000000e+00 -5401 +add p Particle K_3*0 317 1.7760000e+00 1.5900001e-01 7.0000000e-01 0 6 0.0000000e+00 0 +add p Particle anti-ud_0 -2101 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 0 0.0000000e+00 -2101 +add p Particle rho(3S)+ 30213 1.7200000e+00 2.4999998e-01 5.0000000e-01 3 2 0.0000000e+00 0 +add p Particle anti-Omega_cc- -4432 3.7866300e+00 0.0000000e+00 0.0000000e+00 -3 1 1.0000000e-01 -4432 +add p Particle Sigma+ 3222 1.1893700e+00 0.0000000e+00 0.0000000e+00 3 1 2.4037359e+01 3222 +add p Particle anti-Sigma_c0 -4112 2.4537600e+00 2.1999997e-03 2.4000000e-02 0 1 0.0000000e+00 -4112 +add p Particle Sigma_c+ 4212 2.4529000e+00 1.6455309e-03 2.4680000e-02 3 1 0.0000000e+00 4212 +add p Particle He3 1000020030 2.8092300e+00 0.0000000e+00 0.0000000e+00 6 0 0.0000000e+00 0 +add p Particle anti-Lambda0 -3122 1.1156830e+00 0.0000000e+00 0.0000000e+00 0 1 7.8875396e+01 -3122 +add p Particle D0 421 1.8648400e+00 0.0000000e+00 0.0000000e+00 0 0 1.2294489e-01 421 +add p Particle Upsilon_2(1D) 20555 1.0156200e+01 0.0000000e+00 0.0000000e+00 0 4 0.0000000e+00 20555 +add p Particle psi(4040) 9000443 4.0390000e+00 8.0000005e-02 1.0000000e-01 0 2 0.0000000e+00 0 +add p Particle B_s0L 350 5.3663000e+00 0.0000000e+00 0.0000000e+00 0 0 4.2184546e-01 0 +add p Particle Xi'_b- 5312 5.9600000e+00 6.5821220e-06 1.0000000e-04 -3 1 0.0000000e+00 5312 +add p Particle anti-Xi'_c- -4322 2.5757000e+00 0.0000000e+00 0.0000000e+00 -3 1 0.0000000e+00 -4322 +add p Particle anti-bu_0 -5201 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 0 0.0000000e+00 -5201 +add p Particle Xu- -44 1.0000000e+00 0.0000000e+00 0.0000000e+00 -3 0 0.0000000e+00 -44 +add p Particle Sigma_c0 4112 2.4537600e+00 2.1999997e-03 2.4000000e-02 0 1 0.0000000e+00 4112 +add p Particle K'*- -100323 1.4140000e+00 2.3199996e-01 6.0000000e-01 -3 2 0.0000000e+00 0 +add p Particle table 99 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 99 +add p Particle Higgs'0 35 3.1000000e+02 7.0022575e+00 0.0000000e+00 0 0 0.0000000e+00 35 +add p Particle anti-bs_0 -5301 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 0 0.0000000e+00 -5301 +add p Particle Sigma- 3112 1.1974490e+00 0.0000000e+00 0.0000000e+00 -3 1 4.4339305e+01 3112 +add p Particle anti-Sigma_b*0 -5214 5.8290000e+00 0.0000000e+00 0.0000000e+00 0 3 0.0000000e+00 -5214 +add p Particle anti-B_10 -10513 5.7320000e+00 3.9891649e-02 2.0000000e-01 0 2 0.0000000e+00 -10513 +add p Particle anti-s -3 1.9900000e-01 0.0000000e+00 0.0000000e+00 1 1 0.0000000e+00 -3 +add p Particle anti-Xi'_b0 -5322 5.9600000e+00 6.5821220e-06 1.0000000e-04 0 1 0.0000000e+00 -5322 +add p Particle chi_b0 10551 9.8594000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 10551 +add p Particle D_1+ 10413 2.4230000e+00 2.0006450e-02 2.7000000e-01 3 2 0.0000000e+00 10413 +add p Particle J/psi 443 3.0969160e+00 9.3199996e-05 2.0000000e-04 0 2 0.0000000e+00 443 +add p Particle eta 221 5.4785300e-01 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 221 +add p Particle specflav 81 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 81 +add p Particle W- -24 8.0398000e+01 2.1400000e+00 1.0000000e+01 -3 2 0.0000000e+00 -24 +add p Particle nu_mu 14 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 14 +add p Particle p+ 2212 9.3827203e-01 0.0000000e+00 0.0000000e+00 3 1 0.0000000e+00 2212 +add p Particle anti-Sigma*- -3224 1.3828000e+00 3.5799992e-02 3.5000000e-02 -3 3 0.0000000e+00 -3224 +add p Particle Omega_c*0 4334 2.7683000e+00 0.0000000e+00 0.0000000e+00 0 3 0.0000000e+00 4334 +add p Particle Xi_b*- 5314 5.9700000e+00 0.0000000e+00 0.0000000e+00 -3 3 0.0000000e+00 5314 +add p Particle pi0 111 1.3497660e-01 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 111 +add p Particle D_s*- -433 2.1123000e+00 6.5821023e-06 1.0000000e-04 -3 2 0.0000000e+00 -433 +add p Particle a_0+ 9000211 9.8470000e-01 7.4999997e-02 5.0000000e-02 3 0 0.0000000e+00 10211 +add p Particle nu_L 18 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 18 +add p Particle Xi_c+ 4232 2.4679000e+00 0.0000000e+00 0.0000000e+00 3 1 1.3250827e-01 4232 +add p Particle K_0*+ 10321 1.4200000e+00 2.7000000e-01 6.0000000e-01 3 0 0.0000000e+00 10321 +add p Particle rho(2S)- -100213 1.4650000e+00 4.0000012e-01 5.0000000e-01 -3 2 0.0000000e+00 0 +add p Particle eta_b 551 9.4030000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 551 +add p Particle ss_1 3303 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 2 0.0000000e+00 3303 +add p Particle anti-d -1 9.9000000e-03 0.0000000e+00 0.0000000e+00 1 1 0.0000000e+00 -1 +add p Particle anti-Xi_b*+ -5314 5.9700000e+00 0.0000000e+00 0.0000000e+00 3 3 0.0000000e+00 -5314 +add p Particle anti-K*0 -313 8.9600000e-01 5.0299999e-02 2.3000000e-01 0 2 0.0000000e+00 -313 +add p Particle anti-B_s0 -531 5.3663000e+00 0.0000000e+00 0.0000000e+00 0 0 4.4129450e-01 -531 +add p Particle Delta- 1114 1.2320000e+00 1.1800001e-01 1.4000000e-01 -3 3 0.0000000e+00 1114 +add p Particle anti-n0 -2112 9.3956536e-01 0.0000000e+00 0.0000000e+00 0 1 2.6552618e+14 -2112 +add p Particle W'- -34 5.0000000e+02 0.0000000e+00 0.0000000e+00 -3 2 0.0000000e+00 -34 +add p Particle B_c0*+ 10541 7.2500000e+00 0.0000000e+00 6.0000000e-02 3 0 0.0000000e+00 10541 +add p Particle B_s2*0 535 5.8397000e+00 5.0245206e-02 2.9000000e-02 0 4 0.0000000e+00 535 +add p Particle X_1(3872) 9920443 3.8722000e+00 3.1700598e-04 2.9000000e-03 0 2 0.0000000e+00 9920443 +add p Particle anti-Sigma_c-- -4222 2.4540200e+00 2.2300002e-03 2.7000000e-02 -6 1 0.0000000e+00 -4222 +add p Particle anti-B_s2*0 -535 5.8397000e+00 5.0245206e-02 2.9000000e-02 0 4 0.0000000e+00 -535 +add p Particle Delta++ 2224 1.2320000e+00 1.1800001e-01 1.4000000e-01 6 3 0.0000000e+00 2224 +add p Particle Upsilon_2(2D) 120555 1.0440600e+01 0.0000000e+00 0.0000000e+00 0 4 0.0000000e+00 120555 +add p Particle chi_c0 10441 3.4147500e+00 1.0200000e-02 5.0000000e-02 0 0 0.0000000e+00 10441 +add p Particle Xu0 43 1.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 43 +add p Particle anti-Xi'_c0 -4312 2.5780000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 -4312 +add p Particle chi_b2 555 9.9122000e+00 0.0000000e+00 0.0000000e+00 0 4 0.0000000e+00 555 +add p Particle B'_c1+ 20543 7.4000000e+00 0.0000000e+00 2.0000000e-01 3 2 0.0000000e+00 20543 +add p Particle deuteron 1000010020 1.8756130e+00 0.0000000e+00 0.0000000e+00 3 0 0.0000000e+00 0 +add p Particle anti-Lambda(1810)0 -53122 1.8100000e+00 1.5000001e-01 4.6000000e-01 0 1 0.0000000e+00 0 +add p Particle B_c*+ 543 6.6020000e+00 0.0000000e+00 0.0000000e+00 3 2 0.0000000e+00 543 +add p Particle B_c2*+ 545 7.3500000e+00 0.0000000e+00 6.0000000e-02 3 4 0.0000000e+00 545 +add p Particle Xi*- 3314 1.5350000e+00 9.9000002e-03 5.0000000e-02 -3 3 0.0000000e+00 3314 +add p Particle f_0(1500) 9030221 1.5050000e+00 1.0900000e-01 3.0000000e-01 0 0 0.0000000e+00 0 +add p Particle anti-Delta+ -1114 1.2320000e+00 1.1800001e-01 1.4000000e-01 3 3 0.0000000e+00 -1114 +add p Particle Sigma0 3212 1.1926420e+00 8.8947595e-06 1.3000000e-04 0 1 0.0000000e+00 3212 +add p Particle Z(4430)+ 9042413 4.4330000e+00 3.1700598e-04 0.0000000e+00 3 2 0.0000000e+00 9042413 +add p Particle B_c+ 541 6.2760000e+00 0.0000000e+00 0.0000000e+00 3 0 1.3490661e-01 541 +add p Particle B_s*0 533 5.4128000e+00 6.5821220e-06 1.0000000e-04 0 2 0.0000000e+00 533 +add p Particle rho(2S)0 100113 1.4650000e+00 4.0000012e-01 5.0000000e-01 0 2 0.0000000e+00 0 +add p Particle anti-alpha -1000020040 3.7274170e+00 0.0000000e+00 0.0000000e+00 -6 0 0.0000000e+00 0 +add p Particle dd_1 1103 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 2 0.0000000e+00 1103 +add p Particle Xi- 3312 1.3217100e+00 0.0000000e+00 0.0000000e+00 -3 1 4.9135984e+01 3312 +add p Particle Lambda(1820)0 3126 1.8200000e+00 7.9999995e-02 4.0000000e-01 0 5 0.0000000e+00 0 +add p Particle anti-Sigma_b0 -5212 5.8078000e+00 6.5821220e-06 1.0000000e-04 0 1 0.0000000e+00 -5212 +add p Particle anti-Sigma_b+ -5112 5.8152000e+00 6.5821220e-06 1.0000000e-04 3 1 0.0000000e+00 -5112 +add p Particle cd_0 4101 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0.0000000e+00 4101 +add p Particle anti-cs_1 -4303 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 2 0.0000000e+00 -4303 +add p Particle K_1+ 10323 1.2720000e+00 8.9999999e-02 2.0000000e-01 3 2 0.0000000e+00 10323 +add p Particle Higgs- -37 3.1000000e+02 7.0022575e+00 0.0000000e+00 -3 0 0.0000000e+00 -37 +add p Particle anti-K_0*0 -10311 1.4200000e+00 2.7000000e-01 6.0000000e-01 0 0 0.0000000e+00 -10311 +add p Particle anti-Xi_c*0 -4314 2.6461000e+00 0.0000000e+00 0.0000000e+00 0 3 0.0000000e+00 -4314 +add p Particle anti-Xi+ -3312 1.3217100e+00 0.0000000e+00 0.0000000e+00 3 1 4.9135984e+01 -3312 +add p Particle anti-D*(2S)0 -100423 2.6400000e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 0 +add p Particle anti-dd_1 -1103 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 2 0.0000000e+00 -1103 +add p Particle anti-b' -7 4.0000000e+02 0.0000000e+00 0.0000000e+00 1 1 0.0000000e+00 -7 +add p Particle a_0- -9000211 9.8470000e-01 7.4999997e-02 5.0000000e-02 -3 0 0.0000000e+00 -10211 +add p Particle anti-nu_tau -16 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 -16 +add p Particle Z'0 32 5.0000000e+02 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 32 +add p Particle g 21 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 21 +add p Particle nu_tau 16 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 16 +add p Particle c 4 1.3500000e+00 0.0000000e+00 0.0000000e+00 2 1 0.0000000e+00 4 +add p Particle Upsilon_3(2D) 100557 1.0444300e+01 0.0000000e+00 0.0000000e+00 0 6 0.0000000e+00 100557 +add p Particle Lambda(1690)0 13124 1.6900000e+00 6.0000018e-02 3.0000000e-01 0 3 0.0000000e+00 0 +add p Particle f_0 9010221 9.8000000e-01 7.0000003e-02 5.0000000e-03 0 0 0.0000000e+00 10221 +add p Particle pi(2S)0 100111 1.3000000e+00 3.9999988e-01 5.0000000e-01 0 0 0.0000000e+00 0 +add p Particle Sigma_c*+ 4214 2.5175000e+00 2.0000000e-03 3.0000000e-02 3 3 0.0000000e+00 4214 +add p Particle Sigma(1750)0 23212 1.7500000e+00 8.9999999e-02 4.5000000e-01 0 1 0.0000000e+00 0 +add p Particle D_1- -10413 2.4230000e+00 2.0006450e-02 2.7000000e-01 -3 2 0.0000000e+00 -10413 +add p Particle anti-bd_0 -5101 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 0 0.0000000e+00 -5101 +add p Particle B_c1- -10543 7.3000000e+00 0.0000000e+00 6.0000000e-02 -3 2 0.0000000e+00 -10543 +add p Particle D(2S)+ 100411 2.5800000e+00 0.0000000e+00 0.0000000e+00 3 0 0.0000000e+00 0 +add p Particle anti-Sigma_c*- -4214 2.5175000e+00 2.0000000e-03 3.0000000e-02 -3 3 0.0000000e+00 -4214 +add p Particle anti-Lambda_b0 -5122 5.6202000e+00 0.0000000e+00 0.0000000e+00 0 1 4.1371359e-01 -5122 +add p Particle rho(3S)0 30113 1.7200000e+00 2.4999998e-01 5.0000000e-01 0 2 0.0000000e+00 0 +add p Particle anti-bb_1 -5503 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 2 0.0000000e+00 -5503 +add p Particle Sigma_b- 5112 5.8152000e+00 6.5821220e-06 1.0000000e-04 -3 1 0.0000000e+00 5112 +add p Particle anti-Sigma(1750)0 -23212 1.7500000e+00 8.9999999e-02 4.5000000e-01 0 1 0.0000000e+00 0 +add p Particle anti-Sigma_c*-- -4224 2.5184000e+00 1.4900002e-02 9.2000000e-02 -6 3 0.0000000e+00 -4224 +add p Particle Sigma_c*++ 4224 2.5184000e+00 1.4900002e-02 9.2000000e-02 6 3 0.0000000e+00 4224 +add p Particle B_s0H 530 5.3663000e+00 0.0000000e+00 0.0000000e+00 0 0 4.6074353e-01 0 +add p Particle L+ -17 4.0000000e+02 0.0000000e+00 0.0000000e+00 3 1 0.0000000e+00 -17 +add p Particle anti-Xi_b0 -5232 5.7924000e+00 0.0000000e+00 0.0000000e+00 0 1 4.2570529e-01 -5232 +add p Particle gamma 22 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 22 +*--------------------------------------------------------------------------------------------------------------------------------------- +* Added by R. Godang 5/10/2013 for Belle II. The parameters are given by Shohei Nishida +*--------------------------------------------------------------------------------------------------------------------------------------- +add p Particle Xdd 30643 1.6000000e+00 5.0000000e-01 9.6700000e-01 0 0 0.0000000e+00 0 +add p Particle anti-Xdd -30643 1.6000000e+00 5.0000000e-01 9.6700000e-01 0 0 0.0000000e+00 0 +add p Particle Xdu+ 30653 1.6000000e+00 5.0000000e-01 9.6700000e-01 3 0 0.0000000e+00 0 +add p Particle anti-Xdu- -30653 1.6000000e+00 5.0000000e-01 9.6700000e-01 -3 0 0.0000000e+00 0 +*--------------------------------------------------------------------------------------------------------------------------------------- +* Added by R. Godang 5/10/2013 for Belle II. The parameters are given by Kiyoshi Hayasaka +*--------------------------------------------------------------------------------------------------------------------------------------- +add p Particle pi(1)(1400)0 9000113 1.3540000e+00 3.3000000e-01 0.0000000e+00 0 4 5.9796000e-13 0 +add p Particle pi(1)(1400)+ 9000213 1.3540000e+00 3.3000000e-01 0.0000000e+00 3 4 5.9796000e-13 0 +add p Particle eta(1405) 9020221 1.4089000e+00 5.1100000e-02 0.0000000e+00 0 0 3.8616000e-12 0 +add p Particle a(0)(1450)0 10111 1.4740000e+00 2.6500000e-01 0.0000000e+00 0 0 7.4463000e-13 0 +add p Particle a(0)(1450)+ 10211 1.4740000e+00 2.6500000e-01 0.0000000e+00 3 0 7.4463000e-13 0 +add p Particle eta(1475) 100331 1.4760000e+00 8.5000000e-02 0.0000000e+00 0 0 2.3215000e-12 0 +add p Particle pi(1)(1600)0 9010113 1.6620000e+00 2.4000000e-01 0.0000000e+00 0 4 8.2220000e-13 0 +add p Particle pi(1)(1600)+ 9010213 1.6620000e+00 2.4000000e-01 0.0000000e+00 3 4 8.2220000e-13 0 +add p Particle eta(2)(1645) 10225 1.6170000e+00 1.8100000e-01 0.0000000e+00 0 8 1.0902000e-12 0 +add p Particle omega(3)(1670) 227 1.6670000e+00 1.6800000e-01 0.0000000e+00 0 12 1.1746000e-12 0 +add p Particle pi(2)(1670)0 10115 1.6722000e+00 2.6000000e-01 0.0000000e+00 0 8 7.5895000e-13 0 +add p Particle pi(2)(1670)+ 10215 1.6722000e+00 2.6000000e-01 0.0000000e+00 3 8 7.5895000e-13 0 +add p Particle rho(3)(1690)0 117 1.6888000e+00 1.6100000e-01 0.0000000e+00 0 12 1.2256000e-12 0 +add p Particle rho(3)(1690)+ 217 1.6888000e+00 1.6100000e-01 0.0000000e+00 3 12 1.2256000e-12 0 +add p Particle f(0)(1710) 10331 1.7200000e+00 1.3500000e-01 0.0000000e+00 0 0 1.4617000e-12 0 +add p Particle pi(1800)0 9010111 1.8120000e+00 2.0800000e-01 0.0000000e+00 0 0 9.4869000e-13 0 +add p Particle pi(1800)+ 9010211 1.8120000e+00 2.0800000e-01 0.0000000e+00 3 0 9.4869000e-13 0 +add p Particle phi(3)(1850) 337 1.8540000e+00 8.7000000e-02 0.0000000e+00 0 12 2.2681000e-12 0 +add p Particle f(2)(1950) 9050225 1.9440000e+00 4.7200000e-01 0.0000000e+00 0 8 4.1807000e-13 0 +add p Particle f(2)(2010) 9060225 2.0100000e+00 2.0000000e-01 0.0000000e+00 0 8 9.8663000e-13 0 +add p Particle a(4)(2040)0 119 1.9960000e+00 2.5500000e-01 0.0000000e+00 0 16 7.7383000e-13 0 +add p Particle a(4)(2040)+ 219 1.9960000e+00 2.5500000e-01 0.0000000e+00 3 16 7.7383000e-13 0 +add p Particle f(4)(2050) 229 2.0180000e+00 2.3700000e-01 0.0000000e+00 0 16 8.3260000e-13 0 +add p Particle f(2)(2300) 9080225 2.2970000e+00 1.5000000e-01 0.0000000e+00 0 8 1.3155000e-12 0 +add p Particle f(2)(2340) 9090225 2.3400000e+00 1.5000000e-01 0.0000000e+00 0 8 6.1665000e-13 0 +add p Particle K(2)(1770)0 10315 1.7730000e+00 1.8600000e-01 0.0000000e+00 0 8 1.0609000e-12 0 +add p Particle K(2)(1770)+ 10325 1.7730000e+00 1.8600000e-01 0.0000000e+00 3 8 1.0609000e-12 0 +add p Particle K(2)(1820)0 20315 1.8160000e+00 2.7600000e-01 0.0000000e+00 0 8 7.1495000e-13 0 +add p Particle K(2)(1820)+ 20325 1.8160000e+00 2.7600000e-01 0.0000000e+00 3 8 7.1495000e-13 0 end + diff --git a/TEvtGen/EvtGenBase/Evt3Rank3C.cxx b/TEvtGen/EvtGenBase/Evt3Rank3C.cpp similarity index 100% rename from TEvtGen/EvtGenBase/Evt3Rank3C.cxx rename to TEvtGen/EvtGenBase/Evt3Rank3C.cpp diff --git a/TEvtGen/EvtGenBase/Evt3Rank3C.hh b/TEvtGen/EvtGenBase/Evt3Rank3C.hh index fc69bf8080f..f8dda61708d 100644 --- a/TEvtGen/EvtGenBase/Evt3Rank3C.hh +++ b/TEvtGen/EvtGenBase/Evt3Rank3C.hh @@ -40,9 +40,6 @@ 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 { diff --git a/TEvtGen/EvtGenBase/EvtAbsBinning.hh b/TEvtGen/EvtGenBase/EvtAbsBinning.hh index 8a61adf2673..9befaf3b4e4 100644 --- a/TEvtGen/EvtGenBase/EvtAbsBinning.hh +++ b/TEvtGen/EvtGenBase/EvtAbsBinning.hh @@ -1,7 +1,7 @@ /***************************************************************************** * 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 $ + * File: $Id: EvtAbsBinning.hh,v 1.2 2009-03-16 16:43:39 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtAbsLineShape.cxx b/TEvtGen/EvtGenBase/EvtAbsLineShape.cpp similarity index 86% rename from TEvtGen/EvtGenBase/EvtAbsLineShape.cxx rename to TEvtGen/EvtGenBase/EvtAbsLineShape.cpp index 7865b88507a..f5ca120565c 100644 --- a/TEvtGen/EvtGenBase/EvtAbsLineShape.cxx +++ b/TEvtGen/EvtGenBase/EvtAbsLineShape.cpp @@ -43,7 +43,6 @@ EvtAbsLineShape::EvtAbsLineShape(double mass, double width, double maxRange, Evt _includeDecayFact = false; _includeBirthFact = false; - _applyFixForSP8 = false; _mass=mass; _width=width; _spin=sp; @@ -74,7 +73,6 @@ EvtAbsLineShape::EvtAbsLineShape(const EvtAbsLineShape& x){ _width=x._width; _spin=x._spin; _maxRange=x._maxRange; - _applyFixForSP8 = x._applyFixForSP8; } EvtAbsLineShape& EvtAbsLineShape::operator=(const EvtAbsLineShape& x){ @@ -87,7 +85,6 @@ EvtAbsLineShape& EvtAbsLineShape::operator=(const EvtAbsLineShape& x){ _width=x._width; _spin=x._spin; _maxRange=x._maxRange; - _applyFixForSP8 = x._applyFixForSP8; return *this; } @@ -114,17 +111,18 @@ double EvtAbsLineShape::rollMass() { return temp; } } -double EvtAbsLineShape::getRandMass(EvtId *parId, int nDaug, EvtId *dauId, EvtId *othDaugId, double maxMass, double *dauMasses) { +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"< _userSetBirthPW; EvtSpinType::spintype _spin; - - bool _applyFixForSP8; }; #endif diff --git a/TEvtGen/EvtGenBase/EvtAbsRadCorr.hh b/TEvtGen/EvtGenBase/EvtAbsRadCorr.hh index bcbc865b95a..a74e848c443 100644 --- a/TEvtGen/EvtGenBase/EvtAbsRadCorr.hh +++ b/TEvtGen/EvtGenBase/EvtAbsRadCorr.hh @@ -29,7 +29,8 @@ class EvtAbsRadCorr { public: - virtual ~EvtAbsRadCorr() {} + EvtAbsRadCorr() {}; + virtual ~EvtAbsRadCorr() {}; virtual void doRadCorr(EvtParticle *p)=0; diff --git a/TEvtGen/EvtGenBase/EvtAmp.cxx b/TEvtGen/EvtGenBase/EvtAmp.cpp similarity index 98% rename from TEvtGen/EvtGenBase/EvtAmp.cxx rename to TEvtGen/EvtGenBase/EvtAmp.cpp index 2d65b9940f5..a78ef6f0362 100644 --- a/TEvtGen/EvtGenBase/EvtAmp.cxx +++ b/TEvtGen/EvtGenBase/EvtAmp.cpp @@ -194,7 +194,7 @@ EvtSpinDensity EvtAmp::getSpinDensity(){ int kk; int allloop = 1; - for (kk=0;kk<(_nontrivial-1); kk++ ) { + for (kk=0;kk<_ndaug; kk++ ) { allloop *= dstates[kk]; } @@ -413,13 +413,9 @@ EvtSpinDensity EvtAmp::contract(int k,const EvtAmp& amp2){ } -EvtAmp EvtAmp::contract(int i, const EvtAmp& a1,const EvtAmp& a2){ +EvtAmp EvtAmp::contract(int , const EvtAmp& ,const EvtAmp& ){ //Do we need this method? - - assert(a2._pstates>1&&a2._nontrivial==1); - assert(i<=a1._nontrivial); - EvtAmp tmp; report(DEBUG,"EvtGen") << "EvtAmp::contract not written yet" << endl; return tmp; @@ -430,6 +426,7 @@ EvtAmp EvtAmp::contract(int i, const EvtAmp& a1,const EvtAmp& a2){ void EvtAmp::dump(){ int i,list[10]; + for (i = 0; i < 10; i++) {list[i] = 0;} report(DEBUG,"EvtGen") << "Number of daugthers:"<<_ndaug<=_Jmin); diff --git a/TEvtGen/EvtGenBase/EvtCPUtil.cxx b/TEvtGen/EvtGenBase/EvtCPUtil.cpp similarity index 66% rename from TEvtGen/EvtGenBase/EvtCPUtil.cxx rename to TEvtGen/EvtGenBase/EvtCPUtil.cpp index 3aa80b8b27a..b0d53a0152f 100644 --- a/TEvtGen/EvtGenBase/EvtCPUtil.cxx +++ b/TEvtGen/EvtGenBase/EvtCPUtil.cpp @@ -17,6 +17,8 @@ // // RYD March 24, 1998 Module created // +// COWAN June 10, 2009 Added methods for getting dGamma(s) +// and dm(s) using B(s)0H and B(s)0L. //------------------------------------------------------------------------ // #include "EvtGenBase/EvtPatches.hh" @@ -35,14 +37,34 @@ #include using std::endl; +EvtCPUtil::EvtCPUtil(int mixingType) { + _enableFlip = false; + _mixingType = mixingType; +} + +EvtCPUtil::~EvtCPUtil() { +} + +EvtCPUtil* EvtCPUtil::getInstance() { + + static EvtCPUtil* theCPUtil = 0; + + if (theCPUtil == 0) { + theCPUtil = new EvtCPUtil(1); + } + + return theCPUtil; + +} //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 /*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; @@ -64,6 +86,7 @@ void EvtCPUtil::fractB0CP(EvtComplex Af, EvtComplex Abarf, return; } + void EvtCPUtil::fractB0nonCP(EvtComplex Af, EvtComplex Abarf, EvtComplex Afbar, EvtComplex Abarfbar, double deltam, double beta, @@ -122,6 +145,20 @@ void EvtCPUtil::fractB0nonCP(EvtComplex Af, EvtComplex Abarf, void EvtCPUtil::OtherB( EvtParticle *p,double &t, EvtId &otherb, double probB0){ + if (_mixingType == EvtCPUtil::Coherent) { + + OtherCoherentB(p, t, otherb, probB0); + + } else if (_mixingType == EvtCPUtil::Incoherent) { + + OtherIncoherentB(p, t, otherb, probB0); + + } + +} + +void EvtCPUtil::OtherCoherentB( EvtParticle *p,double &t, EvtId &otherb, double probB0){ + //Can not call this recursively!!! static int entryCount=0; entryCount++; @@ -208,7 +245,7 @@ void EvtCPUtil::OtherB( EvtParticle *p,double &t, EvtId &otherb, double probB0){ //kludge!! Lange Mar21, 2003 // if the other B is an alias... don't change the flavor.. if ( other->getId().isAlias() ) { - OtherB(p,t,otherb); + OtherB(p,t,otherb); entryCount--; return; @@ -261,10 +298,89 @@ void EvtCPUtil::OtherB( EvtParticle *p,double &t, EvtId &otherb, double probB0){ return ; } +// ======================================================================== +bool EvtCPUtil::isBsMixed ( EvtParticle * p ) +{ + if ( ! ( p->getParent() ) ) return false ; + + static EvtId BS0=EvtPDL::getId("B_s0"); + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + + if ( ( p->getId() != BS0 ) && ( p->getId() != BSB ) ) return false ; + + if ( ( p->getParent()->getId() == BS0 ) || + ( p->getParent()->getId() == BSB ) ) return true ; + + return false ; +} + +// ======================================================================== +bool EvtCPUtil::isB0Mixed ( EvtParticle * p ) +{ + if ( ! ( p->getParent() ) ) return false ; + static EvtId B0 =EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); -void EvtCPUtil::OtherB( EvtParticle *p,double &t, EvtId &otherb){ + if ( ( p->getId() != B0 ) && ( p->getId() != B0B ) ) return false ; + if ( ( p->getParent()->getId() == B0 ) || + ( p->getParent()->getId() == B0B ) ) return true ; + + return false ; +} +//============================================================================ +// Return the tag of the event (ie the anti-flavour of the produced +// B meson). Flip the flavour of the event with probB probability +//============================================================================ +void EvtCPUtil::OtherIncoherentB( EvtParticle * p , + double & t , + EvtId & otherb , + double probB ) +{ + //std::cout<<"New routine running"<getId() == B0 || p->getId() == B0B) + //added by liming Zhang + enableFlip(); + if ( ( isB0Mixed( p ) ) || ( isBsMixed( p ) ) ) { + p->getParent()->setLifetime() ; + t = p->getParent()->getLifetime() ; + } + else { + p->setLifetime() ; + t = p->getLifetime() ; + } + + if ( flipIsEnabled() ) { + //std::cout << " liming << flipIsEnabled " << std::endl; + // Flip the flavour of the particle with probability probB + bool isFlipped = ( EvtRandom::Flat( 0. , 1. ) < probB ) ; + + if ( isFlipped ) { + if ( ( isB0Mixed( p ) ) || ( isBsMixed( p ) ) ) { + p->getParent() + ->setId( EvtPDL::chargeConj( p->getParent()->getId() ) ) ; + p->setId( EvtPDL::chargeConj( p->getId() ) ) ; + } + else { + p->setId( EvtPDL::chargeConj( p->getId() ) ) ; + } + } + } + + if ( ( isB0Mixed( p ) ) || ( isBsMixed( p ) ) ) { + // if B has mixed, tag flavour is charge conjugate of parent of B-meson + otherb = EvtPDL::chargeConj( p->getParent()->getId() ) ; + } + else { + // else it is opposite flavour than this B hadron + otherb = EvtPDL::chargeConj( p->getId() ) ; + } + + return ; +} +//============================================================================ +void EvtCPUtil::OtherB( EvtParticle *p,double &t, EvtId &otherb){ static EvtId BSB=EvtPDL::getId("anti-B_s0"); static EvtId BS0=EvtPDL::getId("B_s0"); @@ -310,12 +426,8 @@ void EvtCPUtil::OtherB( EvtParticle *p,double &t, EvtId &otherb){ return; } - - - p->setLifetime(); - // now get the time between the decay of this B and the other B! EvtParticle *parent=p->getParent(); @@ -347,7 +459,7 @@ void EvtCPUtil::OtherB( EvtParticle *p,double &t, EvtId &otherb){ return ; } - +// No CP violation is assumed void EvtCPUtil::incoherentMix(const EvtId id, double &t, int &mix){ int stdHepNum=EvtPDL::getStdHep(id); @@ -364,10 +476,16 @@ void EvtCPUtil::incoherentMix(const EvtId id, double &t, int &mix){ 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... + // Bug Fixed: Corrected the average as gamma is the relevent parameter + double ctau=2.0*(ctauL*ctauH)/(ctauL+ctauH); + //double ctau=0.5*(ctauL+ctauH); + + // Bug Fixed: ctau definition changed above + //double y=(ctauH-ctauL)/(2*ctau); + double y=(ctauH-ctauL)/(ctauH+ctauL); + + //deltam and qoverp defined in DECAY.DEC std::string qoverpParmName=std::string("qoverp_incohMix_")+partName; std::string mdParmName=std::string("dm_incohMix_")+partName; @@ -383,7 +501,7 @@ void EvtCPUtil::incoherentMix(const EvtId id, double &t, int &mix){ fac=qoverp*qoverp; } - double mixprob=(x*x+y*y)/(x*x+y*y+fac*(2+x*x-y*y)); + double mixprob=(x*x+y*y)/(x*x+y*y+fac*(2.0+x*x-y*y)); int mixsign; @@ -391,10 +509,14 @@ void EvtCPUtil::incoherentMix(const EvtId id, double &t, int &mix){ double prob; + // Find the longest of the two lifetimes + double ctaulong = ctauL<=ctauH?ctauH:ctauL; + + // Bug fixed: Ensure cosine argument is dimensionless so /ctau 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()); + t=-log(EvtRandom::Flat())*ctaulong; + prob=1.0+exp(-2.0*fabs(y)*t/ctau)+mixsign*2.0*exp(-fabs(y)*t/ctau)*cos(x*t/ctau); + }while(prob<4.0*EvtRandom::Flat()); mix=0; @@ -404,11 +526,41 @@ void EvtCPUtil::incoherentMix(const EvtId id, double &t, int &mix){ } +double EvtCPUtil::getDeltaGamma(const EvtId id){ + 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 dGamma = (1/ctauL - 1/ctauH)*EvtConst::c; + return dGamma; +} +double EvtCPUtil::getDeltaM(const EvtId id){ + int stdHepNum = EvtPDL::getStdHep(id); + stdHepNum = abs(stdHepNum); + EvtId partId = EvtPDL::evtIdFromStdHep(stdHepNum); + + std::string partName = EvtPDL::name(partId); + std::string parmName = std::string("dm_incohMix_") + partName; + int ierr; + double dM = atof(EvtSymTable::get(parmName,ierr).c_str()); + return dM; +} +bool EvtCPUtil::flipIsEnabled() { return _enableFlip ; } +void EvtCPUtil::enableFlip() { _enableFlip = true ; } +void EvtCPUtil::disableFlip() { _enableFlip = false ; } diff --git a/TEvtGen/EvtGenBase/EvtCPUtil.hh b/TEvtGen/EvtGenBase/EvtCPUtil.hh index 12e55fe9b31..0111d470610 100644 --- a/TEvtGen/EvtGenBase/EvtCPUtil.hh +++ b/TEvtGen/EvtGenBase/EvtCPUtil.hh @@ -26,28 +26,58 @@ class EvtParticle; class EvtId; -class EvtCPUtil{ +class EvtCPUtil { public: - static void fractB0CP(EvtComplex Af, EvtComplex Abarf, + EvtCPUtil(int mixingType); + ~EvtCPUtil(); + + enum MixingType {Coherent = 0, Incoherent = 1}; + + static EvtCPUtil* getInstance(); + + void setMixingType(int mixingType) {_mixingType = mixingType;} + int getMixingType() {return _mixingType;} + + 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); + void fractB0nonCP(EvtComplex Af, EvtComplex Abarf, + EvtComplex Afbar, EvtComplex Abarfbar, + double deltam, double beta, int flip, + double &fract); + + // Mark Whitehead 7/12/2009 + // Add required lines from EvtIncoherentMixing.hh to fix CPV - static void OtherB(EvtParticle *p, double &t, EvtId &otherb); + // Functions to check if a B has mixed (comes from a B) + bool isB0Mixed( EvtParticle * ) ; + bool isBsMixed( EvtParticle * ) ; - static void OtherB(EvtParticle *p, double &t, EvtId &otherb, double probB0); + bool flipIsEnabled() ; + void enableFlip() ; + void disableFlip() ; + + void OtherB(EvtParticle *p, double &t, EvtId &otherb); + + void OtherCoherentB(EvtParticle *p, double &t, EvtId &otherb, double probB0); + void OtherIncoherentB(EvtParticle *p, double &t, EvtId &otherb, double probB0); + + 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); + void incoherentMix(const EvtId id, double &t, int &mix); + + double getDeltaGamma(const EvtId id); + double getDeltaM(const EvtId id); +private: + bool _enableFlip; + int _mixingType; }; diff --git a/TEvtGen/EvtGenBase/EvtComplex.cxx b/TEvtGen/EvtGenBase/EvtComplex.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtComplex.cxx rename to TEvtGen/EvtGenBase/EvtComplex.cpp diff --git a/TEvtGen/EvtGenBase/EvtConst.cxx b/TEvtGen/EvtGenBase/EvtConst.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtConst.cxx rename to TEvtGen/EvtGenBase/EvtConst.cpp diff --git a/TEvtGen/EvtGenBase/EvtCyclic3.cxx b/TEvtGen/EvtGenBase/EvtCyclic3.cpp similarity index 96% rename from TEvtGen/EvtGenBase/EvtCyclic3.cxx rename to TEvtGen/EvtGenBase/EvtCyclic3.cpp index 6b186cdfc61..5cbe7a6f825 100644 --- a/TEvtGen/EvtGenBase/EvtCyclic3.cxx +++ b/TEvtGen/EvtGenBase/EvtCyclic3.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtCyclic3.cpp,v 1.3 2009-03-16 15:55:13 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech @@ -12,6 +12,7 @@ #include #include #include "EvtGenBase/EvtCyclic3.hh" +#include "EvtGenBase/EvtPatches.hh" using std::ostream; using namespace EvtCyclic3; @@ -56,7 +57,7 @@ Index EvtCyclic3::permute(Index i, Perm p) Perm EvtCyclic3::permutation(Index i1,Index i2,Index i3) { - assert(i1 != i2 && i2 != i3 && i3 != i1); + assert(i1 != i2 && i2 != i3 && i3 != i1); _unused( i3 ); if(i1 == A) return (i2 == B) ? ABC : ACB; if(i1 == B) return (i2 == C) ? BCA : BAC; if(i1 == C) return (i2 == A) ? CAB : CBA; @@ -238,7 +239,7 @@ 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); + else assert(0); return A; } @@ -247,7 +248,7 @@ 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); + else assert(0); return AB; } diff --git a/TEvtGen/EvtGenBase/EvtCyclic3.hh b/TEvtGen/EvtGenBase/EvtCyclic3.hh index 84d4c94bcb4..45864b63ad0 100644 --- a/TEvtGen/EvtGenBase/EvtCyclic3.hh +++ b/TEvtGen/EvtGenBase/EvtCyclic3.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtCyclic3.hh,v 1.2 2009-03-16 16:42:46 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech @@ -72,7 +72,7 @@ namespace EvtCyclic3 { 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); diff --git a/TEvtGen/EvtGenBase/EvtDalitzCoord.cxx b/TEvtGen/EvtGenBase/EvtDalitzCoord.cpp similarity index 94% rename from TEvtGen/EvtGenBase/EvtDalitzCoord.cxx rename to TEvtGen/EvtGenBase/EvtDalitzCoord.cpp index 4e7142da269..de2e0de2ec4 100644 --- a/TEvtGen/EvtGenBase/EvtDalitzCoord.cxx +++ b/TEvtGen/EvtGenBase/EvtDalitzCoord.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtDalitzCoord.cpp,v 1.3 2009-03-16 15:55:13 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtDalitzCoord.hh b/TEvtGen/EvtGenBase/EvtDalitzCoord.hh index e5ace96a1c1..81a47d42309 100644 --- a/TEvtGen/EvtGenBase/EvtDalitzCoord.hh +++ b/TEvtGen/EvtGenBase/EvtDalitzCoord.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtDalitzCoord.hh,v 1.2 2009-03-16 16:43:40 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtDalitzFlatPdf.cxx b/TEvtGen/EvtGenBase/EvtDalitzFlatPdf.cpp similarity index 94% rename from TEvtGen/EvtGenBase/EvtDalitzFlatPdf.cxx rename to TEvtGen/EvtGenBase/EvtDalitzFlatPdf.cpp index ea43125de0c..1e23c4f7a78 100644 --- a/TEvtGen/EvtGenBase/EvtDalitzFlatPdf.cxx +++ b/TEvtGen/EvtGenBase/EvtDalitzFlatPdf.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtDalitzFlatPdf.cpp,v 1.3 2009-03-16 15:53:27 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech @@ -63,5 +63,5 @@ EvtDalitzPoint EvtDalitzFlatPdf::randomPoint() } printf("No point generated for dalitz plot after %d tries\n",maxTries); - assert(0); + return EvtDalitzPoint(); } diff --git a/TEvtGen/EvtGenBase/EvtDalitzFlatPdf.hh b/TEvtGen/EvtGenBase/EvtDalitzFlatPdf.hh index b526bdc87eb..64451bcd478 100644 --- a/TEvtGen/EvtGenBase/EvtDalitzFlatPdf.hh +++ b/TEvtGen/EvtGenBase/EvtDalitzFlatPdf.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtDalitzFlatPdf.hh,v 1.2 2009-03-16 16:43:40 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtDalitzPlot.cxx b/TEvtGen/EvtGenBase/EvtDalitzPlot.cpp similarity index 99% rename from TEvtGen/EvtGenBase/EvtDalitzPlot.cxx rename to TEvtGen/EvtGenBase/EvtDalitzPlot.cpp index d75cde09eae..fe540c1289a 100644 --- a/TEvtGen/EvtGenBase/EvtDalitzPlot.cxx +++ b/TEvtGen/EvtGenBase/EvtDalitzPlot.cpp @@ -1,6 +1,6 @@ //----------------------------------------------------------------------- // File and Version Information: -// $Id: EvtDalitzPlot.cc,v 1.23 2004/12/21 19:58:42 ryd Exp $ +// $Id: EvtDalitzPlot.cpp,v 1.3 2009-03-16 15:53:27 robbep Exp $ // // Environment: // This software is part of the EvtGen package developed jointly diff --git a/TEvtGen/EvtGenBase/EvtDalitzPlot.hh b/TEvtGen/EvtGenBase/EvtDalitzPlot.hh index f72b7404a8d..3fdf96814d4 100644 --- a/TEvtGen/EvtGenBase/EvtDalitzPlot.hh +++ b/TEvtGen/EvtGenBase/EvtDalitzPlot.hh @@ -1,6 +1,6 @@ //----------------------------------------------------------------------- // File and Version Information: -// $Id: EvtDalitzPlot.hh,v 1.16 2003/06/20 17:20:03 dvoretsk Exp $ +// $Id: EvtDalitzPlot.hh,v 1.2 2009-03-16 16:44:53 robbep Exp $ // // Environment: // This software is part of the EvtGen package developed jointly diff --git a/TEvtGen/EvtGenBase/EvtDalitzPoint.cxx b/TEvtGen/EvtGenBase/EvtDalitzPoint.cpp similarity index 98% rename from TEvtGen/EvtGenBase/EvtDalitzPoint.cxx rename to TEvtGen/EvtGenBase/EvtDalitzPoint.cpp index f3481a457ed..feb4c8d289b 100644 --- a/TEvtGen/EvtGenBase/EvtDalitzPoint.cxx +++ b/TEvtGen/EvtGenBase/EvtDalitzPoint.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtDalitzPoint.cpp,v 1.3 2009-03-16 15:53:27 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech @@ -171,7 +171,7 @@ bool EvtDalitzPoint::isValid() const inside = true; return inside; -} +}; double EvtDalitzPoint::bigM() const { diff --git a/TEvtGen/EvtGenBase/EvtDalitzPoint.hh b/TEvtGen/EvtGenBase/EvtDalitzPoint.hh index 8e324503d19..7b83ddc0396 100644 --- a/TEvtGen/EvtGenBase/EvtDalitzPoint.hh +++ b/TEvtGen/EvtGenBase/EvtDalitzPoint.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtDalitzPoint.hh,v 1.2 2009-03-16 16:44:53 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtDalitzResPdf.cxx b/TEvtGen/EvtGenBase/EvtDalitzResPdf.cpp similarity index 95% rename from TEvtGen/EvtGenBase/EvtDalitzResPdf.cxx rename to TEvtGen/EvtGenBase/EvtDalitzResPdf.cpp index aef31c92775..7a03b681b34 100644 --- a/TEvtGen/EvtGenBase/EvtDalitzResPdf.cxx +++ b/TEvtGen/EvtGenBase/EvtDalitzResPdf.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtDalitzResPdf.cpp,v 1.3 2009-03-16 15:54:07 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech @@ -86,7 +86,7 @@ EvtDalitzPoint EvtDalitzResPdf::randomPoint() // (in the outer box) printf("No point generated for dalitz plot after 1000 tries\n"); - assert(0); + return EvtDalitzPoint(0.,0.,0.,0.,0.,0.); } diff --git a/TEvtGen/EvtGenBase/EvtDalitzResPdf.hh b/TEvtGen/EvtGenBase/EvtDalitzResPdf.hh index 91cd356a10c..20edeea0f9b 100644 --- a/TEvtGen/EvtGenBase/EvtDalitzResPdf.hh +++ b/TEvtGen/EvtGenBase/EvtDalitzResPdf.hh @@ -1,7 +1,7 @@ /******************************************************************************* * Project: BaBar detector at the SLAC PEP-II B-factory * Package: EvtGenBase - * File: $Id: EvtDalitzResPdf.hh,v 1.2 2003/06/20 17:20:04 dvoretsk Exp $ + * File: $Id: EvtDalitzResPdf.hh,v 1.2 2009-03-16 16:42:46 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtDalitzReso.cxx b/TEvtGen/EvtGenBase/EvtDalitzReso.cpp similarity index 90% rename from TEvtGen/EvtGenBase/EvtDalitzReso.cxx rename to TEvtGen/EvtGenBase/EvtDalitzReso.cpp index 3c395a82406..281e0a50d58 100644 --- a/TEvtGen/EvtGenBase/EvtDalitzReso.cxx +++ b/TEvtGen/EvtGenBase/EvtDalitzReso.cpp @@ -2,7 +2,7 @@ /***************************************************************************** * 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 $ + * File: $Id: EvtDalitzReso.cpp,v 1.1 2009-03-16 16:47:51 robbep Exp $ * * Description: * Class to compute Dalitz amplitudes based on many models that cannot be @@ -36,7 +36,7 @@ using EvtCyclic3::Pair; // single Breit-Wigner EvtDalitzReso::EvtDalitzReso(const EvtDalitzPlot& dp, Pair pairAng, Pair pairRes, - EvtSpinType::spintype spin, double m0, double g0, NumType typeN) + EvtSpinType::spintype spin, double m0, double g0, NumType typeN, double f_b, double f_d) : _dp(dp), _pairAng(pairAng), _pairRes(pairRes), @@ -46,13 +46,15 @@ EvtDalitzReso::EvtDalitzReso(const EvtDalitzPlot& dp, Pair pairAng, Pair pairRes _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), + _f_b(f_b), _f_d(f_d), _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.) + _a(0.),_r(0.),_Blass(0.),_phiB(0.),_R(0.),_phiR(0.),_cutoff(-1.), _scaleByMOverQ(false), + _alpha(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 ); + _vb.set_f( _f_b ); // Default values for Blatt-Weisskopf factors are 0.0 and 1.5. + _vd.set_f( _f_d ); assert(_typeN != K_MATRIX && _typeN != K_MATRIX_I && _typeN != K_MATRIX_II); // single BW cannot be K-matrix } @@ -70,8 +72,10 @@ EvtDalitzReso::EvtDalitzReso(const EvtDalitzPlot& dp, Pair pairAng, Pair pairRes _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), + _f_b(0.0), _f_d(1.5), _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.) + _a(0.),_r(0.),_Blass(0.),_phiB(0.),_R(0.),_phiR(0.),_cutoff(-1.), _scaleByMOverQ(false), + _alpha(0.) { _vb = EvtTwoBodyVertex(_m0,_dp.m(EvtCyclic3::other(_pairRes)),_dp.bigM(),_spin); _vd = EvtTwoBodyVertex(_massFirst,_massSecond,_m0,_spin); @@ -93,8 +97,10 @@ EvtDalitzReso::EvtDalitzReso(const EvtDalitzPlot& dp, Pair pairAng, Pair pairRes _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), + _f_b(0.0), _f_d(1.5), _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.) + _a(0.),_r(0.),_Blass(0.),_phiB(0.),_R(0.),_phiR(0.),_cutoff(-1.), _scaleByMOverQ(false), + _alpha(0.) { _vb = EvtTwoBodyVertex(_m0,_dp.m(EvtCyclic3::other(_pairRes)),_dp.bigM(),_spin); _vd = EvtTwoBodyVertex(_massFirst,_massSecond,_m0,_spin); @@ -117,8 +123,10 @@ EvtDalitzReso::EvtDalitzReso(const EvtDalitzPlot& dp, Pair pairRes, std::string _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), + _f_b(0.), _f_d(0.), _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.) + _a(0.),_r(0.),_Blass(0.),_phiB(0.),_R(0.),_phiR(0.),_cutoff(-1.), _scaleByMOverQ(false), + _alpha(0.) { assert(_typeN==K_MATRIX || _typeN==K_MATRIX_I || _typeN==K_MATRIX_II); _spin=EvtSpinType::SCALAR; @@ -134,7 +142,7 @@ EvtDalitzReso::EvtDalitzReso(const EvtDalitzPlot& dp, Pair pairRes, std::string // 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) + double m0, double g0, double a, double r, double B, double phiB, double R, double phiR, double cutoff, bool scaleByMOverQ) : _dp(dp), _pairRes(pairRes), _typeN(LASS), @@ -142,8 +150,10 @@ EvtDalitzReso::EvtDalitzReso(const EvtDalitzPlot& dp, Pair pairRes, _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), + _f_b(0.0), _f_d(1.5), _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) + _a(a),_r(r),_Blass(B),_phiB(phiB),_R(R),_phiR(phiR), _cutoff(cutoff), _scaleByMOverQ(scaleByMOverQ), + _alpha(0.) { _spin=EvtSpinType::SCALAR; _vd = EvtTwoBodyVertex(_massFirst,_massSecond,_m0,_spin); @@ -151,6 +161,23 @@ EvtDalitzReso::EvtDalitzReso(const EvtDalitzPlot& dp, Pair pairRes, } +//Flatte +EvtDalitzReso::EvtDalitzReso(const EvtDalitzPlot& dp, EvtCyclic3::Pair pairRes, double m0) + : _dp(dp), + _pairRes(pairRes), + _typeN(FLATTE), + _m0(m0), _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), + _f_b(0.), _f_d(0.), + _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.),_cutoff(-1.), _scaleByMOverQ(false), + _alpha(0.) +{ + _spin=EvtSpinType::SCALAR; +} + EvtDalitzReso::EvtDalitzReso(const EvtDalitzReso& other) : _dp(other._dp), @@ -163,10 +190,13 @@ EvtDalitzReso::EvtDalitzReso(const EvtDalitzReso& other) _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), + _f_b(other._f_b), _f_d(other._f_d), _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) + _a(other._a),_r(other._r),_Blass(other._Blass),_phiB(other._phiB),_R(other._R),_phiR(other._phiR),_cutoff(other._cutoff), _scaleByMOverQ(other._scaleByMOverQ), + _alpha(other._alpha), + _flatteParams(other._flatteParams) {} @@ -178,6 +208,15 @@ EvtComplex EvtDalitzReso::evaluate(const EvtDalitzPoint& x) { double m = sqrt(x.q(_pairRes)); + if (_typeN==NON_RES) + return EvtComplex(1.0,0.0); + + if (_typeN==NON_RES_LIN) + return m*m; + + if (_typeN==NON_RES_EXP) + return exp(-_alpha*m*m); + // 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 ); @@ -185,9 +224,15 @@ EvtComplex EvtDalitzReso::evaluate(const EvtDalitzPoint& x) if (_typeN==LASS) return lass(m*m); + if (_typeN==FLATTE) + return flatte(m); + EvtComplex amp(1.0,0.0); - if (_dp.bigM() != x.bigM()) _vb = EvtTwoBodyVertex(_m0,_dp.m(EvtCyclic3::other(_pairRes)),x.bigM(),_spin); + if (fabs(_dp.bigM() - x.bigM()) > 0.000001) { + _vb = EvtTwoBodyVertex(_m0,_dp.m(EvtCyclic3::other(_pairRes)),x.bigM(),_spin); + _vb.set_f(_f_b); + } EvtTwoBodyKine vb(m,x.m(EvtCyclic3::other(_pairRes)),x.bigM()); EvtTwoBodyKine vd(_massFirst,_massSecond,m); @@ -829,11 +874,30 @@ EvtComplex EvtDalitzReso::lass(double s) 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; + + EvtComplex T; + if(_cutoff>0 && sqrt(s)>_cutoff) T = resT; + else T = bkgB + resT; + + if(_scaleByMOverQ) T*=(sqrt(s)/q); return T; } +EvtComplex EvtDalitzReso::flatte(const double& m) { + EvtComplex w; + for (vector::const_iterator param = _flatteParams.begin(); + param != _flatteParams.end(); + ++param) { + double m1 = (*param).m1(); double m2 = (*param).m2(); + double g = (*param).g(); + w += (g*g*sqrtCplx((1-((m1-m2)*(m1-m2))/(m*m))*(1-((m1+m2)*(m1+m2))/(m*m)))); + } + + EvtComplex denom = _m0*_m0 - m*m - EvtComplex(0,1)*w; + + return EvtComplex(1.0,0.0)/denom; +} diff --git a/TEvtGen/EvtGenBase/EvtDalitzReso.hh b/TEvtGen/EvtGenBase/EvtDalitzReso.hh index 67c2a40b42e..43bf5b13236 100644 --- a/TEvtGen/EvtGenBase/EvtDalitzReso.hh +++ b/TEvtGen/EvtGenBase/EvtDalitzReso.hh @@ -1,7 +1,7 @@ /***************************************************************************** * 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 $ + * File: $Id: EvtDalitzReso.hh,v 1.1 2009-03-16 16:50:49 robbep Exp $ * * Description: * Class to compute Dalitz amplitudes based on many models that cannot be @@ -25,6 +25,7 @@ #include "EvtGenBase/EvtDalitzPoint.hh" #include "EvtGenBase/EvtDecayAmp.hh" #include "EvtGenBase/EvtBlattWeisskopf.hh" +#include "EvtGenBase/EvtFlatte.hh" using std::vector; using std::map; @@ -38,7 +39,8 @@ public: 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 }; + GAUSS_CLEO = 12, GAUSS_CLEO_ZEMACH = 13, FLATTE = 14, NON_RES = 15, + NON_RES_LIN = 16, NON_RES_EXP = 17 }; // Coupling type // ChgPion : pi+ pi- @@ -50,10 +52,12 @@ public: // EtaPion : eta pi0 enum CouplingType {Undefined=0,PicPic=1,PizPiz,PiPi,KcKc,KzKz,KK,EtaPic,EtaPiz,PicPicKK,WA76}; - EvtDalitzReso() {}; + EvtDalitzReso() : _typeN(NON_RES) {}; + + EvtDalitzReso(const EvtDalitzPlot& dp, EvtCyclic3::Pair pairRes, NumType typeN, double alpha=0.0) : _dp(dp), _pairRes(pairRes), _typeN(typeN), _alpha(alpha) {}; EvtDalitzReso(const EvtDalitzPlot& dp, EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes, - EvtSpinType::spintype spin, double m0, double g0, NumType typeN); + EvtSpinType::spintype spin, double m0, double g0, NumType typeN, double f_b=0.0, double f_d=1.5); EvtDalitzReso(const EvtDalitzPlot& dp, EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes, EvtSpinType::spintype spin, double m0, double g0, NumType typeN, @@ -68,7 +72,10 @@ public: // LASS EvtDalitzReso(const EvtDalitzPlot& dp, EvtCyclic3::Pair pairRes, double m0, double g0, - double a, double r, double B, double phiB, double R, double phiR); + double a, double r, double B, double phiB, double R, double phiR, double cutoff=-1, bool scaleByMOverQ=false); + + //Flatte + EvtDalitzReso(const EvtDalitzPlot& dp, EvtCyclic3::Pair pairRes, double m0); EvtDalitzReso(const EvtDalitzReso& other); @@ -81,6 +88,8 @@ public: void set_fd( double R ) { _vd.set_f( R ); } void set_fb( double R ) { _vb.set_f( R ); } + void addFlatteParam(const EvtFlatteParam& param) { _flatteParams.push_back(param); } + private: EvtComplex psFactor(double& ma, double& mb, double& m); EvtComplex psFactor(double& ma1, double& mb1, double& ma2, double& mb2, double& m); @@ -101,6 +110,9 @@ private: EvtComplex mixFactor(EvtComplex prop, EvtComplex prop_mix); EvtComplex Fvector( double s, int index ); EvtComplex lass(double s); + EvtComplex flatte(const double& m); + + inline EvtComplex sqrtCplx(double in) { return (in > 0) ? EvtComplex(sqrt(in), 0) : EvtComplex(0, sqrt(-in)); } // Dalitz plot EvtDalitzPlot _dp; @@ -133,6 +145,9 @@ private: double _g1,_g2; CouplingType _coupling2; + // variables for Blatt-Weisskopf form factors + double _f_b, _f_d; + // K-matrix int _kmatrix_index; EvtComplex _fr12prod,_fr13prod,_fr14prod,_fr15prod; @@ -145,6 +160,15 @@ private: double _phiB; double _R; double _phiR; + double _cutoff; + bool _scaleByMOverQ; + + //Nonresonant + double _alpha; + + // Flatte + std::vector _flatteParams; + }; #endif diff --git a/TEvtGen/EvtGenBase/EvtDecayAmp.cxx b/TEvtGen/EvtGenBase/EvtDecayAmp.cpp similarity index 88% rename from TEvtGen/EvtGenBase/EvtDecayAmp.cxx rename to TEvtGen/EvtGenBase/EvtDecayAmp.cpp index bf3a2714d91..1d799c2978d 100644 --- a/TEvtGen/EvtGenBase/EvtDecayAmp.cxx +++ b/TEvtGen/EvtGenBase/EvtDecayAmp.cpp @@ -67,10 +67,10 @@ void EvtDecayAmp::makeDecay(EvtParticle* p, bool recursive){ if (prob!=prob) { report(DEBUG,"EvtGen") << "Forward density matrix:"<getSpinDensityForward(); + report(DEBUG,"EvtGen") << p->getSpinDensityForward(); report(DEBUG,"EvtGen") << "Decay density matrix:"<getId()).c_str()<<" "<getChannel()<<" "<getParent()->getId()).c_str()<getParent()->getParent()->getId()).c_str()<getParent()->getParent()->getParent()->getId()).c_str()<printTree(); + + for (size_t idaug = 0; idaug < p->getNDaug(); idaug++) { + EvtParticle* daughter = p->getDaug(idaug); + if (daughter != 0) {daughter->printTree();} + } + + EvtParticle* pParent = p->getParent(); + if (pParent != 0) { + report(ERROR,"EvtGen")<<"Parent:"<getId()).c_str()<getParent(); + + if (grandParent != 0) { + report(ERROR,"EvtGen")<<"GrandParent:"<getId()).c_str()<getDaug(i)->setSpinDensityForward(rho); diff --git a/TEvtGen/EvtGenBase/EvtDecayBase.cxx b/TEvtGen/EvtGenBase/EvtDecayBase.cpp similarity index 96% rename from TEvtGen/EvtGenBase/EvtDecayBase.cxx rename to TEvtGen/EvtGenBase/EvtDecayBase.cpp index 71d176eb65c..430e049396d 100644 --- a/TEvtGen/EvtGenBase/EvtDecayBase.cxx +++ b/TEvtGen/EvtGenBase/EvtDecayBase.cpp @@ -135,7 +135,36 @@ void EvtDecayBase::command(std::string){ ::abort(); } +std::string EvtDecayBase::getParamName(int i) { + switch(i) { + case 0: + return "param00"; + case 1: + return "param01"; + case 2: + return "param02"; + case 3: + return "param03"; + case 4: + return "param04"; + case 5: + return "param05"; + case 6: + return "param06"; + case 7: + return "param07"; + case 8: + return "param08"; + case 9: + return "param09"; + default: + return ""; + } +} +std::string EvtDecayBase::getParamDefault(int /*i*/) { + return ""; +} void EvtDecayBase::init() { @@ -567,7 +596,7 @@ double EvtDecayBase::getArg(unsigned int j) { // Verify string if (getParentId().getId() == 25) { - int i; + int i = 0 ; ++i; } diff --git a/TEvtGen/EvtGenBase/EvtDecayBase.hh b/TEvtGen/EvtGenBase/EvtDecayBase.hh index bf95f73f039..53ef05f808f 100644 --- a/TEvtGen/EvtGenBase/EvtDecayBase.hh +++ b/TEvtGen/EvtGenBase/EvtDecayBase.hh @@ -48,6 +48,8 @@ class EvtDecayBase{ virtual std::string commandName(); virtual void command(std::string cmd); + virtual std::string getParamName(int i); + virtual std::string getParamDefault(int i); double getProbMax( double prob ); double resetProbMax( double prob ); diff --git a/TEvtGen/EvtGenBase/EvtDecayIncoherent.cxx b/TEvtGen/EvtGenBase/EvtDecayIncoherent.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtDecayIncoherent.cxx rename to TEvtGen/EvtGenBase/EvtDecayIncoherent.cpp diff --git a/TEvtGen/EvtGenBase/EvtDecayMode.cxx b/TEvtGen/EvtGenBase/EvtDecayMode.cpp similarity index 98% rename from TEvtGen/EvtGenBase/EvtDecayMode.cxx rename to TEvtGen/EvtGenBase/EvtDecayMode.cpp index 001c66fa336..479ddef655d 100644 --- a/TEvtGen/EvtGenBase/EvtDecayMode.cxx +++ b/TEvtGen/EvtGenBase/EvtDecayMode.cpp @@ -1,6 +1,6 @@ //----------------------------------------------------------------------- // File and Version Information: -// $Id: EvtDecayMode.cc,v 1.17 2009/02/18 03:31:38 ryd Exp $ +// $Id: EvtDecayMode.cpp,v 1.3 2009-03-16 15:53:27 robbep Exp $ // // Environment: // This software is part of the EvtGen package developed jointly @@ -30,7 +30,7 @@ using std::ostream; using std::string; using std::vector; - + EvtDecayMode::EvtDecayMode(std::string mother,vector dau) : _mother(mother), _dau(dau) diff --git a/TEvtGen/EvtGenBase/EvtDecayMode.hh b/TEvtGen/EvtGenBase/EvtDecayMode.hh index a739fffbc12..e3da1c7ad71 100644 --- a/TEvtGen/EvtGenBase/EvtDecayMode.hh +++ b/TEvtGen/EvtGenBase/EvtDecayMode.hh @@ -1,6 +1,6 @@ //----------------------------------------------------------------------- // File and Version Information: -// $Id: EvtDecayMode.hh,v 1.10 2009/02/15 18:15:59 ryd Exp $ +// $Id: EvtDecayMode.hh,v 1.2 2009-03-16 16:44:33 robbep Exp $ // // Environment: // This software is part of the EvtGen package developed jointly diff --git a/TEvtGen/EvtGenBase/EvtDecayParm.cxx b/TEvtGen/EvtGenBase/EvtDecayParm.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtDecayParm.cxx rename to TEvtGen/EvtGenBase/EvtDecayParm.cpp diff --git a/TEvtGen/EvtGenBase/EvtDecayProb.cxx b/TEvtGen/EvtGenBase/EvtDecayProb.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtDecayProb.cxx rename to TEvtGen/EvtGenBase/EvtDecayProb.cpp diff --git a/TEvtGen/EvtGenBase/EvtDecayTable.cpp b/TEvtGen/EvtGenBase/EvtDecayTable.cpp new file mode 100644 index 00000000000..f74e35a9ddb --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDecayTable.cpp @@ -0,0 +1,1499 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the 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 +#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/EvtParserXml.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtModelAlias.hh" +#include "EvtGenBase/EvtRadCorr.hh" +#include "EvtGenBase/EvtExtGeneratorCommandsTable.hh" + +using std::endl; +using std::fstream; +using std::ifstream; + +EvtDecayTable::EvtDecayTable() { + _decaytable.clear(); +} + +EvtDecayTable::~EvtDecayTable() { + _decaytable.clear(); +} + +EvtDecayTable* EvtDecayTable::getInstance() { + + static EvtDecayTable* theDecayTable = 0; + + if (theDecayTable == 0) { + theDecayTable = new EvtDecayTable(); + } + + return theDecayTable; + +} + +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(); + EvtExtGeneratorCommandsTable* extGenCommands = EvtExtGeneratorCommandsTable::getInstance(); + std::string colon(":"), equals("="); + + 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:"<addCommand("PYTHIA", command); + + } else if (modelist.isCommand(token)){ + + std::string cnfgstr; + + cnfgstr=parser.getToken(itoken++); + + modelist.storeCommand(token,cnfgstr); + + } else if (token == "PythiaGenericParam" || token == "PythiaAliasParam" || + token == "PythiaBothParam") { + + // Read in any Pythia 8 commands, which will be of the form + // pythiaParam module:param=value, with no spaces in the parameter + // string! Here, specifies whether the command is for generic + // decays, alias decays, or both. + + // Pythia 6 commands will be defined by the old JetSetPar command + // name, which is handled by the modelist.isCommand() statement above. + + std::string pythiaCommand = parser.getToken(itoken++); + std::string pythiaModule(""), pythiaParam(""), pythiaValue(""); + + // Separate out the string into the 3 sections using the delimiters + // ":" and "=". + + std::vector pComVect1 = this->splitString(pythiaCommand, colon); + + if (pComVect1.size() == 2) { + + pythiaModule = pComVect1[0]; + + std::string pCom2 = pComVect1[1]; + + std::vector pComVect2 = this->splitString(pCom2, equals); + + if (pComVect2.size() == 2) { + + pythiaParam = pComVect2[0]; + pythiaValue = pComVect2[1]; + + } + + } + + // Define the Pythia 8 command and pass it to the external generator + // command list. + Command command; + if (token == "PythiaGenericParam") { + command["GENERATOR"] = "Generic"; + } else if (token == "PythiaAliasParam") { + command["GENERATOR"] = "Alias"; + } else { + command["GENERATOR"] = "Both"; + } + + command["MODULE"] = pythiaModule; + command["PARAM"] = pythiaParam; + command["VALUE"] = pythiaValue; + + command["VERSION"] = "PYTHIA8"; + extGenCommands->addCommand("PYTHIA", command); + + } else if (token=="CDecay"){ + + std::string name; + + name=parser.getToken(itoken++); + ipar=EvtPDL::getId(name); + + if (ipar==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); + } + } +} + +void EvtDecayTable::readXMLDecayFile(const std::string dec_name, bool verbose){ + if ( _decaytable.size() < EvtPDL::entries() ) _decaytable.resize(EvtPDL::entries()); + EvtModel &modelist=EvtModel::instance(); + EvtExtGeneratorCommandsTable* extGenCommands = EvtExtGeneratorCommandsTable::getInstance(); + + EvtParserXml parser; + parser.open(dec_name); + + EvtId ipar; + std::string decayParent = ""; + double brfrSum = 0.; + std::vector modelAliasList; + bool endReached = false; + + while(parser.readNextTag()) { + //TAGS FOUND UNDER DATA + if(parser.getParentTagTitle() == "data") { + if(parser.getTagTitle() == "photos") { + std::string usage = parser.readAttribute("usage"); + if(usage == "always") { + EvtRadCorr::setAlwaysRadCorr(); + if ( verbose ) + report(INFO,"EvtGen") + << "As requested, PHOTOS will be turned on for all decays."< modelArgList; + + std::string alias = parser.readAttribute("name"); + std::string model = parser.readAttribute("model"); + std::string paramStr = parser.readAttribute("params"); + std::istringstream paramStream(paramStr); + + std::string param; + + if(paramStr=="") { + EvtDecayBase* fcn = modelist.getFcn(model); + int i(0); + std::string paramName = fcn->getParamName(0); + while(paramName!="") { + param = parser.readAttribute(paramName,fcn->getParamDefault(i)); + if(param=="") break; + modelArgList.push_back(param); + ++i; + paramName = fcn->getParamName(i); + } + } else { + while(std::getline(paramStream, param, ' ')) { + modelArgList.push_back(param); + } + } + EvtModelAlias newAlias(alias,model,modelArgList); + modelAliasList.push_back(newAlias); + + } else if(parser.getTagTitle() == "chargeConj") { + std::string particle = parser.readAttribute("particle"); + std::string conjugate = parser.readAttribute("conjugate"); + + EvtId a=EvtPDL::getId(particle); + EvtId abar=EvtPDL::getId(conjugate); + + checkParticle(particle); + checkParticle(conjugate); + + EvtPDL::aliasChgConj(a,abar); + + } else if(parser.getTagTitle() == "conjDecay") { + std::string particle = parser.readAttribute("particle"); + + EvtId a=EvtPDL::getId(particle); + EvtId abar=EvtPDL::chargeConj(a); + + checkParticle(particle); + checkParticle(abar.getName()); + + if (_decaytable[a.getAlias()].getNMode()!=0) { + if ( verbose ) + report(DEBUG,"EvtGen") << + "Redefined decay of "<addCommand("PYTHIA", command); + + } else if(parser.getTagTitle() == "pythia6Param") { + Command command; + command["GENERATOR"] = parser.readAttribute("generator"); + command["MODULE"] = parser.readAttribute("module"); + command["PARAM"] = parser.readAttribute("param"); + command["VALUE"] = parser.readAttribute("value"); + command["VERSION"] = "PYTHIA6"; + extGenCommands->addCommand("PYTHIA", command); + + } else if(parser.getTagTitle() == "/data") { //end of data + endReached = true; + parser.close(); + break; + } else if(parser.getTagTitle() == "Title" || parser.getTagTitle() == "Details" + || parser.getTagTitle() == "Author" || parser.getTagTitle() == "Version" + //the above tags are expected to be in the XML decay file but are not used by EvtGen + || parser.getTagTitle() == "dalitzDecay" || parser.getTagTitle() == "copyDalitz") { + //the above tags are only used by EvtGenModels/EvtDalitzTable + } else { report(INFO,"EvtGen") << "Unknown tag "< temp_fcn_new_args; + + double brfr = parser.readAttributeDouble("br"); + std::string daugStr = parser.readAttribute("daughters"); + std::istringstream daugStream(daugStr); + std::string model = parser.readAttribute("model"); + std::string paramStr = parser.readAttribute("params"); + std::istringstream paramStream(paramStr); + bool decVerbose = parser.readAttributeBool("verbose"); + bool decPhotos = parser.readAttributeBool("photos"); + bool decSummary = parser.readAttributeBool("summary"); + + std::string daugh; + while(std::getline(daugStream, daugh, ' ')) { + checkParticle(daugh); + daughter[nDaughters++] = EvtPDL::getId(daugh); + } + + int modelAlias = -1; + for(size_t iAlias=0;iAliassetPHOTOS(); + if(decVerbose) temp_fcn_new->setVerbose(); + if(decSummary) temp_fcn_new->setSummary(); + + int ierr; + if(modelAlias == -1) { + std::string param; + if(paramStr == "") { + int i(0); + std::string paramName = temp_fcn_new->getParamName(0); + while(paramName != "") { + param = parser.readAttribute(paramName,temp_fcn_new->getParamDefault(i)); + if(param == "") break; //params must be added in order so we can't just skip the missing ones + temp_fcn_new_args.push_back(EvtSymTable::get(param,ierr)); + if (ierr) { + report(ERROR,"EvtGen") + <<"Reading arguments near line "<getParamName(i); + } + + } else {//if the params are not set seperately + while(std::getline(paramStream, param, ' ')) { + temp_fcn_new_args.push_back(EvtSymTable::get(param,ierr)); + if (ierr) { + report(ERROR,"EvtGen") + <<"Reading arguments near line "< copyMe=modelAliasList[modelAlias].getArgList(); + temp_fcn_new_args=copyMe; + } + + brfrSum+=brfr; + + temp_fcn_new->saveDecayInfo(ipar,nDaughters, + daughter, + temp_fcn_new_args.size(), + temp_fcn_new_args, + temp_fcn_new_model, + brfr); + + double massMin=0.0; + + for (int i=0;inRealDaughters();i++){ + if ( EvtPDL::getMinMass(daughter[i])>0.0001 ){ + massMin+=EvtPDL::getMinMass(daughter[i]); + } else { + massMin+=EvtPDL::getMeanMass(daughter[i]); + } + } + + _decaytable[ipar.getAlias()].addMode(temp_fcn_new,brfrSum,massMin); + + } else if(parser.getTagTitle() == "/decay") { //end of a particle + _decaytable[ipar.getAlias()].finalize(); + } else report(INFO,"EvtGen") << "Unexpected tag "< temp_fcn_new_args; + std::string temp_fcn_new_model("PHSP"); + temp_fcn_new->saveDecayInfo(ipar, nDaughters, + daughter, + 0, + temp_fcn_new_args, + temp_fcn_new_model, + 0.); + _decaytable[ipar.getAlias()].removeMode(temp_fcn_new); + } else if(parser.getTagTitle() != "/removeDecay") { + report(INFO,"EvtGen") << "Unexpected tag "< 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); + } + } +} + +bool EvtDecayTable::stringToBoolean(std::string valStr) { + return (valStr == "true" || valStr == "1" || valStr == "on" || valStr == "yes"); +} + +void EvtDecayTable::checkParticle(std::string particle) { + if (EvtPDL::getId(particle)==EvtId(-1,-1)) { + report(ERROR,"EvtGen") <<"Unknown particle name:"<findDecayModel(aliasInt, modeInt); + + return theModel; + +} + +EvtDecayBase* EvtDecayTable::findDecayModel(int aliasInt, int modeInt) { + + EvtDecayBase* theModel(0); + + if (aliasInt >= 0 && aliasInt < (int) EvtPDL::entries()) { + + theModel = _decaytable[aliasInt].getDecayModel(modeInt); + + } + + return theModel; + +} + +bool EvtDecayTable::hasPythia(EvtId id) { + + bool hasPythia = this->hasPythia(id.getAlias()); + return hasPythia; + +} + +bool EvtDecayTable::hasPythia(int aliasInt) { + + bool hasPythia(false); + if (aliasInt >= 0 && aliasInt < (int) EvtPDL::entries()) { + + hasPythia = _decaytable[aliasInt].isJetSet(); + + } + + return hasPythia; + +} + +int EvtDecayTable::getNModes(EvtId id) { + + int nModes = this->getNModes(id.getAlias()); + return nModes; + +} + +int EvtDecayTable::getNModes(int aliasInt) { + + int nModes(0); + + if (aliasInt >= 0 && aliasInt < (int) EvtPDL::entries()) { + + nModes = _decaytable[aliasInt].getNMode(); + } + + return nModes; + +} + +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; +} + +std::vector EvtDecayTable::splitString(std::string& theString, + std::string& splitter) { + + // Code from STLplus + std::vector result; + + if (!theString.empty() && !splitter.empty()) { + + for (std::string::size_type offset = 0;;) { + + std::string::size_type found = theString.find(splitter, offset); + + if (found != std::string::npos) { + std::string tmpString = theString.substr(offset, found-offset); + if (tmpString.size() > 0) {result.push_back(tmpString);} + offset = found + splitter.size(); + } else { + std::string tmpString = theString.substr(offset, theString.size()-offset); + if (tmpString.size() > 0) {result.push_back(tmpString);} + break; + } + } + } + + return result; +} + + diff --git a/TEvtGen/EvtGenBase/EvtDecayTable.cxx b/TEvtGen/EvtGenBase/EvtDecayTable.cxx deleted file mode 100644 index 9dec0a62dc8..00000000000 --- a/TEvtGen/EvtGenBase/EvtDecayTable.cxx +++ /dev/null @@ -1,850 +0,0 @@ -//-------------------------------------------------------------------------- -// -// Environment: -// This software is part of the EvtGen package developed jointly -// for the 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 index f7fb0ad3045..f3d79bc7e7b 100644 --- a/TEvtGen/EvtGenBase/EvtDecayTable.hh +++ b/TEvtGen/EvtGenBase/EvtDecayTable.hh @@ -29,36 +29,59 @@ class EvtId; - -typedef EvtDecayBase* EvtDecayBasePtr; - class EvtDecayTable{ public: - static int getNMode(int ipar); + static EvtDecayTable* getInstance(); + + int getNMode(int ipar); - static EvtDecayBase* getDecay(int ipar, int imode); + EvtDecayBase* getDecay(int ipar, int imode); - static void readDecayFile(const std::string dec_name, bool verbose=true); + void readDecayFile(const std::string dec_name, bool verbose=true); + void readXMLDecayFile(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); + bool stringToBoolean(std::string valStr); + void checkParticle(std::string particle); + + 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); + int inChannelList(EvtId parent, int ndaug, EvtId *daugs); + + EvtDecayBase *getDecayFunc(EvtParticle *p); + + void printSummary(); - static EvtDecayBase *getDecayFunc(EvtParticle *p); + void checkConj(); - static void printSummary(); + std::vector getDecayTable() {return _decaytable;}; - static void checkConj(); + EvtDecayBase* findDecayModel(int aliasInt, int modeInt); + EvtDecayBase* findDecayModel(EvtId id, int modeInt); - static const std::vector & decaytable() {return _decaytable;}; + bool hasPythia(int aliasInt); + bool hasPythia(EvtId id); + + int getNModes(int aliasInt); + int getNModes(EvtId id); + + std::vector splitString(std::string& theString, + std::string& splitter); + +protected: + + EvtDecayTable(); + ~EvtDecayTable(); private: - static std::vector _decaytable; + std::vector _decaytable; + + EvtDecayTable(const EvtDecayTable&) {}; + //EvtDecayTable& operator=(const EvtDecayTable&) {}; }; diff --git a/TEvtGen/EvtGenBase/EvtDiLog.cxx b/TEvtGen/EvtGenBase/EvtDiLog.cpp similarity index 96% rename from TEvtGen/EvtGenBase/EvtDiLog.cxx rename to TEvtGen/EvtGenBase/EvtDiLog.cpp index cda0708ccd6..1cb30d04532 100644 --- a/TEvtGen/EvtGenBase/EvtDiLog.cxx +++ b/TEvtGen/EvtGenBase/EvtDiLog.cpp @@ -1,4 +1,4 @@ -// $Id: EvtDiLog.cc,v 1.1 2009/02/18 21:21:33 ryd Exp $ +// $Id: EvtDiLog.cpp,v 1.3 2009-03-16 15:52:42 robbep Exp $ // Include files // local diff --git a/TEvtGen/EvtGenBase/EvtDiLog.hh b/TEvtGen/EvtGenBase/EvtDiLog.hh index 46b335539be..19d789cace5 100644 --- a/TEvtGen/EvtGenBase/EvtDiLog.hh +++ b/TEvtGen/EvtGenBase/EvtDiLog.hh @@ -1,4 +1,4 @@ -// $Id: EvtDiLog.hh,v 1.1 2009/02/18 21:21:33 ryd Exp $ +// $Id: EvtDiLog.hh,v 1.3 2009-03-16 16:44:33 robbep Exp $ #ifndef EVTGENBASE_EVTDILOG_HH #define EVTGENBASE_EVTDILOG_HH 1 diff --git a/TEvtGen/EvtGenBase/EvtDiracParticle.cxx b/TEvtGen/EvtGenBase/EvtDiracParticle.cpp similarity index 89% rename from TEvtGen/EvtGenBase/EvtDiracParticle.cxx rename to TEvtGen/EvtGenBase/EvtDiracParticle.cpp index 9b970251085..c1b0feeb321 100644 --- a/TEvtGen/EvtGenBase/EvtDiracParticle.cxx +++ b/TEvtGen/EvtGenBase/EvtDiracParticle.cpp @@ -128,11 +128,11 @@ EvtSpinDensity EvtDiracParticle::rotateToHelicityBasis() const{ 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); + R.set(0,i,(spplus*_spinorRest[i])/sqmt2); + R.set(1,i,(spminus*_spinorRest[i])/sqmt2); } else { - R.set(0,i,(EvtComplex)(_spinorRest[i]*spplus)/sqmt2); - R.set(1,i,(EvtComplex)(_spinorRest[i]*spminus)/sqmt2); + R.set(0,i,(_spinorRest[i]*spplus)/sqmt2); + R.set(1,i,(_spinorRest[i]*spminus)/sqmt2); } } @@ -167,11 +167,11 @@ EvtSpinDensity EvtDiracParticle::rotateToHelicityBasis(double alpha, 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); + R.set(0,i,(spplus*_spinorRest[i])/sqmt2); + R.set(1,i,(spminus*_spinorRest[i])/sqmt2); } else { - R.set(0,i,(EvtComplex)(_spinorRest[i]*spplus)/sqmt2); - R.set(1,i,(EvtComplex)(_spinorRest[i]*spminus)/sqmt2); + R.set(0,i,(_spinorRest[i]*spplus)/sqmt2); + R.set(1,i,(_spinorRest[i]*spminus)/sqmt2); } } diff --git a/TEvtGen/EvtGenBase/EvtDiracSpinor.cxx b/TEvtGen/EvtGenBase/EvtDiracSpinor.cpp similarity index 98% rename from TEvtGen/EvtGenBase/EvtDiracSpinor.cxx rename to TEvtGen/EvtGenBase/EvtDiracSpinor.cpp index 6f091dcb380..7c269a020c2 100644 --- a/TEvtGen/EvtGenBase/EvtDiracSpinor.cxx +++ b/TEvtGen/EvtGenBase/EvtDiracSpinor.cpp @@ -118,9 +118,10 @@ void EvtDiracSpinor::applyBoostTo(const EvtVector3R& boost) { return; } - assert(b2<1.0); + //assert(b2<1.0); - gamma=1.0/sqrt(1-b2); + gamma=1.0; + if (b2 < 1.0) {gamma = 1.0/sqrt(1.0-b2);} f1=sqrt((gamma+1.0)/2.0); f2=f1*gamma/(gamma+1.0); @@ -338,21 +339,6 @@ EvtDiracSpinor operator*(const EvtComplex& c, const EvtDiracSpinor& d) { return result; } - -EvtComplex operator*(const EvtDiracSpinor& d,const EvtDiracSpinor& dp){ - - int i; - EvtComplex temp; - - temp=EvtComplex(0.0,0.0); - - for(i=0;i<4;i++){ - temp+=::conj(d.get_spinor(i))*dp.get_spinor(i); - } - return temp; -} - - EvtDiracSpinor EvtDiracSpinor::adjoint() const { EvtDiracSpinor d = this->conj(); // first conjugate, then multiply with gamma0 @@ -365,3 +351,16 @@ EvtDiracSpinor EvtDiracSpinor::adjoint() const return result; } + +EvtComplex operator*(const EvtDiracSpinor& d,const EvtDiracSpinor& dp){ + + int i; + EvtComplex temp; + + temp=EvtComplex(0.0,0.0); + + for(i=0;i<4;i++){ + temp += conj( d.get_spinor(i) ) * dp.get_spinor( i ) ; + } + return temp; +} diff --git a/TEvtGen/EvtGenBase/EvtDiracSpinor.hh b/TEvtGen/EvtGenBase/EvtDiracSpinor.hh index 3477925fd06..251732e26c5 100644 --- a/TEvtGen/EvtGenBase/EvtDiracSpinor.hh +++ b/TEvtGen/EvtGenBase/EvtDiracSpinor.hh @@ -56,8 +56,9 @@ class EvtDiracSpinor { const EvtDiracSpinor& u2); friend EvtDiracSpinor operator*(const EvtComplex& c, const EvtDiracSpinor& d); - friend EvtComplex operator*(const EvtDiracSpinor& d, const EvtDiracSpinor& dp); + friend EvtComplex operator*(const EvtDiracSpinor& d , + const EvtDiracSpinor& dp ) ; friend std::ostream& operator<<(std::ostream& s, const EvtDiracSpinor& c); diff --git a/TEvtGen/EvtGenBase/EvtEvalHelAmp.cxx b/TEvtGen/EvtGenBase/EvtEvalHelAmp.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtEvalHelAmp.cxx rename to TEvtGen/EvtGenBase/EvtEvalHelAmp.cpp diff --git a/TEvtGen/EvtGenBase/EvtExtGeneratorCommandsTable.cpp b/TEvtGen/EvtGenBase/EvtExtGeneratorCommandsTable.cpp new file mode 100644 index 00000000000..456ef41e792 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtExtGeneratorCommandsTable.cpp @@ -0,0 +1,40 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2012 University of Warwick, UK +// +// Module: EvtExtGeneratorCommandsTable +// +// Description: Table of commands to pass to external generators +// +// Modification history: +// +// Daniel Craik March 2012 Module created +// +//------------------------------------------------------------------------ + +#include "EvtGenBase/EvtExtGeneratorCommandsTable.hh" + +EvtExtGeneratorCommandsTable::EvtExtGeneratorCommandsTable() { + _commandMap.clear(); +} + +EvtExtGeneratorCommandsTable::~EvtExtGeneratorCommandsTable() { + _commandMap.clear(); +} + +EvtExtGeneratorCommandsTable* EvtExtGeneratorCommandsTable::getInstance() { + + static EvtExtGeneratorCommandsTable* theCommandMap = 0; + + if (theCommandMap == 0) { + theCommandMap = new EvtExtGeneratorCommandsTable(); + } + + return theCommandMap; + +} diff --git a/TEvtGen/EvtGenBase/EvtExtGeneratorCommandsTable.hh b/TEvtGen/EvtGenBase/EvtExtGeneratorCommandsTable.hh new file mode 100644 index 00000000000..7031622253c --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtExtGeneratorCommandsTable.hh @@ -0,0 +1,53 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2012 University of Warwick, UK +// +// Module: EvtExtGeneratorCommandsTable +// +// Description: Table of commands to pass to external generators +// +// Modification history: +// +// Daniel Craik March 2012 Module created +// +//------------------------------------------------------------------------ + +#include +#include +#include + +#ifndef EVTEXTGENERATORCOMMANDSTABLE_HH +#define EVTEXTGENERATORCOMMANDSTABLE_HH + +typedef std::map Command; +typedef std::vector GeneratorCommands; +typedef std::map GlobalCommandMap; + +class EvtExtGeneratorCommandsTable { + +public: + + static EvtExtGeneratorCommandsTable* getInstance(); + + void addCommand(std::string extGenerator, Command command) { _commandMap[extGenerator].push_back(command); } + const GeneratorCommands& getCommands(std::string extGenerator) { return _commandMap[extGenerator]; } + +protected: + + EvtExtGeneratorCommandsTable(); + ~EvtExtGeneratorCommandsTable(); + +private: + + GlobalCommandMap _commandMap; + + EvtExtGeneratorCommandsTable(const EvtExtGeneratorCommandsTable&) {}; + +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtFlatAmp.hh b/TEvtGen/EvtGenBase/EvtFlatAmp.hh index 4b2a15a4ce7..b2628fb9f93 100644 --- a/TEvtGen/EvtGenBase/EvtFlatAmp.hh +++ b/TEvtGen/EvtGenBase/EvtFlatAmp.hh @@ -1,7 +1,7 @@ /******************************************************************************* * Project: BaBar detector at the SLAC PEP-II B-factory * Package: EvtGenBase - * File: $Id: EvtFlatAmp.hh,v 1.4 2009/02/18 03:31:38 ryd Exp $ + * File: $Id: EvtFlatAmp.hh,v 1.2 2009-03-16 16:42:03 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtFlatLineShape.cxx b/TEvtGen/EvtGenBase/EvtFlatLineShape.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtFlatLineShape.cxx rename to TEvtGen/EvtGenBase/EvtFlatLineShape.cpp diff --git a/TEvtGen/EvtGenBase/EvtFlatte.cxx b/TEvtGen/EvtGenBase/EvtFlatte.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtFlatte.cxx rename to TEvtGen/EvtGenBase/EvtFlatte.cpp diff --git a/TEvtGen/EvtGenBase/EvtGammaMatrix.cxx b/TEvtGen/EvtGenBase/EvtGammaMatrix.cpp similarity index 96% rename from TEvtGen/EvtGenBase/EvtGammaMatrix.cxx rename to TEvtGen/EvtGenBase/EvtGammaMatrix.cpp index 118e3846afc..2d84f9f6fa6 100644 --- a/TEvtGen/EvtGenBase/EvtGammaMatrix.cxx +++ b/TEvtGen/EvtGenBase/EvtGammaMatrix.cpp @@ -613,22 +613,7 @@ EvtDiracSpinor operator*(const EvtGammaMatrix& g,const EvtDiracSpinor& d){ } return temp; -} - -/* -EvtComplex operator*(const EvtDiracSpinor& d,const EvtDiracSpinor& dp){ - - int i; - EvtComplex temp; - - temp=EvtComplex(0.0,0.0); - - for(i=0;i<4;i++){ - temp+=::conj(d.get_spinor(i))*dp.get_spinor(i); - } - return temp; -} -*/ +} // upper index const EvtGammaMatrix& EvtGammaMatrix::sigmaUpper(unsigned int mu, unsigned int nu) @@ -698,7 +683,18 @@ const EvtGammaMatrix& EvtGammaMatrix::sigmaLower(unsigned int mu, unsigned int n } -EvtGammaMatrix slash(const EvtVector4C& p) +EvtGammaMatrix EvtGenFunctions::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); +} + +EvtGammaMatrix EvtGenFunctions::slash(const EvtVector4R& p) { - return EvtGammaMatrix::g0()*p.get(0) + EvtGammaMatrix::g1()*p.get(1) + EvtGammaMatrix::g2()*p.get(2) + EvtGammaMatrix::g3()*p.get(3); + 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 index 9a21e4575de..2d7cc11b955 100644 --- a/TEvtGen/EvtGenBase/EvtGammaMatrix.hh +++ b/TEvtGen/EvtGenBase/EvtGammaMatrix.hh @@ -29,7 +29,11 @@ class EvtGammaMatrix; class EvtVector4C; -EvtGammaMatrix slash(const EvtVector4C& p); +namespace EvtGenFunctions { + // slash or Feynman slash a 4-vector + EvtGammaMatrix slash( const EvtVector4C& p ) ; + EvtGammaMatrix slash( const EvtVector4R& p ) ; +}; class EvtGammaMatrix { @@ -37,14 +41,11 @@ class EvtGammaMatrix { 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: @@ -96,7 +97,7 @@ inline EvtGammaMatrix operator*(const EvtGammaMatrix& g1,const EvtGammaMatrix& g return EvtGammaMatrix(g1)*=g2; } -inline EvtGammaMatrix operator/(const EvtGammaMatrix& g, double d) +inline EvtGammaMatrix operator/(const EvtGammaMatrix& g, const double d) { return g * EvtComplex(1/d,0); } diff --git a/TEvtGen/EvtGenBase/EvtGenBaseLinkDef.h b/TEvtGen/EvtGenBase/EvtGenBaseLinkDef.h deleted file mode 100644 index 832fad5cc34..00000000000 --- a/TEvtGen/EvtGenBase/EvtGenBaseLinkDef.h +++ /dev/null @@ -1,8 +0,0 @@ -#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 deleted file mode 100644 index 7502ebe0a7c..00000000000 --- a/TEvtGen/EvtGenBase/EvtGenBaseLinkDefOLD.h +++ /dev/null @@ -1,117 +0,0 @@ -#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.cpp similarity index 98% rename from TEvtGen/EvtGenBase/EvtGenKine.cxx rename to TEvtGen/EvtGenBase/EvtGenKine.cpp index 26fb98542b3..86639bf4beb 100644 --- a/TEvtGen/EvtGenBase/EvtGenKine.cxx +++ b/TEvtGen/EvtGenBase/EvtGenKine.cpp @@ -66,7 +66,10 @@ double EvtGenKine::PhaseSpace( int ndaug, double mass[30], EvtVector4R p4[30], energy = ( mp*mp + mass[0]*mass[0] - mass[1]*mass[1] ) / ( 2.0 * mp ); - p3 = sqrt( energy*energy - mass[0]*mass[0] ); + p3 = 0.0; + if (energy > mass[0]) { + p3 = sqrt( energy*energy - mass[0]*mass[0] ); + } p4[0].set( energy, 0.0, 0.0, p3 ); @@ -88,7 +91,7 @@ double EvtGenKine::PhaseSpace( int ndaug, double mass[30], EvtVector4R p4[30], if ( ndaug != 2 ) { double wtmax=0.0; - double pm[5][30],to[4],pmin,pmax,psum,rnd[30]; + double pm[5][30],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; @@ -104,11 +107,6 @@ double EvtGenKine::PhaseSpace( int ndaug, double mass[30], EvtVector4R p4[30], pm[3][0]=0.0; pm[4][0]=mp; - to[0]=mp; - to[1]=0.0; - to[2]=0.0; - to[3]=0.0; - psum=0.0; for(i=1;ideleteEvent(); +} + +void EvtHepMCEvent::deleteEvent() { + + if (_theEvent != 0) { + _theEvent->clear(); + delete _theEvent; _theEvent = 0; + } + +} + +void EvtHepMCEvent::constructEvent(EvtParticle* baseParticle) { + + EvtVector4R origin(0.0, 0.0, 0.0, 0.0); + this->constructEvent(baseParticle, origin); + +} + +void EvtHepMCEvent::constructEvent(EvtParticle* baseParticle, EvtVector4R& translation) { + + // This class does not take ownership of the base particle pointer. + // Rather, it uses the base particle to construct the event. + + this->deleteEvent(); + if (baseParticle == 0) {return;} + + _theEvent = new HepMC::GenEvent(HepMC::Units::GEV, HepMC::Units::MM); + _translation = translation; + + // Use the recursive function addVertex to add a vertex with incoming/outgoing + // particles. Adds a new vertex for any EvtParticles with decay daughters. + // All particles are in the rest frame of the base particle ("lab frame"). + + HepMC::GenParticle* hepMCGenParticle = this->createGenParticle(baseParticle, EvtHepMCEvent::LAB); + + this->addVertex(baseParticle, hepMCGenParticle); + +} + +HepMC::GenParticle* EvtHepMCEvent::createGenParticle(EvtParticle* theParticle, int frameType) { + + // Create an HepMC GenParticle, with the 4-momenta in the frame given by the frameType integer + HepMC::GenParticle* genParticle = 0; + + if (theParticle != 0) { + + // Set the particle status integer to either stable or decayed + int status(EvtHepMCEvent::STABLE); + int nDaug = theParticle->getNDaug(); + if (nDaug > 0) {status = EvtHepMCEvent::DECAYED;} + + // Get the 4-momentum (E, px, py, pz) for the EvtParticle. + EvtVector4R p4(0.0, 0.0, 0.0, 0.0); + + if (frameType == EvtHepMCEvent::RESTFRAME) { + p4 = theParticle->getP4Restframe(); + } else if (frameType == EvtHepMCEvent::LAB) { + p4 = theParticle->getP4Lab(); + } else { + p4 = theParticle->getP4(); + } + + // Convert this to the HepMC 4-momentum + double E = p4.get(0); + double px = p4.get(1); + double py = p4.get(2); + double pz = p4.get(3); + + HepMC::FourVector hepMC_p4(px, py, pz, E); + + // Get the particle PDG integer id + int PDGInt = EvtPDL::getStdHep(theParticle->getId()); + + genParticle = new HepMC::GenParticle(hepMC_p4, PDGInt, status); + + } + + return genParticle; + +} + +void EvtHepMCEvent::addVertex(EvtParticle* inEvtParticle, HepMC::GenParticle* inGenParticle) { + + // This is a recursive function that adds GenVertices to the GenEvent for + // the incoming EvtParticle and its daughters. We use two separate + // pointers for the EvtParticle and GenParticle information: the former + // to obtain the PDGId, 4-momenta, daughter and vertex positions, the latter to + // set the incoming particle to the vertex. Note that the outgoing particle for + // one vertex might be the incoming particle for another vertex - this needs to + // be the same GenParticle pointer, hence the reason for using it as a 2nd argument + // in this function. + + if (_theEvent == 0 || inEvtParticle == 0 || inGenParticle == 0) {return;} + + // Create the decay vertex + HepMC::FourVector vtxCoord = this->getVertexCoord(inEvtParticle); + HepMC::GenVertex* theVertex = new HepMC::GenVertex(vtxCoord); + + // Add the vertex to the event + _theEvent->add_vertex(theVertex); + + // Set the incoming particle + theVertex->add_particle_in(inGenParticle); + + // Set the outgoing particles (decay products) + int nDaug = inEvtParticle->getNDaug(); + int iDaug(0); + // Loop over the daughters + for (iDaug = 0; iDaug < nDaug; iDaug++) { + + EvtParticle* evtDaughter = inEvtParticle->getDaug(iDaug); + HepMC::GenParticle* genDaughter = this->createGenParticle(evtDaughter, EvtHepMCEvent::LAB); + + if (genDaughter != 0) { + + // Add a new GenParticle (outgoing) particle daughter to the vertex + theVertex->add_particle_out(genDaughter); + + // Find out if the daughter also has decay products. + // If so, recursively run this function again. + int nDaugProducts = evtDaughter->getNDaug(); + + if (nDaugProducts > 0) { + + // Recursively process daughter particles and add their vertices to the event + this->addVertex(evtDaughter, genDaughter); + + } // Have daughter products + + } // hepMCDaughter != 0 + + } // Loop over daughters + +} + +HepMC::FourVector EvtHepMCEvent::getVertexCoord(EvtParticle* theParticle) { + + HepMC::FourVector vertexCoord(0.0, 0.0, 0.0, 0.0); + + if (theParticle != 0 && theParticle->getNDaug() != 0) { + + // Get the position (t,x,y,z) of the EvtParticle, offset by the translation vector. + // This position will be the point where the particle decays. So we ask + // the position of the (1st) daughter particle. + EvtParticle* daugParticle = theParticle->getDaug(0); + + if (daugParticle != 0) { + + EvtVector4R vtxPosition = daugParticle->get4Pos() + _translation; + + // Create the HepMC 4 vector of the position (x,y,z,t) + vertexCoord.setX(vtxPosition.get(1)); + vertexCoord.setY(vtxPosition.get(2)); + vertexCoord.setZ(vtxPosition.get(3)); + vertexCoord.setT(vtxPosition.get(0)); + + } + + } + + return vertexCoord; + +} diff --git a/TEvtGen/EvtGenBase/EvtHepMCEvent.hh b/TEvtGen/EvtGenBase/EvtHepMCEvent.hh new file mode 100644 index 00000000000..cb503eb0d2f --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtHepMCEvent.hh @@ -0,0 +1,77 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2011 University of Warwick, UK +// +// Module: EvtHepMCEvent +// +// Description: Create an HepMC::GenEvent for the complete EvtParticle +// decay tree. +// +// Modification history: +// +// John Back June 2011 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTHEPMCEVENT_HH +#define EVTHEPMCEVENT_HH + +#include "EvtGenBase/EvtVector4R.hh" + +#include "HepMC/GenEvent.h" +#include "HepMC/GenParticle.h" +#include "HepMC/SimpleVector.h" + +class EvtParticle; + +class EvtHepMCEvent { + +public: + + EvtHepMCEvent(); + virtual ~EvtHepMCEvent(); + + // Select what frame a given GenParticle is in: + // its own restframe, the lab frame (first mother), or its mother's frame + enum HepMCFrame {RESTFRAME = 1, LAB = 2, MOTHER = 3}; + // Select the GenParticle status + enum HepMCStatus {STABLE = 1, DECAYED = 2, HISTORY = 3}; + + void constructEvent(EvtParticle* baseParticle); + void constructEvent(EvtParticle* baseParticle, EvtVector4R& translation); + + HepMC::GenEvent* getEvent() {return _theEvent;} + + // Methods used to create GenParticles and FourVectors of vertices. + // Make these public so that other classes may call them if they use EvtHepMCEvent. + + // Create a GenParticle using info from the EvtParticle, specifying what frame + // the 4-momentum is from. + HepMC::GenParticle* createGenParticle(EvtParticle* theParticle, int frameType); + + // Find out the decay vertex position for the given EvtParticle. + HepMC::FourVector getVertexCoord(EvtParticle* theParticle); + +protected: + +private: + + // Delete the event structure (called by destructor) + void deleteEvent(); + + // Add a vertex to the event. This is called by the constructEvent function + // and is recursive, i.e. it loops through all possible daughter particles and + // their descendents. + void addVertex(EvtParticle* inEvtParticle, HepMC::GenParticle* inGenParticle); + + HepMC::GenEvent* _theEvent; + EvtVector4R _translation; + +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtHighSpinParticle.cxx b/TEvtGen/EvtGenBase/EvtHighSpinParticle.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtHighSpinParticle.cxx rename to TEvtGen/EvtGenBase/EvtHighSpinParticle.cpp diff --git a/TEvtGen/EvtGenBase/EvtId.cxx b/TEvtGen/EvtGenBase/EvtId.cpp similarity index 93% rename from TEvtGen/EvtGenBase/EvtId.cxx rename to TEvtGen/EvtGenBase/EvtId.cpp index 116106a1dda..d09dcadf36f 100644 --- a/TEvtGen/EvtGenBase/EvtId.cxx +++ b/TEvtGen/EvtGenBase/EvtId.cpp @@ -39,3 +39,8 @@ int EvtId::isConjugate(const EvtId & id) const { return EvtPDL::getStdHep(*this) == - EvtPDL::getStdHep(id); } +std::string EvtId::getName() const { + + return EvtPDL::name(*this); + +} diff --git a/TEvtGen/EvtGenBase/EvtId.hh b/TEvtGen/EvtGenBase/EvtId.hh index d541684a203..06a5f23387b 100644 --- a/TEvtGen/EvtGenBase/EvtId.hh +++ b/TEvtGen/EvtGenBase/EvtId.hh @@ -22,7 +22,7 @@ #define EVTID_HH #include -//class ostream; +#include class EvtId { @@ -37,6 +37,8 @@ public: int operator==(const EvtId& id) const { return _id==id._id; } int operator!=(const EvtId& id) const { return _id!=id._id; } + int operator<(const EvtId& id) const { return _id +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtRandom.hh" + +//----------------------------------------------------------------------------- +// Implementation file for class : EvtIncoherentMixing +// +// 2003-10-09 : Patrick Robbe +//----------------------------------------------------------------------------- + + +bool EvtIncoherentMixing::_doB0Mixing = false ; +bool EvtIncoherentMixing::_doBsMixing = false ; +bool EvtIncoherentMixing::_enableFlip = false ; +double EvtIncoherentMixing::_dGammad = 0. ; +double EvtIncoherentMixing::_deltamd = 0.502e12 ; +// dGamma_s corresponds to DeltaGamma / Gamma = 10 % +double EvtIncoherentMixing::_dGammas = 6.852e10 ; +double EvtIncoherentMixing::_deltams = 20.e12 ; + +//============================================================================= +// Standard constructor, initializes variables +//============================================================================= +EvtIncoherentMixing::EvtIncoherentMixing( ) { + _doB0Mixing = false ; + _doBsMixing = false ; + _dGammad = 0. ; + // dGammas corresponds to DeltaGamma / Gamma = 10 % + _dGammas = 6.852e10 ; + _deltamd = 0.502e12 ; + _deltams = 20.e12 ; + _enableFlip = false ; +} +//============================================================================= +EvtIncoherentMixing::~EvtIncoherentMixing( ) +{ +} +// ============================================================================ +void EvtIncoherentMixing::incoherentB0Mix( const EvtId id, double &t , + int &mix ) +{ + static EvtId B0 = EvtPDL::getId( "B0" ) ; + static EvtId B0B = EvtPDL::getId( "anti-B0" ) ; + + if ( ( B0 != id ) && ( B0B != id ) ) { + report(ERROR,"EvtGen") << "Bad configuration in incoherentB0Mix" + << std::endl ; + ::abort() ; + } + + double x = getdeltamd() * EvtPDL::getctau( B0 ) / EvtConst::c ; + + double y = getdGammad() * ( EvtPDL::getctau( B0 ) / EvtConst::c ) / 2. ; + + double fac = 1. ; // No CP violation + + double mixprob = ( x*x + y*y ) / ( x*x + y*y + ( 1./fac ) * + ( 2. + x*x - y*y ) ) ; + + int mixsign ; + + // decide if state is mixed + mixsign = ( mixprob > EvtRandom::Flat( 0. , 1. ) ) ? -1 : 1 ; + + double prob ; + + do { + t = -log( EvtRandom::Flat() ) * EvtPDL::getctau( B0 ) / ( 1. - y ) ; + prob = ( 1. + exp( -2. * y * t / EvtPDL::getctau( B0 ) ) + + mixsign * 2. * exp( -y * t / EvtPDL::getctau( B0 ) ) * + cos( getdeltamd() * t / EvtConst::c ) ) / 2. ; + } while ( prob < 2. * EvtRandom::Flat() ) ; + + mix = 0 ; + if ( mixsign == -1 ) mix = 1 ; + + return ; +} +// ============================================================================ +void EvtIncoherentMixing::incoherentBsMix( const EvtId id, double &t , + int &mix ) +{ + static EvtId BS = EvtPDL::getId( "B_s0" ) ; + static EvtId BSB = EvtPDL::getId( "anti-B_s0" ) ; + + if ( ( BS != id ) && ( BSB != id ) ) { + report(ERROR,"EvtGen") << "Bad configuration in incoherentBsMix" + << std::endl ; + ::abort() ; + } + + double x = getdeltams() * EvtPDL::getctau( BS ) / EvtConst::c ; + + double y = getdGammas() * ( EvtPDL::getctau( BS ) / EvtConst::c ) / 2. ; + + double fac = 1. ; // No CP violation + + double mixprob = ( x*x + y*y ) / ( x*x + y*y + ( 1./fac ) * + ( 2. + x*x - y*y ) ) ; + + int mixsign ; + + // decide if state is mixed + mixsign = ( mixprob > EvtRandom::Flat( 0. , 1. ) ) ? -1 : 1 ; + + double prob ; + + do { + t = -log( EvtRandom::Flat() ) * EvtPDL::getctau( BS ) / ( 1. - y ) ; + prob = ( 1. + exp( -2. * y * t / EvtPDL::getctau( BS ) ) + + mixsign * 2. * exp( -y * t / EvtPDL::getctau( BS ) ) * + cos( getdeltams() * t / EvtConst::c ) ) / 2. ; + } while ( prob < 2. * EvtRandom::Flat() ) ; + + mix = 0 ; + if ( mixsign == -1 ) mix = 1 ; + + return ; +} + +// ======================================================================== +bool EvtIncoherentMixing::isBsMixed ( EvtParticle * p ) +{ + if ( ! ( p->getParent() ) ) return false ; + + static EvtId BS0=EvtPDL::getId("B_s0"); + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + + if ( ( p->getId() != BS0 ) && ( p->getId() != BSB ) ) return false ; + + if ( ( p->getParent()->getId() == BS0 ) || + ( p->getParent()->getId() == BSB ) ) return true ; + + return false ; +} + +// ======================================================================== +bool EvtIncoherentMixing::isB0Mixed ( EvtParticle * p ) +{ + if ( ! ( p->getParent() ) ) return false ; + + static EvtId B0 =EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + if ( ( p->getId() != B0 ) && ( p->getId() != B0B ) ) return false ; + + if ( ( p->getParent()->getId() == B0 ) || + ( p->getParent()->getId() == B0B ) ) return true ; + + return false ; +} +//============================================================================ +// Return the tag of the event (ie the anti-flavour of the produced +// B meson). Flip the flavour of the event with probB probability +//============================================================================ +void EvtIncoherentMixing::OtherB( EvtParticle * p , + double & t , + EvtId & otherb , + double probB ) +{ + //if(p->getId() == B0 || p->getId() == B0B) + //added by liming Zhang + enableFlip(); + if ( ( isB0Mixed( p ) ) || ( isBsMixed( p ) ) ) { + p->getParent()->setLifetime() ; + t = p->getParent()->getLifetime() ; + } + else { + p->setLifetime() ; + t = p->getLifetime() ; + } + + if ( flipIsEnabled() ) { + //std::cout << " liming << flipIsEnabled " << std::endl; + // Flip the flavour of the particle with probability probB + bool isFlipped = ( EvtRandom::Flat( 0. , 1. ) < probB ) ; + + if ( isFlipped ) { + if ( ( isB0Mixed( p ) ) || ( isBsMixed( p ) ) ) { + p->getParent() + ->setId( EvtPDL::chargeConj( p->getParent()->getId() ) ) ; + p->setId( EvtPDL::chargeConj( p->getId() ) ) ; + } + else { + p->setId( EvtPDL::chargeConj( p->getId() ) ) ; + } + } + } + + if ( ( isB0Mixed( p ) ) || ( isBsMixed( p ) ) ) { + // if B has mixed, tag flavour is charge conjugate of parent of B-meson + otherb = EvtPDL::chargeConj( p->getParent()->getId() ) ; + } + else { + // else it is opposite flavour than this B hadron + otherb = EvtPDL::chargeConj( p->getId() ) ; + } + + return ; +} +//============================================================================ +// Return the tag of the event (ie the anti-flavour of the produced +// B meson). No flip +//============================================================================ +void EvtIncoherentMixing::OtherB( EvtParticle * p , + double & t , + EvtId & otherb ) +{ + if ( ( isB0Mixed( p ) ) || ( isBsMixed( p ) ) ) { + p->getParent()->setLifetime() ; + t = p->getParent()->getLifetime() ; + } + else { + p->setLifetime() ; + t = p->getLifetime() ; + } + + if ( ( isB0Mixed( p ) ) || ( isBsMixed( p ) ) ) { + // if B has mixed, tag flavour is charge conjugate of parent of B-meson + otherb = EvtPDL::chargeConj( p->getParent()->getId() ) ; + } + else { + // else it is opposite flavour than this B hadron + otherb = EvtPDL::chargeConj( p->getId() ) ; + } + + return ; +} + + +// activate or desactivate the Bs mixing +void EvtIncoherentMixing::setB0Mixing() { _doB0Mixing = true ; } +void EvtIncoherentMixing::unsetB0Mixing() { _doB0Mixing = false ; } + +// activate or desactivate the B0 mixing +void EvtIncoherentMixing::setBsMixing() { _doBsMixing = true ; } +void EvtIncoherentMixing::unsetBsMixing() { _doBsMixing = false ; } + +// is mixing activated ? +bool EvtIncoherentMixing::doB0Mixing() { return _doB0Mixing ; } +bool EvtIncoherentMixing::doBsMixing() { return _doBsMixing ; } + +// set values for the mixing +void EvtIncoherentMixing::setdGammad( double value ) { _dGammad = value ; } +void EvtIncoherentMixing::setdeltamd( double value ) { _deltamd = value ; } +void EvtIncoherentMixing::setdGammas( double value ) { _dGammas = value ; } +void EvtIncoherentMixing::setdeltams( double value ) { _deltams = value ; } + +// get parameters for mixing +double EvtIncoherentMixing::getdGammad() { return _dGammad ; } +double EvtIncoherentMixing::getdeltamd() { return _deltamd ; } +double EvtIncoherentMixing::getdGammas() { return _dGammas ; } +double EvtIncoherentMixing::getdeltams() { return _deltams ; } + +bool EvtIncoherentMixing::flipIsEnabled() { return _enableFlip ; } +void EvtIncoherentMixing::enableFlip() { _enableFlip = true ; } +void EvtIncoherentMixing::disableFlip() { _enableFlip = false ; } diff --git a/TEvtGen/EvtGenBase/EvtIncoherentMixing.hh b/TEvtGen/EvtGenBase/EvtIncoherentMixing.hh new file mode 100644 index 00000000000..8ae47ab7ec4 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtIncoherentMixing.hh @@ -0,0 +1,78 @@ +// $Id: EvtIncoherentMixing.hh,v 1.6 2009-11-25 13:41:59 mwhitehe Exp $ +#ifndef EVTINCOHERENTMIXING_HH +#define EVTINCOHERENTMIXING_HH 1 + +// Include files + +#include "EvtGenBase/EvtParticle.hh" + +/** @class EvtIncoherentMixing EvtIncoherentMixing.hh EvtGenBase/EvtIncoherentMixing.hh + * Class to contain the parameters of the incoherent B0 and B0S mixing + * + * @author Patrick Robbe + * @date 2003-10-09 + */ +class EvtIncoherentMixing { +public: + /// Standard constructor + EvtIncoherentMixing( ); + + ~EvtIncoherentMixing( ) ; ///< Destructor + + // activate or desactivate the Bs mixing + static void setB0Mixing() ; + static void unsetB0Mixing() ; + + // activate or desactivate the B0 mixing + static void setBsMixing() ; + static void unsetBsMixing() ; + + // is mixing activated ? + static bool doB0Mixing() ; + static bool doBsMixing() ; + + // set values for the mixing + static void setdGammad( double value ) ; + static void setdeltamd( double value ) ; + static void setdGammas( double value ) ; + static void setdeltams( double value ) ; + + // get parameters for mixing + static double getdGammad() ; + static double getdeltamd() ; + static double getdGammas() ; + static double getdeltams() ; + + // Functions to obtain time and type of the mixing ( 1 mix, 0 unmix ) + static void incoherentB0Mix( const EvtId id, double &t, int &mix ) ; + static void incoherentBsMix( const EvtId id, double &t, int &mix ) ; + + // Functions to check if a B has mixed (comes from a B) + static bool isB0Mixed( EvtParticle * ) ; + static bool isBsMixed( EvtParticle * ) ; + + // Functions for CP models + // returns for particle p the decay time t , the flavour of the tag + // side (B0, anti-B0, B_s0, anti-B_s0). The flavour of p can flip + // with probability probB + static void OtherB( EvtParticle * p , double & t , EvtId & otherb , + double probB ) ; + static void OtherB( EvtParticle * p , double & t , EvtId & otherb ) ; + + static bool flipIsEnabled() ; + static void enableFlip() ; + static void disableFlip() ; + +protected: + +private: + + static bool _doB0Mixing ; + static bool _doBsMixing ; + static double _dGammad ; + static double _deltamd ; + static double _dGammas ; + static double _deltams ; + static bool _enableFlip ; +}; +#endif // EVTGENBASE_EVTINCOHERENTMIXING_HH diff --git a/TEvtGen/EvtGenBase/EvtIntegPdf1D.cxx b/TEvtGen/EvtGenBase/EvtIntegPdf1D.cpp similarity index 94% rename from TEvtGen/EvtGenBase/EvtIntegPdf1D.cxx rename to TEvtGen/EvtGenBase/EvtIntegPdf1D.cpp index 0652697e568..d2fa8b4799d 100644 --- a/TEvtGen/EvtGenBase/EvtIntegPdf1D.cxx +++ b/TEvtGen/EvtGenBase/EvtIntegPdf1D.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtIntegPdf1D.cpp,v 1.3 2009-03-16 15:48:09 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtIntegPdf1D.hh b/TEvtGen/EvtGenBase/EvtIntegPdf1D.hh index c2056ee1009..c9400ee07ba 100644 --- a/TEvtGen/EvtGenBase/EvtIntegPdf1D.hh +++ b/TEvtGen/EvtGenBase/EvtIntegPdf1D.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtIntegPdf1D.hh,v 1.2 2009-03-16 16:42:03 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtIntervalFlatPdf.cxx b/TEvtGen/EvtGenBase/EvtIntervalFlatPdf.cpp similarity index 93% rename from TEvtGen/EvtGenBase/EvtIntervalFlatPdf.cxx rename to TEvtGen/EvtGenBase/EvtIntervalFlatPdf.cpp index a279fdda59c..f43b6cd9c4b 100644 --- a/TEvtGen/EvtGenBase/EvtIntervalFlatPdf.cxx +++ b/TEvtGen/EvtGenBase/EvtIntervalFlatPdf.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtIntervalFlatPdf.cpp,v 1.3 2009-03-16 15:51:08 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtIntervalFlatPdf.hh b/TEvtGen/EvtGenBase/EvtIntervalFlatPdf.hh index caaaba40b4a..cb29ddd6dbe 100644 --- a/TEvtGen/EvtGenBase/EvtIntervalFlatPdf.hh +++ b/TEvtGen/EvtGenBase/EvtIntervalFlatPdf.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtIntervalFlatPdf.hh,v 1.2 2009-03-16 16:42:03 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtKine.cxx b/TEvtGen/EvtGenBase/EvtKine.cpp similarity index 90% rename from TEvtGen/EvtGenBase/EvtKine.cxx rename to TEvtGen/EvtGenBase/EvtKine.cpp index a9303cbbdb2..aa01d0e4f28 100644 --- a/TEvtGen/EvtGenBase/EvtKine.cxx +++ b/TEvtGen/EvtGenBase/EvtKine.cpp @@ -54,11 +54,12 @@ double EvtDecayAngleChi(const EvtVector4R& p4_p,const EvtVector4R& p4_d1, // 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); + // This does not boost particle to parent rest frame !!! + // It goes from parents rest frame to frame where parent has given momentum. + p4_d1p=boostTo(p4_d1,p4_p,true); + p4_d2p=boostTo(p4_d2,p4_p,true); + p4_h1p=boostTo(p4_h1,p4_p,true); + p4_h2p=boostTo(p4_h2,p4_p,true); EvtVector4R d1_perp,d1_prime,h1_perp; @@ -94,7 +95,7 @@ double EvtDecayAngleChi(const EvtVector4R& p4_p,const EvtVector4R& p4_d1, double EvtDecayPlaneNormalAngle(const EvtVector4R& p,const EvtVector4R& q, const EvtVector4R& d1,const EvtVector4R& d2){ - EvtVector4C lc=dual(directProd(d1,d2)).cont2(q); + EvtVector4C lc=dual(EvtGenFunctions::directProd(d1,d2)).cont2(q); EvtVector4R l(real(lc.get(0)),real(lc.get(1)), real(lc.get(2)),real(lc.get(3))); diff --git a/TEvtGen/EvtGenBase/EvtLASSAmp.cxx b/TEvtGen/EvtGenBase/EvtLASSAmp.cpp similarity index 85% rename from TEvtGen/EvtGenBase/EvtLASSAmp.cxx rename to TEvtGen/EvtGenBase/EvtLASSAmp.cpp index be253d07521..aac6bc9fb98 100644 --- a/TEvtGen/EvtGenBase/EvtLASSAmp.cxx +++ b/TEvtGen/EvtGenBase/EvtLASSAmp.cpp @@ -1,4 +1,3 @@ -#include "EvtGenBase/EvtPatches.hh" /******************************************************************************* * Project: BaBar detector at the SLAC PEP-II B-factory * Package: EvtGenBase @@ -23,14 +22,15 @@ using EvtCyclic3::Pair; EvtLASSAmp::EvtLASSAmp(EvtDalitzPlot *dp, EvtCyclic3::Pair pair, double m0, double g0, - double a, double r, double cutoff) : + double a, double r, double cutoff, std::string subtype) : EvtAmplitude(), _pair(pair), _m0(m0), _g0(g0), _r(r), _a(a), - _cutoff(cutoff) + _cutoff(cutoff), + _subtype(subtype) { _dalitzSpace = dp; double ma = dp->m( first(pair) ); @@ -51,7 +51,9 @@ EvtLASSAmp::EvtLASSAmp(const EvtLASSAmp& other) : _q0(other._q0), _r(other._r), _a(other._a), - _cutoff(other._cutoff) + _cutoff(other._cutoff), + _subtype(other._subtype) + { _dalitzSpace = other._dalitzSpace; } @@ -108,5 +110,22 @@ EvtLASSAmp::amplitude(const EvtDalitzPoint &dalitzPoint) const { 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; + EvtComplex theAmplitude(0.0, 0.0); + + if (_subtype == "LASS_ELASTIC") { + + theAmplitude = lass_elastic; + + } else if (_subtype == "LASS_RESONANT") { + + theAmplitude = lass_phase * lass_Kstar; + + } else { + + theAmplitude = lass_phase * lass_Kstar + lass_elastic; + + } + + return theAmplitude; + } diff --git a/TEvtGen/EvtGenBase/EvtLASSAmp.hh b/TEvtGen/EvtGenBase/EvtLASSAmp.hh index 5a19c9f9653..a626bc37186 100644 --- a/TEvtGen/EvtGenBase/EvtLASSAmp.hh +++ b/TEvtGen/EvtGenBase/EvtLASSAmp.hh @@ -1,7 +1,8 @@ /******************************************************************************* * Project: BaBar detector at the SLAC PEP-II B-factory * Package: EvtGenBase - * Author: Denis Dujmic, ddujmic@slac.stanford.edu + * Authors: Denis Dujmic, ddujmic@slac.stanford.edu + * Andrew Wagner, apwagner@slac.stanford.edu * * Copyright (C) 2005 SLAC *******************************************************************************/ @@ -9,6 +10,8 @@ #ifndef EVT_LASS_AMP_HH #define EVT_LASS_AMP_HH +#include + #include "EvtGenBase/EvtCyclic3.hh" #include "EvtGenBase/EvtDalitzPoint.hh" #include "EvtGenBase/EvtDalitzPlot.hh" @@ -16,8 +19,6 @@ class EvtComplex; - - class EvtLASSAmp : public EvtAmplitude { public: @@ -25,7 +26,7 @@ public: EvtLASSAmp( EvtDalitzPlot *dp, EvtCyclic3::Pair pair, double m0, double g0, - double a, double r, double cutoff ); + double a, double r, double cutoff, std::string subtype = "LASS" ); EvtLASSAmp(const EvtLASSAmp& other); @@ -48,6 +49,7 @@ private: double _r; double _a; double _cutoff; + std::string _subtype; }; diff --git a/TEvtGen/EvtGenBase/EvtMBreitWigner.cxx b/TEvtGen/EvtGenBase/EvtMBreitWigner.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtMBreitWigner.cxx rename to TEvtGen/EvtGenBase/EvtMBreitWigner.cpp diff --git a/TEvtGen/EvtGenBase/EvtMHelAmp.cxx b/TEvtGen/EvtGenBase/EvtMHelAmp.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtMHelAmp.cxx rename to TEvtGen/EvtGenBase/EvtMHelAmp.cpp diff --git a/TEvtGen/EvtGenBase/EvtMNode.cxx b/TEvtGen/EvtGenBase/EvtMNode.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtMNode.cxx rename to TEvtGen/EvtGenBase/EvtMNode.cpp diff --git a/TEvtGen/EvtGenBase/EvtMParticle.cxx b/TEvtGen/EvtGenBase/EvtMParticle.cpp similarity index 88% rename from TEvtGen/EvtGenBase/EvtMParticle.cxx rename to TEvtGen/EvtGenBase/EvtMParticle.cpp index 999f6ea7bc3..542c0b97bf7 100644 --- a/TEvtGen/EvtGenBase/EvtMParticle.cxx +++ b/TEvtGen/EvtGenBase/EvtMParticle.cpp @@ -9,7 +9,7 @@ EvtMParticle::EvtMParticle( int label, const EvtId& id ) _resonance.push_back( label ); } -EvtSpinAmp EvtMParticle::amplitude( const vector &product) const +EvtSpinAmp EvtMParticle::amplitude( const vector &/*product*/) const { vector types( 2, getspintype() ); EvtSpinAmp amp( types, EvtComplex( 0.0, 0.0 ) ); diff --git a/TEvtGen/EvtGenBase/EvtMParticle.hh b/TEvtGen/EvtGenBase/EvtMParticle.hh index 0b151dc1a0a..f1ee8d9a157 100644 --- a/TEvtGen/EvtGenBase/EvtMParticle.hh +++ b/TEvtGen/EvtGenBase/EvtMParticle.hh @@ -12,7 +12,7 @@ class EvtMParticle : public EvtMNode { EvtSpinAmp amplitude( const vector& product ) const; int getnchild() const { return 0; } - EvtComplex line( const vector& product ) const + EvtComplex line( const vector& /*product*/ ) const { return EvtComplex(1.0, 0.0); } EvtMNode * duplicate() const; diff --git a/TEvtGen/EvtGenBase/EvtMRes.cxx b/TEvtGen/EvtGenBase/EvtMRes.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtMRes.cxx rename to TEvtGen/EvtGenBase/EvtMRes.cpp diff --git a/TEvtGen/EvtGenBase/EvtMTree.cxx b/TEvtGen/EvtGenBase/EvtMTree.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtMTree.cxx rename to TEvtGen/EvtGenBase/EvtMTree.cpp diff --git a/TEvtGen/EvtGenBase/EvtMTrivialLS.cxx b/TEvtGen/EvtGenBase/EvtMTrivialLS.cpp similarity index 78% rename from TEvtGen/EvtGenBase/EvtMTrivialLS.cxx rename to TEvtGen/EvtGenBase/EvtMTrivialLS.cpp index 8bfd22e67a6..b86366cee85 100644 --- a/TEvtGen/EvtGenBase/EvtMTrivialLS.cxx +++ b/TEvtGen/EvtGenBase/EvtMTrivialLS.cpp @@ -1,7 +1,7 @@ #include "EvtGenBase/EvtPatches.hh" #include "EvtGenBase/EvtMTrivialLS.hh" -EvtComplex EvtMTrivialLS::shape( const vector& product ) const +EvtComplex EvtMTrivialLS::shape( const vector& /*product*/ ) const { return EvtComplex(1.0, 0.0); } diff --git a/TEvtGen/EvtGenBase/EvtMTrivialLS.hh b/TEvtGen/EvtGenBase/EvtMTrivialLS.hh index 4089b6716f6..a4afcade81c 100644 --- a/TEvtGen/EvtGenBase/EvtMTrivialLS.hh +++ b/TEvtGen/EvtGenBase/EvtMTrivialLS.hh @@ -7,7 +7,7 @@ class EvtMTrivialLS : public EvtMLineShape { public: - EvtMTrivialLS( const EvtId& id, const vector& args ) {}; + EvtMTrivialLS( const EvtId& /*id*/, const vector& /*args*/ ) {}; ~EvtMTrivialLS() {}; EvtComplex shape( const vector& product ) const; diff --git a/TEvtGen/EvtGenBase/EvtMacros.hh b/TEvtGen/EvtGenBase/EvtMacros.hh index 3500685ce44..9c045a72e48 100644 --- a/TEvtGen/EvtGenBase/EvtMacros.hh +++ b/TEvtGen/EvtGenBase/EvtMacros.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtMacros.hh,v 1.2 2009-03-16 16:42:03 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtManyDeltaFuncLineShape.cxx b/TEvtGen/EvtGenBase/EvtManyDeltaFuncLineShape.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtManyDeltaFuncLineShape.cxx rename to TEvtGen/EvtGenBase/EvtManyDeltaFuncLineShape.cpp diff --git a/TEvtGen/EvtGenBase/EvtMassAmp.cxx b/TEvtGen/EvtGenBase/EvtMassAmp.cpp similarity index 97% rename from TEvtGen/EvtGenBase/EvtMassAmp.cxx rename to TEvtGen/EvtGenBase/EvtMassAmp.cpp index c0bfa57bcb6..d9c3677dc8b 100644 --- a/TEvtGen/EvtGenBase/EvtMassAmp.cxx +++ b/TEvtGen/EvtGenBase/EvtMassAmp.cpp @@ -1,6 +1,6 @@ //----------------------------------------------------------------------- // File and Version Information: -// $Id: EvtMassAmp.cc,v 1.11 2006/01/25 19:55:43 lange Exp $ +// $Id: EvtMassAmp.cpp,v 1.3 2009-03-16 15:47:10 robbep Exp $ // // Environment: // This software is part of the EvtGen package developed jointly diff --git a/TEvtGen/EvtGenBase/EvtMassAmp.hh b/TEvtGen/EvtGenBase/EvtMassAmp.hh index d7fbc4758e2..6238823dd51 100644 --- a/TEvtGen/EvtGenBase/EvtMassAmp.hh +++ b/TEvtGen/EvtGenBase/EvtMassAmp.hh @@ -1,6 +1,6 @@ //----------------------------------------------------------------------- // File and Version Information: -// $Id: EvtMassAmp.hh,v 1.11 2006/01/25 19:55:43 lange Exp $ +// $Id: EvtMassAmp.hh,v 1.2 2009-03-16 16:42:03 robbep Exp $ // // Environment: // This software is part of the EvtGen package developed jointly diff --git a/TEvtGen/EvtGenBase/EvtMatrix.hh b/TEvtGen/EvtGenBase/EvtMatrix.hh index bbc78fdb6d0..3074a5c25f7 100644 --- a/TEvtGen/EvtGenBase/EvtMatrix.hh +++ b/TEvtGen/EvtGenBase/EvtMatrix.hh @@ -1,7 +1,7 @@ /***************************************************************************** * 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 $ + * File: $Id: EvtMatrix.hh,v 1.1 2009-03-16 16:50:49 robbep Exp $ * * Description: * Class to make simple computations with matrices: assignment, product, @@ -19,7 +19,6 @@ #include - template class EvtMatrix { private: @@ -110,7 +109,7 @@ template T EvtMatrix< T >::det() for ( int col = 0; col < _range; col++ ) { EvtMatrix< T >* minor = min( 0, col ); - sum += pow( -1., col ) * _mat[ 0 ][ col ] * minor->det(); + sum += std::pow( -1., col ) * _mat[ 0 ][ col ] * minor->det(); delete minor; } @@ -158,8 +157,8 @@ template EvtMatrix< T >* EvtMatrix< T >::inverse() 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; + inv->_mat[col][row] = std::pow( -1., row + col ) * minor->det() / determinant; + delete minor; } return inv; diff --git a/TEvtGen/EvtGenBase/EvtModel.cxx b/TEvtGen/EvtGenBase/EvtModel.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtModel.cxx rename to TEvtGen/EvtGenBase/EvtModel.cpp diff --git a/TEvtGen/EvtGenBase/EvtModelAlias.cxx b/TEvtGen/EvtGenBase/EvtModelAlias.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtModelAlias.cxx rename to TEvtGen/EvtGenBase/EvtModelAlias.cpp diff --git a/TEvtGen/EvtGenBase/EvtMultiChannelParser.cxx b/TEvtGen/EvtGenBase/EvtMultiChannelParser.cpp similarity index 96% rename from TEvtGen/EvtGenBase/EvtMultiChannelParser.cxx rename to TEvtGen/EvtGenBase/EvtMultiChannelParser.cpp index fc64a0cf3f0..49290c5d441 100644 --- a/TEvtGen/EvtGenBase/EvtMultiChannelParser.cxx +++ b/TEvtGen/EvtGenBase/EvtMultiChannelParser.cpp @@ -1,6 +1,6 @@ //----------------------------------------------------------------------- // File and Version Information: -// $Id: EvtMultiChannelParser.cc,v 1.17 2009/02/19 03:22:30 ryd Exp $ +// $Id: EvtMultiChannelParser.cpp,v 1.4 2009-03-16 15:46:01 robbep Exp $ // // Environment: // This software is part of the EvtGen package developed jointly @@ -159,7 +159,7 @@ void EvtMultiChannelParser::parse(const std::vector& v) assert(conjugate == false); conjugate = true; - assert(!isKeyword(v[++i])); + i++; _dm = strtod(v[i++].c_str(),tc); _mixAmpli = strtod(v[i++].c_str(),tc); _mixPhase = strtod(v[i++].c_str(),tc); @@ -197,7 +197,7 @@ void EvtMultiChannelParser::parse(const std::vector& v) } - assert(i > i0); + assert(i > i0); _unused( i0 ); } printf("PARSING SUCCESSFUL\n"); @@ -213,7 +213,8 @@ void EvtMultiChannelParser::parseComplexCoef(size_t& i, const std::vector +#include +#include +#include +#include +#include "EvtGenBase/EvtParserXml.hh" +#include "EvtGenBase/EvtReport.hh" +using namespace std; + +EvtParserXml::EvtParserXml(){ + _line = ""; + _lineNo=0; + _tag = ""; + _tagTitle = ""; +} + +EvtParserXml::~EvtParserXml(){ + + +} + + +bool EvtParserXml::open(std::string filename){ + + if(!expandEnvVars(filename)) { + report(ERROR,"EvtGen") << "Error while expanding environment variables in file name '"<", startTag) == std::string::npos) { + std::string addLine; + if(!std::getline(_fin, addLine)) return false; + _lineNo++; + _line += " "; + _line += addLine; + } + endTag = _line.find("?>", startTag); + _line = _line.substr(endTag + 2); + return readNextTag(); + } else if(_line[startTag+1] == '!') { //XML comment tag - ignore then read the next tag + while(_line.find("-->", startTag) == std::string::npos) { + std::string addLine; + if(!std::getline(_fin, addLine)) return false; + _lineNo++; + _line += " "; + _line += addLine; + } + endTag = _line.find("-->", startTag); + _line = _line.substr(endTag + 3); + _tagTitle = ""; + _tag = ""; + return readNextTag(); + } else { //parsable + + while(_line.find(">", startTag) == std::string::npos) {//find end of a tag + std::string addLine; + if(!std::getline(_fin, addLine)) return false; + _lineNo++; + _line += " "; + _line += addLine; + } + endTag = _line.find(">", startTag); + _inLineTag = false; + if(_line.find("/>", startTag) < endTag) { + endTag--; + _inLineTag = true; + } + + if(_line.find(" ", startTag) != std::string::npos && _line.find(" ", startTag) < endTag) {//find end of the first word in the tag + endTagTitle = _line.find(" ", startTag); + } else { + endTagTitle = endTag; + } + + _tagTitle = _line.substr(startTag + 1, endTagTitle - startTag - 1); + _tag = _line.substr(startTag + 1, endTag - startTag - 1); + + //now we have the tag lets remove it from the line + if(_inLineTag) { + _line = _line.substr(endTag+2); + } else { + _line = _line.substr(endTag+1); + } + return true; + } +} + +std::string EvtParserXml::getParentTagTitle() { + if(_tagTree.empty()) return ""; + else return _tagTree.back(); +} + +std::string EvtParserXml::readAttribute(std::string attribute, std::string defaultValue) { + std::string whitespace = " \t\n\v\f\r"; + for(unsigned int i=0; i='0' && c<='9') return true; + if(c>='A' && c<='Z') return true; + if(c>='a' && c<='z') return true; + if(c=='_') return true; + return false; +} diff --git a/TEvtGen/EvtGenBase/EvtParserXml.hh b/TEvtGen/EvtGenBase/EvtParserXml.hh new file mode 100644 index 00000000000..e3e82895bac --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtParserXml.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/EvtParserXml.hh +// +// Description: +// +// Modification history: +// +// DCC 24 October, 2011 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTPARSERXML_HH +#define EVTPARSERXML_HH + +#include +#include + +#include + +class EvtParserXml { +public: + EvtParserXml(); + ~EvtParserXml(); + + bool open(std::string filename); + bool close(); + + bool readNextTag(); + + std::string getTagTitle() { return _tagTitle; } + std::string getParentTagTitle(); + int getLineNumber() { return _lineNo; } + bool isTagInline() { return _inLineTag; } + + std::string readAttribute(std::string attribute, std::string defaultValue=""); + bool readAttributeBool(std::string attribute, bool defaultValue=false); + int readAttributeInt(std::string attribute, int defaultValue=-1); + double readAttributeDouble(std::string attribute, double defaultValue=-1.); + +private: + + std::ifstream _fin; + std::string _line; + int _lineNo; + + std::string _tag; + std::string _tagTitle; + bool _inLineTag; + std::vector _tagTree; + + bool processTagTree(); + + bool expandEnvVars(std::string& str); + bool isAlphaNum(char c); +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtPartProp.cxx b/TEvtGen/EvtGenBase/EvtPartProp.cpp similarity index 96% rename from TEvtGen/EvtGenBase/EvtPartProp.cxx rename to TEvtGen/EvtGenBase/EvtPartProp.cpp index cbb120d0562..12e3b1c9a81 100644 --- a/TEvtGen/EvtGenBase/EvtPartProp.cxx +++ b/TEvtGen/EvtGenBase/EvtPartProp.cpp @@ -147,6 +147,10 @@ void EvtPartProp::reSetBlatt(double blatt){ if (!_lineShape) ::abort(); _lineShape->reSetBlatt(blatt); } +void EvtPartProp::reSetBlattBirth(double blatt){ + if (!_lineShape) ::abort(); + _lineShape->reSetBlattBirth(blatt); +} void EvtPartProp::includeBirthFactor(bool yesno){ if (!_lineShape) ::abort(); _lineShape->includeBirthFactor(yesno); diff --git a/TEvtGen/EvtGenBase/EvtPartProp.hh b/TEvtGen/EvtGenBase/EvtPartProp.hh index 80a46494d3b..590b7cca83d 100644 --- a/TEvtGen/EvtGenBase/EvtPartProp.hh +++ b/TEvtGen/EvtGenBase/EvtPartProp.hh @@ -86,12 +86,12 @@ public: void reSetMassMin(double mass); void reSetMassMax(double mass); void reSetBlatt(double blatt); + void reSetBlattBirth(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: diff --git a/TEvtGen/EvtGenBase/EvtParticle.cxx b/TEvtGen/EvtGenBase/EvtParticle.cpp similarity index 89% rename from TEvtGen/EvtGenBase/EvtParticle.cxx rename to TEvtGen/EvtGenBase/EvtParticle.cpp index 5cddb7346b0..127145abec6 100644 --- a/TEvtGen/EvtGenBase/EvtParticle.cxx +++ b/TEvtGen/EvtGenBase/EvtParticle.cpp @@ -45,6 +45,7 @@ #include "EvtGenBase/EvtCPUtil.hh" #include "EvtGenBase/EvtParticleFactory.hh" #include "EvtGenBase/EvtIdSet.hh" +#include "EvtGenBase/EvtStatus.hh" using std::endl; @@ -109,6 +110,8 @@ int EvtParticle::firstornot() const { return _first;} EvtId EvtParticle::getId() const { return _id;} +int EvtParticle::getPDGId() const {return EvtPDL::getStdHep(_id);} + EvtSpinType::spintype EvtParticle::getSpinType() const { return EvtPDL::getSpinType(_id);} @@ -218,28 +221,28 @@ void EvtParticle::initDecay(bool useMinMass) { for (size_t i=0;igetNDaug();i++) { EvtParticle *tDaug=par->getDaug(i); if ( p != tDaug ) - parMass-=EvtPDL::getMinMass(tDaug->getId()); + 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())); + 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(); + dauId[j]=p->getDaug(j)->getId(); + dauMasses[j]=p->getDaug(j)->mass(); } } EvtId *parId=0; @@ -248,13 +251,13 @@ void EvtParticle::initDecay(bool useMinMass) { 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 ( 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)); + p->setMass(EvtPDL::getRandMass(p->getId(),parId,_ndaug,dauId,othDauId,parMass,dauMasses)); } else p->setMass(EvtPDL::getMinMass(p->getId())); } @@ -264,7 +267,7 @@ void EvtParticle::initDecay(bool useMinMass) { if ( dauMasses) delete [] dauMasses; return; } - + //Will include effects of mixing here //added by Lange Jan4,2000 @@ -276,7 +279,7 @@ void EvtParticle::initDecay(bool useMinMass) { 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; @@ -287,7 +290,7 @@ void EvtParticle::initDecay(bool useMinMass) { if ( (getNDaug()==0 && !hasBorUps) && (thisId==BS0||thisId==BSB||thisId==BD0||thisId==BDB)){ double t; int mix; - EvtCPUtil::incoherentMix(getId(), t, mix); + EvtCPUtil::getInstance()->incoherentMix(getId(), t, mix); setLifetime(t); if (mix) { @@ -296,33 +299,33 @@ void EvtParticle::initDecay(bool useMinMass) { 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); + EvtVector4R p_init(EvtPDL::getMass(BSB),0.0,0.0,0.0); + scalar_part->init(EvtPDL::chargeConj(getId()),p_init); } else if (getId()==BSB) { - EvtVector4R p_init(EvtPDL::getMass(BS0),0.0,0.0,0.0); - scalar_part->init(BS0,p_init); + EvtVector4R p_init(EvtPDL::getMass(BS0),0.0,0.0,0.0); + scalar_part->init(EvtPDL::chargeConj(getId()),p_init); } else if (getId()==BD0) { - EvtVector4R p_init(EvtPDL::getMass(BDB),0.0,0.0,0.0); - scalar_part->init(BDB,p_init); + EvtVector4R p_init(EvtPDL::getMass(BDB),0.0,0.0,0.0); + scalar_part->init(EvtPDL::chargeConj(getId()),p_init); } else if (getId()==BDB) { - EvtVector4R p_init(EvtPDL::getMass(BD0),0.0,0.0,0.0); - scalar_part->init(BD0,p_init); + EvtVector4R p_init(EvtPDL::getMass(BD0),0.0,0.0,0.0); + scalar_part->init(EvtPDL::chargeConj(getId()),p_init); } else if (getId()==D0) { - EvtVector4R p_init(EvtPDL::getMass(D0B),0.0,0.0,0.0); - scalar_part->init(D0B,p_init); + EvtVector4R p_init(EvtPDL::getMass(D0B),0.0,0.0,0.0); + scalar_part->init(EvtPDL::chargeConj(getId()),p_init); } else if (getId()==D0B) { - EvtVector4R p_init(EvtPDL::getMass(D0),0.0,0.0,0.0); - scalar_part->init(D0,p_init); + EvtVector4R p_init(EvtPDL::getMass(D0),0.0,0.0,0.0); + scalar_part->init(EvtPDL::chargeConj(getId()),p_init); } - + scalar_part->setLifetime(0); scalar_part->setDiagonalSpinDensity(); - + insertDaugPtr(0,scalar_part); _ndaug=1; @@ -334,10 +337,9 @@ void EvtParticle::initDecay(bool useMinMass) { } } - if ( _ndaug==1 ) std::cout << "hi " << EvtPDL::name(this->getId()) << std::endl; EvtDecayBase *decayer; - decayer = EvtDecayTable::getDecayFunc(p); + decayer = EvtDecayTable::getInstance()->getDecayFunc(p); if ( decayer ) { p->makeDaughters(decayer->nRealDaughters(),decayer->getDaugs()); @@ -345,7 +347,7 @@ void EvtParticle::initDecay(bool useMinMass) { 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); + p->getDaug(i)->initDecay(useMinMass); else p->getDaug(i)->setMass(EvtPDL::getMeanMass(p->getDaug(i)->getId())); } } @@ -403,7 +405,7 @@ void EvtParticle::decay(){ //} EvtDecayBase *decayer; - decayer = EvtDecayTable::getDecayFunc(p); + decayer = EvtDecayTable::getInstance()->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; @@ -420,21 +422,32 @@ void EvtParticle::decay(){ //if there are already daughters, then this step is already done! // figure out the masses - if ( _ndaug == 0 ) generateMassTree(); + bool massTreeOK(true); + if ( _ndaug == 0 ) { + massTreeOK = generateMassTree(); + } + + if (massTreeOK == false) { + report(INFO,"EvtGen")<<"Could not decay "<getId()) + <<" with mass "<mass() + <<" to decay channel number "<<_channel<getDaug(0); - decayer = EvtDecayTable::getDecayFunc(p); + decayer = EvtDecayTable::getInstance()->getDecayFunc(p); } //now we have accepted a set of masses - time if ( decayer != 0) { @@ -448,7 +461,10 @@ void EvtParticle::decay(){ return; } -void EvtParticle::generateMassTree() { +bool EvtParticle::generateMassTree() { + + bool isOK(true); + double massProb=1.; double ranNum=2.; int counter=0; @@ -478,11 +494,15 @@ void EvtParticle::generateMassTree() { } else { report(INFO,"EvtGen") << "Sorry, no luck finding a valid set of masses. This may be a pathological combo\n"; - assert(0); + isOK = false; + break; } } } } + + return isOK; + } double EvtParticle::compMassProb() { @@ -583,8 +603,6 @@ EvtVector4C EvtParticle::epsPhoton(int i){ EvtDiracSpinor EvtParticle::spParent(int i) const { EvtDiracSpinor tempD; - int temp; - temp = i; printParticle(); report(ERROR,"EvtGen") << "and you have asked for the:"<getId()).c_str()<<" "; } for(i=0;i<_ndaug;i++){ - report(INFO,"") << _daug[i]->mass()<<" " << _daug[i]->getSpinStates() << " "; + report(INFO,"") << _daug[i]->mass()<< " " << _daug[i]->getP4() << " " <<_daug[i]->getSpinStates() << "; "; } report(INFO,"")<deleteDaughters(t1); this->makeDaughters(numdaughter,daughters); - this->generateMassTree(); + bool massTreeOK = this->generateMassTree(); + if (massTreeOK == false) {return 0.0;} } double weight=0.; @@ -1121,6 +1130,29 @@ double EvtParticle::initializePhaseSpace( return weight; } +void EvtParticle::makeDaughters(unsigned int ndaugstore, std::vector idVector) { + + // Convert the STL vector method to use the array method for now, since the + // array method pervades most of the EvtGen code... + + unsigned int nVector = idVector.size(); + if (nVector < ndaugstore) { + report(ERROR,"EvtGen") << "Asking to make "<makeDaughters(ndaugstore, idArray); + + delete[] idArray; +} + void EvtParticle::makeDaughters( unsigned int ndaugstore, EvtId *id){ unsigned int i; @@ -1159,3 +1191,10 @@ void EvtParticle::setDecayProb(double prob) { if ( _decayProb == 0 ) _decayProb=new double; *_decayProb=prob; } + +std::string EvtParticle::getName() { + + std::string theName = _id.getName(); + return theName; + +} diff --git a/TEvtGen/EvtGenBase/EvtParticle.hh b/TEvtGen/EvtGenBase/EvtParticle.hh index 879505e9827..5809c10f4d8 100644 --- a/TEvtGen/EvtGenBase/EvtParticle.hh +++ b/TEvtGen/EvtGenBase/EvtParticle.hh @@ -28,6 +28,7 @@ #include "EvtGenBase/EvtId.hh" #include "EvtGenBase/EvtSpinType.hh" #include +#include class EvtDiracSpinor; class EvtVector4C; @@ -157,6 +158,13 @@ public: */ void makeDaughters(unsigned int ndaug,EvtId *id); + /** + * 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, std::vector idVector); + /** * Similar to the routine above except that here * momentum is generated according to phase space @@ -236,6 +244,12 @@ public: */ EvtId getId() const; + /** + * Returns the PDG id of the particle + */ + + int getPDGId() const; + /** * Returns particle type. */ @@ -370,7 +384,7 @@ public: //lange - April 29, 2002 void setId(EvtId id) { _id=id;} void initDecay(bool useMinMass=false); - void generateMassTree(); + bool generateMassTree(); double compMassProb(); @@ -396,7 +410,9 @@ public: double* decayProb() {return _decayProb;} void setDecayProb( double p); - + // Return the name of the particle (from the EvtId number) + std::string getName(); + protected: void setp( double e, double px, double py, double pz) { diff --git a/TEvtGen/EvtGenBase/EvtParticleDecay.cxx b/TEvtGen/EvtGenBase/EvtParticleDecay.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtParticleDecay.cxx rename to TEvtGen/EvtGenBase/EvtParticleDecay.cpp diff --git a/TEvtGen/EvtGenBase/EvtParticleDecayList.cxx b/TEvtGen/EvtGenBase/EvtParticleDecayList.cpp similarity index 96% rename from TEvtGen/EvtGenBase/EvtParticleDecayList.cxx rename to TEvtGen/EvtGenBase/EvtParticleDecayList.cpp index 64279a8f09d..0e5583d0f02 100644 --- a/TEvtGen/EvtGenBase/EvtParticleDecayList.cxx +++ b/TEvtGen/EvtGenBase/EvtParticleDecayList.cpp @@ -108,6 +108,19 @@ void EvtParticleDecayList::removeDecay(){ } +EvtDecayBase* EvtParticleDecayList::getDecayModel(int imode) { + + EvtDecayBase* theModel(0); + if (imode >= 0 && imode < _nmode) { + EvtParticleDecay* theDecay = _decaylist[imode]; + if (theDecay != 0) { + theModel = theDecay->getDecayModel(); + } + } + + return theModel; + +} EvtDecayBase* EvtParticleDecayList::getDecayModel(EvtParticle *p){ @@ -224,7 +237,7 @@ void EvtParticleDecayList::setNMode(int nmode){ } -EvtParticleDecay& EvtParticleDecayList::getDecay(int nchannel) { +EvtParticleDecay& EvtParticleDecayList::getDecay(int nchannel) const { if (nchannel>=_nmode) { report(ERROR,"EvtGen") <<"Error getting channel:" <getModelName() == "JSCONT" || newDec->getModelName() == "PYCONT" ) continue; if ( newDec->getModelName() == "PYGAGA" ) continue; if ( newDec->getModelName() == "LUNDAREALAW" ) continue; + if ( newDec->getModelName() == "TAUOLA") 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; @@ -438,7 +452,7 @@ void EvtParticleDecayList::removeMode(EvtDecayBase* decay) { } -bool EvtParticleDecayList::isJetSet() { +bool EvtParticleDecayList::isJetSet() const { int i ; EvtDecayBase * decayer ; diff --git a/TEvtGen/EvtGenBase/EvtParticleDecayList.hh b/TEvtGen/EvtGenBase/EvtParticleDecayList.hh index 5af376e3539..572575c6cb5 100644 --- a/TEvtGen/EvtGenBase/EvtParticleDecayList.hh +++ b/TEvtGen/EvtGenBase/EvtParticleDecayList.hh @@ -46,11 +46,9 @@ public: 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();} + EvtDecayBase* getDecayModel(int imode); - - EvtParticleDecay& getDecay(int nchannel); + EvtParticleDecay& getDecay(int nchannel) const; double getRawBrfrSum() {return _rawbrfrsum;} void setRawBrfrSum(double rawbrfrsum) {_rawbrfrsum=rawbrfrsum;} @@ -70,7 +68,7 @@ public: void printSummary(); - bool isJetSet() ; + bool isJetSet() const ; private: diff --git a/TEvtGen/EvtGenBase/EvtParticleFactory.cxx b/TEvtGen/EvtGenBase/EvtParticleFactory.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtParticleFactory.cxx rename to TEvtGen/EvtGenBase/EvtParticleFactory.cpp diff --git a/TEvtGen/EvtGenBase/EvtPatches.hh b/TEvtGen/EvtGenBase/EvtPatches.hh index 5fc140675db..1a727bee604 100644 --- a/TEvtGen/EvtGenBase/EvtPatches.hh +++ b/TEvtGen/EvtGenBase/EvtPatches.hh @@ -4,3 +4,5 @@ typedef long clock_t; /* relative time in a specified resolution */ #endif /* ifndef _CLOCK_T */ #endif + +#define _unused(x) ((void)x) diff --git a/TEvtGen/EvtGenBase/EvtPdf.hh b/TEvtGen/EvtGenBase/EvtPdf.hh index 73c2104b6d2..13cfb2054d1 100644 --- a/TEvtGen/EvtGenBase/EvtPdf.hh +++ b/TEvtGen/EvtGenBase/EvtPdf.hh @@ -1,7 +1,7 @@ /******************************************************************************* * Project: BaBar detector at the SLAC PEP-II B-factory * Package: EvtGenBase - * File: $Id: EvtPdf.hh,v 1.15 2009/02/18 03:31:38 ryd Exp $ + * File: $Id: EvtPdf.hh,v 1.2 2009-03-16 16:40:15 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtPdfMax.hh b/TEvtGen/EvtGenBase/EvtPdfMax.hh index 08748f4bb62..1fee11d6456 100644 --- a/TEvtGen/EvtGenBase/EvtPdfMax.hh +++ b/TEvtGen/EvtGenBase/EvtPdfMax.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPdfMax.hh,v 1.2 2009-03-16 16:40:15 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtPdfSum.hh b/TEvtGen/EvtGenBase/EvtPdfSum.hh index b99cefc4680..ba73bce6ce9 100644 --- a/TEvtGen/EvtGenBase/EvtPdfSum.hh +++ b/TEvtGen/EvtGenBase/EvtPdfSum.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPdfSum.hh,v 1.3 2009-03-16 16:40:16 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtPhotonParticle.cxx b/TEvtGen/EvtGenBase/EvtPhotonParticle.cpp similarity index 98% rename from TEvtGen/EvtGenBase/EvtPhotonParticle.cxx rename to TEvtGen/EvtGenBase/EvtPhotonParticle.cpp index 86f18be98ac..40e0c84e0fe 100644 --- a/TEvtGen/EvtGenBase/EvtPhotonParticle.cxx +++ b/TEvtGen/EvtGenBase/EvtPhotonParticle.cpp @@ -28,6 +28,9 @@ #include "EvtGenBase/EvtReport.hh" using std::endl; +EvtPhotonParticle::EvtPhotonParticle() { +} + EvtPhotonParticle::~EvtPhotonParticle(){} void EvtPhotonParticle::init(EvtId part_n,const EvtVector4R& p4){ diff --git a/TEvtGen/EvtGenBase/EvtPhotonParticle.hh b/TEvtGen/EvtGenBase/EvtPhotonParticle.hh index a6298b42431..fe57891a649 100644 --- a/TEvtGen/EvtGenBase/EvtPhotonParticle.hh +++ b/TEvtGen/EvtGenBase/EvtPhotonParticle.hh @@ -31,7 +31,7 @@ class EvtPhotonParticle: public EvtParticle { public: - EvtPhotonParticle(){} + EvtPhotonParticle(); virtual ~EvtPhotonParticle(); void init(EvtId part_n,double e,double px,double py,double pz); diff --git a/TEvtGen/EvtGenBase/EvtPoint1D.cxx b/TEvtGen/EvtGenBase/EvtPoint1D.cpp similarity index 93% rename from TEvtGen/EvtGenBase/EvtPoint1D.cxx rename to TEvtGen/EvtGenBase/EvtPoint1D.cpp index 885743a28ba..a8354d374b8 100644 --- a/TEvtGen/EvtGenBase/EvtPoint1D.cxx +++ b/TEvtGen/EvtGenBase/EvtPoint1D.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPoint1D.cpp,v 1.3 2009-03-16 15:44:41 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtPoint1D.hh b/TEvtGen/EvtGenBase/EvtPoint1D.hh index 4d84141077e..e4db9cdf32b 100644 --- a/TEvtGen/EvtGenBase/EvtPoint1D.hh +++ b/TEvtGen/EvtGenBase/EvtPoint1D.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPoint1D.hh,v 1.2 2009-03-16 16:40:16 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtPointPred.hh b/TEvtGen/EvtGenBase/EvtPointPred.hh index baca96f889b..9981a100a1f 100644 --- a/TEvtGen/EvtGenBase/EvtPointPred.hh +++ b/TEvtGen/EvtGenBase/EvtPointPred.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPointPred.hh,v 1.2 2009-03-16 16:40:16 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech @@ -28,4 +28,4 @@ public: return x.isValid(); } }; -#endif + diff --git a/TEvtGen/EvtGenBase/EvtPredGen.hh b/TEvtGen/EvtGenBase/EvtPredGen.hh index 57f68567d4b..83b2cffbf60 100644 --- a/TEvtGen/EvtGenBase/EvtPredGen.hh +++ b/TEvtGen/EvtGenBase/EvtPredGen.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPredGen.hh,v 1.2 2009-03-16 16:40:16 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtPropBreitWigner.cxx b/TEvtGen/EvtGenBase/EvtPropBreitWigner.cpp similarity index 92% rename from TEvtGen/EvtGenBase/EvtPropBreitWigner.cxx rename to TEvtGen/EvtGenBase/EvtPropBreitWigner.cpp index 0690cced1e6..f93191306d3 100644 --- a/TEvtGen/EvtGenBase/EvtPropBreitWigner.cxx +++ b/TEvtGen/EvtGenBase/EvtPropBreitWigner.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPropBreitWigner.cpp,v 1.3 2009-03-16 15:44:41 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtPropBreitWigner.hh b/TEvtGen/EvtGenBase/EvtPropBreitWigner.hh index 7741fde4ad1..e8520e5323c 100644 --- a/TEvtGen/EvtGenBase/EvtPropBreitWigner.hh +++ b/TEvtGen/EvtGenBase/EvtPropBreitWigner.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPropBreitWigner.hh,v 1.2 2009-03-16 16:40:16 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtPropBreitWignerRel.cxx b/TEvtGen/EvtGenBase/EvtPropBreitWignerRel.cpp similarity index 92% rename from TEvtGen/EvtGenBase/EvtPropBreitWignerRel.cxx rename to TEvtGen/EvtGenBase/EvtPropBreitWignerRel.cpp index 78ed0df8fd8..b3e9e28ebcd 100644 --- a/TEvtGen/EvtGenBase/EvtPropBreitWignerRel.cxx +++ b/TEvtGen/EvtGenBase/EvtPropBreitWignerRel.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPropBreitWignerRel.cpp,v 1.3 2009-03-16 15:44:41 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtPropBreitWignerRel.hh b/TEvtGen/EvtGenBase/EvtPropBreitWignerRel.hh index c8781531a35..e9380caaf02 100644 --- a/TEvtGen/EvtGenBase/EvtPropBreitWignerRel.hh +++ b/TEvtGen/EvtGenBase/EvtPropBreitWignerRel.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPropBreitWignerRel.hh,v 1.2 2009-03-16 16:42:03 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtPropFlatte.cxx b/TEvtGen/EvtGenBase/EvtPropFlatte.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtPropFlatte.cxx rename to TEvtGen/EvtGenBase/EvtPropFlatte.cpp diff --git a/TEvtGen/EvtGenBase/EvtPropGounarisSakurai.cxx b/TEvtGen/EvtGenBase/EvtPropGounarisSakurai.cpp similarity index 97% rename from TEvtGen/EvtGenBase/EvtPropGounarisSakurai.cxx rename to TEvtGen/EvtGenBase/EvtPropGounarisSakurai.cpp index fdade08a79e..90375396547 100644 --- a/TEvtGen/EvtGenBase/EvtPropGounarisSakurai.cxx +++ b/TEvtGen/EvtGenBase/EvtPropGounarisSakurai.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPropGounarisSakurai.cpp,v 1.1 2009-03-16 16:47:03 robbep Exp $ * Author: Matt Graham * modified from EvtPropBreitWignerRel...this should be used for rho's *******************************************************************************/ diff --git a/TEvtGen/EvtGenBase/EvtPropGounarisSakurai.hh b/TEvtGen/EvtGenBase/EvtPropGounarisSakurai.hh index 7d3d2e3cd95..14d327d0451 100644 --- a/TEvtGen/EvtGenBase/EvtPropGounarisSakurai.hh +++ b/TEvtGen/EvtGenBase/EvtPropGounarisSakurai.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPropGounarisSakurai.hh,v 1.1 2009-03-16 16:50:50 robbep Exp $ * Author: Matt Graham * modified from EvtPropBreitWignerRel...this should be used for rho's *******************************************************************************/ diff --git a/TEvtGen/EvtGenBase/EvtPropagator.hh b/TEvtGen/EvtGenBase/EvtPropagator.hh index 14ed3849439..d4dc47b02b9 100644 --- a/TEvtGen/EvtGenBase/EvtPropagator.hh +++ b/TEvtGen/EvtGenBase/EvtPropagator.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPropagator.hh,v 1.2 2009-03-16 16:42:03 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtPto3PAmp.cxx b/TEvtGen/EvtGenBase/EvtPto3PAmp.cpp similarity index 98% rename from TEvtGen/EvtGenBase/EvtPto3PAmp.cxx rename to TEvtGen/EvtGenBase/EvtPto3PAmp.cpp index 362daeb1cf0..b49b2bcb485 100644 --- a/TEvtGen/EvtGenBase/EvtPto3PAmp.cxx +++ b/TEvtGen/EvtGenBase/EvtPto3PAmp.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPto3PAmp.cpp,v 1.3 2009-03-16 15:44:04 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtPto3PAmp.hh b/TEvtGen/EvtGenBase/EvtPto3PAmp.hh index 9315c86a3aa..3f93de79502 100644 --- a/TEvtGen/EvtGenBase/EvtPto3PAmp.hh +++ b/TEvtGen/EvtGenBase/EvtPto3PAmp.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtPto3PAmp.hh,v 1.2 2009-03-16 16:41:09 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech @@ -30,7 +30,7 @@ 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}; + LASS, LASS_ELASTIC, LASS_RESONANT, GS}; EvtPto3PAmp(EvtDalitzPlot dp, EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes, diff --git a/TEvtGen/EvtGenBase/EvtPto3PAmpFactory.cxx b/TEvtGen/EvtGenBase/EvtPto3PAmpFactory.cpp similarity index 94% rename from TEvtGen/EvtGenBase/EvtPto3PAmpFactory.cxx rename to TEvtGen/EvtGenBase/EvtPto3PAmpFactory.cpp index 62e7f363aff..0bc349e9eb1 100644 --- a/TEvtGen/EvtGenBase/EvtPto3PAmpFactory.cxx +++ b/TEvtGen/EvtGenBase/EvtPto3PAmpFactory.cpp @@ -1,6 +1,6 @@ //----------------------------------------------------------------------- // File and Version Information: -// $Id: EvtPto3PAmpFactory.cc,v 1.22 2009/02/19 03:22:30 ryd Exp $ +// $Id: EvtPto3PAmpFactory.cpp,v 1.3 2009-03-16 15:44:04 robbep Exp $ // // Environment: // This software is part of the EvtGen package developed jointly @@ -84,7 +84,7 @@ void EvtPto3PAmpFactory::processAmp(EvtComplex c, std::vector vv, b pdf = new EvtDalitzFlatPdf(_dp); amp = new EvtNonresonantAmp( &_dp, typeNRes, pairRes, alpha); } - else if (vv[0]=="LASS") { + else if (vv[0]=="LASS" || vv[0]=="LASS_ELASTIC" || vv[0]=="LASS_RESONANT") { pairRes = strToPair(vv[1].c_str()); double m0 = strtod(vv[2].c_str(),0); double g0 = strtod(vv[3].c_str(),0); @@ -92,7 +92,7 @@ void EvtPto3PAmpFactory::processAmp(EvtComplex c, std::vector vv, b 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); + amp = new EvtLASSAmp( &_dp, pairRes, m0, g0, a, r, cutoff, vv[0]); } /* @@ -104,7 +104,7 @@ void EvtPto3PAmpFactory::processAmp(EvtComplex c, std::vector vv, b // RESONANCE stanza pairRes = strToPair(vv[1].c_str()); - EvtSpinType::spintype spinR; + EvtSpinType::spintype spinR = EvtSpinType::SCALAR; double mR, gR; name = vv[2]; EvtId resId = EvtPDL::getId(vv[2]); @@ -166,7 +166,8 @@ void EvtPto3PAmpFactory::processAmp(EvtComplex c, std::vector vv, b // TYPE stanza - assert(vv[++i] == "TYPE"); + std::string typeName = vv[++i]; + assert(typeName == "TYPE"); std::string type = vv[++i]; if(_verbose) printf("Propagator type %s\n",vv[i].c_str()); @@ -238,7 +239,7 @@ void EvtPto3PAmpFactory::processAmp(EvtComplex c, std::vector vv, b if(vv[i+1] == "MIN") { i++; double min = strtod(vv[++i].c_str(),0); - if(_verbose) std::cout<<"CUTOFF MIN = "<setmin(min); @@ -246,7 +247,7 @@ void EvtPto3PAmpFactory::processAmp(EvtComplex c, std::vector vv, b 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); diff --git a/TEvtGen/EvtGenBase/EvtPto3PAmpFactory.hh b/TEvtGen/EvtGenBase/EvtPto3PAmpFactory.hh index c5b4aed0c58..d55d2120f26 100644 --- a/TEvtGen/EvtGenBase/EvtPto3PAmpFactory.hh +++ b/TEvtGen/EvtGenBase/EvtPto3PAmpFactory.hh @@ -1,6 +1,6 @@ //----------------------------------------------------------------------- // File and Version Information: -// $Id: EvtPto3PAmpFactory.hh,v 1.10 2006/01/31 18:08:46 ddujmic Exp $ +// $Id: EvtPto3PAmpFactory.hh,v 1.2 2009-03-16 16:42:03 robbep Exp $ // // Environment: // This software is part of the EvtGen package developed jointly diff --git a/TEvtGen/EvtGenBase/EvtPto3PAmpSmpResolution.cxx b/TEvtGen/EvtGenBase/EvtPto3PAmpSmpResolution.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtPto3PAmpSmpResolution.cxx rename to TEvtGen/EvtGenBase/EvtPto3PAmpSmpResolution.cpp diff --git a/TEvtGen/EvtGenBase/EvtRadCorr.cxx b/TEvtGen/EvtGenBase/EvtRadCorr.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtRadCorr.cxx rename to TEvtGen/EvtGenBase/EvtRadCorr.cpp diff --git a/TEvtGen/EvtGenBase/EvtRanFor.cxx b/TEvtGen/EvtGenBase/EvtRanFor.cpp similarity index 94% rename from TEvtGen/EvtGenBase/EvtRanFor.cxx rename to TEvtGen/EvtGenBase/EvtRanFor.cpp index 1b7d0a317e1..70a162b2eae 100644 --- a/TEvtGen/EvtGenBase/EvtRanFor.cxx +++ b/TEvtGen/EvtGenBase/EvtRanFor.cpp @@ -1,6 +1,6 @@ //-------------------------------------------------------------------------- // File and Version Information: -// $Id: EvtRanFor.cc,v 1.4 2009/02/18 03:31:38 ryd Exp $ +// $Id: EvtRanFor.cpp,v 1.5 2009-03-16 15:44:04 robbep Exp $ // // Description: // subroutine emcranfor_. diff --git a/TEvtGen/EvtGenBase/EvtRandom.cxx b/TEvtGen/EvtGenBase/EvtRandom.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtRandom.cxx rename to TEvtGen/EvtGenBase/EvtRandom.cpp diff --git a/TEvtGen/EvtGenBase/EvtRandomEngine.hh b/TEvtGen/EvtGenBase/EvtRandomEngine.hh index f168c5a1443..a849e64183d 100644 --- a/TEvtGen/EvtGenBase/EvtRandomEngine.hh +++ b/TEvtGen/EvtGenBase/EvtRandomEngine.hh @@ -24,8 +24,6 @@ #ifndef EVTRANDOMENGINE_HH #define EVTRANDOMENGINE_HH -#include - class EvtRandomEngine{ public: @@ -38,33 +36,6 @@ 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.cpp similarity index 91% rename from TEvtGen/EvtGenBase/EvtRanf.cxx rename to TEvtGen/EvtGenBase/EvtRanf.cpp index 79b0542f315..ae5fc072960 100644 --- a/TEvtGen/EvtGenBase/EvtRanf.cxx +++ b/TEvtGen/EvtGenBase/EvtRanf.cpp @@ -1,6 +1,6 @@ //-------------------------------------------------------------------------- // File and Version Information: -// $Id: EvtRanf.cc,v 1.1 2009/02/28 11:14:16 lange Exp $ +// $Id: EvtRanf.cpp,v 1.5 2009-03-16 15:44:04 robbep Exp $ // // Description: // subroutine evtranf_. diff --git a/TEvtGen/EvtGenBase/EvtRaritaSchwinger.cxx b/TEvtGen/EvtGenBase/EvtRaritaSchwinger.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtRaritaSchwinger.cxx rename to TEvtGen/EvtGenBase/EvtRaritaSchwinger.cpp diff --git a/TEvtGen/EvtGenBase/EvtRaritaSchwingerParticle.cxx b/TEvtGen/EvtGenBase/EvtRaritaSchwingerParticle.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtRaritaSchwingerParticle.cxx rename to TEvtGen/EvtGenBase/EvtRaritaSchwingerParticle.cpp diff --git a/TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.cxx b/TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.cpp similarity index 96% rename from TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.cxx rename to TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.cpp index ea3500e2c36..91853eee6ec 100644 --- a/TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.cxx +++ b/TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.cpp @@ -49,7 +49,8 @@ EvtRelBreitWignerBarrierFact::EvtRelBreitWignerBarrierFact(double mass, double w _mass=mass; _width=width; _spin=sp; - _blatt=3.0; + _blattDecay=3.0; + _blattBirth=1.0; _maxRange=maxRange; _errorCond=false; @@ -73,7 +74,8 @@ EvtRelBreitWignerBarrierFact::EvtRelBreitWignerBarrierFact(const EvtRelBreitWign { _massMax=x._massMax; _massMin=x._massMin; - _blatt=x._blatt; + _blattDecay=x._blattDecay; + _blattBirth=x._blattBirth; _maxRange=x._maxRange; _includeDecayFact=x._includeDecayFact; _includeBirthFact=x._includeBirthFact; @@ -87,7 +89,8 @@ EvtRelBreitWignerBarrierFact& EvtRelBreitWignerBarrierFact::operator=(const EvtR _spin=x._spin; _massMax=x._massMax; _massMin=x._massMin; - _blatt=x._blatt; + _blattDecay=x._blattDecay; + _blattBirth=x._blattBirth; _maxRange=x._maxRange; _includeDecayFact=x._includeDecayFact; _includeBirthFact=x._includeBirthFact; @@ -220,10 +223,11 @@ double EvtRelBreitWignerBarrierFact::getRandMass(EvtId *parId,int nDaug, EvtId * // Define relativistic propagator amplitude EvtTwoBodyVertex vd(massD1,massD2,_mass,Lmin/2); - vd.set_f(_blatt); + vd.set_f(_blattDecay); EvtPropBreitWignerRel bw(_mass,_width); EvtMassAmp amp(bw,vd); + if ( _includeDecayFact) { amp.addDeathFact(); amp.addDeathFactFF(); @@ -232,10 +236,7 @@ double EvtRelBreitWignerBarrierFact::getRandMass(EvtId *parId,int nDaug, EvtId * 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); + vb.set_f(_blattBirth); amp.setBirthVtx(vb); amp.addBirthFact(); amp.addBirthFactFF(); @@ -266,7 +267,6 @@ double EvtRelBreitWignerBarrierFact::getRandMass(EvtId *parId,int nDaug, EvtId * if ( tempMaxLoc < tempMinMass) tempMaxLoc=tempMinMass; double safetyFactor=1.2; - if ( _applyFixForSP8 ) safetyFactor=1.4; EvtPdfMax max(safetyFactor*pdf.evaluate(EvtPoint1D(tempMinMass,tempMax,tempMaxLoc))); @@ -280,7 +280,7 @@ double EvtRelBreitWignerBarrierFact::getRandMass(EvtId *parId,int nDaug, EvtId * EvtPoint1D point = predgen(); return point.value(); -} +}; diff --git a/TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.hh b/TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.hh index e47f43bac04..459ac218c48 100644 --- a/TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.hh +++ b/TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.hh @@ -43,11 +43,13 @@ public: // 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; } + virtual void reSetBlatt(double blatt) { _blattDecay = blatt; } + virtual void reSetBlattBirth(double blatt) { _blattBirth = blatt; } protected: - double _blatt; + double _blattDecay; + double _blattBirth; bool _errorCond; }; diff --git a/TEvtGen/EvtGenBase/EvtReport.cxx b/TEvtGen/EvtGenBase/EvtReport.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtReport.cxx rename to TEvtGen/EvtGenBase/EvtReport.cpp diff --git a/TEvtGen/EvtGenBase/EvtResonance.cxx b/TEvtGen/EvtGenBase/EvtResonance.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtResonance.cxx rename to TEvtGen/EvtGenBase/EvtResonance.cpp diff --git a/TEvtGen/EvtGenBase/EvtResonance2.cxx b/TEvtGen/EvtGenBase/EvtResonance2.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtResonance2.cxx rename to TEvtGen/EvtGenBase/EvtResonance2.cpp diff --git a/TEvtGen/EvtGenBase/EvtScalarParticle.cxx b/TEvtGen/EvtGenBase/EvtScalarParticle.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtScalarParticle.cxx rename to TEvtGen/EvtGenBase/EvtScalarParticle.cpp diff --git a/TEvtGen/EvtGenBase/EvtSecondary.cxx b/TEvtGen/EvtGenBase/EvtSecondary.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtSecondary.cxx rename to TEvtGen/EvtGenBase/EvtSecondary.cpp diff --git a/TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.cxx b/TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.cxx rename to TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.cpp diff --git a/TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.hh b/TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.hh index 43dbca8fd46..35e51061573 100644 --- a/TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.hh +++ b/TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.hh @@ -29,7 +29,8 @@ class EvtId; class EvtSemiLeptonicAmp{ public: - + virtual ~EvtSemiLeptonicAmp( ) { } ; + //Daughters are initialized and have been added to the parent. //No need to carry around the daughters seperately! diff --git a/TEvtGen/EvtGenBase/EvtSemiLeptonicBaryonAmp.cpp b/TEvtGen/EvtGenBase/EvtSemiLeptonicBaryonAmp.cpp new file mode 100644 index 00000000000..eb7e4e98ce2 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtSemiLeptonicBaryonAmp.cpp @@ -0,0 +1,801 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the 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 of Dirac baryons +// +// Modification history: +// +// R.J. Tesarek May 28, 2004 Module created +// Karen Gibson 1/20/2006 Module updated for 1/2+->1/2+, +// 1/2+->1/2-, 1/2+->3/2- Lambda decays +// +//-------------------------------------------------------------------------- + +#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/EvtDiracParticle.hh" +#include "EvtGenBase/EvtRaritaSchwinger.hh" +#include "EvtGenBase/EvtSemiLeptonicBaryonAmp.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtGammaMatrix.hh" + +#include + +using std::endl; + + +EvtSemiLeptonicBaryonAmp::~EvtSemiLeptonicBaryonAmp(){ +} + + +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"<noLifeTime(); + dirac_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); + + dirac_part->init(parent,p_init); + root_part=(EvtParticle *)dirac_part; + root_part->setDiagonalSpinDensity(); + + EvtParticle *daughter, *lep, *trino; + + EvtAmp amp; + + EvtId listdaug[3]; + listdaug[0] = baryon; + 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 p4baryon, 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::getMass(baryon); + mass[1] = EvtPDL::getMass(lepton); + mass[2] = EvtPDL::getMass(nudaug); + if ( massiter==1 ) { + mass[0] = EvtPDL::getMinMass(baryon); + } + if ( massiter==2 ) { + mass[0] = EvtPDL::getMaxMass(baryon); + } + + 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]); + + p4baryon.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(baryon,p4baryon); + lep->init(lepton,p4lepton); + trino->init(nudaug,p4nu); + + CalcAmp(root_part,amp,FormFactors,r00,r01,r10,r11); + + //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(baryon) <= 0.0 ) { + //if the particle is narrow dont bother with changing the mass. + massiter = 4; + } + + } + root_part->deleteTree(); + + maxfoundprob *=1.1; + return maxfoundprob; + +} +void EvtSemiLeptonicBaryonAmp::CalcAmp(EvtParticle *parent, + EvtAmp& amp, + EvtSemiLeptonicFF *FormFactors, + EvtComplex r00, EvtComplex r01, + EvtComplex r10, EvtComplex r11) { + // Leptons + static EvtId EM=EvtPDL::getId("e-"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId TAUM=EvtPDL::getId("tau-"); + // Anti-Leptons + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + // Baryons + static EvtId LAMCP=EvtPDL::getId("Lambda_c+"); + static EvtId LAMC1P=EvtPDL::getId("Lambda_c(2593)+"); + static EvtId LAMC2P=EvtPDL::getId("Lambda_c(2625)+"); + static EvtId LAMB=EvtPDL::getId("Lambda_b0"); + + // Anti-Baryons + static EvtId LAMCM=EvtPDL::getId("anti-Lambda_c-"); + static EvtId LAMC1M=EvtPDL::getId("anti-Lambda_c(2593)-"); + static EvtId LAMC2M=EvtPDL::getId("anti-Lambda_c(2625)-"); + static EvtId LAMBB=EvtPDL::getId("anti-Lambda_b0"); + + // Set the spin density matrix of the parent baryon + EvtSpinDensity rho; + rho.setDim(2); + rho.set(0,0,r00); + rho.set(0,1,r01); + + rho.set(1,0,r10); + rho.set(1,1,r11); + + EvtVector4R vector4P = parent->getP4Lab(); + double pmag = vector4P.d3mag(); + double cosTheta = vector4P.get(3)/pmag; + + double theta = acos(cosTheta); + double phi = atan2(vector4P.get(2), vector4P.get(1)); + + parent->setSpinDensityForwardHelicityBasis(rho,phi,theta, 0.0); + //parent->setSpinDensityForward(rho); + + // Set the four momentum of the parent baryon in it's rest frame + EvtVector4R p4b; + p4b.set(parent->mass(), 0.0,0.0,0.0); + + // Get the four momentum of the daughter baryon in the parent's rest frame + EvtVector4R p4daught = parent->getDaug(0)->getP4(); + + // Add the lepton and neutrino 4 momenta to find q (q^2) + EvtVector4R q = parent->getDaug(1)->getP4() + + parent->getDaug(2)->getP4(); + + double q2 = q.mass2(); + + + EvtId l_num = parent->getDaug(1)->getId(); + EvtId bar_num = parent->getDaug(0)->getId(); + EvtId par_num = parent->getId(); + + double baryonmass = parent->getDaug(0)->mass(); + + // Handle spin-1/2 daughter baryon Dirac spinor cases + if( EvtPDL::getSpinType(parent->getDaug(0)->getId())==EvtSpinType::DIRAC ) { + + // Set the form factors + double f1,f2,f3,g1,g2,g3; + FormFactors->getdiracff( par_num, + bar_num, + q2, + baryonmass, + &f1, &f2, &f3, + &g1, &g2, &g3); + + const double form_fact[6] = {f1, f2, f3, g1, g2, g3}; + + EvtVector4C b11, b12, b21, b22, l1, l2; + + // Lepton Current + 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 \n"; + ::abort(); + } + + // Baryon current + + // Flag for particle/anti-particle parent, daughter with same/opp. parity + // pflag = 0 => particle, same parity parent, daughter + // pflag = 1 => particle, opp. parity parent, daughter + // pflag = 2 => anti-particle, same parity parent, daughter + // pflag = 3 => anti-particle, opp. parity parent, daughter + + int pflag = 0; + + // Handle 1/2+ -> 1/2+ first + if ( (par_num==LAMB && bar_num==LAMCP) + || (par_num==LAMBB && bar_num==LAMCM) ) { + + // Set particle/anti-particle flag + if (bar_num==LAMCP) + pflag = 0; + else if (bar_num==LAMCM) + pflag = 2; + + b11=EvtBaryonVACurrent(parent->getDaug(0)->spParent(0), + parent->sp(0), + p4b, p4daught, form_fact, pflag); + b21=EvtBaryonVACurrent(parent->getDaug(0)->spParent(0), + parent->sp(1), + p4b, p4daught, form_fact, pflag); + b12=EvtBaryonVACurrent(parent->getDaug(0)->spParent(1), + parent->sp(0), + p4b, p4daught, form_fact, pflag); + b22=EvtBaryonVACurrent(parent->getDaug(0)->spParent(1), + parent->sp(1), + p4b, p4daught, form_fact, pflag); + } + + // Handle 1/2+ -> 1/2- second + else if( (par_num==LAMB && bar_num==LAMC1P) + || (par_num==LAMBB && bar_num==LAMC1M) ) { + + // Set particle/anti-particle flag + if (bar_num==LAMC1P) + pflag = 1; + else if (bar_num==LAMC1M) + pflag = 3; + + b11=EvtBaryonVACurrent((parent->getDaug(0)->spParent(0)), + (EvtGammaMatrix::g5()*parent->sp(0)), + p4b, p4daught, form_fact, pflag); + b21=EvtBaryonVACurrent((parent->getDaug(0)->spParent(0)), + (EvtGammaMatrix::g5()*parent->sp(1)), + p4b, p4daught, form_fact, pflag); + b12=EvtBaryonVACurrent((parent->getDaug(0)->spParent(1)), + (EvtGammaMatrix::g5()*parent->sp(0)), + p4b, p4daught, form_fact, pflag); + b22=EvtBaryonVACurrent((parent->getDaug(0)->spParent(1)), + (EvtGammaMatrix::g5()*parent->sp(1)), + p4b, p4daught, form_fact, pflag); + + } + + else { + report(ERROR,"EvtGen") << "Dirac semilep. baryon current " + << "not implemented for this decay sequence." + << std::endl; + ::abort(); + } + + amp.vertex(0,0,0,l1*b11); + amp.vertex(0,0,1,l2*b11); + + amp.vertex(1,0,0,l1*b21); + amp.vertex(1,0,1,l2*b21); + + amp.vertex(0,1,0,l1*b12); + amp.vertex(0,1,1,l2*b12); + + amp.vertex(1,1,0,l1*b22); + amp.vertex(1,1,1,l2*b22); + + } + + // Need special handling for the spin-3/2 daughter baryon + // Rarita-Schwinger spinor cases + else if( EvtPDL::getSpinType(parent->getDaug(0)->getId())==EvtSpinType::RARITASCHWINGER ) { + + // Set the form factors + double f1,f2,f3,f4,g1,g2,g3,g4; + FormFactors->getraritaff( par_num, + bar_num, + q2, + baryonmass, + &f1, &f2, &f3, &f4, + &g1, &g2, &g3, &g4); + + const double form_fact[8] = {f1, f2, f3, f4, g1, g2, g3, g4}; + + EvtId l_num = parent->getDaug(1)->getId(); + + EvtVector4C b11, b12, b21, b22, b13, b23, b14, b24, l1, l2; + + // Lepton Current + if (l_num==EM || l_num==MUM || l_num==TAUM) { + // Lepton Current + 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 \n"; + } + + // Baryon Current + // Declare particle, anti-particle flag, same/opp. parity + // pflag = 0 => particle + // pflag = 1 => anti-particle + int pflag = 0; + + // Handle cases of 1/2+ -> 3/2- + if (par_num==LAMB && bar_num==LAMC2P) { + // Set flag for particle case + pflag = 0; + } + else if (par_num==LAMBB && bar_num==LAMC2M) { + // Set flag for anti-particle case + pflag = 1; + } + else { + report(ERROR,"EvtGen") << "Rarita-Schwinger semilep. baryon current " + << "not implemented for this decay sequence." + << std::endl; + ::abort(); + } + + // Baryon current + b11=EvtBaryonVARaritaCurrent(parent->getDaug(0)->spRSParent(0), + parent->sp(0), + p4b, p4daught, form_fact, pflag); + b21=EvtBaryonVARaritaCurrent(parent->getDaug(0)->spRSParent(0), + parent->sp(1), + p4b, p4daught, form_fact, pflag); + + b12=EvtBaryonVARaritaCurrent(parent->getDaug(0)->spRSParent(1), + parent->sp(0), + p4b, p4daught, form_fact, pflag); + b22=EvtBaryonVARaritaCurrent(parent->getDaug(0)->spRSParent(1), + parent->sp(1), + p4b, p4daught, form_fact, pflag); + + b13=EvtBaryonVARaritaCurrent(parent->getDaug(0)->spRSParent(2), + parent->sp(0), + p4b, p4daught, form_fact, pflag); + b23=EvtBaryonVARaritaCurrent(parent->getDaug(0)->spRSParent(2), + parent->sp(1), + p4b, p4daught, form_fact, pflag); + + b14=EvtBaryonVARaritaCurrent(parent->getDaug(0)->spRSParent(3), + parent->sp(0), + p4b, p4daught, form_fact, pflag); + b24=EvtBaryonVARaritaCurrent(parent->getDaug(0)->spRSParent(3), + parent->sp(1), + p4b, p4daught, form_fact, pflag); + + amp.vertex(0,0,0,l1*b11); + amp.vertex(0,0,1,l2*b11); + + amp.vertex(1,0,0,l1*b21); + amp.vertex(1,0,1,l2*b21); + + amp.vertex(0,1,0,l1*b12); + amp.vertex(0,1,1,l2*b12); + + amp.vertex(1,1,0,l1*b22); + amp.vertex(1,1,1,l2*b22); + + amp.vertex(0,2,0,l1*b13); + amp.vertex(0,2,1,l2*b13); + + amp.vertex(1,2,0,l1*b23); + amp.vertex(1,2,1,l2*b23); + + amp.vertex(0,3,0,l1*b14); + amp.vertex(0,3,1,l2*b14); + + amp.vertex(1,3,0,l1*b24); + amp.vertex(1,3,1,l2*b24); + + } + +} + + +EvtVector4C EvtSemiLeptonicBaryonAmp::EvtBaryonVACurrent( const EvtDiracSpinor& Bf, + const EvtDiracSpinor& Bi, + EvtVector4R parent, + EvtVector4R daught, + const double *ff, + int pflag) { + + // flag == 0 => particle, same parity + // flag == 1 => particle, opposite parity + // flag == 2 => anti-particle, same parity + // flag == 3 => anti-particle, opposite parity + + // particle + EvtComplex cv = EvtComplex(1.0, 0.); + EvtComplex ca = EvtComplex(1.0, 0.); + + EvtComplex cg0 = EvtComplex(1.0, 0.); + EvtComplex cg5 = EvtComplex(1.0, 0.); + + // antiparticle- same parity parent & daughter + if( pflag == 2 ) { + cv = EvtComplex(-1.0, 0.); + ca = EvtComplex(1.0, 0.); + + cg0 = EvtComplex(1.0, 0.0); + cg5 = EvtComplex(0.0, -1.0); + } + // antiparticle- opposite parity parent & daughter + else if( pflag == 3) { + cv = EvtComplex(1.0, 0.); + ca = EvtComplex(-1.0, 0.); + + cg0 = EvtComplex(0.0, -1.0); + cg5 = EvtComplex(1.0, 0.0); + } + + EvtVector4C t[6]; + + // Term 1 = \bar{u}(p',s')*(F_1(q^2)*\gamma_{mu})*u(p,s) + t[0] = cv*EvtLeptonVCurrent( Bf, Bi); + + // Term 2 = \bar{u}(p',s')*(F_2(q^2)*(p_{mu}/m_{\Lambda_Q}))*u(p,s) + t[1] = cg0*EvtLeptonSCurrent( Bf, Bi ) * (parent/parent.mass()); + + // Term 3 = \bar{u}(p',s')*(F_3(q^2)*(p'_{mu}/m_{\Lambda_q}))*u(p,s) + t[2] = cg0*EvtLeptonSCurrent( Bf, Bi ) * (daught/daught.mass()); + + // Term 4 = \bar{u}(p',s')*(G_1(q^2)*\gamma_{mu}*\gamma_5)*u(p,s) + t[3] = ca*EvtLeptonACurrent( Bf, Bi); + + // Term 5 = \bar{u}(p',s')*(G_2(q^2)*(p_{mu}/m_{\Lambda_Q})*\gamma_5)*u(p,s) + t[4] = cg5*EvtLeptonPCurrent( Bf, Bi ) * (parent/parent.mass()); + + // Term 6 = \bar{u}(p',s')*(G_3(q^2)*(p'_{mu}/m_{\Lambda_q})*\gamma_5)*u(p,s) + t[5] = cg5*EvtLeptonPCurrent( Bf, Bi ) * (daught/daught.mass()); + + // Sum the individual terms + EvtVector4C current = (ff[0]*t[0] + ff[1]*t[1] + ff[2]*t[2] + - ff[3]*t[3] - ff[4]*t[4] - ff[5]*t[5]); + + return current; +} + +EvtVector4C EvtSemiLeptonicBaryonAmp::EvtBaryonVARaritaCurrent( const EvtRaritaSchwinger& Bf, + const EvtDiracSpinor& Bi, + EvtVector4R parent, + EvtVector4R daught, + const double *ff, + int pflag) { + + // flag == 0 => particle + // flag == 1 => anti-particle + + // particle + EvtComplex cv = EvtComplex(1.0, 0.); + EvtComplex ca = EvtComplex(1.0, 0.); + + EvtComplex cg0 = EvtComplex(1.0, 0.); + EvtComplex cg5 = EvtComplex(1.0, 0.); + + // antiparticle + if( pflag == 1 ) { + cv = EvtComplex(-1.0, 0.); + ca = EvtComplex(1.0, 0.); + + cg0 = EvtComplex(1.0, 0.0); + cg5 = EvtComplex(0.0, -1.0); + } + + EvtVector4C t[8]; + EvtTensor4C id; + id.setdiag(1.0,1.0,1.0,1.0); + + EvtDiracSpinor tmp; + for(int i=0;i<4;i++){ + tmp.set_spinor(i,Bf.getVector(i)*parent); + } + + EvtVector4C v1,v2; + for(int i=0;i<4;i++){ + v1.set(i,EvtLeptonSCurrent(Bf.getSpinor(i),Bi)); + v2.set(i,EvtLeptonPCurrent(Bf.getSpinor(i),Bi)); + } + + // Term 1 = \bar{u}^{\alpha}(p',s')*(p_{\alpha}/m_{\Lambda_Q})*(F_1(q^2)*\gamma_{mu})*u(p,s) + t[0] = (cv/parent.mass()) * EvtLeptonVCurrent(tmp, Bi); + + // Term 2 + // = \bar{u}^{\alpha}(p',s')*(p_{\alpha}/m_{\Lambda_Q})*(F_2(q^2)*(p_{mu}/m_{\Lambda_Q}))*u(p,s) + t[1] = ((cg0/parent.mass()) * EvtLeptonSCurrent(tmp, Bi)) * (parent/parent.mass()); + + // Term 3 + // = \bar{u}^{\alpha}(p',s')*(p_{\alpha}/m_{\Lambda_Q})*(F_3(q^2)*(p'_{mu}/m_{\Lambda_q}))*u(p,s) + t[2] = ((cg0/parent.mass()) * EvtLeptonSCurrent(tmp, Bi)) * (daught/daught.mass()); + + // Term 4 = \bar{u}^{\alpha}(p',s')*(F_4(q^2)*g_{\alpha,\mu})*u(p,s) + t[3] = cg0*(id.cont2(v1)); + + // Term 5 + // = \bar{u}^{\alpha}(p',s')*(p_{\alpha}/m_{\Lambda_Q})*(G_1(q^2)*\gamma_{mu}*\gamma_5)*u(p,s) + t[4] = (ca/parent.mass()) * EvtLeptonACurrent(tmp, Bi); + + // Term 6 + // = \bar{u}^{\alpha}(p',s')*(p_{\alpha}/m_{\Lambda_Q}) + // *(G_2(q^2)*(p_{mu}/m_{\Lambda_Q})*\gamma_5)*u(p,s) + t[5] = ((cg5/parent.mass()) * EvtLeptonPCurrent(tmp, Bi)) * (parent/parent.mass()); + + // Term 7 + // = \bar{u}^{\alpha}(p',s')*(p_{\alpha}/m_{\Lambda_Q}) + // *(G_3(q^2)*(p'_{mu}/m_{\Lambda_q})*\gamma_5)*u(p,s) + t[6] = ((cg5/parent.mass()) * EvtLeptonPCurrent(tmp, Bi)) * (daught/daught.mass()); + + // Term 8 = \bar{u}^{\alpha}(p',s')*(G_4(q^2)*g_{\alpha,\mu}*\gamma_5))*u(p,s) + t[7] = cg5*(id.cont2(v2)); + + // Sum the individual terms + EvtVector4C current = (ff[0]*t[0] + ff[1]*t[1] + ff[2]*t[2] + ff[3]*t[3] + - ff[4]*t[4] - ff[5]*t[5] - ff[6]*t[6] - ff[7]*t[7]); + + return current; +} diff --git a/TEvtGen/EvtGenBase/EvtSemiLeptonicBaryonAmp.cxx b/TEvtGen/EvtGenBase/EvtSemiLeptonicBaryonAmp.cxx deleted file mode 100644 index 8df266a2827..00000000000 --- a/TEvtGen/EvtGenBase/EvtSemiLeptonicBaryonAmp.cxx +++ /dev/null @@ -1,163 +0,0 @@ -//-------------------------------------------------------------------------- -// -// Environment: -// This software is part of the EvtGen package developed jointly -// for the 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)->spParent(0), @@ -113,7 +113,7 @@ void EvtSemiLeptonicVectorAmp::CalcAmp( EvtParticle *parent, 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)); + *dual(EvtGenFunctions::directProd(p4meson+p4b,p4b-p4meson)); tds.addDirProd((a0f-a3f)*2.0*(m_meson/q2)*p4b,p4b-p4meson); l1=EvtLeptonVACurrent(parent->getDaug(2)->spParentNeutrino(), diff --git a/TEvtGen/EvtGenBase/EvtSimpleRandomEngine.cxx b/TEvtGen/EvtGenBase/EvtSimpleRandomEngine.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtSimpleRandomEngine.cxx rename to TEvtGen/EvtGenBase/EvtSimpleRandomEngine.cpp diff --git a/TEvtGen/EvtGenBase/EvtSimpleRandomEngine.hh b/TEvtGen/EvtGenBase/EvtSimpleRandomEngine.hh index 48bd6b86105..76865c47ac2 100644 --- a/TEvtGen/EvtGenBase/EvtSimpleRandomEngine.hh +++ b/TEvtGen/EvtGenBase/EvtSimpleRandomEngine.hh @@ -23,7 +23,9 @@ #ifndef EVTSIMPLERANDOMENGINE_HH #define EVTSIMPLERANDOMENGINE_HH -class EvtSimpleRandomEngine{ +#include "EvtGenBase/EvtRandomEngine.hh" + +class EvtSimpleRandomEngine : public EvtRandomEngine { public: diff --git a/TEvtGen/EvtGenBase/EvtSpinAmp.cxx b/TEvtGen/EvtGenBase/EvtSpinAmp.cpp similarity index 99% rename from TEvtGen/EvtGenBase/EvtSpinAmp.cxx rename to TEvtGen/EvtGenBase/EvtSpinAmp.cpp index 3fb064557fd..7ffaa79977c 100644 --- a/TEvtGen/EvtGenBase/EvtSpinAmp.cxx +++ b/TEvtGen/EvtGenBase/EvtSpinAmp.cpp @@ -379,7 +379,7 @@ bool EvtSpinAmp::iterate( vector& index ) const } } - return abs(index[last])<=_twospin[last]; + return (abs(index[last]))<=((int)_twospin[last]); } // Test whether a particular index is an allowed one (specifically to deal with diff --git a/TEvtGen/EvtGenBase/EvtSpinDensity.cxx b/TEvtGen/EvtGenBase/EvtSpinDensity.cpp similarity index 94% rename from TEvtGen/EvtGenBase/EvtSpinDensity.cxx rename to TEvtGen/EvtGenBase/EvtSpinDensity.cpp index ec60482895a..c427613fb19 100644 --- a/TEvtGen/EvtGenBase/EvtSpinDensity.cxx +++ b/TEvtGen/EvtGenBase/EvtSpinDensity.cpp @@ -157,10 +157,18 @@ int EvtSpinDensity::check(){ int i,j; + double trace(0.0); + + for (i=0;iabs(rho[i][i])) { + if (imag(rho[i][i])*1000000.0>trace) { + report(INFO,"EvtGen") << *this << endl; + report(INFO,"EvtGen") << trace << endl; report(INFO,"EvtGen") << "Failing 1"< +#include #include "EvtGenBase/EvtRandomEngine.hh" class EvtStdlibRandomEngine : public EvtRandomEngine { @@ -22,14 +23,16 @@ public: void setSeed(unsigned int seed) { - srand(seed); + //srand(seed); + gRandom->SetSeed(seed); } virtual double random() { - double x = rand(); + /*double x = rand(); double y = RAND_MAX; - return x/y; + return x/y;*/ + return gRandom->Rndm(); } }; diff --git a/TEvtGen/EvtGenBase/EvtStreamAdapter.hh b/TEvtGen/EvtGenBase/EvtStreamAdapter.hh index adfd0b319df..1b05d9c6c16 100644 --- a/TEvtGen/EvtGenBase/EvtStreamAdapter.hh +++ b/TEvtGen/EvtGenBase/EvtStreamAdapter.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtStreamAdapter.hh,v 1.2 2009-03-16 16:40:16 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtStreamInputIterator.hh b/TEvtGen/EvtGenBase/EvtStreamInputIterator.hh index 6313a1f8a94..ee886706e4f 100644 --- a/TEvtGen/EvtGenBase/EvtStreamInputIterator.hh +++ b/TEvtGen/EvtGenBase/EvtStreamInputIterator.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtStreamInputIterator.hh,v 1.2 2009-03-16 16:41:09 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech @@ -14,7 +14,10 @@ #define EVT_STREAM_INPUT_ITERATOR_HH #include "EvtGenBase/EvtStreamAdapter.hh" + #include +#include + using std::input_iterator_tag; template @@ -23,6 +26,7 @@ public: typedef input_iterator_tag iterator_category; typedef Point value_type; + typedef ptrdiff_t difference_type; typedef const Point* pointer; typedef const Point& reference; diff --git a/TEvtGen/EvtGenBase/EvtStringParticle.cxx b/TEvtGen/EvtGenBase/EvtStringParticle.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtStringParticle.cxx rename to TEvtGen/EvtGenBase/EvtStringParticle.cpp diff --git a/TEvtGen/EvtGenBase/EvtSymTable.cxx b/TEvtGen/EvtGenBase/EvtSymTable.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtSymTable.cxx rename to TEvtGen/EvtGenBase/EvtSymTable.cpp diff --git a/TEvtGen/EvtGenBase/EvtTensor3C.cxx b/TEvtGen/EvtGenBase/EvtTensor3C.cpp similarity index 93% rename from TEvtGen/EvtGenBase/EvtTensor3C.cxx rename to TEvtGen/EvtGenBase/EvtTensor3C.cpp index 78aed447d79..1bdb7d5141f 100644 --- a/TEvtGen/EvtGenBase/EvtTensor3C.cxx +++ b/TEvtGen/EvtGenBase/EvtTensor3C.cpp @@ -147,7 +147,7 @@ EvtTensor3C EvtTensor3C::operator*=(const EvtComplex& c) { } -EvtTensor3C EvtTensor3C::operator*=(double c){ +EvtTensor3C EvtTensor3C::operator*=(const double c){ int i,j; @@ -162,7 +162,7 @@ EvtTensor3C EvtTensor3C::operator*=(double c){ -EvtTensor3C directProd(const EvtVector3C& c1,const EvtVector3C& c2){ +EvtTensor3C EvtGenFunctions::directProd(const EvtVector3C& c1,const EvtVector3C& c2){ EvtTensor3C temp; int i,j; @@ -175,7 +175,7 @@ EvtTensor3C directProd(const EvtVector3C& c1,const EvtVector3C& c2){ } -EvtTensor3C directProd(const EvtVector3C& c1,const EvtVector3R& c2){ +EvtTensor3C EvtGenFunctions::directProd(const EvtVector3C& c1,const EvtVector3R& c2){ EvtTensor3C temp; int i,j; @@ -188,7 +188,7 @@ EvtTensor3C directProd(const EvtVector3C& c1,const EvtVector3R& c2){ } -EvtTensor3C directProd(const EvtVector3R& c1,const EvtVector3R& c2){ +EvtTensor3C EvtGenFunctions::directProd(const EvtVector3R& c1,const EvtVector3R& c2){ EvtTensor3C temp; int i,j; @@ -304,7 +304,7 @@ EvtVector3C EvtTensor3C::cont2(const EvtVector3R& v) const { } -EvtTensor3C eps(const EvtVector3R& v){ +EvtTensor3C EvtGenFunctions::eps(const EvtVector3R& v){ EvtTensor3C temp; @@ -345,7 +345,7 @@ ostream& operator<<(ostream& s,const EvtTensor3C& v){ } -EvtTensor3C rotateEuler(const EvtTensor3C& v, +EvtTensor3C EvtGenFunctions::rotateEuler(const EvtTensor3C& v, double alpha,double beta,double gamma){ EvtTensor3C tmp(v); diff --git a/TEvtGen/EvtGenBase/EvtTensor3C.hh b/TEvtGen/EvtGenBase/EvtTensor3C.hh index 51db4947080..8f061290865 100644 --- a/TEvtGen/EvtGenBase/EvtTensor3C.hh +++ b/TEvtGen/EvtGenBase/EvtTensor3C.hh @@ -29,36 +29,36 @@ 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); +namespace EvtGenFunctions { + EvtTensor3C eps(const EvtVector3R& v); + EvtTensor3C rotateEuler(const EvtTensor3C& v, + double phi,double theta,double ksi); + 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*(double d,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,double d); + 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 EvtGenFunctions::directProd(const EvtVector3C& c1,const EvtVector3C& c2); + friend EvtTensor3C EvtGenFunctions::directProd(const EvtVector3C& c1,const EvtVector3R& c2); + friend EvtTensor3C EvtGenFunctions::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 EvtTensor3C EvtGenFunctions::eps(const EvtVector3R& v); friend std::ostream& operator<<(std::ostream& c,const EvtTensor3C& v); public: @@ -76,7 +76,7 @@ public: EvtTensor3C operator+=(const EvtTensor3C& t2); EvtTensor3C operator-=(const EvtTensor3C& t2); - EvtTensor3C operator*=(double d); + EvtTensor3C operator*=(const double d); EvtTensor3C operator*=(const EvtComplex& c); EvtTensor3C conj() const; EvtVector3C cont1(const EvtVector3C& v) const; @@ -102,7 +102,7 @@ inline EvtTensor3C operator*(const EvtTensor3C& t2,const EvtComplex& c){ return EvtTensor3C(t2)*=c; } -inline EvtTensor3C operator*(const EvtTensor3C& t2,double d){ +inline EvtTensor3C operator*(const EvtTensor3C& t2,const double d){ return EvtTensor3C(t2)*=d; } diff --git a/TEvtGen/EvtGenBase/EvtTensor4C.cxx b/TEvtGen/EvtGenBase/EvtTensor4C.cpp similarity index 95% rename from TEvtGen/EvtGenBase/EvtTensor4C.cxx rename to TEvtGen/EvtGenBase/EvtTensor4C.cpp index c6025185fe2..ead84333742 100644 --- a/TEvtGen/EvtGenBase/EvtTensor4C.cxx +++ b/TEvtGen/EvtGenBase/EvtTensor4C.cpp @@ -316,7 +316,11 @@ EvtComplex cont(const EvtTensor4C& t1,const EvtTensor4C& t2){ for (i=0;i<4;i++) { for (j=0;j<4;j++) { - sum+=t1.t[i][j]*t2.t[i][j]; + if ((i==0&&j!=0) || (j==0&&i!=0)) { + sum -= t1.t[i][j]*t2.t[i][j]; + } else { + sum += t1.t[i][j]*t2.t[i][j]; + } } } @@ -324,7 +328,8 @@ EvtComplex cont(const EvtTensor4C& t1,const EvtTensor4C& t2){ } -EvtTensor4C directProd(const EvtVector4C& c1,const EvtVector4C& c2){ +EvtTensor4C EvtGenFunctions::directProd(const EvtVector4C& c1, + const EvtVector4C& c2){ EvtTensor4C temp; int i,j; @@ -337,7 +342,8 @@ EvtTensor4C directProd(const EvtVector4C& c1,const EvtVector4C& c2){ } -EvtTensor4C directProd(const EvtVector4C& c1,const EvtVector4R& c2){ +EvtTensor4C EvtGenFunctions::directProd(const EvtVector4C& c1, + const EvtVector4R& c2){ EvtTensor4C temp; int i,j; @@ -350,7 +356,8 @@ EvtTensor4C directProd(const EvtVector4C& c1,const EvtVector4R& c2){ } -EvtTensor4C directProd(const EvtVector4R& c1,const EvtVector4R& c2){ +EvtTensor4C EvtGenFunctions::directProd(const EvtVector4R& c1, + const EvtVector4R& c2){ EvtTensor4C temp; int i,j; diff --git a/TEvtGen/EvtGenBase/EvtTensor4C.hh b/TEvtGen/EvtGenBase/EvtTensor4C.hh index 5b0f502e040..65fa8e8527c 100644 --- a/TEvtGen/EvtGenBase/EvtTensor4C.hh +++ b/TEvtGen/EvtGenBase/EvtTensor4C.hh @@ -29,12 +29,16 @@ 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); +namespace EvtGenFunctions { + EvtTensor4C directProd(const EvtVector4R& c1,const EvtVector4R& c2); + EvtTensor4C directProd(const EvtVector4C& c1,const EvtVector4C& c2); + EvtTensor4C directProd(const EvtVector4C& c1,const EvtVector4R& c2); +}; class EvtTensor4C { + friend EvtTensor4C EvtGenFunctions::directProd(const EvtVector4R& c1,const EvtVector4R& c2); + friend EvtTensor4C EvtGenFunctions::directProd(const EvtVector4C& c1,const EvtVector4C& c2); + friend EvtTensor4C EvtGenFunctions::directProd(const EvtVector4C& c1,const EvtVector4R& c2); friend EvtTensor4C rotateEuler(const EvtTensor4C& e, double alpha,double beta,double gamma); @@ -42,9 +46,6 @@ class EvtTensor4C { 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); diff --git a/TEvtGen/EvtGenBase/EvtTensorParticle.cxx b/TEvtGen/EvtGenBase/EvtTensorParticle.cpp similarity index 77% rename from TEvtGen/EvtGenBase/EvtTensorParticle.cxx rename to TEvtGen/EvtGenBase/EvtTensorParticle.cpp index d25427e7f67..0883072048f 100644 --- a/TEvtGen/EvtGenBase/EvtTensorParticle.cxx +++ b/TEvtGen/EvtGenBase/EvtTensorParticle.cpp @@ -114,15 +114,15 @@ EvtSpinDensity EvtTensorParticle::rotateToHelicityBasis() const{ 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 dPpp(EvtGenFunctions::directProd(eplus,eplus)); + static EvtTensor4C dPp0(EvtGenFunctions::directProd(eplus,ezero)); + static EvtTensor4C dP0p(EvtGenFunctions::directProd(ezero,eplus)); + static EvtTensor4C dPpm(EvtGenFunctions::directProd(eplus,eminus)); + static EvtTensor4C dP00(EvtGenFunctions::directProd(ezero,ezero)); + static EvtTensor4C dPmp(EvtGenFunctions::directProd(eminus,eplus)); + static EvtTensor4C dPmm(EvtGenFunctions::directProd(eminus,eminus)); + static EvtTensor4C dPm0(EvtGenFunctions::directProd(eminus,ezero)); + static EvtTensor4C dP0m(EvtGenFunctions::directProd(ezero,eminus)); static EvtTensor4C es0(conj(dPpp)); static EvtTensor4C es1(conj((1/sqrt(2.0))*dPp0 +(1/sqrt(2.0))*dP0p)); @@ -162,15 +162,15 @@ EvtSpinDensity EvtTensorParticle::rotateToHelicityBasis(double alpha, 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); + es[0]=EvtGenFunctions::directProd(eplus,eplus); + es[1] =(1/sqrt(2.0))*EvtGenFunctions::directProd(eplus,ezero) + +(1/sqrt(2.0))*EvtGenFunctions::directProd(ezero,eplus); + es[2] =(1/sqrt(6.0))*EvtGenFunctions::directProd(eplus,eminus) + +(2/sqrt(6.0))*EvtGenFunctions::directProd(ezero,ezero) + +(1/sqrt(6.0))*EvtGenFunctions::directProd(eminus,eplus); + es[3] =(1/sqrt(2.0))*EvtGenFunctions::directProd(eminus,ezero) + +(1/sqrt(2.0))*EvtGenFunctions::directProd(ezero,eminus); + es[4]=EvtGenFunctions::directProd(eminus,eminus); for (int i=0; i<5; i++) es[i]=conj(es[i]); diff --git a/TEvtGen/EvtGenBase/EvtTwoBodyKine.cxx b/TEvtGen/EvtGenBase/EvtTwoBodyKine.cpp similarity index 96% rename from TEvtGen/EvtGenBase/EvtTwoBodyKine.cxx rename to TEvtGen/EvtGenBase/EvtTwoBodyKine.cpp index 27c124657cf..a9a578f195a 100644 --- a/TEvtGen/EvtGenBase/EvtTwoBodyKine.cxx +++ b/TEvtGen/EvtGenBase/EvtTwoBodyKine.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtTwoBodyKine.cpp,v 1.3 2009-03-16 15:37:54 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtTwoBodyKine.hh b/TEvtGen/EvtGenBase/EvtTwoBodyKine.hh index 11d9caa8084..3bbf4b6d106 100644 --- a/TEvtGen/EvtGenBase/EvtTwoBodyKine.hh +++ b/TEvtGen/EvtGenBase/EvtTwoBodyKine.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtTwoBodyKine.hh,v 1.2 2009-03-16 16:34:38 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtTwoBodyVertex.cxx b/TEvtGen/EvtGenBase/EvtTwoBodyVertex.cpp similarity index 96% rename from TEvtGen/EvtGenBase/EvtTwoBodyVertex.cxx rename to TEvtGen/EvtGenBase/EvtTwoBodyVertex.cpp index 7e97375171b..a2623f38d4e 100644 --- a/TEvtGen/EvtGenBase/EvtTwoBodyVertex.cxx +++ b/TEvtGen/EvtGenBase/EvtTwoBodyVertex.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtTwoBodyVertex.cpp,v 1.3 2009-03-16 15:38:39 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtTwoBodyVertex.hh b/TEvtGen/EvtGenBase/EvtTwoBodyVertex.hh index 68c4ed3c3ea..1b0bc466e89 100644 --- a/TEvtGen/EvtGenBase/EvtTwoBodyVertex.hh +++ b/TEvtGen/EvtGenBase/EvtTwoBodyVertex.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtTwoBodyVertex.hh,v 1.2 2009-03-16 16:34:38 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtValError.cxx b/TEvtGen/EvtGenBase/EvtValError.cpp similarity index 97% rename from TEvtGen/EvtGenBase/EvtValError.cxx rename to TEvtGen/EvtGenBase/EvtValError.cpp index 9fc7e250c0f..f13b9055213 100644 --- a/TEvtGen/EvtGenBase/EvtValError.cxx +++ b/TEvtGen/EvtGenBase/EvtValError.cpp @@ -2,7 +2,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtValError.cpp,v 1.3 2009-03-16 15:39:28 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtValError.hh b/TEvtGen/EvtGenBase/EvtValError.hh index 0ea1cc7d79c..303062f5eef 100644 --- a/TEvtGen/EvtGenBase/EvtValError.hh +++ b/TEvtGen/EvtGenBase/EvtValError.hh @@ -1,7 +1,7 @@ /******************************************************************************* * 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 $ + * File: $Id: EvtValError.hh,v 1.2 2009-03-16 16:34:38 robbep Exp $ * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 * * Copyright (C) 2002 Caltech diff --git a/TEvtGen/EvtGenBase/EvtVector3C.cxx b/TEvtGen/EvtGenBase/EvtVector3C.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtVector3C.cxx rename to TEvtGen/EvtGenBase/EvtVector3C.cpp diff --git a/TEvtGen/EvtGenBase/EvtVector3C.hh b/TEvtGen/EvtGenBase/EvtVector3C.hh index 28eea8616f1..9e873fe6a75 100644 --- a/TEvtGen/EvtGenBase/EvtVector3C.hh +++ b/TEvtGen/EvtGenBase/EvtVector3C.hh @@ -45,7 +45,7 @@ public: EvtVector3C(); EvtVector3C(const EvtComplex&,const EvtComplex&,const EvtComplex&); virtual ~EvtVector3C(); - inline void set(int,const EvtComplex&); + 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); @@ -72,7 +72,7 @@ inline EvtVector3C::EvtVector3C(const EvtVector3R& v1){ } -inline void EvtVector3C::set(int i,const EvtComplex& c){ +inline void EvtVector3C::set(const int i,const EvtComplex& c){ v[i]=c; diff --git a/TEvtGen/EvtGenBase/EvtVector3R.cxx b/TEvtGen/EvtGenBase/EvtVector3R.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtVector3R.cxx rename to TEvtGen/EvtGenBase/EvtVector3R.cpp diff --git a/TEvtGen/EvtGenBase/EvtVector4C.cxx b/TEvtGen/EvtGenBase/EvtVector4C.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtVector4C.cxx rename to TEvtGen/EvtGenBase/EvtVector4C.cpp diff --git a/TEvtGen/EvtGenBase/EvtVector4R.cxx b/TEvtGen/EvtGenBase/EvtVector4R.cpp similarity index 73% rename from TEvtGen/EvtGenBase/EvtVector4R.cxx rename to TEvtGen/EvtGenBase/EvtVector4R.cpp index a5ac6678532..79e490855fc 100644 --- a/TEvtGen/EvtGenBase/EvtVector4R.cxx +++ b/TEvtGen/EvtGenBase/EvtVector4R.cpp @@ -20,8 +20,7 @@ // #include "EvtGenBase/EvtPatches.hh" #include -#include -#include +#include #include "EvtGenBase/EvtVector4R.hh" #include "EvtGenBase/EvtVector3R.hh" #include "EvtGenBase/EvtVector4C.hh" @@ -29,7 +28,9 @@ using std::ostream; - +EvtVector4R::EvtVector4R() { + v[0] = 0.0; v[1] = 0.0; v[2] = 0.0; v[3] = 0.0; +} EvtVector4R::EvtVector4R(double e,double p1,double p2, double p3){ @@ -59,19 +60,19 @@ EvtVector4R rotateEuler(const EvtVector4R& rs, } EvtVector4R boostTo(const EvtVector4R& rs, - const EvtVector4R& p4){ + const EvtVector4R& p4, bool inverse){ EvtVector4R tmp(rs); - tmp.applyBoostTo(p4); + tmp.applyBoostTo(p4, inverse); return tmp; } EvtVector4R boostTo(const EvtVector4R& rs, - const EvtVector3R& boost){ + const EvtVector3R& boost, bool inverse){ EvtVector4R tmp(rs); - tmp.applyBoostTo(boost); + tmp.applyBoostTo(boost, inverse); return tmp; } @@ -105,19 +106,19 @@ ostream& operator<<(ostream& s, const EvtVector4R& v){ } -void EvtVector4R::applyBoostTo(const EvtVector4R& p4){ +void EvtVector4R::applyBoostTo(const EvtVector4R& p4, bool inverse){ double e=p4.get(0); EvtVector3R boost(p4.get(1)/e,p4.get(2)/e,p4.get(3)/e); - applyBoostTo(boost); + applyBoostTo(boost, inverse); return; } -void EvtVector4R::applyBoostTo(const EvtVector3R& boost){ +void EvtVector4R::applyBoostTo(const EvtVector3R& boost, bool inverse){ double bx,by,bz,gamma,b2; @@ -131,40 +132,44 @@ void EvtVector4R::applyBoostTo(const EvtVector3R& boost){ b2=bxx+byy+bzz; + if (b2 > 0.0 && b2 < 1.0) { - 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; + gamma=1.0/sqrt(1.0-b2); - double e2=v[0]; - double px2=v[1]; - double py2=v[2]; - double pz2=v[3]; + double gb2=(gamma-1.0)/b2; - v[0]=gamma*e2+gbx*px2+gby*py2+gbz*pz2; + double gb2xy=gb2*bx*by; + double gb2xz=gb2*bx*bz; + double gb2yz=gb2*by*bz; - v[1]=gbx*e2+gb2*bxx*px2+px2+gb2xy*py2+gb2xz*pz2; + double gbx=gamma*bx; + double gby=gamma*by; + double gbz=gamma*bz; - v[2]=gby*e2+gb2*byy*py2+py2+gb2xy*px2+gb2yz*pz2; + double e2=v[0]; + double px2=v[1]; + double py2=v[2]; + double pz2=v[3]; - v[3]=gbz*e2+gb2*bzz*pz2+pz2+gb2yz*py2+gb2xz*px2; - - return; + if ( inverse ) { + 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; + } + else { + 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; + } + } } @@ -217,11 +222,11 @@ double EvtVector4R::dot ( const EvtVector4R& p2 )const{ double EvtVector4R::scalartripler3( const EvtVector4R& p1, const EvtVector4R& p2, const EvtVector4R& p3 ) const { - EvtVector4C lc=dual(directProd(*this, p1)).cont2(p2); - EvtVector4R l(real(lc.get(0)), real(lc.get(1)), real(lc.get(2)), - real(lc.get(3))); - - return -1.0/mass() * (l * p3); + EvtVector4C lc=dual(EvtGenFunctions::directProd(*this, p1)).cont2(p2); + EvtVector4R l(real(lc.get(0)), real(lc.get(1)), real(lc.get(2)), + real(lc.get(3))); + + return -1.0/mass() * (l * p3); } // Calculate the 3-d dot product of 4-vectors p1 and p2 in the rest frame of diff --git a/TEvtGen/EvtGenBase/EvtVector4R.hh b/TEvtGen/EvtGenBase/EvtVector4R.hh index dc792e1bf82..a6753181075 100644 --- a/TEvtGen/EvtGenBase/EvtVector4R.hh +++ b/TEvtGen/EvtGenBase/EvtVector4R.hh @@ -28,12 +28,6 @@ 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); @@ -44,7 +38,7 @@ class EvtVector4R { inline friend EvtVector4R operator-(const EvtVector4R& v1,const EvtVector4R& v2); public: - EvtVector4R(){} + 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); @@ -59,8 +53,8 @@ public: double mass2() const; double mass() const; void applyRotateEuler(double alpha,double beta,double gamma); - void applyBoostTo(const EvtVector4R& p4); - void applyBoostTo(const EvtVector3R& boost); + void applyBoostTo(const EvtVector4R& p4, bool inverse = false); + void applyBoostTo(const EvtVector3R& boost, bool inverse = false); EvtVector4R cross(const EvtVector4R& v2); double dot(const EvtVector4R& v2) const; double d3mag() const; @@ -81,6 +75,12 @@ private: }; +EvtVector4R rotateEuler(const EvtVector4R& rs, + double alpha,double beta,double gamma); +EvtVector4R boostTo(const EvtVector4R& rs, + const EvtVector4R& p4, bool inverse = false); +EvtVector4R boostTo(const EvtVector4R& rs, + const EvtVector3R& boost, bool inverse = false); inline EvtVector4R& EvtVector4R::operator=(const EvtVector4R& v2){ diff --git a/TEvtGen/EvtGenBase/EvtVectorParticle.cxx b/TEvtGen/EvtGenBase/EvtVectorParticle.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtVectorParticle.cxx rename to TEvtGen/EvtGenBase/EvtVectorParticle.cpp diff --git a/TEvtGen/EvtGenBase/EvtdFunction.cxx b/TEvtGen/EvtGenBase/EvtdFunction.cpp similarity index 100% rename from TEvtGen/EvtGenBase/EvtdFunction.cxx rename to TEvtGen/EvtGenBase/EvtdFunction.cpp diff --git a/TEvtGen/EvtGenBase/EvtdFunctionSingle.cxx b/TEvtGen/EvtGenBase/EvtdFunctionSingle.cpp similarity index 98% rename from TEvtGen/EvtGenBase/EvtdFunctionSingle.cxx rename to TEvtGen/EvtGenBase/EvtdFunctionSingle.cpp index 4d440f57526..3b7b31502d9 100644 --- a/TEvtGen/EvtGenBase/EvtdFunctionSingle.cxx +++ b/TEvtGen/EvtGenBase/EvtdFunctionSingle.cpp @@ -74,7 +74,7 @@ void EvtdFunctionSingle::init(int j,int m1,int m2){ double EvtdFunctionSingle::d(int j,int m1,int m2, double theta){ - assert(j==_j); + assert(j==_j); _unused( j ); assert(m1==_m1); assert(m2==_m2); diff --git a/TEvtGen/EvtGenBase/cambiaNome.C b/TEvtGen/EvtGenBase/cambiaNome.C deleted file mode 100644 index 13eb345440d..00000000000 --- a/TEvtGen/EvtGenBase/cambiaNome.C +++ /dev/null @@ -1,7 +0,0 @@ - -void cambiaNome(){ -TSeqCollection *sec = gSystem->GetListOfFileHandlers(); -sec->Print(); -cout<< "Entries" << sec->GetEntries() << endl; -sec->Draw(); -} diff --git a/TEvtGen/EvtGenExternal/EvtExternalGenFactory.cpp b/TEvtGen/EvtGenExternal/EvtExternalGenFactory.cpp new file mode 100644 index 00000000000..8fb64a9ae6e --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtExternalGenFactory.cpp @@ -0,0 +1,157 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2011 University of Warwick, UK +// +// Module: EvtExternalGenFactory +// +// Description: A factory type method to create engines for external physics +// generators like Pythia. +// +// Modification history: +// +// John Back April 2011 Module created +// +//------------------------------------------------------------------------------ +// + +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenExternal/EvtExternalGenFactory.hh" + +#ifdef EVTGEN_PYTHIA +#include "EvtGenExternal/EvtPythiaEngine.hh" +#endif + +#ifdef EVTGEN_PHOTOS +#include "EvtGenExternal/EvtPhotosEngine.hh" +#endif + +#ifdef EVTGEN_TAUOLA +#include "EvtGenExternal/EvtTauolaEngine.hh" +#endif + +#include +using std::endl; + +EvtExternalGenFactory::EvtExternalGenFactory() { + + _extGenMap.clear(); + +} + +EvtExternalGenFactory::~EvtExternalGenFactory() { + + ExtGenMap::iterator iter; + for (iter = _extGenMap.begin(); iter != _extGenMap.end(); ++iter) { + + EvtAbsExternalGen* theGenerator = iter->second; + delete theGenerator; + + } + + _extGenMap.clear(); + +} + +EvtExternalGenFactory* EvtExternalGenFactory::getInstance() { + + static EvtExternalGenFactory* theFactory = 0; + + if (theFactory == 0) { + theFactory = new EvtExternalGenFactory(); + } + + return theFactory; + +} + +void EvtExternalGenFactory::definePythiaGenerator(std::string xmlDir, + bool convertPhysCodes, + bool useEvtGenRandom) { + + // Only define the generator if we have the external ifdef variable set +#ifdef EVTGEN_PYTHIA + + int genId = EvtExternalGenFactory::PythiaGenId; + + report(INFO,"EvtGen")<<"Defining EvtPythiaEngine: data tables defined in " + <second; + + } + + return theGenerator; + +} + +void EvtExternalGenFactory::initialiseAllGenerators() { + + ExtGenMap::iterator iter; + for (iter = _extGenMap.begin(); iter != _extGenMap.end(); ++iter) { + + EvtAbsExternalGen* theGenerator = iter->second; + if (theGenerator != 0) { + theGenerator->initialise(); + } + + } + +} diff --git a/TEvtGen/EvtGenExternal/EvtExternalGenFactory.hh b/TEvtGen/EvtGenExternal/EvtExternalGenFactory.hh new file mode 100644 index 00000000000..feed2149148 --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtExternalGenFactory.hh @@ -0,0 +1,66 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2011 University of Warwick, UK +// +// Module: EvtExternalGenFactory +// +// Description: A factory type method to create engines for external physics +// generators like Pythia. +// +// Modification history: +// +// John Back April 2011 Module created +// +//------------------------------------------------------------------------------ +// + +#ifndef EVTEXTERNALGENFACTORY_HH +#define EVTEXTERNALGENFACTORY_HH + +#include "EvtGenModels/EvtAbsExternalGen.hh" + +#include + +class EvtExternalGenFactory { + +public: + + enum genId {PythiaGenId = 0, PhotosGenId, TauolaGenId}; + + static EvtExternalGenFactory* getInstance(); + + EvtAbsExternalGen* getGenerator(int genId = 0); + + void initialiseAllGenerators(); + + void definePythiaGenerator(std::string xmlDir, bool convertPhysCodes, bool useEvtGenRandom = true); + void definePhotosGenerator(std::string photonType = "gamma", bool useEvtGenRandom = true); + void defineTauolaGenerator(bool useEvtGenRandom = true); + + //methods to add configuration commands to the pythia generators + //void addPythiaCommand( std::string generator, std::string module, std::string param, std::string value); + //void addPythia6Command(std::string generator, std::string module, std::string param, std::string value); + +protected: + + EvtExternalGenFactory(); + ~EvtExternalGenFactory(); + + typedef std::map ExtGenMap; + typedef std::map > > ExtGenCommandMap; + +private: + + EvtExternalGenFactory(const EvtExternalGenFactory&) {}; + + ExtGenMap _extGenMap; + ExtGenCommandMap _extGenCommandMap; + +}; + +#endif diff --git a/TEvtGen/EvtGenExternal/EvtExternalGenList.cpp b/TEvtGen/EvtGenExternal/EvtExternalGenList.cpp new file mode 100644 index 00000000000..8779ae97ce1 --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtExternalGenList.cpp @@ -0,0 +1,78 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2012 University of Warwick, UK +// +// Module: EvtExternalGenFactory +// +// Description: A factory type method to create engines for external physics +// generators like Pythia. +// +// Modification history: +// +// John Back Sept 2012 Module created +// +//------------------------------------------------------------------------------ +// +#include +#include "EvtGenExternal/EvtExternalGenList.hh" + +#include "EvtGenExternal/EvtExternalGenFactory.hh" +#include "EvtGenExternal/EvtPHOTOS.hh" +#include "EvtGenExternal/EvtPythia.hh" +#include "EvtGenExternal/EvtTauola.hh" + +EvtExternalGenList::EvtExternalGenList(bool convertPythiaCodes, std::string pythiaXmlDir, + std::string photonType, bool useEvtGenRandom) { + + // Instantiate the external generator factory + EvtExternalGenFactory* extFactory = EvtExternalGenFactory::getInstance(); + + // Define the external generator "engines" here + extFactory->definePhotosGenerator(photonType, useEvtGenRandom); + + if (pythiaXmlDir.size() < 1) { + // If we have no string defined, check the value of the + // PYTHIA8DATA environment variable which should be set to the + // xmldoc Pythia directory + //char* pythiaDataDir = getenv("PYTHIA8DATA"); + char *pythiaDataDir = gSystem->ExpandPathName("$ALICE_ROOT/PYTHIA8/pythia8175/xmldoc"); + if (pythiaDataDir != 0) {pythiaXmlDir = pythiaDataDir;} + } + + extFactory->definePythiaGenerator(pythiaXmlDir, convertPythiaCodes, + useEvtGenRandom); + + extFactory->defineTauolaGenerator(useEvtGenRandom); + +} + +EvtExternalGenList::~EvtExternalGenList() { +} + +EvtAbsRadCorr* EvtExternalGenList::getPhotosModel() { + + // Define the Photos model, which uses the EvtPhotosEngine class. + EvtPHOTOS* photosModel = new EvtPHOTOS(); + return photosModel; + +} + +std::list EvtExternalGenList::getListOfModels() { + + // Create the Pythia and Tauola models, which use their own engine classes. + EvtPythia* pythiaModel = new EvtPythia(); + EvtTauola* tauolaModel = new EvtTauola(); + + std::list extraModels; + extraModels.push_back(pythiaModel); + extraModels.push_back(tauolaModel); + + // Return the list of models + return extraModels; + +} diff --git a/TEvtGen/EvtGenExternal/EvtExternalGenList.hh b/TEvtGen/EvtGenExternal/EvtExternalGenList.hh new file mode 100644 index 00000000000..bd4d49a320d --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtExternalGenList.hh @@ -0,0 +1,50 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2012 University of Warwick, UK +// +// Module: EvtExternalGenFactory +// +// Description: A factory type method to create engines for external physics +// generators like Pythia. +// +// Modification history: +// +// John Back Sept 2012 Module created +// +//------------------------------------------------------------------------------ +// + +#ifndef EVTEXTERNALGENLIST_HH +#define EVTEXTERNALGENLIST_HH + +#include "EvtGenBase/EvtAbsRadCorr.hh" +#include "EvtGenBase/EvtDecayBase.hh" + +#include + +class EvtExternalGenList { + +public: + + EvtExternalGenList(bool convertPythiaCodes = true, std::string pythiaXmlDir = "", + std::string photonType = "gamma", bool useEvtGenRandom = true); + + virtual ~EvtExternalGenList(); + + std::list getListOfModels(); + + EvtAbsRadCorr* getPhotosModel(); + +protected: + +private: + +}; + +#endif + diff --git a/TEvtGen/EvtGenExternal/EvtPHOTOS.cpp b/TEvtGen/EvtGenExternal/EvtPHOTOS.cpp new file mode 100644 index 00000000000..a6ef2ba0fa2 --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtPHOTOS.cpp @@ -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: 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 +// JJB May 2011 Modified to use new PHOTOS generator +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenExternal/EvtPHOTOS.hh" +#include "EvtGenExternal/EvtExternalGenFactory.hh" + +EvtPHOTOS::EvtPHOTOS() { + + _photosEngine = 0; + +} + +EvtPHOTOS::~EvtPHOTOS() { + +} + +void EvtPHOTOS::doRadCorr(EvtParticle *p) { + + if (_photosEngine == 0) { + _photosEngine = EvtExternalGenFactory::getInstance()->getGenerator(EvtExternalGenFactory::PhotosGenId); + } + + if (_photosEngine != 0) { + _photosEngine->doDecay(p); + } + +} + diff --git a/TEvtGen/EvtGenModels/EvtPHOTOS.hh b/TEvtGen/EvtGenExternal/EvtPHOTOS.hh similarity index 82% rename from TEvtGen/EvtGenModels/EvtPHOTOS.hh rename to TEvtGen/EvtGenExternal/EvtPHOTOS.hh index 3a25244864c..958621e4225 100644 --- a/TEvtGen/EvtGenModels/EvtPHOTOS.hh +++ b/TEvtGen/EvtGenExternal/EvtPHOTOS.hh @@ -27,18 +27,20 @@ #include class EvtParticle; +class EvtAbsExternalGen; -class EvtPHOTOS : public EvtAbsRadCorr{ +class EvtPHOTOS : public EvtAbsRadCorr { public: - //The photon type to use - EvtPHOTOS(std::string photontype="gamma"); - - void doRadCorr(EvtParticle *p); + EvtPHOTOS(); + virtual ~EvtPHOTOS(); + + virtual void doRadCorr(EvtParticle *p); private: - std::string _photontype; + + EvtAbsExternalGen* _photosEngine; }; diff --git a/TEvtGen/EvtGenExternal/EvtPhotosEngine.cpp b/TEvtGen/EvtGenExternal/EvtPhotosEngine.cpp new file mode 100644 index 00000000000..d1b760de816 --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtPhotosEngine.cpp @@ -0,0 +1,253 @@ +#ifdef EVTGEN_PHOTOS +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2011 University of Warwick, UK +// +// Module: EvtPhotosEngine +// +// Description: Interface to the PHOTOS external generator +// +// Modification history: +// +// John Back May 2011 Module created +// +//------------------------------------------------------------------------ + +#include "EvtGenExternal/EvtPhotosEngine.hh" + +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtPhotonParticle.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtRandom.hh" + +#include "Photos/Photos.h" +#include "Photos/PhotosHepMCEvent.h" +#include "Photos/PhotosHepMCParticle.h" +#include "Photos/PhotosParticle.h" + +#include "HepMC/GenVertex.h" +#include "HepMC/SimpleVector.h" +#include "HepMC/Units.h" + +#include +#include +#include + +using std::endl; + +EvtPhotosEngine::EvtPhotosEngine(std::string photonType, bool useEvtGenRandom) { + + _photonType = photonType; + _gammaId = EvtId(-1,-1); + _mPhoton = 0.0; + + report(INFO,"EvtGen")<<"Setting up PHOTOS."<initialise();} + + if (theMother == 0) {return false;} + + // Create a dummy HepMC GenEvent containing a single vertex, with the mother + // assigned as the incoming particle and its daughters as outgoing particles. + // We then pass this event to Photos for processing. + // It will return a modified version of the event, updating the momentum of + // the original particles and will contain any new photon particles. + // We add these extra photons to the mother particle daughter list. + + // Skip running Photos if the particle has no daughters, since we can't add FSR. + // Also skip Photos if the particle has too many daughters (>= 10) to avoid a problem + // with a hard coded upper limit in the PHOENE subroutine. + int nDaug(theMother->getNDaug()); + if (nDaug == 0 || nDaug >= 10) {return false;} + + // Create the dummy event. + HepMC::GenEvent* theEvent = new HepMC::GenEvent(HepMC::Units::GEV, HepMC::Units::MM); + + // Create the decay "vertex". + HepMC::GenVertex* theVertex = new HepMC::GenVertex(); + theEvent->add_vertex(theVertex); + + // Add the mother particle as the incoming particle to the vertex. + HepMC::GenParticle* hepMCMother = this->createGenParticle(theMother, true); + theVertex->add_particle_in(hepMCMother); + + // Find all daughter particles and assign them as outgoing particles to the vertex. + int iDaug(0); + for (iDaug = 0; iDaug < nDaug; iDaug++) { + + EvtParticle* theDaughter = theMother->getDaug(iDaug); + HepMC::GenParticle* hepMCDaughter = this->createGenParticle(theDaughter, false); + theVertex->add_particle_out(hepMCDaughter); + + } + + // Now pass the event to Photos for processing + // Create a Photos event object + Photospp::PhotosHepMCEvent photosEvent(theEvent); + + // Run the Photos algorithm + photosEvent.process(); + + // See if Photos has created new particles. If not, do nothing extra. + int nDecayPart = theVertex->particles_out_size(); + int iLoop(0); + + if (nDecayPart > nDaug) { + + // We have extra particles from Photos + + // Get the iterator of outgoing particles for this vertex + HepMC::GenVertex::particles_out_const_iterator outIter; + for (outIter = theVertex->particles_out_const_begin(); + outIter != theVertex->particles_out_const_end(); ++outIter) { + + // Get the next HepMC GenParticle + HepMC::GenParticle *outParticle = *outIter; + + // Get the three-momentum Photos result for this particle + double px(0.0), py(0.0), pz(0.0); + if (outParticle != 0) { + HepMC::FourVector HepMCP4 = outParticle->momentum(); + px = HepMCP4.px(); + py = HepMCP4.py(); + pz = HepMCP4.pz(); + } + + // Create an empty 4-momentum vector for the new/modified daughters + EvtVector4R newP4; + + if (iLoop < nDaug) { + + // Original daughters + EvtParticle* daugParticle = theMother->getDaug(iLoop); + if (daugParticle != 0) { + + // Keep the original particle mass, but set the three-momentum + // according to what Photos has modified. However, this will + // violate energy conservation (from what Photos has provided). + double mass = daugParticle->mass(); + double energy = sqrt(mass*mass + px*px + py*py + pz*pz); + newP4.set(energy, px, py, pz); + // Set the new four-momentum (FSR applied) + daugParticle->setP4WithFSR(newP4); + + } + + } else { + + // Extra photon particle. Setup the four-momentum object. + double energy = sqrt(_mPhoton*_mPhoton + px*px + py*py + pz*pz); + newP4.set(energy, px, py, pz); + + // Create a new photon particle and add it to the list of daughters + EvtPhotonParticle* gamma = new EvtPhotonParticle(); + gamma->init(_gammaId, newP4); + gamma->setFSRP4toZero(); + gamma->addDaug(theMother); // Let the mother know about this new particle + + } + + // Increment the loop counter for detecting additional photon particles + iLoop++; + + } + + } + + // Cleanup + theEvent->clear(); + delete theEvent; + + return true; + +} + +HepMC::GenParticle* EvtPhotosEngine::createGenParticle(EvtParticle* theParticle, bool incoming) { + + // Method to create an HepMC::GenParticle version of the given EvtParticle. + if (theParticle == 0) {return 0;} + + // Get the 4-momentum (E, px, py, pz) for the EvtParticle + EvtVector4R p4(0.0, 0.0, 0.0, 0.0); + + if (incoming == true) { + p4 = theParticle->getP4Restframe(); + } else { + p4 = theParticle->getP4(); + } + + // Convert this to the HepMC 4-momentum + double E = p4.get(0); + double px = p4.get(1); + double py = p4.get(2); + double pz = p4.get(3); + + HepMC::FourVector hepMC_p4(px, py, pz, E); + + int PDGInt = EvtPDL::getStdHep(theParticle->getId()); + + // Set the status flag for the particle. This is required, otherwise Photos++ + // will crash from out-of-bounds array index problems. + int status = Photospp::PhotosParticle::HISTORY; + if (incoming == false) {status = Photospp::PhotosParticle::STABLE;} + + HepMC::GenParticle* genParticle = new HepMC::GenParticle(hepMC_p4, PDGInt, status); + + return genParticle; + +} + +#endif diff --git a/TEvtGen/EvtGenExternal/EvtPhotosEngine.hh b/TEvtGen/EvtGenExternal/EvtPhotosEngine.hh new file mode 100644 index 00000000000..19dd5156e5b --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtPhotosEngine.hh @@ -0,0 +1,60 @@ +#ifdef EVTGEN_PHOTOS +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2011 University of Warwick, UK +// +// Module: EvtPhotosEngine +// +// Description: Interface to the PHOTOS external generator +// +// Modification history: +// +// John Back May 2011 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTPHOTOSENGINE_HH +#define EVTPHOTOSENGINE_HH + +#include "EvtGenModels/EvtAbsExternalGen.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtVector4R.hh" + +#include "HepMC/GenEvent.h" +#include "HepMC/GenParticle.h" + +#include + +class EvtPhotosEngine : public EvtAbsExternalGen { + +public: + + EvtPhotosEngine(std::string photonType = "gamma", bool useEvtGenRandom = true); + virtual ~EvtPhotosEngine(); + + virtual bool doDecay(EvtParticle* theMother); + + virtual void initialise(); + +protected: + +private: + + std::string _photonType; + EvtId _gammaId; + double _mPhoton; + bool _initialised; + + HepMC::GenParticle* createGenParticle(EvtParticle* theParticle, bool incoming); + +}; + +#endif + +#endif diff --git a/TEvtGen/EvtGenExternal/EvtPythia.cpp b/TEvtGen/EvtGenExternal/EvtPythia.cpp new file mode 100644 index 00000000000..ec085d92856 --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtPythia.cpp @@ -0,0 +1,161 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the 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 +// 2011 University of Warwick, UK +// Module: EvtPythia.cc +// +// Description: Routine to decay a particle according th phase space +// +// Modification history: +// +// RYD January 8, 1997 Module created +// JJB April 2011 Modified to use new Pythia8 interface +// +//------------------------------------------------------------------------ + +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtSpinDensity.hh" + +#include "EvtGenExternal/EvtPythia.hh" + +#include "EvtGenExternal/EvtExternalGenFactory.hh" +#include "EvtGenModels/EvtAbsExternalGen.hh" +#include "EvtGenBase/EvtDecayBase.hh" + +#include +#include + +EvtPythia::EvtPythia() { + + // Set the Pythia engine to a null pointer at first. + // When we do the decay, we retrieve the pointer to the Pythia engine + // and use that for all decays. All clones will use the same Pythia engine. + _pythiaEngine = 0; + +} + +EvtPythia::~EvtPythia() { + _commandList.clear(); +} + +std::string EvtPythia::getName(){ + + return "PYTHIA"; + +} + +EvtDecayBase* EvtPythia::clone(){ + + return new EvtPythia(); + +} + + +void EvtPythia::init(){ + + // Do not check for any arguments. The PythiaEngine will check + // to see if there is an integer specifying the decay physics, + // otherwise it just uses phase-space. + +} + +void EvtPythia::initProbMax(){ + + noProbMax(); + +} + +void EvtPythia::decay( EvtParticle *p ){ + + // We have to initialise the Pythia engine after the decay.dec files have been read in, + // since we will be modifying Pythia data tables, and that is only possible once we have + // defined all Pythia-type decays we want to use. + // We check to see if the engine has been created before doing the decay. + // This should only create the full Pythia engine once, and all clones will point to the same engine. + + if (_pythiaEngine == 0) { + _pythiaEngine = EvtExternalGenFactory::getInstance()->getGenerator(EvtExternalGenFactory::PythiaGenId); + } + + if (_pythiaEngine != 0) { + _pythiaEngine->doDecay(p); + } + + this->fixPolarisations(p); + +} + +void EvtPythia::fixPolarisations(EvtParticle *p) { + + // Special case to handle the J/psi polarisation + + if (p == 0) {return;} + + int nDaug = p->getNDaug(); + int i(0); + + static EvtId Jpsi = EvtPDL::getId("J/psi"); + + for (i = 0; i < nDaug; i++){ + + EvtParticle* theDaug = p->getDaug(i); + + if (theDaug != 0) { + + if (theDaug->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 = theDaug->getP4(); + + double alpha = atan2(p4Psi.get(2),p4Psi.get(1)); + double beta = acos(p4Psi.get(3)/p4Psi.d3mag()); + + theDaug->setSpinDensityForwardHelicityBasis(rho,alpha,beta,0.0); + setDaughterSpinDensity(i); + + } + } + } +} + +std::string EvtPythia::commandName() { + + // Allow backward compatibility for decay.dec files + // having JetSetPar parameters. They are obsolete for Pythia 8, + // since the JetSet-type array variables do not exist. + // Need to think about including user defined parameters in + // EvtPythiaEngine::updatePhysicsParameters(). + return std::string("JetSetPar"); + +} + +void EvtPythia::command(std::string cmd) { + + // Locally store commands in a vector + _commandList.push_back(cmd); + +} diff --git a/TEvtGen/EvtGenExternal/EvtPythia.hh b/TEvtGen/EvtGenExternal/EvtPythia.hh new file mode 100644 index 00000000000..ba25cdf35c0 --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtPythia.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 +// 2011 University of Warwick, UK +// +// Module: EvtGen/EvtPythia.hh +// +// Description: +// Class to handle generic phase space decays not done +// in other decay models. +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// JJB April 2011 Modified to use new Pythia8 interface +// +//------------------------------------------------------------------------ + +#ifndef EVTPYTHIA_HH +#define EVTPYTHIA_HH + +#include "EvtGenBase/EvtDecayIncoherent.hh" + +#include +#include + +class EvtParticle; +class EvtAbsExternalGen; +class EvtDecayBase; + +class EvtPythia: public EvtDecayIncoherent { + +public: + + EvtPythia(); + virtual ~EvtPythia(); + + std::string getName(); + + EvtDecayBase* clone(); + + void initProbMax(); + + void init(); + + void decay(EvtParticle *p); + + std::string commandName(); + void command(std::string); + +protected: + + EvtAbsExternalGen* _pythiaEngine; + +private: + + void fixPolarisations(EvtParticle *p); + std::vector _commandList; + +}; + +#endif + diff --git a/TEvtGen/EvtGenExternal/EvtPythia6CommandConverter.cpp b/TEvtGen/EvtGenExternal/EvtPythia6CommandConverter.cpp new file mode 100644 index 00000000000..6c83e2f63a0 --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtPythia6CommandConverter.cpp @@ -0,0 +1,236 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2012 University of Warwick, UK +// +// Module: EvtPythia6CommandConverter +// +// Description: Function to replace Pythia 6 commands with the +// corresponding Pythia 8 commands. +// +// Modification history: +// +// Daniel Craik March 2012 Module created +// +//------------------------------------------------------------------------ + +#include "EvtGenExternal/EvtPythia6CommandConverter.hh" + +#include "EvtGenBase/EvtReport.hh" + +#include +#include + +using std::endl; + +std::vector convertPythia6Command(Command command) { + std::string module = command["MODULE"]; + std::string param = command["PARAM"]; + std::string value = command["VALUE"]; + std::vector commandStrings; + if(module == "MSTJ") { + switch(atoi(param.c_str())) { + //1,2,3 + case 11: + switch(atoi(value.c_str())) { + case 3: + commandStrings.push_back("StringZ:usePetersonC = on"); + commandStrings.push_back("StringZ:usePetersonB = on"); + commandStrings.push_back("StringZ:usePetersonH = on"); + break; + case 1: + case 4: + report(ERROR,"EvtGen")<<"Pythia6 parameter: MSTJ(11)="< +#include + +#ifndef EVTPYTHIA6COMMANDCONVERTER_HH +#define EVTPYTHIA6COMMANDCONVERTER_HH + +std::vector convertPythia6Command(Command command); + +#endif diff --git a/TEvtGen/EvtGenExternal/EvtPythiaEngine.cpp b/TEvtGen/EvtGenExternal/EvtPythiaEngine.cpp new file mode 100644 index 00000000000..c649b446738 --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtPythiaEngine.cpp @@ -0,0 +1,803 @@ +#ifdef EVTGEN_PYTHIA +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2011 University of Warwick, UK +// +// Module: EvtPythiaEngine +// +// Description: Interface to the Pytha 8 external generator +// +// Modification history: +// +// John Back April 2011 Module created +// +//------------------------------------------------------------------------ + +#include "EvtGenExternal/EvtPythiaEngine.hh" + +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtSpinType.hh" +#include "EvtGenBase/EvtParticleFactory.hh" +#include "EvtGenBase/EvtReport.hh" + +#include "EvtGenBase/EvtExtGeneratorCommandsTable.hh" +#include "EvtGenExternal/EvtPythia6CommandConverter.hh" + +//#include "Pythia8/Event.h" +#include "pythia8175/include/Event.h" + +#include +#include + +using std::endl; + +EvtPythiaEngine::EvtPythiaEngine(std::string xmlDir, bool convertPhysCodes, + bool useEvtGenRandom) { + + // Create two Pythia generators. One will be for generic + // Pythia decays in the decay.dec file. The other one will be to + // only decay aliased particles, which are in general "signal" + // decays different from those in the decay.dec file. + // Even though it is not possible to have two different particle + // versions in one Pythia generator, we can use two generators to + // get the required behaviour. + + report(INFO,"EvtGen")<<"Creating generic Pythia generator"<particleData; + + report(INFO,"EvtGen")<<"Creating alias Pythia generator"<particleData; + + _thePythiaGenerator = 0; + _daugPDGVector.clear(); _daugP4Vector.clear(); + + _convertPhysCodes = convertPhysCodes; + + // Specify if we are going to use the random number generator (engine) + // from EvtGen for Pythia 8. + _useEvtGenRandom = useEvtGenRandom; + + _evtgenRandom = new EvtPythiaRandom(); + + _initialised = false; + +} + +EvtPythiaEngine::~EvtPythiaEngine() { + + delete _genericPythiaGen; _genericPythiaGen = 0; + delete _aliasPythiaGen; _aliasPythiaGen = 0; + + delete _evtgenRandom; _evtgenRandom = 0; + + _thePythiaGenerator = 0; + + this->clearDaughterVectors(); + this->clearPythiaModeMap(); + +} + +void EvtPythiaEngine::clearDaughterVectors() { + _daugPDGVector.clear(); + _daugP4Vector.clear(); +} + +void EvtPythiaEngine::clearPythiaModeMap() { + + PythiaModeMap::iterator iter; + for (iter = _pythiaModeMap.begin(); iter != _pythiaModeMap.end(); ++iter) { + + std::vector modeVector = iter->second; + modeVector.clear(); + + } + + _pythiaModeMap.clear(); + +} + +void EvtPythiaEngine::initialise() { + + if (_initialised) {return;} + + this->clearPythiaModeMap(); + + this->updateParticleLists(); + + // Hadron-level processes only (hadronized, string fragmentation and secondary decays). + // We do not want to generate the full pp or e+e- event structure etc.. + _genericPythiaGen->readString("ProcessLevel:all = off"); + _aliasPythiaGen->readString("ProcessLevel:all = off"); + + // Apply any other physics (or special particle) requirements/cuts etc.. + this->updatePhysicsParameters(); + + // Set the random number generator + if (_useEvtGenRandom == true) { + + _genericPythiaGen->setRndmEnginePtr(_evtgenRandom); + _aliasPythiaGen->setRndmEnginePtr(_evtgenRandom); + + } + + _genericPythiaGen->init(); + _aliasPythiaGen->init(); + + _initialised = true; + +} + +bool EvtPythiaEngine::doDecay(EvtParticle* theParticle) { + + // Store the mother particle within a Pythia8 Event object. + // Then do the hadron level decays. + // The EvtParticle must be a colour singlet (meson/baryon/lepton), i.e. not a gluon or quark + + // We delete any daughters the particle may have, since we are asking Pythia + // to generate the decay anew. Also note that _any_ Pythia decay allowed for the particle + // will be generated and not the specific Pythia decay mode that EvtGen has already + // specified. This is necessary since we only want to initialise the Pythia decay table + // once; all Pythia branching fractions for a given mother particle are renormalised to sum to 1.0. + // In EvtGen decay.dec files, it may be the case that Pythia decays are only used + // for some of the particle decays (i.e. Pythia BF sum < 1.0). As we loop over many events, + // the total frequency for each Pythia decay mode will normalise correctly to what + // we wanted via the specifications made to the decay.dec file, even though event-by-event + // the EvtGen decay channel and the Pythia decay channel may be different. + + if (_initialised == false) {this->initialise();} + + if (theParticle == 0) { + report(INFO,"EvtGen")<<"Error in EvtPythiaEngine::doDecay. The mother particle is null. Not doing any Pythia decay."<getNDaug() != 0) { + bool keepChannel(false); + theParticle->deleteDaughters(keepChannel); + } + + EvtId particleId = theParticle->getId(); + int isAlias = particleId.isAlias(); + + // Choose the generator depending if we have an aliased (parent) particle or not + _thePythiaGenerator = _genericPythiaGen; + if (isAlias == 1) {_thePythiaGenerator = _aliasPythiaGen;} + + //_thePythiaGenerator->settings.listChanged(); + + // Need to use the reference to the Pythia8::Event object, + // otherwise it will just return a new empty, default event object. + Pythia8::Event& theEvent = _thePythiaGenerator->event; + theEvent.reset(); + + // Initialise the event to be the particle rest frame + int PDGCode = EvtPDL::getStdHep(particleId); + + int status(1); + int colour(0), anticolour(0); + double px(0.0), py(0.0), pz(0.0); + double m0 = theParticle->mass(); + double E = m0; + + theEvent.append(PDGCode, status, colour, anticolour, px, py, pz, E, m0); + + // Generate the Pythia event + int iTrial(0); + bool generatedEvent(false); + for (iTrial = 0; iTrial < 10; iTrial++) { + + generatedEvent = _thePythiaGenerator->next(); + if (generatedEvent) {break;} + + } + + bool success(false); + + if (generatedEvent) { + + // Store the daughters for this particle from the Pythia decay tree. + // This is a recursive function that will continue looping through + // all available daughters until the first set of non-quark and non-gluon + // particles are encountered in the Pythia Event structure. + + // First, clear up the internal vectors storing the daughter + // EvtId types and 4-momenta. + this->clearDaughterVectors(); + + // Now store the daughter info. Since this is a recursive function + // to loop through the full Pythia decay tree, we do not want to create + // EvtParticles here but in the next step. + this->storeDaughterInfo(theParticle, 1); + + // Now create the EvtParticle daughters of the (parent) particle. + // We need to use the EvtParticle::makeDaughters function + // owing to the way EvtParticle stores parent-daughter information. + this->createDaughterEvtParticles(theParticle); + + //theParticle->printTree(); + //theEvent.list(true, true); + + success = true; + + } + + return success; + +} + +void EvtPythiaEngine::storeDaughterInfo(EvtParticle* theParticle, int startInt) { + + Pythia8::Event& theEvent = _thePythiaGenerator->event; + + std::vector daugList = theEvent.daughterList(startInt); + + std::vector::iterator daugIter; + for (daugIter = daugList.begin(); daugIter != daugList.end(); ++daugIter) { + + int daugInt = *daugIter; + + // Ask if the daughter is a quark or gluon. If so, recursively search again. + Pythia8::Particle& daugParticle = theEvent[daugInt]; + + if (daugParticle.isQuark() || daugParticle.isGluon()) { + + // Recursively search for correct daughter type + this->storeDaughterInfo(theParticle, daugInt); + + } else { + + // We have a daughter that is not a quark nor gluon particle. + // Make sure we are not double counting particles, since several quarks + // and gluons make one particle. + // Set the status flag for any "new" particle to say that we have stored it. + // Use status flag = 1000 (within the user allowed range for Pythia codes). + + // Check that the status flag for the particle is not equal to 1000 + int statusCode = daugParticle.status(); + if (statusCode != 1000) { + + int daugPDGInt = daugParticle.id(); + + double px = daugParticle.px(); + double py = daugParticle.py(); + double pz = daugParticle.pz(); + double E = daugParticle.e(); + EvtVector4R daughterP4(E, px, py, pz); + + // Now store the EvtId and 4-momentum in the internal vectors + _daugPDGVector.push_back(daugPDGInt); + _daugP4Vector.push_back(daughterP4); + + // Set the status flag for the Pythia particle to let us know + // that we have already considered it to avoid double counting. + daugParticle.status(1000); + + } // Status code != 1000 + + } + + } + +} + +void EvtPythiaEngine::createDaughterEvtParticles(EvtParticle* theParent) { + + if (theParent == 0) { + report(INFO,"EvtGen")<<"Error in EvtPythiaEngine::createDaughterEvtParticles. The parent is null"< daugAliasIdVect(0); + + EvtId particleId = theParent->getId(); + // Check to see if we have an anti-particle. If we do, charge conjugate the particle id to get the + // Pythia "alias" we can compare with the defined (particle) Pythia modes. + int PDGId = EvtPDL::getStdHep(particleId); + int aliasInt = particleId.getAlias(); + int pythiaAliasInt(aliasInt); + + if (PDGId < 0) { + // We have an anti-particle. + EvtId conjPartId = EvtPDL::chargeConj(particleId); + pythiaAliasInt = conjPartId.getAlias(); + } + + std::vector pythiaModes = _pythiaModeMap[pythiaAliasInt]; + + // Loop over all available Pythia decay modes and find the channel that matches + // the daughter ids. Set each daughter id to also use the alias integer. + // This will then convert the Pythia generated channel to the EvtGen alias defined one. + + std::vector::iterator modeIter; + bool gotMode(false); + + for (modeIter = pythiaModes.begin(); modeIter != pythiaModes.end(); ++modeIter) { + + // Stop the loop if we have the right decay mode channel + if (gotMode) {break;} + + int pythiaModeInt = *modeIter; + + EvtDecayBase* decayModel = EvtDecayTable::getInstance()->findDecayModel(aliasInt, pythiaModeInt); + + if (decayModel != 0) { + + int nModeDaug = decayModel->getNDaug(); + + // We need to make sure that the number of daughters match + if (nDaughters == nModeDaug) { + + int iModeDaug(0); + for (iModeDaug = 0; iModeDaug < nModeDaug; iModeDaug++) { + + EvtId daugId = decayModel->getDaug(iModeDaug); + int daugPDGId = EvtPDL::getStdHep(daugId); + // Pythia has used the right PDG codes for this decay mode, even for conjugate modes + int pythiaPDGId = _daugPDGVector[iModeDaug]; + + if (daugPDGId == pythiaPDGId) { + daugAliasIdVect.push_back(daugId); + } + + } // Loop over EvtGen mode daughters + + int daugAliasSize = daugAliasIdVect.size(); + if (daugAliasSize == nDaughters) { + // All daughter Id codes are accounted for. Set the flag to stop the loop. + gotMode = true; + } else { + // We do not have the correct daughter ordering. Clear the id vector + // and try another mode. + daugAliasIdVect.clear(); + } + + } // Same number of daughters + + } // decayModel != 0 + + } // Loop over available Pythia modes + + if (gotMode == false) { + + // We did not find a match for the daughter aliases. Just use the normal PDG codes + // from the Pythia decay result + int iPyDaug(0); + for (iPyDaug = 0; iPyDaug < nDaughters; iPyDaug++) { + + int daugPDGCode = _daugPDGVector[iPyDaug]; + EvtId daugPyId = EvtPDL::evtIdFromStdHep(daugPDGCode); + daugAliasIdVect.push_back(daugPyId); + + } + } + + // Make the EvtParticle daughters (with correct alias id's). Their 4-momenta are uninitialised. + theParent->makeDaughters(nDaughters, daugAliasIdVect); + + // Now set the 4-momenta of the daughters. + int iDaug(0); + // Can use an iterator here, but we already had to use the vector size... + for (iDaug = 0; iDaug < nDaughters; iDaug++) { + + EvtParticle* theDaughter = theParent->getDaug(iDaug); + + // Set the correct 4-momentum for each daughter particle. + if (theDaughter != 0) { + EvtId theDaugId = daugAliasIdVect[iDaug]; + const EvtVector4R theDaugP4 = _daugP4Vector[iDaug]; + theDaughter->init(theDaugId, theDaugP4); + } + + } + +} + +void EvtPythiaEngine::updateParticleLists() { + + // Use the EvtGen decay table (decay/user.dec) to update particle entries + // for Pythia. Pythia 8 should use the latest PDG codes, so if the evt.pdl + // file is up to date, just let Pythia 8 find the particle properties + // knowing the PDG code integer. If we want to use evt.pdl for _all_ + // particle properties, then we need to make sure that this is up to date, + // and modify the code in this class to read that data and use it... + // Using the PDG code only also avoids the need to convert EvtGen particle names + // to Pythia particle names. + + // Loop over all entries in the EvtPDL particle data table. + // Aliases are added at the end with id numbers equal to the + // original particle, but with alias integer = lastPDLEntry+1 etc.. + int iPDL; + int nPDL = EvtPDL::entries(); + + // Reset the _addedPDGCodes map that keeps track + // of any new particles added to the Pythia input data stream + _addedPDGCodes.clear(); + + for (iPDL = 0; iPDL < nPDL; iPDL++) { + + EvtId particleId = EvtPDL::getEntry(iPDL); + int aliasInt = particleId.getAlias(); + + // Check which particles have a Pythia decay defined. + // Get the list of all possible decays for the particle, using the alias integer. + // If the particle is not actually an alias, aliasInt = idInt. + + // Should change isJetSet to isPythia eventually. + bool hasPythiaDecays = EvtDecayTable::getInstance()->hasPythia(aliasInt); + + if (hasPythiaDecays) { + + int isAlias = particleId.isAlias(); + + int PDGCode = EvtPDL::getStdHep(particleId); + + // Decide what generator to use depending on ether we have + // an alias particle or not + _thePythiaGenerator = _genericPythiaGen; + _theParticleData = _genericPartData; + if (isAlias == 1) { + _thePythiaGenerator = _aliasPythiaGen; + _theParticleData = _aliasPartData; + } + + // Find the Pythia particle name given the standard PDG code integer + std::string dataName = _theParticleData.name(PDGCode); + bool alreadyStored(false); + if (_addedPDGCodes.find(abs(PDGCode)) != _addedPDGCodes.end()) {alreadyStored = true;} + + if (dataName == " " && alreadyStored == false) { + + // Particle and its antiparticle does not exist in the Pythia database. + // Create a new particle, then create the new decay modes. + this->createPythiaParticle(particleId, PDGCode); + + } else { + + // Particle exists in the Pythia database. + // Could update mass/lifetime values here. For now just use Pythia defaults. + + } + + // For the particle, create the Pythia decay modes. + // Update Pythia data tables. + this->updatePythiaDecayTable(particleId, aliasInt, PDGCode); + + } // Loop over Pythia decays + + } // Loop over EvtPDL entries + + //report(INFO,"EvtGen")<<"Writing out changed generic Pythia decay list"<particleData.listChanged(); + + //report(INFO,"EvtGen")<<"Writing out changed alias Pythia decay list"<particleData.listChanged(); + +} + +void EvtPythiaEngine::updatePythiaDecayTable(EvtId& particleId, int aliasInt, int PDGCode) { + + // Update the particle data table in Pythia. + // The tables store information about the allowed decay modes + // whre the PDGId for all particles must be positive; anti-particles are stored + // with the corresponding particle entry. + // Since we do not want to implement CP violation here, just use the same branching + // fractions for particle and anti-particle modes. + + int nModes = EvtDecayTable::getInstance()->getNModes(aliasInt); + int iMode(0); + + bool firstMode(true); + + // Only process positive PDG codes. + if (PDGCode < 0) {return;} + + // Keep track of which decay modes are Pythia decays for each aliasInt + std::vector pythiaModes(0); + + // Loop over the decay modes for this particle + for (iMode = 0; iMode < nModes; iMode++) { + + EvtDecayBase* decayModel = EvtDecayTable::getInstance()->findDecayModel(aliasInt, iMode); + + if (decayModel != 0) { + + int nDaug = decayModel->getNDaug(); + + // If the decay mode has no daughters, then that means that there will be + // no entries for any submode re-definitions for Pythia. + // This sometimes occurs for any mode using non-standard Pythia 6 codes. + // Do not refine the decay mode, i.e. accept the Pythia 8 default (if it exists). + if (nDaug > 0) { + + // Check to see if we have a Pythia decay mode + std::string modelName = decayModel->getModelName(); + + if (modelName == "PYTHIA") { + + // Keep track which decay mode is a Pythia one. We need this in order to + // reassign alias Id values for particles generated in the decay. + pythiaModes.push_back(iMode); + + std::ostringstream oss; + oss.setf(std::ios::scientific); + // Write out the absolute value of the PDG code, since + // particles and anti-particles occupy the same part of the Pythia table. + oss << PDGCode; + + if (firstMode) { + // Create a new channel + oss <<":oneChannel = "; + firstMode = false; + } else { + // Add the channel + oss <<":addChannel = "; + } + + // Select all channels (particle and anti-particle). + // For CP violation, or different BFs for particle and anti-particle, + // use options 2 or 3 (not here). + int onMode(1); + oss << onMode << " "; + + double BF = decayModel->getBranchingFraction(); + oss << BF << " "; + + // Need to convert the old Pythia physics mode integers with the new ones + // To do this, get the model argument and write a conversion method. + int modeInt = this->getModeInt(decayModel); + oss << modeInt; + + int iDaug(0); + for (iDaug = 0; iDaug < nDaug; iDaug++) { + + EvtId daugId = decayModel->getDaug(iDaug); + int daugPDG = EvtPDL::getStdHep(daugId); + oss << " " << daugPDG; + + } // Daughter list + + _thePythiaGenerator->readString(oss.str()); + + } // is Pythia + + } else { + + report(INFO,"EvtGen")<<"Warning in EvtPythiaEngine. Trying to redefine Pythia table for " + <readString(rescaleStr.str()); + +} + +int EvtPythiaEngine::getModeInt(EvtDecayBase* decayModel) { + + int tmpModeInt(0), modeInt(0); + + if (decayModel != 0) { + + int nVars = decayModel->getNArg(); + // Just read the first integer, which specifies the Pythia decay model. + // Ignore any other values. + if (nVars > 0) { + tmpModeInt = static_cast(decayModel->getArg(0)); + } + } + + if (_convertPhysCodes) { + + // Extra code to convert the old Pythia decay model integer MDME(ICC,2) to the new one. + // This should be removed eventually after updating decay.dec files to use + // the new convention. + + if (tmpModeInt == 0) { + modeInt = 0; // phase-space + } else if (tmpModeInt == 1) { + modeInt = 1; // omega or phi -> 3pi + } else if (tmpModeInt == 2) { + modeInt = 11; // Dalitz decay + } else if (tmpModeInt == 3) { + modeInt = 2; // V -> PS PS + } else if (tmpModeInt == 4) { + modeInt = 92; // onium -> ggg or gg gamma + } else if (tmpModeInt == 11) { + modeInt = 42; // phase-space of hadrons from available quarks + } else if (tmpModeInt == 12) { + modeInt = 42; // phase-space for onia resonances + } else if (tmpModeInt == 13) { + modeInt = 43; // phase-space of at least 3 hadrons + } else if (tmpModeInt == 14) { + modeInt = 44; // phase-space of at least 4 hadrons + } else if (tmpModeInt == 15) { + modeInt = 45; // phase-space of at least 5 hadrons + } else if (tmpModeInt >= 22 && tmpModeInt <= 30) { + modeInt = tmpModeInt + 40; // phase space of hadrons with fixed multiplicity (modeInt - 60) + } else if (tmpModeInt == 31) { + modeInt = 42; // two or more quarks phase-space; one spectactor quark + } else if (tmpModeInt == 32) { + modeInt = 91; // qqbar or gg pair + } else if (tmpModeInt == 33) { + modeInt = 0; // triplet q X qbar, where X = gluon or colour singlet (superfluous, since g's are created anyway) + } else if (tmpModeInt == 41) { + modeInt = 21; // weak decay phase space, weighting nu_tau spectrum + } else if (tmpModeInt == 42) { + modeInt = 22; // weak decay V-A matrix element + } else if (tmpModeInt == 43) { + modeInt = 22; // weak decay V-A matrix element, quarks as jets (superfluous) + } else if (tmpModeInt == 44) { + modeInt = 22; // weak decay V-A matrix element, parton showers (superfluous) + } else if (tmpModeInt == 48) { + modeInt = 23; // weak decay V-A matrix element, at least 3 decay products + } else if (tmpModeInt == 50) { + modeInt = 0; // default behaviour + } else if (tmpModeInt == 51) { + modeInt = 0; // step threshold (channel switched off when mass daughters > mother mass + } else if (tmpModeInt == 52 || tmpModeInt == 53) { + modeInt = 0; // beta-factor threshold + } else if (tmpModeInt == 84) { + modeInt = 42; // unknown physics process - just use phase-space + } else if (tmpModeInt == 101) { + modeInt = 0; // continuation line + } else if (tmpModeInt == 102) { + modeInt = 0; // off mass shell particles. + } else { + report(INFO,"EvtGen")<<"Pythia mode integer "< 0) { + colour = 1; // single quarks + } + + double m0 = EvtPDL::getMeanMass(particleId); + double mWidth = EvtPDL::getWidth(particleId); + double mMin = EvtPDL::getMinMass(particleId); + double mMax = EvtPDL::getMaxMass(particleId); + + double tau0 = EvtPDL::getctau(particleId); + + std::ostringstream oss; + oss.setf(std::ios::scientific); + int absPDGCode = abs(PDGCode); + oss << absPDGCode << ":new = " << aliasName << " " << antiName << " " + << spin << " " << charge << " " << colour << " " + << m0 << " " << mWidth << " " << mMin << " " << mMax << " " + << tau0; + + // Pass this information to Pythia + _thePythiaGenerator->readString(oss.str()); + + // Also store the absolute value of the PDG entry + // to keep track of which new particles have been added, + // which also automatically includes the anti-particle. + // We need to avoid creating new anti-particles when + // they already exist when the particle was added. + _addedPDGCodes[absPDGCode] = 1; + +} + +void EvtPythiaEngine::updatePhysicsParameters() { + + // Update any more Pythia physics (or special particle) requirements/cuts etc.. + // This should be used if any of the Pythia 6 parameters like JetSetPar MSTJ(i) = x + // are needed. Such commands will need to be implemented using the new interface + // pythiaGenerator->readString(cmd); Here cmd is a string telling Pythia 8 + // what physics parameters to change. This will need to be done for the generic and + // alias generator pointers, as appropriate. + + // Set the multiplicity level for hadronic weak decays + std::string multiWeakCut("ParticleDecays:multIncreaseWeak = 2.0"); + _genericPythiaGen->readString(multiWeakCut); + _aliasPythiaGen->readString(multiWeakCut); + + // Set the multiplicity level for all other decays + std::string multiCut("ParticleDecays:multIncrease = 4.5"); + _genericPythiaGen->readString(multiCut); + _aliasPythiaGen->readString(multiCut); + + //Now read in any custom configuration entered in the XML + GeneratorCommands commands = EvtExtGeneratorCommandsTable::getInstance()->getCommands("PYTHIA"); + GeneratorCommands::iterator it = commands.begin(); + + for( ; it!=commands.end(); it++) { + + Command command = *it; + std::vector commandStrings; + + if(command["VERSION"] == "PYTHIA6") { + report(INFO,"EvtGen")<<"Converting Pythia 6 command: "<::iterator it2 = commandStrings.begin(); + for( ; it2!=commandStrings.end(); it2++) { + report(INFO,"EvtGen")<<"Configuring generic Pythia generator: " << (*it2) << endl; + _genericPythiaGen->readString(*it2); + } + } + if(generator == "ALIAS" || generator == "Alias" || generator == "alias" || + generator == "BOTH" || generator == "Both" || generator == "both") { + std::vector::iterator it2 = commandStrings.begin(); + for( ; it2!=commandStrings.end(); it2++) { + report(INFO,"EvtGen")<<"Configuring alias Pythia generator: " << (*it2) << endl; + _aliasPythiaGen->readString(*it2); + } + } + } +} + +#endif diff --git a/TEvtGen/EvtGenExternal/EvtPythiaEngine.hh b/TEvtGen/EvtGenExternal/EvtPythiaEngine.hh new file mode 100644 index 00000000000..5915f21de96 --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtPythiaEngine.hh @@ -0,0 +1,95 @@ +#ifdef EVTGEN_PYTHIA +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2011 University of Warwick, UK +// +// Module: EvtPythiaEngine +// +// Description: Interface to the Pytha 8 external generator +// +// Modification history: +// +// John Back April 2011 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTPYTHIAENGINE_HH +#define EVTPYTHIAENGINE_HH + +#include "EvtGenModels/EvtAbsExternalGen.hh" +#include "EvtGenExternal/EvtPythiaRandom.hh" + +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtVector4R.hh" + +//#include "Pythia8/Pythia.h" +//#include "Pythia8/ParticleData.h" +#include "pythia8175/include/Pythia.h" +#include "pythia8175/include/ParticleData.h" + +#include +#include +#include + +class EvtPythiaEngine : public EvtAbsExternalGen { + +public: + + EvtPythiaEngine(std::string xmlDir, + bool convertPhysCodes = false, + bool useEvtGenRandom = true); + virtual ~EvtPythiaEngine(); + + virtual bool doDecay(EvtParticle* theMother); + + virtual void initialise(); + +protected: + +private: + + void updateParticleLists(); + void updatePhysicsParameters(); + + void createPythiaParticle(EvtId& particleId, int PDGCode); + void updatePythiaDecayTable(EvtId& particleId, int aliasInt, int PDGCode); + void storeDaughterInfo(EvtParticle* theParticle, int startInt); + + void clearDaughterVectors(); + void clearPythiaModeMap(); + + void createDaughterEvtParticles(EvtParticle* theParent); + + int getModeInt(EvtDecayBase* decayModel); + + Pythia8::Pythia* _genericPythiaGen; + Pythia8::Pythia* _aliasPythiaGen; + Pythia8::Pythia* _thePythiaGenerator; + + Pythia8::ParticleData _genericPartData, _aliasPartData; + Pythia8::ParticleData _theParticleData; + + std::vector _daugPDGVector; + std::vector _daugP4Vector; + + typedef std::map > PythiaModeMap; + PythiaModeMap _pythiaModeMap; + + bool _convertPhysCodes, _initialised, _useEvtGenRandom; + + EvtPythiaRandom* _evtgenRandom; + + std::map _addedPDGCodes; + +}; + +#endif + +#endif diff --git a/TEvtGen/EvtGenExternal/EvtPythiaRandom.hh b/TEvtGen/EvtGenExternal/EvtPythiaRandom.hh new file mode 100644 index 00000000000..eb0505833c5 --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtPythiaRandom.hh @@ -0,0 +1,46 @@ +#ifdef EVTGEN_PYTHIA +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2013 University of Warwick, UK +// +// Module: EvtGenExternal/EvtPythiaRandom.hh +// +// Description: Class to specify the chosen EvtGen random number (engine) +// to also be used for Pythia 8. +// +// Modification history: +// +// JJB January 2013 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTPYTHIARANDOM_HH +#define EVTPYTHIARANDOM_HH + +#include "EvtGenBase/EvtRandom.hh" + +//#include "Pythia8/Basics.h" +#include "pythia8175/include/Basics.h" + +class EvtPythiaRandom : public Pythia8::RndmEngine { + +public: + + EvtPythiaRandom() {}; + + virtual ~EvtPythiaRandom() {}; + + virtual double flat() {return EvtRandom::Flat();} + +private: + +}; + +#endif + +#endif diff --git a/TEvtGen/EvtGenExternal/EvtTauola.cpp b/TEvtGen/EvtGenExternal/EvtTauola.cpp new file mode 100644 index 00000000000..7297020d414 --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtTauola.cpp @@ -0,0 +1,82 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2011 University of Warwick, UK +// +// Description: Use the Tauola external generator for tau decays +// +// Modification history: +// +// John Back May 2011 Module created +// +//------------------------------------------------------------------------ + +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtParticle.hh" + +#include "EvtGenExternal/EvtTauola.hh" + +#include "EvtGenExternal/EvtExternalGenFactory.hh" +#include "EvtGenModels/EvtAbsExternalGen.hh" +#include "EvtGenBase/EvtDecayBase.hh" + +#include +#include +#include + +EvtTauola::EvtTauola() { + + // Set the Tauola engine to a null pointer at first. + // When we do the decay, we retrieve the pointer to the Tauola engine + // and use that for all decays. All clones will use the same Tauola engine. + _tauolaEngine = 0; + +} + +EvtTauola::~EvtTauola() {} + +std::string EvtTauola::getName(){ + + return "TAUOLA"; + +} + +EvtDecayBase* EvtTauola::clone(){ + + return new EvtTauola(); + +} + + +void EvtTauola::init(){ + + +} + +void EvtTauola::initProbMax(){ + + noProbMax(); + +} + +void EvtTauola::decay( EvtParticle *p ){ + + // We check to see if the Tauola engine has been created before doing the decay. + // This should only create the full Tauola engine once, and all clones will + // point to the same engine. + + if (_tauolaEngine == 0) { + _tauolaEngine = EvtExternalGenFactory::getInstance()->getGenerator(EvtExternalGenFactory::TauolaGenId); + } + + if (_tauolaEngine != 0) { + _tauolaEngine->doDecay(p); + } + +} diff --git a/TEvtGen/EvtGenModels/EvtJscontCDF.hh b/TEvtGen/EvtGenExternal/EvtTauola.hh similarity index 62% rename from TEvtGen/EvtGenModels/EvtJscontCDF.hh rename to TEvtGen/EvtGenExternal/EvtTauola.hh index 4eb5ef50559..42f9be65f2f 100644 --- a/TEvtGen/EvtGenModels/EvtJscontCDF.hh +++ b/TEvtGen/EvtGenExternal/EvtTauola.hh @@ -6,40 +6,48 @@ // of it, please give an appropriate acknowledgement. // // Copyright Information: See EvtGen/COPYRIGHT -// Copyright (C) 1998 Caltech, UCSB +// Copyright (C) 2011 University of Warwick, UK // -// Module: EvtGen/EvtJscont.hh -// -// Description: +// Description: Use the Tauola external generator for tau decays // // Modification history: // -// DJL/RYD August 11, 1998 Module created +// John Back May 2011 Module created // //------------------------------------------------------------------------ -#ifndef EVTJSCONTCDF_HH -#define EVTJSCONTCDF_HH +#ifndef EVTTAUOLA_HH +#define EVTTAUOLA_HH #include "EvtGenBase/EvtDecayIncoherent.hh" class EvtParticle; +class EvtAbsExternalGen; +class EvtDecayBase; -class EvtJscontCDF:public EvtDecayIncoherent { +class EvtTauola: public EvtDecayIncoherent { public: - - EvtJscontCDF() {} - virtual ~EvtJscontCDF(); + + EvtTauola(); + virtual ~EvtTauola(); std::string getName(); + EvtDecayBase* clone(); - void init(); void initProbMax(); + void init(); void decay(EvtParticle *p); +protected: + + EvtAbsExternalGen* _tauolaEngine; + +private: + }; #endif + diff --git a/TEvtGen/EvtGenExternal/EvtTauolaEngine.cpp b/TEvtGen/EvtGenExternal/EvtTauolaEngine.cpp new file mode 100644 index 00000000000..6fce205a72f --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtTauolaEngine.cpp @@ -0,0 +1,461 @@ +#ifdef EVTGEN_TAUOLA +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2011 University of Warwick, UK +// +// Module: EvtTauolaEngine +// +// Description: Interface to the TAUOLA external generator, which +// decays tau particles +// +// Modification history: +// +// John Back May 2011 Module created +// +//------------------------------------------------------------------------ + +#include "EvtGenExternal/EvtTauolaEngine.hh" + +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtReport.hh" + +#include "Tauola/Tauola.h" +#include "Tauola/TauolaHepMCEvent.h" +#include "Tauola/TauolaHepMCParticle.h" +#include "Tauola/TauolaParticle.h" + +#include "HepMC/GenVertex.h" +#include "HepMC/SimpleVector.h" +#include "HepMC/Units.h" + +#include +#include +#include +#include + +using std::endl; + +EvtTauolaEngine::EvtTauolaEngine(bool useEvtGenRandom) { + + // PDG standard code integer ID for tau particle + _tauPDG = 15; + // Number of possible decay modes in Tauola + _nTauolaModes = 22; + + report(INFO,"EvtGen")<<"Setting up TAUOLA."<setUpPossibleTauModes(); + + _initialised = true; + + } + +} + +void EvtTauolaEngine::setUpPossibleTauModes() { + + // Get the decay table list defined by the decay.dec files. + // Only look for the first tau particle decay mode definitions with the Tauola name, + // since that generator only allows the same BFs for both tau+ and tau- decays. + // We can not choose a specific tau decay event-by-event, since this is + // only possible before we call Tauola::initialize(). + // Otherwise, we could have selected a random mode ourselves for tau- and tau+ + // separately (via selecting a random number and comparing it to be less than + // the cumulative BF) for each event. + + int nPDL = EvtPDL::entries(); + int iPDL(0); + + bool gotAnyTauolaModes(false); + + for (iPDL = 0; iPDL < nPDL; iPDL++) { + + EvtId particleId = EvtPDL::getEntry(iPDL); + int PDGId = EvtPDL::getStdHep(particleId); + + if (abs(PDGId) == _tauPDG && gotAnyTauolaModes == false) { + + int aliasInt = particleId.getAlias(); + + // Get the list of decay modes for this tau particle (alias) + int nModes = EvtDecayTable::getInstance()->getNModes(aliasInt); + int iMode(0), iTauMode(0); + + // Vector to store tau mode branching fractions. + // The size of this vector equals the total number of possible + // Tauola decay modes. Initialise all BFs to zero. + std::vector tauolaModeBFs(_nTauolaModes); + + for (iTauMode = 0; iTauMode < _nTauolaModes; iTauMode++) { + tauolaModeBFs[iTauMode] = 0.0; + } + + double totalTauModeBF(0.0); + + int nNonTauolaModes(0); + + // Loop through each decay mode + for (iMode = 0; iMode < nModes; iMode++) { + + EvtDecayBase* decayModel = EvtDecayTable::getInstance()->findDecayModel(aliasInt, iMode); + if (decayModel != 0) { + + // Check that the decay model name matches TAUOLA + std::string modelName = decayModel->getName(); + if (modelName == "TAUOLA") { + + if (gotAnyTauolaModes == false) {gotAnyTauolaModes = true;} + + // Extract the decay mode integer type and branching fraction + double BF = decayModel->getBranchingFraction(); + int modeArrayInt = this->getModeInt(decayModel) - 1; + + if (modeArrayInt >= 0 && modeArrayInt < _nTauolaModes) { + tauolaModeBFs[modeArrayInt] = BF; + totalTauModeBF += BF; + } + + } else { + + nNonTauolaModes++; + + } + + } // Decay mode exists + + } // Loop over decay models + + if (gotAnyTauolaModes == true && nNonTauolaModes > 0) { + + report(ERROR, "EvtGen") << "Please remove all non-TAUOLA decay modes for particle " + < 0.0) { + + report(INFO,"EvtGen")<<"Setting TAUOLA BF modes using the definitions for the particle " + <getNArg(); + + if (nVars > 0) { + modeInt = static_cast(decayModel->getArg(0)); + } + + } + + return modeInt; + +} + +bool EvtTauolaEngine::doDecay(EvtParticle* tauParticle) { + + if (_initialised == false) {this->initialise();} + + if (tauParticle == 0) {return false;} + + // Check that we have a tau particle. + EvtId partId = tauParticle->getId(); + if (abs(EvtPDL::getStdHep(partId)) != _tauPDG) {return false;} + + int nTauDaug = tauParticle->getNDaug(); + + // If the number of tau daughters is not zero, then we have already decayed + // it using Tauola/another decay algorithm. + if (nTauDaug > 0) {return true;} + + this->decayTauEvent(tauParticle); + + return true; + +} + +void EvtTauolaEngine::decayTauEvent(EvtParticle* tauParticle) { + + // Either we have a tau particle within a decay chain, or a single particle. + // Create a dummy HepMC event & vertex for the parent particle, containing the tau as + // one of the outgoing particles. If we have a decay chain, the parent will be the + // incoming particle, while the daughters, including the tau, are outgoing particles. + // For the single particle case, the incoming particle is null, while the single tau + // is the only outgoing particle. + // We can then pass this event to Tauola which should then decay the tau particle. + // We also consider all other tau particles from the parent decay in the logic below. + + // Create the dummy event. + HepMC::GenEvent* theEvent = new HepMC::GenEvent(HepMC::Units::GEV, HepMC::Units::MM); + + // Create the decay "vertex". + HepMC::GenVertex* theVertex = new HepMC::GenVertex(); + theEvent->add_vertex(theVertex); + + // Get the parent of this tau particle + EvtParticle* theParent = tauParticle->getParent(); + + // Assign the parent particle as the incoming particle to the vertex. + if (theParent != 0) { + HepMC::GenParticle* hepMCParent = this->createGenParticle(theParent); + theVertex->add_particle_in(hepMCParent); + } else { + // The tau particle has no parent. Set "itself" as the incoming particle for the first vertex. + // This is needed, otherwise Tauola warns of momentum non-conservation for this (1st) vertex. + HepMC::GenParticle* tauGenInit = this->createGenParticle(tauParticle); + theVertex->add_particle_in(tauGenInit); + } + + // Find all daughter particles and assign them as outgoing particles to the vertex. + // This will include the tau particle we are currently processing. + // If the parent decay has more than one tau particle, we need to include them as well. + // This is important since Tauola needs the correct physics correlations: we do not + // want Tauola to decay each particle separately if they are from tau pair combinations. + // Tauola will process the event, and we will create EvtParticles from all tau decay + // products, i.e. the tau particle we currently have and any other tau particles. + // EvtGen will try to decay the other tau particle(s) by calling EvtTauola and therefore + // this function. However, we check to see if the tau candidate has any daughters already. + // If it does, then we have already set the tau decay products from Tauola. + + // Map to store (HepMC,EvtParticle) pairs for each tau candidate from the parent + // decay. This is needed to find out what EvtParticle corresponds to a given tau HepMC + // candidate: we do not want to recreate existing EvtParticle pointers. + std::map tauMap; + + if (theParent != 0) { + + // Find all tau particles in the decay tree and store them in the map + int nDaug(theParent->getNDaug()); + int iDaug(0); + + for (iDaug = 0; iDaug < nDaug; iDaug++) { + + EvtParticle* theDaughter = theParent->getDaug(iDaug); + + if (theDaughter != 0) { + + HepMC::GenParticle* hepMCDaughter = this->createGenParticle(theDaughter); + theVertex->add_particle_out(hepMCDaughter); + + EvtId theId = theDaughter->getId(); + int PDGInt = EvtPDL::getStdHep(theId); + + if (abs(PDGInt) == _tauPDG) { + // Delete any siblings for the tau particle + if (theDaughter->getNDaug() > 0) {theDaughter->deleteDaughters(false);} + tauMap[hepMCDaughter] = theDaughter; + } else { + // Treat all other particles as "stable" + hepMCDaughter->set_status(Tauolapp::TauolaParticle::STABLE); + } + + } // theDaughter != 0 + } // Loop over daughters + + } else { + + // We only have the one tau particle. Store only this in the map. + HepMC::GenParticle* singleTau = this->createGenParticle(tauParticle); + theVertex->add_particle_out(singleTau); + tauMap[singleTau] = tauParticle; + + } + + // Now pass the event to Tauola for processing + // Create a Tauola event object + Tauolapp::TauolaHepMCEvent tauolaEvent(theEvent); + + // Run the Tauola algorithm + tauolaEvent.decayTaus(); + + // Loop over all tau particles in the HepMC event and create their EvtParticle daughters. + // Store all final "stable" descendent particles as the tau daughters, i.e. + // let Tauola decay any resonances such as a_1 or rho. + // If there is more than one tau particle in the event, then also create the + // corresponding EvtParticles for their daughters as well. They will not be + // re-decayed since we check at the start of this function if the tau particle has + // any daughters before running Tauola decayTaus(). + + HepMC::GenEvent::particle_iterator eventIter; + for (eventIter = theEvent->particles_begin(); eventIter != theEvent->particles_end(); + ++eventIter) { + + // Check to see if we have a tau particle + HepMC::GenParticle* aParticle = (*eventIter); + + if (aParticle != 0 && abs(aParticle->pdg_id()) == _tauPDG) { + + // Find out what EvtParticle corresponds to the HepMC particle. + // We need this to create and attach EvtParticle daughters. + EvtParticle* tauEvtParticle = tauMap[aParticle]; + + if (tauEvtParticle != 0) { + + // Get the tau 4-momentum in the lab (first mother) frame. We need to boost + // all the tau daughters to this frame, such that daug.getP4() is in the tau restframe. + EvtVector4R tauP4CM = tauEvtParticle->getP4Lab(); + tauP4CM.set(tauP4CM.get(0), -tauP4CM.get(1), -tauP4CM.get(2), -tauP4CM.get(3)); + + // Get the decay vertex for the tau particle + HepMC::GenVertex* endVertex = aParticle->end_vertex(); + HepMC::GenVertex::particle_iterator tauIter; + + std::vector daugIdVect; + std::vector daugP4Vect; + + // Loop through all descendants + for (tauIter = endVertex->particles_begin(HepMC::descendants); + tauIter != endVertex->particles_end(HepMC::descendants); ++tauIter) { + + HepMC::GenParticle* tauDaug = (*tauIter); + + // Check to see if this descendant has its own decay vertex, e.g. rho resonance. + // If so, skip this daughter and continue looping through the descendant list + // until we reach the final "stable" products (e.g. pi pi from rho -> pi pi). + HepMC::GenVertex* daugDecayVtx = tauDaug->end_vertex(); + if (daugDecayVtx != 0) {continue;} + + // Store the particle id and 4-momentum + int tauDaugPDG = tauDaug->pdg_id(); + EvtId daugId = EvtPDL::evtIdFromStdHep(tauDaugPDG); + daugIdVect.push_back(daugId); + + HepMC::FourVector tauDaugP4 = tauDaug->momentum(); + double tauDaug_px = tauDaugP4.px(); + double tauDaug_py = tauDaugP4.py(); + double tauDaug_pz = tauDaugP4.pz(); + double tauDaug_E = tauDaugP4.e(); + + EvtVector4R daugP4(tauDaug_E, tauDaug_px, tauDaug_py, tauDaug_pz); + daugP4Vect.push_back(daugP4); + + } // Loop over HepMC tau daughters + + // Create the tau EvtParticle daughters and assign their ids and 4-mtm + int nDaug = daugIdVect.size(); + + tauEvtParticle->makeDaughters(nDaug, daugIdVect); + + int iDaug(0); + for (iDaug = 0; iDaug < nDaug; iDaug++) { + + EvtParticle* theDaugPart = tauEvtParticle->getDaug(iDaug); + + if (theDaugPart != 0) { + EvtId theDaugId = daugIdVect[iDaug]; + EvtVector4R theDaugP4 = daugP4Vect[iDaug]; + theDaugP4.applyBoostTo(tauP4CM); // Boost the 4-mtm to the tau rest frame + theDaugPart->init(theDaugId, theDaugP4); + } + + } // Loop over tau daughters + + } + + } // We have a tau HepMC particle in the event + + } + + theEvent->clear(); + delete theEvent; + +} + +HepMC::GenParticle* EvtTauolaEngine::createGenParticle(EvtParticle* theParticle) { + + // Method to create an HepMC::GenParticle version of the given EvtParticle. + if (theParticle == 0) {return 0;} + + // Get the 4-momentum (E, px, py, pz) for the EvtParticle + EvtVector4R p4 = theParticle->getP4Lab(); + + // Convert this to the HepMC 4-momentum + double E = p4.get(0); + double px = p4.get(1); + double py = p4.get(2); + double pz = p4.get(3); + + HepMC::FourVector hepMC_p4(px, py, pz, E); + + int PDGInt = EvtPDL::getStdHep(theParticle->getId()); + + // Set the status flag for the particle. + int status = Tauolapp::TauolaParticle::HISTORY; + + HepMC::GenParticle* genParticle = new HepMC::GenParticle(hepMC_p4, PDGInt, status); + + return genParticle; + +} + +#endif diff --git a/TEvtGen/EvtGenExternal/EvtTauolaEngine.hh b/TEvtGen/EvtGenExternal/EvtTauolaEngine.hh new file mode 100644 index 00000000000..10af26a55a6 --- /dev/null +++ b/TEvtGen/EvtGenExternal/EvtTauolaEngine.hh @@ -0,0 +1,66 @@ +#ifdef EVTGEN_TAUOLA +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2011 University of Warwick, UK +// +// Module: EvtTauolaEngine +// +// Description: Interface to the TAUOLA external generator +// +// Modification history: +// +// John Back May 2011 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTTAUOLAENGINE_HH +#define EVTTAUOLAENGINE_HH + +#include "EvtGenModels/EvtAbsExternalGen.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtVector4R.hh" + +#include "HepMC/GenEvent.h" +#include "HepMC/GenParticle.h" + +#include +#include + +class EvtTauolaEngine : public EvtAbsExternalGen { + +public: + + EvtTauolaEngine(bool useEvtGenRandom = true); + virtual ~EvtTauolaEngine(); + + virtual bool doDecay(EvtParticle* theMother); + + virtual void initialise(); + +protected: + +private: + + bool _initialised; + int _tauPDG, _nTauolaModes; + + HepMC::GenParticle* createGenParticle(EvtParticle* theParticle); + + void setUpPossibleTauModes(); + + int getModeInt(EvtDecayBase* decayModel); + + void decayTauEvent(EvtParticle* tauParticle); + +}; + +#endif + +#endif diff --git a/TEvtGen/EvtGenModels/EvtAbsExternalGen.hh b/TEvtGen/EvtGenModels/EvtAbsExternalGen.hh new file mode 100644 index 00000000000..c95fd8929be --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtAbsExternalGen.hh @@ -0,0 +1,41 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2011 University of Warwick, UK +// +// Module: EvtAbsExternalGen +// +// Description: Pure abstract interface for external physics generators +// +// Modification history: +// +// John Back April 2011 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTABS_EXTERNALGEN_HH +#define EVTABS_EXTERNALGEN_HH + +#include "EvtGenBase/EvtParticle.hh" + +class EvtAbsExternalGen { + +public: + + EvtAbsExternalGen() {}; + virtual ~EvtAbsExternalGen() {}; + + virtual bool doDecay(EvtParticle* theMother) = 0; + virtual void initialise() = 0; + +protected: + +private: + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtBBScalar.cxx b/TEvtGen/EvtGenModels/EvtBBScalar.cpp similarity index 94% rename from TEvtGen/EvtGenModels/EvtBBScalar.cxx rename to TEvtGen/EvtGenModels/EvtBBScalar.cpp index a89117bdac1..36ac747811e 100644 --- a/TEvtGen/EvtGenModels/EvtBBScalar.cxx +++ b/TEvtGen/EvtGenModels/EvtBBScalar.cpp @@ -54,6 +54,7 @@ EvtBBScalar::EvtBBScalar() FormFactor dummy; dummy.value = 0.36; dummy.sigma1 = 0.43; + dummy.sigma2 = 0.0; dummy.mV = 5.42; _f1Map.insert(make_pair(string("K"), dummy)); dummy.sigma1 = 0.70; @@ -110,7 +111,7 @@ void EvtBBScalar::setKnownBaryonTypes(const EvtId& baryon) { } } -double EvtBBScalar::baryonF1F2(double t) { +double EvtBBScalar::baryonF1F2(double t) const { // check for known form factors for combination of baryons if (_baryonCombination.test(Lambda) and _baryonCombination.test(Proton)) { return -sqrt(1.5) * G_p(t); @@ -131,7 +132,7 @@ double EvtBBScalar::baryonF1F2(double t) { } } -double EvtBBScalar::formFactorFit(double t, const vector& params) { +double EvtBBScalar::formFactorFit(double t, const vector& params) const { static const double gamma = 2.148; static const double Lambda_0 = 0.3; double result = 0; @@ -142,20 +143,17 @@ double EvtBBScalar::formFactorFit(double t, const vector& params) { } -double EvtBBScalar::G_p(double t) { +double EvtBBScalar::G_p(double t) const { const vector v_x(x, x+5); return formFactorFit(t, v_x); } - -double EvtBBScalar::G_n(double t) { +double EvtBBScalar::G_n(double t) const { const vector v_y(y, y+2); return -formFactorFit(t, v_y); } - - -double EvtBBScalar::baryon_gA(double t) { +double EvtBBScalar::baryon_gA(double t) const { // 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)); @@ -176,8 +174,7 @@ double EvtBBScalar::baryon_gA(double t) { } } - -double EvtBBScalar::baryon_gP(double t) { +double EvtBBScalar::baryon_gP(double t) const { // 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)); @@ -198,7 +195,7 @@ double EvtBBScalar::baryon_gP(double t) { } } -double EvtBBScalar::baryon_fS(double t) { +double EvtBBScalar::baryon_fS(double t) const { // 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)); @@ -219,46 +216,39 @@ double EvtBBScalar::baryon_fS(double t) { } } - -double EvtBBScalar::D_A(double t) { +double EvtBBScalar::D_A(double t) const { 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); } - -double EvtBBScalar::F_A(double t) { +double EvtBBScalar::F_A(double t) const { 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); } - -double EvtBBScalar::D_P(double t) { +double EvtBBScalar::D_P(double t) const { 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); } - -double EvtBBScalar::F_P(double t) { +double EvtBBScalar::F_P(double t) const { 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); } - -double EvtBBScalar::D_S(double t) { +double EvtBBScalar::D_S(double t) const { return -1.5 * _massRatio * G_n(t); } - -double EvtBBScalar::F_S(double t) { +double EvtBBScalar::F_S(double t) const { return (G_p(t) + 0.5*G_n(t)) * _massRatio; } - -double EvtBBScalar::baryon_hA(double t) { +double EvtBBScalar::baryon_hA(double t) const { return (1/_massRatio*baryon_gP(t)-baryon_gA(t))*pow(_baryonMassSum, 2)/t; } @@ -342,7 +332,7 @@ void EvtBBScalar::initProbMax() } // Form factor f1 for B-pi transition -double EvtBBScalar::B_pi_f1(double t) +double EvtBBScalar::B_pi_f1(double t) const { FormFactor f = _f1Map[_scalarType]; double mv2 = f.mV*f.mV; @@ -350,14 +340,13 @@ double EvtBBScalar::B_pi_f1(double t) } // Form factor f0 for B-pi transition -double EvtBBScalar::B_pi_f0(double t) +double EvtBBScalar::B_pi_f0(double t) const { 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; @@ -396,7 +385,11 @@ EvtBBScalar::amp_B_vectorPart(const EvtDiracParticle* baryon1, const EvtDiracSpi } // The F2 contribution that is written out in the paper is neglected here. // see hep-ph/0204185 - return b1Pol.adjoint()* (gamma*baryonF1F2(t) *b2Pol); + EvtDiracSpinor A = EvtComplex(baryonF1F2(t))*b2Pol ; + EvtDiracSpinor Adjb1Pol = b1Pol.adjoint() ; + EvtDiracSpinor gammaA = gamma * A ; + return Adjb1Pol * gammaA ; + // return b1Pol.adjoint()*(gamma*(EvtComplex(baryonF1F2(t))*b2Pol)); } const EvtComplex diff --git a/TEvtGen/EvtGenModels/EvtBBScalar.hh b/TEvtGen/EvtGenModels/EvtBBScalar.hh index 49d7803fa12..792dabe90e9 100644 --- a/TEvtGen/EvtGenModels/EvtBBScalar.hh +++ b/TEvtGen/EvtGenModels/EvtBBScalar.hh @@ -81,35 +81,35 @@ private: // 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; + mutable std::map _f0Map; + mutable std::map _f1Map; // only consider F1+F2 here std::bitset _baryonCombination; void setKnownBaryonTypes(const EvtId& baryon); - double B_pi_f1(double t); - double B_pi_f0(double t); - double baryonF1F2(double t); - double G_p(double t); - double G_n(double t); + 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); - double baryon_hA(double t); - double baryon_gP(double t); - double baryon_fS(double t); - - double D_A(double t); - double F_A(double t); - double D_P(double t); - double F_P(double t); - double D_S(double t); - double F_S(double t); + 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) const ; // (mB1 - mB2)/(mq1 - mq1) double _massRatio; double _baryonMassSum; - double formFactorFit(double t, const std::vector& params); + double formFactorFit(double t, const std::vector& params) const ; static const EvtComplex const_B; static const EvtComplex const_C; @@ -137,7 +137,7 @@ private: 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 calcAmplitude(const EvtParticle* p, unsigned int polState); + EvtComplex calcAmpliude(const EvtParticle* p, const unsigned int polState); }; #endif diff --git a/TEvtGen/EvtGenModels/EvtBCVFF.cpp b/TEvtGen/EvtGenModels/EvtBCVFF.cpp new file mode 100755 index 00000000000..ace9f03be05 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBCVFF.cpp @@ -0,0 +1,153 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the 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: EvtBCVFF.cc +// +// Description: form factors for B->Vlnu +// +// Modification history: +// +// AVL Jul 6, Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtBCVFF.hh" + +#include "EvtGenBase/EvtId.hh" +#include +#include +#include "EvtGenBase/EvtPDL.hh" +#include +#include + +using namespace std; + +EvtBCVFF::EvtBCVFF(int idV, int fit) { + + idVector = idV; + whichfit = fit; + //cout<<"==== EvtBCVFF:: idVector="< J/psi + if(whichfit == 1) { // SR form factor set from [Kiselev, hep-ph/0211021] + double Mbc = 6.277, Mpsi=3.0967; // Experimental values + double Mpole2 = 4.5*4.5, den = 1./(1.-q2/Mpole2); + double FV = 0.11*den, + FAp = -0.074*den, + FA0 = 5.9*den, + FAm = 0.12*den; + *vf = (Mbc + Mpsi)*FV; + *a2f = -(Mbc+Mpsi)*FAp; + *a1f = FA0/(Mbc+Mpsi); + *a0f = (q2*FAm + (Mbc+Mpsi)*(*a1f)-(Mbc-Mpsi)*(*a2f))/(2*Mpsi); + return; + } + else if(whichfit == 2) { // form factor set from [Ebert, hep-ph/0306306] + *vf = (0.49077824756158533 - 0.0012925655191347828*q2)/(1 - 0.06292520325875656*q2); + *a0f = (0.4160345034630221 - 0.0024720095310225023*q2)/(1 - 0.061603451915567785*q2); + *a1f = (0.4970212860605933 - 0.0067519730024654745*q2)/(1 - 0.050487026667172176*q2); + *a2f = (0.7315284919705497 + 0.0014263826220727142*q2 - 0.0006946090066269195*q2*q2)/(1 - 0.04885587273651653*q2); + return; + }; + } + else if(idVector == EvtPDL::getId("psi(2S)").getId()) { // Bc -> psi((2S) + if(whichfit == 1) { + ////cout<<"BC2:: psi2S, Kiselev, q2="<initializePhaseSpace(getNDaug(),getDaugs()); EvtVector4R p4[MAX_DAUG]; - double m; - - m = p->mass(); + p->mass(); int i,j; @@ -127,9 +125,10 @@ void EvtBHadronic::decay( EvtParticle *p){ 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]))); + -ap*(EvtGenFunctions::directProd(p4b,p4b)+EvtGenFunctions::directProd(p4b,p4[0])) + -gf*EvtComplex(0.0,1.0)*dual(EvtGenFunctions::directProd(p4[0]+p4b,p4b-p4[0])) + -am*((EvtGenFunctions::directProd(p4b,p4b)- + EvtGenFunctions::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()); @@ -143,9 +142,11 @@ void EvtBHadronic::decay( EvtParticle *p){ 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]))); + -ap*(EvtGenFunctions::directProd(p4b,p4b)+ + EvtGenFunctions::directProd(p4b,p4[0])) + -gf*EvtComplex(0.0,1.0)*dual(EvtGenFunctions::directProd(p4[0]+p4b,p4b-p4[0])) + -am*((EvtGenFunctions::directProd(p4b,p4b)- + EvtGenFunctions::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()); @@ -174,23 +175,23 @@ void EvtBHadronic::decay( EvtParticle *p){ 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]) + jb[0]=EvtComplex(0.0,(1.0)*hf)*dual(EvtGenFunctions::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]) + jb[1]=EvtComplex(0.0,(1.0)*hf)*dual(EvtGenFunctions::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]) + jb[2]=EvtComplex(0.0,(1.0)*hf)*dual(EvtGenFunctions::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]) + jb[3]=EvtComplex(0.0,(1.0)*hf)*dual(EvtGenFunctions::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]) + jb[4]=EvtComplex(0.0,(1.0)*hf)*dual(EvtGenFunctions::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; @@ -203,9 +204,11 @@ void EvtBHadronic::decay( EvtParticle *p){ 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]))); + -ap*(EvtGenFunctions::directProd(p4b,p4b)+ + EvtGenFunctions::directProd(p4b,p4[0])) + +gf*EvtComplex(0.0,1.0)*dual(EvtGenFunctions::directProd(p4[0]+p4b,p4b-p4[0])) + -am*((EvtGenFunctions::directProd(p4b,p4b)- + EvtGenFunctions::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()); diff --git a/TEvtGen/EvtGenModels/EvtBTo3pi.F b/TEvtGen/EvtGenModels/EvtBTo3pi.F index 66eb0a6f81e..4438787aec9 100644 --- a/TEvtGen/EvtGenModels/EvtBTo3pi.F +++ b/TEvtGen/EvtGenModels/EvtBTo3pi.F @@ -89,7 +89,7 @@ c End 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 Evtranf,Tag Real*8 Kin_moy,Kin_moy2,Kin,Lambda alphaCP = 0.4 @@ -127,11 +127,11 @@ 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()) + t3pions=-Dlog(Evtranf()) If(t3pions.gt.10.) Go to 1 c Decay time of the tagging B 2 Continue - ttag =-Alog(Evtranf()) + ttag =-Dlog(Evtranf()) If(ttag .gt.10.) Go to 2 c time-difference between the 3pi decay and the tagging decay t=t3pions-ttag @@ -459,7 +459,7 @@ c ---------------------------------------------------------- c --- Used Functions c ---------------------------------------------------------- - real evtranf + real*8 evtranf c ---------------------------------------------------------- c --- Variables in Argument @@ -604,7 +604,7 @@ c ---------------------------------------------------------- Do i=1,3 P2(i)=-p1(i)-p3(i) End do - +12345 continue END @@ -940,7 +940,7 @@ c --- commons c --- Used Functions - Real evtranf + Real*8 evtranf c --- Variables in Argument @@ -1053,7 +1053,7 @@ c------------------------------------------------------------------ Real*8 c1,c2,c3,s1,s2,s3 Real*8 MatRot(3,3) save MatRot - Real evtranf + Real*8 evtranf Integer new,i,j If(new.ne.0) Then diff --git a/TEvtGen/EvtGenModels/EvtBTo3pi.inc b/TEvtGen/EvtGenModels/EvtBTo3pi.inc old mode 100644 new mode 100755 index c1e8bddd3c8..dde47ae802a --- a/TEvtGen/EvtGenModels/EvtBTo3pi.inc +++ b/TEvtGen/EvtGenModels/EvtBTo3pi.inc @@ -22,3 +22,4 @@ c Basic matrix elements > ,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.cpp similarity index 87% rename from TEvtGen/EvtGenModels/EvtBTo3piCP.cxx rename to TEvtGen/EvtGenModels/EvtBTo3piCP.cpp index 811eb093fd5..ca80c74a867 100644 --- a/TEvtGen/EvtGenModels/EvtBTo3piCP.cxx +++ b/TEvtGen/EvtGenModels/EvtBTo3piCP.cpp @@ -77,6 +77,25 @@ void EvtBTo3piCP::init(){ void EvtBTo3piCP::initProbMax(){ + // perform common blocks initialization before + // first use + double alpha=getArg(1); + int iset; + + iset=10000; + + 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 + setProbMax(1.5); } @@ -90,7 +109,7 @@ void EvtBTo3piCP::decay( EvtParticle *p){ double t; EvtId other_b; - EvtCPUtil::OtherB(p,t,other_b); + EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.5); EvtParticle *pip,*pim,*pi0; @@ -107,15 +126,7 @@ void EvtBTo3piCP::decay( EvtParticle *p){ double alpha=getArg(1); int iset; - static int first=1; - - if (first==1) { - iset=10000; - first=0; - } - else{ - iset=0; - } + iset=0; double p4piplus[4],p4piminus[4],p4gamm1[4],p4gamm2[4]; diff --git a/TEvtGen/EvtGenModels/EvtBTo3piMPP.F b/TEvtGen/EvtGenModels/EvtBTo3piMPP.F index 42463439d41..daf88ea7a56 100644 --- a/TEvtGen/EvtGenModels/EvtBTo3piMPP.F +++ b/TEvtGen/EvtGenModels/EvtBTo3piMPP.F @@ -94,7 +94,7 @@ c End Real*8 Weight,Weight_max Real*8 ABp,ABm Real*8 m_rho12,m_rho13 - Real*4 Evtranf,Tag + Real*8 Evtranf,Tag alpha = 0.4 N_gener = 0 N_asked = 100000 @@ -350,7 +350,7 @@ c ---------------------------------------------------------- c --- Used Functions c ---------------------------------------------------------- - real evtranf + real*8 evtranf c ---------------------------------------------------------- @@ -497,7 +497,7 @@ c----------------------------------------------------------------------- Real*8 m12, m13, W12, W13, Wtot - Real*4 evt_gmas + Real*8 evt_gmas Complex*16 MatBp,MatBm Real*8 Real_Bp,Imag_Bp,Real_Bm,Imag_Bm Real*8 p1(5),p2(5),p3(5) diff --git a/TEvtGen/EvtGenModels/EvtBTo3piP00.F b/TEvtGen/EvtGenModels/EvtBTo3piP00.F index 475d58f328d..a66e17dba84 100644 --- a/TEvtGen/EvtGenModels/EvtBTo3piP00.F +++ b/TEvtGen/EvtGenModels/EvtBTo3piP00.F @@ -90,7 +90,7 @@ c End Real*8 Weight,Weight_max Real*8 ABp,ABm Real*8 m_rho12,m_rho13 - Real*4 Evtranf,Tag + Real*8 Evtranf,Tag alpha = 0.4 N_gener = 0 @@ -365,7 +365,7 @@ c ---------------------------------------------------------- c --- Used Functions c ---------------------------------------------------------- - real evtranf + real*8 evtranf c ---------------------------------------------------------- c --- Variables in Argument @@ -511,7 +511,7 @@ c----------------------------------------------------------------------- Real*8 m12, m13, W12, W13, Wtot - Real*4 evt_gmas + Real*8 evt_gmas Complex*16 MatBp,MatBm Real*8 Real_Bp,Imag_Bp,Real_Bm,Imag_Bm Real*8 p1(5),p2(5),p3(5) diff --git a/TEvtGen/EvtGenModels/EvtBTo4piCP.cxx b/TEvtGen/EvtGenModels/EvtBTo4piCP.cpp similarity index 99% rename from TEvtGen/EvtGenModels/EvtBTo4piCP.cxx rename to TEvtGen/EvtGenModels/EvtBTo4piCP.cpp index 136547256b9..f0e1e64cd90 100644 --- a/TEvtGen/EvtGenModels/EvtBTo4piCP.cxx +++ b/TEvtGen/EvtGenModels/EvtBTo4piCP.cpp @@ -183,7 +183,7 @@ void EvtBTo4piCP::decay( EvtParticle *p){ double t; EvtId other_b; - EvtCPUtil::OtherB(p,t,other_b); + EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.5); p->initializePhaseSpace(getNDaug(),getDaugs()); EvtVector4R mom1 = p->getDaug(0)->getP4(); diff --git a/TEvtGen/EvtGenModels/EvtBToDDalitzCPK.cpp b/TEvtGen/EvtGenModels/EvtBToDDalitzCPK.cpp new file mode 100644 index 00000000000..ca11649c74c --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBToDDalitzCPK.cpp @@ -0,0 +1,136 @@ +// $Id: EvtBToDDalitzCPK.cpp,v 1.2 2009-03-16 16:28:42 robbep Exp $ +// Include files +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtVector4C.hh" + +// local +#include "EvtGenModels/EvtBToDDalitzCPK.hh" + +//----------------------------------------------------------------------------- +// Implementation file for class : EvtBToDDalitzCPK +// Decay Model for B->D0K with D0->Ks pi+ pi- +// it is just a way to get the arguments... +// Works also for other B->D0K decays... +// 2003-12-08 : Patrick Robbe +//----------------------------------------------------------------------------- + +//============================================================================= +// Standard destructor +//============================================================================= +EvtBToDDalitzCPK::~EvtBToDDalitzCPK ( ) { } +//============================================================================= +// Name of the model +//============================================================================= +std::string EvtBToDDalitzCPK::getName( ) +{ + return "BTODDALITZCPK" ; +} +//============================================================================= +// Clone method +//============================================================================= +EvtDecayBase * EvtBToDDalitzCPK::clone ( ) +{ + return new EvtBToDDalitzCPK ; +} +//============================================================================= +// Initialisation method +//============================================================================= +void EvtBToDDalitzCPK::init ( ) +{ + // Check that there are 3 arguments + checkNArg( 3 ) ; + // Check that there are 2 daughters + checkNDaug( 2 ) ; + // Check that the particles of the decay are : + // B+/- -> D0/bar K+/- + // B+/- -> K+/- D0/bar + // B0/bar -> K*0/bar D0/bar + // and nothing else ... + 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 KP = EvtPDL::getId( "K+" ) ; + static EvtId KM = EvtPDL::getId( "K-" ) ; + static EvtId KS = EvtPDL::getId( "K*0" ) ; + static EvtId KSB = EvtPDL::getId( "anti-K*0" ) ; + static EvtId D0 = EvtPDL::getId( "D0" ) ; + static EvtId D0B = EvtPDL::getId( "anti-D0" ) ; + + _flag = 0 ; + + EvtId parent = getParentId() ; + EvtId d1 = getDaug( 0 ) ; + EvtId d2 = getDaug( 1 ) ; + + if ( ( ( parent == BP ) || ( parent == BM ) ) && + ( ( d1 == D0 ) || ( d1 == D0B ) ) && + ( ( d2 == KP ) || ( d2 == KM ) ) ) { + _flag = 1 ; + // PHSP Decay + } + else if ( ( ( parent == BP ) || ( parent == BM ) ) && + ( ( d1 == KP ) || ( d1 == KM ) ) && + ( ( d2 == D0 ) || ( d2 == D0B ) ) ) { + _flag = 1 ; + // also PHSP decay + } + else if ( ( ( parent == B0 ) || ( parent == B0B ) ) && + ( ( d1 == KS ) || ( d1 == KSB ) ) && + ( ( d2 == D0 ) || ( d2 == D0B ) ) ) { + _flag = 2 ; + // SVS Decay + } + + if ( _flag == 0 ) { + report( ERROR , "EvtGen" ) << "EvtBToDDalitzCPK : Invalid mode." + << std::endl ; + assert( 0 ) ; + } +} +//============================================================================= +// Set prob max +//============================================================================= +void EvtBToDDalitzCPK::initProbMax( ) +{ + if ( _flag == 1 ) { + // PHSP + setProbMax ( 0. ) ; + } + else if ( _flag == 2 ) { + // SVS + setProbMax ( 1.0 ) ; + } +} +//============================================================================= +// decay particle +//============================================================================= +void EvtBToDDalitzCPK::decay( EvtParticle * p ) +{ + if ( _flag == 1 ) { + // PHSP + p -> initializePhaseSpace( getNDaug() , getDaugs() ) ; + vertex ( 0. ) ; + } + else if ( _flag == 2 ) { + // SVS + 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))); + } +} + + diff --git a/TEvtGen/EvtGenModels/EvtBToDDalitzCPK.hh b/TEvtGen/EvtGenModels/EvtBToDDalitzCPK.hh new file mode 100644 index 00000000000..afcb46b66dd --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBToDDalitzCPK.hh @@ -0,0 +1,37 @@ +// $Id: EvtBToDDalitzCPK.hh,v 1.2 2009-03-16 16:37:55 robbep Exp $ +#ifndef EVTGENMODELS_EVTBTODDALITZCPK_HH +#define EVTGENMODELS_EVTBTODDALITZCPK_HH 1 + +// Include files +#include "EvtGenBase/EvtDecayAmp.hh" + +/** @class EvtBToDDalitzCPK EvtBToDDalitzCPK.hh EvtGenModels/EvtBToDDalitzCPK.hh + * Decay Model for B->DK, (adds the possibility to use D0->Ks pi pi to + * find gamma with a Dalitz analysis + * + * @author Patrick Robbe + * @date 2003-12-08 + */ + +class EvtBToDDalitzCPK : public EvtDecayAmp { +public: + /// Standard constructor + EvtBToDDalitzCPK( ) { } + + virtual ~EvtBToDDalitzCPK( ); ///< Destructor + + virtual std::string getName ( ) ; + EvtDecayBase * clone ( ) ; + + void decay ( EvtParticle * p ) ; + void init ( ) ; + + void initProbMax ( ) ; + +protected: + +private: + int _flag ; + +}; +#endif // EVTGENMODELS_EVTBTODDALITZCPK_HH diff --git a/TEvtGen/EvtGenModels/EvtBToKpipi.F b/TEvtGen/EvtGenModels/EvtBToKpipi.F index 4e692078b46..19d945eda0a 100644 --- a/TEvtGen/EvtGenModels/EvtBToKpipi.F +++ b/TEvtGen/EvtGenModels/EvtBToKpipi.F @@ -85,7 +85,7 @@ C End Real*8 Weight,Weight_max Real*8 m_Kstarp,m_Kstar0,m_rhom Real*8 Wrong - Real*4 Evtranf,Tag + Real*8 Evtranf,Tag alphaCP = 1.35 betaCP = 0.362 @@ -367,7 +367,7 @@ c ---------------------------------------------------------- c --- Used Functions c ---------------------------------------------------------- - real evtranf + real*8 evtranf c ---------------------------------------------------------- c --- Variables in Argument @@ -527,7 +527,7 @@ c----------------------------------------------------------------------- Real*8 m12, m13, m23, W12, W13, W23, Wtot - Real*4 evt_gmas + Real*8 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) diff --git a/TEvtGen/EvtGenModels/EvtBToKpipiCP.cxx b/TEvtGen/EvtGenModels/EvtBToKpipiCP.cpp similarity index 88% rename from TEvtGen/EvtGenModels/EvtBToKpipiCP.cxx rename to TEvtGen/EvtGenModels/EvtBToKpipiCP.cpp index fa7443f18c7..cb75aecbbe9 100644 --- a/TEvtGen/EvtGenModels/EvtBToKpipiCP.cxx +++ b/TEvtGen/EvtGenModels/EvtBToKpipiCP.cpp @@ -80,6 +80,22 @@ void EvtBToKpipiCP::init(){ checkSpinDaughter(1,EvtSpinType::SCALAR); checkSpinDaughter(2,EvtSpinType::SCALAR); + double alpha=getArg(1); + double beta=getArg(2); + int iset; + iset=10000; + + 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 } @@ -92,7 +108,7 @@ void EvtBToKpipiCP::decay( EvtParticle *p){ double t; EvtId other_b; - EvtCPUtil::OtherB(p,t,other_b); + EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.5); EvtParticle *Kp,*pim,*pi0; @@ -108,15 +124,7 @@ void EvtBToKpipiCP::decay( EvtParticle *p){ double beta=getArg(2); int iset; - static int first=1; - - if (first==1) { - iset=10000; - first=0; - } - else{ - iset=0; - } + iset=0; double p4Kplus[4],p4piminus[4],p4gamm1[4],p4gamm2[4]; diff --git a/TEvtGen/EvtGenModels/EvtBToPlnuBK.cxx b/TEvtGen/EvtGenModels/EvtBToPlnuBK.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtBToPlnuBK.cxx rename to TEvtGen/EvtGenModels/EvtBToPlnuBK.cpp diff --git a/TEvtGen/EvtGenModels/EvtBToPlnuBKFF.cxx b/TEvtGen/EvtGenModels/EvtBToPlnuBKFF.cpp similarity index 79% rename from TEvtGen/EvtGenModels/EvtBToPlnuBKFF.cxx rename to TEvtGen/EvtGenModels/EvtBToPlnuBKFF.cpp index 598eebe25e5..4e11bc6976e 100644 --- a/TEvtGen/EvtGenModels/EvtBToPlnuBKFF.cxx +++ b/TEvtGen/EvtGenModels/EvtBToPlnuBKFF.cpp @@ -38,8 +38,8 @@ EvtBToPlnuBKFF::EvtBToPlnuBKFF(double alpha, double beta) { } -void EvtBToPlnuBKFF::getscalarff(EvtId parent,EvtId daught, - double t, double mass, double *fp, double *f0) { +void EvtBToPlnuBKFF::getscalarff(EvtId parent,EvtId /*daught*/, + double t, double /*mass*/, double *fp, double *f0) { //Define mBstar EvtId Bplus = EvtPDL::getId("B+"); @@ -86,3 +86,20 @@ void EvtBToPlnuBKFF::getbaryonff(EvtId, EvtId, double, double, double*, ::abort(); } + +void EvtBToPlnuBKFF::getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtBToPlnuBKFF.\n"; + ::abort(); + +} + +void EvtBToPlnuBKFF::getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtBToPlnuBKFF.\n"; + ::abort(); + +} + diff --git a/TEvtGen/EvtGenModels/EvtBToPlnuBKFF.hh b/TEvtGen/EvtGenModels/EvtBToPlnuBKFF.hh index 1cf88c4e924..ad43a7b0c66 100644 --- a/TEvtGen/EvtGenModels/EvtBToPlnuBKFF.hh +++ b/TEvtGen/EvtGenModels/EvtBToPlnuBKFF.hh @@ -42,6 +42,11 @@ public: void getbaryonff(EvtId, EvtId, double, double, double*, double*, double*, double*); + void getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*); + + void getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*); private: double _alpha; diff --git a/TEvtGen/EvtGenModels/EvtBToVlnuBall.cxx b/TEvtGen/EvtGenModels/EvtBToVlnuBall.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtBToVlnuBall.cxx rename to TEvtGen/EvtGenModels/EvtBToVlnuBall.cpp diff --git a/TEvtGen/EvtGenModels/EvtBToVlnuBallFF.cxx b/TEvtGen/EvtGenModels/EvtBToVlnuBallFF.cpp similarity index 84% rename from TEvtGen/EvtGenModels/EvtBToVlnuBallFF.cxx rename to TEvtGen/EvtGenModels/EvtBToVlnuBallFF.cpp index 7949dd5e587..0f67ec27d82 100644 --- a/TEvtGen/EvtGenModels/EvtBToVlnuBallFF.cxx +++ b/TEvtGen/EvtGenModels/EvtBToVlnuBallFF.cpp @@ -51,8 +51,8 @@ EvtBToVlnuBallFF::EvtBToVlnuBallFF(double r2_A1, } -void EvtBToVlnuBallFF::getvectorff(EvtId parent,EvtId daught, - double t, double mass, double *a1f, +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 @@ -119,3 +119,19 @@ void EvtBToVlnuBallFF::getbaryonff(EvtId, EvtId, double, double, double*, } + +void EvtBToVlnuBallFF::getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtBToVlnuBallFF.\n"; + ::abort(); + +} + +void EvtBToVlnuBallFF::getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtBToVlnuBallFF.\n"; + ::abort(); + +} diff --git a/TEvtGen/EvtGenModels/EvtBToVlnuBallFF.hh b/TEvtGen/EvtGenModels/EvtBToVlnuBallFF.hh index 9976c59096b..84de6689828 100644 --- a/TEvtGen/EvtGenModels/EvtBToVlnuBallFF.hh +++ b/TEvtGen/EvtGenModels/EvtBToVlnuBallFF.hh @@ -52,6 +52,12 @@ public: void getbaryonff(EvtId, EvtId, double, double, double*, double*, double*, double*); + void getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*); + + void getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*); + private: double _r2_A1; diff --git a/TEvtGen/EvtGenModels/EvtBaryonPCR.cpp b/TEvtGen/EvtGenModels/EvtBaryonPCR.cpp new file mode 100644 index 00000000000..6cd2972c2be --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBaryonPCR.cpp @@ -0,0 +1,199 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen 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: EvtBaryonVminusA.cc +// +// Description: Routine to implement semileptonic decays using realistic +// dynamics. The form factors are from +// M.Pervin,S.Capstick,W. Roberts, Phys.Rev. C72 035201(2005). +// +// +// Modification history: +// +// R.J. Tesarek May 28, 2004 Module created +// Karen Gibson 1/20/2006 Module updated for 1/2+->1/2+, +// 1/2+->1/2-, 1/2+->3/2- Lambda decays +// +//------------------------------------------------------------------------ + +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtBaryonPCR.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtIdSet.hh" +#include +#include "EvtGenModels/EvtBaryonPCRFF.hh" + +using namespace std; +#ifdef D0 +#undef D0 +#endif +EvtBaryonPCR::EvtBaryonPCR(): + baryonpcrffmodel(0) + ,calcamp(0) +{} + + +EvtBaryonPCR::~EvtBaryonPCR() { + delete baryonpcrffmodel; + baryonpcrffmodel=0; + delete calcamp; + calcamp=0; +} + +std::string EvtBaryonPCR::getName(){ + + return "BaryonPCR"; + +} + + + +EvtDecayBase* EvtBaryonPCR::clone(){ + + return new EvtBaryonPCR; + +} + +void EvtBaryonPCR::decay( EvtParticle *p ){ + + //This is a kludge to avoid warnings because the K_2* mass becomes to large. + static EvtIdSet regenerateMasses("K_2*+","K_2*-","K_2*0","anti-K_2*0", + "K_1+","K_1-","K_10","anti-K_10", + "D'_1+","D'_1-","D'_10","anti-D'_10"); + + if (regenerateMasses.contains(getDaug(0))){ + p->resetFirstOrNot(); + } + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtComplex r00(getArg(0), 0.0 ); + EvtComplex r01(getArg(1), 0.0 ); + EvtComplex r10(getArg(2), 0.0 ); + EvtComplex r11(getArg(3), 0.0 ); + + calcamp->CalcAmp(p,_amp2,baryonpcrffmodel, r00, r01, r10, r11); + +} + +void EvtBaryonPCR::initProbMax() { + + // Baryons (partial list 5/28/04) + + static EvtId SIGC0=EvtPDL::getId("Sigma_c0"); + static EvtId SIGC0B=EvtPDL::getId("anti-Sigma_c0"); + static EvtId SIGCP=EvtPDL::getId("Sigma_c+"); + static EvtId SIGCM=EvtPDL::getId("anti-Sigma_c-"); + static EvtId SIGCPP=EvtPDL::getId("Sigma_c++"); + static EvtId SIGCMM=EvtPDL::getId("anti-Sigma_c--"); + static EvtId LAMCP=EvtPDL::getId("Lambda_c+"); + static EvtId LAMCM=EvtPDL::getId("anti-Lambda_c-"); + static EvtId LAMC1P=EvtPDL::getId("Lambda_c(2593)+"); + static EvtId LAMC1M=EvtPDL::getId("anti-Lambda_c(2593)-"); + static EvtId LAMC2P=EvtPDL::getId("Lambda_c(2625)+"); + static EvtId LAMC2M=EvtPDL::getId("anti-Lambda_c(2625)-"); + static EvtId LAMB=EvtPDL::getId("Lambda_b0"); + static EvtId LAMBB=EvtPDL::getId("anti-Lambda_b0"); + + EvtId parnum,barnum,lnum; + + parnum = getParentId(); + barnum = getDaug(0); + lnum = getDaug(1); + + if( parnum==LAMB || parnum==LAMBB ) { + if( barnum==LAMCP|| barnum==LAMCM + || barnum==LAMC1P || barnum==LAMC1M || barnum==LAMC2P || barnum==LAMC2M + || barnum==SIGC0 || barnum==SIGC0B || barnum==SIGCP || barnum==SIGCM + || barnum==SIGCPP || barnum==SIGCMM ) { + setProbMax(22000.0); + return; + } + } + + //This is a real cludge.. (ryd) + setProbMax(0.0); + +} + +void EvtBaryonPCR::init(){ + + //if (getNArg()!=0) { + if (getNArg()!=4) { + + report(ERROR,"EvtGen") << "EvtBaryonPCR generator expected " + << " 4 arguments but found:"<1/2+, +// 1/2+->1/2-, 1/2+->3/2- Lambda decays +// +//------------------------------------------------------------------------ + +#ifndef EVTBARYONPCR_HH +#define EVTBARYONPCR_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtSemiLeptonicBaryonAmp.hh" + +class EvtParticle; + +class EvtBaryonPCR:public EvtDecayAmp { + +public: + + EvtBaryonPCR(); + virtual ~EvtBaryonPCR(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void initProbMax(); + void init(); + +private: + EvtSemiLeptonicFF *baryonpcrffmodel; + EvtSemiLeptonicBaryonAmp *calcamp; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtBaryonPCRFF.cpp b/TEvtGen/EvtGenModels/EvtBaryonPCRFF.cpp new file mode 100644 index 00000000000..e5e8d146dc5 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBaryonPCRFF.cpp @@ -0,0 +1,267 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen 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: EvtBaryonVminusAFF.cc +// +// Description: Routine to implement semileptonic form factors +// according to the model BaryonVminusA +// +// Modification history: +// +// R.J. Tesarek May 28, 2004 Module created +// Karen Gibson 1/20/2006 Module updated for 1/2+->1/2+, +// 1/2+->1/2-, 1/2+->3/2- Lambda decays +// +//-------------------------------------------------------------------------- +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtBaryonPCRFF.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtIdSet.hh" +#include "EvtGenBase/EvtConst.hh" +#include +#include +#include +using std::endl; + +void EvtBaryonPCRFF::getdiracff(EvtId parent, EvtId daught, + double q2, double /* mass */ , + double *f1, double *f2, double *f3, + double *g1, double *g2, double *g3 ) { + + // Baryons (partial list 5/28/04) + static EvtId LAMCP=EvtPDL::getId("Lambda_c+"); + static EvtId LAMCM=EvtPDL::getId("anti-Lambda_c-"); + static EvtId LAMC1P=EvtPDL::getId("Lambda_c(2593)+"); + static EvtId LAMC1M=EvtPDL::getId("anti-Lambda_c(2593)-"); + static EvtId LAMB=EvtPDL::getId("Lambda_b0"); + static EvtId LAMBB=EvtPDL::getId("anti-Lambda_b0"); + + double F1, F2, F3, G1, G2, G3; + + if( parent==LAMB || parent==LAMBB ) { + // Implement constituent quark model form factors predicted + // by M. Pervin, W. Roberst, and S. Capstick, Phys. Rev. C72, 035201 (2005) + + if( daught==LAMCP|| daught==LAMCM ) { + + // Parameters needed in the calculation; + double mQ = 5.28; + double mq = 1.89; + double md = 0.40; + double MLamB = EvtPDL::getMass(parent); + double MLamC = EvtPDL::getMass(daught); + + double aL = 0.59; + double aLp = 0.55; + + double aL2 = aL*aL; + double aLp2 = aLp*aLp; + double aLLp2 = 0.5*(aL2+aLp2); + + // relativistic correction factor + double k2 = 1.0; + double rho2 = 3.*md*md/(2.*k2*aLLp2); + + // w = scalar product of the 4 velocities of the Lb and Lc. + double w = 0.5*(MLamB*MLamB + MLamC*MLamC - q2)/MLamB/MLamC; + + double I = pow(aL*aLp/aLLp2, 1.5)*exp(-rho2*(w*w-1.)); + + // Calculate the form factors + F1 = I*( 1.0 + (md/aLLp2)*( (aLp2/mq)+(aL2/mQ) ) ); + F2 = -I*( (md/mq)*(aLp2/aLLp2) - aL2*aLp2/(4.*aLLp2*mq*mQ) ); + F3 = -I*md*aL2/(mQ*aLLp2); + + G1 = I*( 1.0 - (aL2*aLp2)/(12.*aLLp2*mq*mQ) ); + G2 = -I*( md*aLp2/(mq*aLLp2) + + (aL2*aLp2)/(12.*aLLp2*mq*mQ)*(1.+12.*md*md/aLLp2) ); + G3 = I*( md*aL2/(mQ*aLLp2) + md*md*aL2*aLp2/(mq*mQ*aLLp2*aLLp2) ); + + // Set form factors to be passed to the amplitude calc. + *f1 = F1; + *f2 = F2; + *f3 = F3; + *g1 = G1; + *g2 = G2; + *g3 = G3; + + } + + else if( daught==LAMC1P || daught==LAMC1M ) { + + double mQ = 5.28; + double mq = 1.89; + double md = 0.40; + double MLamB = EvtPDL::getMass(parent); + double MLamC = EvtPDL::getMass(daught); + + double aL = 0.59; + double aLp = 0.47; + + double aL2 = aL*aL; + double aLp2 = aLp*aLp; + double aLLp2 = 0.5*(aL2+aLp2); + + // relativistic correction factor + double k2 = 1.0; + double rho2 = 3.*md*md/(2.*k2*aLLp2); + + // w = scalar product of the 4 velocities of the Lb and Lc. + double w = 0.5*(MLamB*MLamB + MLamC*MLamC - q2)/MLamB/MLamC; + + double I = pow(aL*aLp/aLLp2, 2.5)*exp(-rho2*(w*w-1.)); + + // Calculate the form factors + F1 = I*aL/6.0*( 3.0/mq - 1.0/mQ ); + F2 = -I*( 2.0*md/aL - aL/(2.0*mq) + 2.*md*md*aL/(mQ*aLLp2) + - (md*aL/(6.*mq*mQ*aLLp2))*( 3.*aL2 - 2.*aLp2)); + F3 = I*2.*md*md*aL/(mQ*aLLp2); + + G1 = I*( 2.0*md/aL - aL/(6.*mQ) + + (md*aL/(6.*mq*mQ*aLLp2))*( 3.*aL2 - 2.*aLp2)); + G2 = I*( -2.*md/aL + aL/(2.*mq) + aL/(3.*mQ) ); + G3 = I*aL/(3.*mQ)*( 1.0 - (md/(2.*mq*aLLp2))*( 3.*aL2 - 2.*aLp2)); + + // Set form factors to be passed to the amplitude calc. + *f1 = F1; + *f2 = F2; + *f3 = F3; + *g1 = G1; + *g2 = G2; + *g3 = G3; + } + } + + else { + *f1 = 1.0; + *f2 = 1.0; + *f3 = 0.0; + *g1 = 1.0; + *g2 = 1.0; + *g3 = 0.0; + } + + return ; +} + + +void EvtBaryonPCRFF::getraritaff( EvtId parent, EvtId daught, + double q2, double /* mass */, + double *f1, double *f2, double *f3, double *f4, + double *g1, double *g2, double *g3, double *g4 ) { + + // Baryons (partial list 5/28/04) + static EvtId LAMB=EvtPDL::getId("Lambda_b0"); + static EvtId LAMBB=EvtPDL::getId("anti-Lambda_b0"); + static EvtId LAMC2P=EvtPDL::getId("Lambda_c(2625)+"); + static EvtId LAMC2M=EvtPDL::getId("anti-Lambda_c(2625)-"); + + double F1, F2, F3, F4, G1, G2, G3, G4; + + if( parent==LAMB || parent==LAMBB ) { + // Implement constituent quark model form factors predicted + // by M. Pervin, W. Roberst, and S. Capstick, Phys. Rev. C72, 035201 (2005) + + if( daught==LAMC2P|| daught==LAMC2M ) { + + double mQ = 5.28; + double mq = 1.89; + double md = 0.40; + double MLamB = EvtPDL::getMass(parent); + double MLamC = EvtPDL::getMass(daught); + + double aL = 0.59; + double aLp = 0.47; + + double aL2 = aL*aL; + double aLp2 = aLp*aLp; + double aLLp2 = 0.5*(aL2+aLp2); + + // relativistic correction factor + double k2 = 1.0; + double rho2 = 3.*md*md/(2.*k2*aLLp2); + + // w = scalar product of the 4 velocities of the Lb and Lc. + double w = 0.5*(MLamB*MLamB + MLamC*MLamC - q2)/MLamB/MLamC; + + double I = -(1./sqrt(3.))*pow(aL*aLp/aLLp2, 2.5)*exp(-rho2*(w*w-1.)); + + // Calculate the form factors + F1 = I*3.0*md/aL*( 1.0 + (md/aLLp2)*( (aLp2/mq)+(aL2/mQ) ) ); + F2 = -I*( (3.*md*md/mq)*(aLp2/(aLLp2*aL2)) - 5.*aL*aLp2*md/(4.*aLLp2*mq*mQ) ); + F3 = -I*( 3.*md*md*aL/(mQ*aLLp2) + aL/(2.*mQ) ); + F4 = I*aL/mQ; + + G1 = I*( 3.0*md/aL - (aL/(2.*mQ))*(1. + 3.*md*aLp2/(2.*aLLp2*mq) ) ); + G2 = -I*( (3.*md*md/mq)*(aLp2/(aLLp2*aL)) + aL*aLp2*md/(4.*aLLp2*aLLp2*mq*mQ)*(aLLp2+12.*md*md) ); + G3 = I*aL/(mQ*aLLp2)*( aLLp2/2. + 3.*md*md + aLp2*md/(mq*aLLp2)*(aLLp2+6.*md*md) ); + G4 = -I*( aL/mQ + md/(mq*mQ)*aLp2*aL/aLLp2 ); + + // Set form factors to be passed to the amplitude calc. + *f1 = F1; + *f2 = F2; + *f3 = F3; + *f4 = F4; + *g1 = G1; + *g2 = G2; + *g3 = G3; + *g4 = G4; + } + } + + else { + *f1 = 1.0; + *f2 = 1.0; + *f3 = 0.0; + *f4 = 0.0; + *g1 = 1.0; + *g2 = 1.0; + *g3 = 0.0; + *g4 = 0.0; + + } + + return ; + + +} + +void EvtBaryonPCRFF::getscalarff(EvtId, EvtId, double, double, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getscalarff in EvtBaryonPCRFF.\n"; + ::abort(); + +} + +void EvtBaryonPCRFF::getvectorff(EvtId, EvtId, double, double, double*, double*, + double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getvectorff in EvtBaryonPCRFF.\n"; + ::abort(); + +} + +void EvtBaryonPCRFF::gettensorff(EvtId, EvtId, double, double, double*, double*, + double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :gettensorff in EvtBaryonPCRFF.\n"; + ::abort(); + +} + +void EvtBaryonPCRFF::getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*){ + + report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtBaryonPCRFF.\n"; + ::abort(); + +} diff --git a/TEvtGen/EvtGenModels/EvtBaryonPCRFF.hh b/TEvtGen/EvtGenModels/EvtBaryonPCRFF.hh new file mode 100644 index 00000000000..201e17df855 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBaryonPCRFF.hh @@ -0,0 +1,60 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen 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: EvtGen/EvtBaryonVminusAFF.hh +// +// Description:Form factor routines specific to EvtBaryonVminusA +// +// Modification history: +// +// R.J. Tesarek May 28, 2004 Module created +// Karen Gibson 1/20/2006 Module updated for 1/2+->1/2+, +// 1/2+->1/2-, 1/2+->3/2- Lambda decays +// +//------------------------------------------------------------------------ + +#ifndef EVTBARYONPCRFF_HH +#define EVTBARYONPCRFF_HH + +#include "EvtGenBase/EvtSemiLeptonicFF.hh" + +class EvtId; + +class EvtBaryonPCRFF : 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*); + + void getdiracff( EvtId parent, EvtId daught, + double q2, double mass, + double *f1, double *f2, double *f3, + double *g1, double *g2, double *g3 ); + + void getraritaff( EvtId parent, EvtId daught, + double q2, double mass, + double *f1, double *f2, double *f3, double *f4, + double *g1, double *g2, double *g3, double *g4 ); +}; + +#endif + + diff --git a/TEvtGen/EvtGenModels/EvtBcBsNPi.cpp b/TEvtGen/EvtGenModels/EvtBcBsNPi.cpp new file mode 100644 index 00000000000..fe6139dcaad --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBcBsNPi.cpp @@ -0,0 +1,72 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Module: EvtGenModels/EvtBcBsNPi.hh +// +// Description: Decay model for Bc -> Bs + npi +// +// Modification history: +// +// A.Berezhnoy, A.Likhoded, A.Luchinsky July 2011 Module created +// +//------------------------------------------------------------------------ + +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtSpinType.hh" +#include "EvtGenModels/EvtBcBsNPi.hh" + +EvtBcBsNPi::EvtBcBsNPi() { + + _beta=-0.108; _mRho=0.775; _gammaRho=0.149; + _mRhopr=1.364; _gammaRhopr=0.400; _mA1=1.23; _gammaA1=0.4; + // Fp_N=1.3; Fp_c1=0.30; Fp_c2=0.069; + Fp_N=3*1.3; Fp_c1=0.30; Fp_c2=0.069; + Fm_N=0.0; Fm_c1=0.0; Fm_c2=0.0; + +} + +EvtBcBsNPi::~EvtBcBsNPi() { +} + +std::string EvtBcBsNPi::getName() { + + return "BC_BS_NPI"; + +} + +EvtDecayBase* EvtBcBsNPi::clone() { + + return new EvtBcBsNPi; + +} + +void EvtBcBsNPi::init() { + + checkNArg(0); + + // check spins + checkSpinParent(EvtSpinType::SCALAR); + checkSpinDaughter(0,EvtSpinType::SCALAR); + // the others are scalar + for (int i=1; i<=(getNDaug()-1);i++) { + checkSpinDaughter(i,EvtSpinType::SCALAR); + } + +} + +void EvtBcBsNPi::initProbMax() { + + if ( getNDaug() == 2 ) { + setProbMax(250.); + } else if ( getNDaug() == 3 ) { + setProbMax(25000.);// checked at 30k events + } else if( getNDaug() == 4 ) { + setProbMax(45000.); // checked at 30k events + } + +} diff --git a/TEvtGen/EvtGenModels/EvtBcBsNPi.hh b/TEvtGen/EvtGenModels/EvtBcBsNPi.hh new file mode 100644 index 00000000000..a5ff7c84d8d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBcBsNPi.hh @@ -0,0 +1,40 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Module: EvtGenModels/EvtBcBsNPi.hh +// +// Description: Decay model for Bc -> Bs + npi +// +// Modification history: +// +// A.Berezhnoy, A.Likhoded, A.Luchinsky July 2011 Module created +// +//------------------------------------------------------------------------ + +#ifndef EvtBcBsNpi_HH +#define EvtBcBsNpi_HH + +#include "EvtGenModels/EvtBcToNPi.hh" +#include "EvtGenBase/EvtDecayBase.hh" +#include + +class EvtBcBsNPi : public EvtBcToNPi { +public: + + EvtBcBsNPi(); + virtual ~EvtBcBsNPi(); + + virtual void init(); + virtual void initProbMax(); + + virtual std::string getName(); + virtual EvtDecayBase* clone(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtBcBsStarNPi.cpp b/TEvtGen/EvtGenModels/EvtBcBsStarNPi.cpp new file mode 100644 index 00000000000..e2ba6bdf7ec --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBcBsStarNPi.cpp @@ -0,0 +1,76 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Module: EvtGenModels/EvtBcBsStarNPi.hh +// +// Description: Decay model for Bc -> Bs* + npi +// +// Modification history: +// +// A.Berezhnoy, A.Likhoded, A.Luchinsky April 2011 Module created +// +//------------------------------------------------------------------------ + +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenModels/EvtBcBsStarNPi.hh" +#include "EvtGenBase/EvtSpinType.hh" + +EvtBcBsStarNPi::EvtBcBsStarNPi() { + + _beta=-0.108; _mRho=0.775; _gammaRho=0.149; + _mRhopr=1.364; _gammaRhopr=0.400; _mA1=1.23; _gammaA1=0.4; + + FA0_N=8.1; FA0_c1=0.30; FA0_c2=0.069; + FAm_N=0.0; FAm_c1=0.0; FAm_c2=0.0; + FAp_N=0.15; FAp_c1=0.30; FAp_c2=0.069; + FV_N= 1.08; FV_c1=0.30; FV_c2=0.069; + +} + +EvtBcBsStarNPi::~EvtBcBsStarNPi() { + +} + +std::string EvtBcBsStarNPi::getName() { + + return "BC_BSSTAR_NPI"; + +} + +EvtDecayBase* EvtBcBsStarNPi::clone() { + + return new EvtBcBsStarNPi; + +} + +void EvtBcBsStarNPi::init() { + + checkNArg(0); + + // check spins + checkSpinParent(EvtSpinType::SCALAR); + checkSpinDaughter(0,EvtSpinType::VECTOR); + // the others are scalar + for (int i=1; i<=(getNDaug()-1);i++) { + checkSpinDaughter(i,EvtSpinType::SCALAR); + } + +} + +void EvtBcBsStarNPi::initProbMax() { + + if ( getNDaug() == 2 ) { + setProbMax(100.); + } else if( getNDaug() == 3 ) { + setProbMax(40000.); + } else if( getNDaug() == 4 ) { + setProbMax(620.); // checked, 30k events + } + +} diff --git a/TEvtGen/EvtGenModels/EvtBcBsStarNPi.hh b/TEvtGen/EvtGenModels/EvtBcBsStarNPi.hh new file mode 100644 index 00000000000..e5d8aa5abcd --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBcBsStarNPi.hh @@ -0,0 +1,43 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Module: EvtGenModels/EvtBcBsStarNPi.hh +// +// Description: Decay model for Bc -> Bs* + npi +// +// Modification history: +// +// A.Berezhnoy, A.Likhoded, A.Luchinsky April 2011 Module created +// +//------------------------------------------------------------------------ + +#ifndef EvtBcBsStarNpi_HH +#define EvtBcBsStarNpi_HH + +#include "EvtGenModels/EvtBcToNPi.hh" +#include "EvtGenBase/EvtDecayBase.hh" + +#include + +class EvtBcBsStarNPi : public EvtBcToNPi { +public: + + EvtBcBsStarNPi(); + + virtual ~EvtBcBsStarNPi(); + + virtual void init(); + + virtual void initProbMax(); + + virtual std::string getName(); + virtual EvtDecayBase* clone(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtBcPsiNPi.cpp b/TEvtGen/EvtGenModels/EvtBcPsiNPi.cpp new file mode 100644 index 00000000000..1d389cba6d2 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBcPsiNPi.cpp @@ -0,0 +1,76 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Module: EvtGenModels/EvtBcBsNPi.hh +// +// Description: Decay model for Bc -> J/psi + npi +// +// Modification history: +// +// A.Berezhnoy, A.Likhoded, A.Luchinsky April 2011 Module created +// +//------------------------------------------------------------------------ + +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenModels/EvtBcPsiNPi.hh" +#include "EvtGenBase/EvtSpinType.hh" + +EvtBcPsiNPi::EvtBcPsiNPi() { + + _beta=-0.108; _mRho=0.775; _gammaRho=0.149; + _mRhopr=1.364; _gammaRhopr=0.400; _mA1=1.23; _gammaA1=0.4; + + FA0_N=5.9; FA0_c1= 0.049; FA0_c2= 0.0015; + FAm_N=0.0; FAm_c1=0.0; FAm_c2=0.0; + FAp_N=-0.074; FAp_c1= 0.049; FAp_c2= 0.0015; + FV_N=0.11; FV_c1= 0.049; FV_c2= 0.0015; + +} + +EvtBcPsiNPi::~EvtBcPsiNPi() { + +} + +std::string EvtBcPsiNPi::getName() { + + return "BC_PSI_NPI"; + +} + +EvtDecayBase* EvtBcPsiNPi::clone() { + + return new EvtBcPsiNPi; + +} + +void EvtBcPsiNPi::init() { + + checkNArg(0); + + // check spins + checkSpinParent(EvtSpinType::SCALAR); + checkSpinDaughter(0,EvtSpinType::VECTOR); + // the others are scalar + for (int i=1; i<=(getNDaug()-1);i++) { + checkSpinDaughter(i,EvtSpinType::SCALAR); + } + +} + +void EvtBcPsiNPi::initProbMax() { + + setProbMax(100.); + if( getNDaug() == 2 ) { + setProbMax(330.); + } else if( getNDaug() == 3 ) { + setProbMax(11000.); // checked with 30k events + } else if( getNDaug() == 4 ) { + setProbMax(36000.); + } + +} diff --git a/TEvtGen/EvtGenModels/EvtBcPsiNPi.hh b/TEvtGen/EvtGenModels/EvtBcPsiNPi.hh new file mode 100644 index 00000000000..85bb01b2502 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBcPsiNPi.hh @@ -0,0 +1,43 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Module: EvtGenModels/EvtBcBsNPi.hh +// +// Description: Decay model for Bc -> J/psi + npi +// +// Modification history: +// +// A.Berezhnoy, A.Likhoded, A.Luchinsky April 2011 Module created +// +//------------------------------------------------------------------------ + +#ifndef EvtBcPsiNpi_HH +#define EvtBcPsiNpi_HH + +#include "EvtGenModels/EvtBcToNPi.hh" +#include "EvtGenBase/EvtDecayBase.hh" + +#include + +class EvtBcPsiNPi : public EvtBcToNPi { + +public: + + EvtBcPsiNPi(); + + virtual ~EvtBcPsiNPi(); + + virtual void init(); + virtual void initProbMax(); + + virtual std::string getName(); + virtual EvtDecayBase* clone(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtBcToNPi.cpp b/TEvtGen/EvtGenModels/EvtBcToNPi.cpp new file mode 100644 index 00000000000..027b30f63c1 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBcToNPi.cpp @@ -0,0 +1,339 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Module: EvtGenModels/EvtBcToNPi.hh +// +// Description: General decay model for Bc -> V + npi and Bc -> P + npi +// +// Modification history: +// +// A.Berezhnoy, A.Likhoded, A.Luchinsky April 2011 Module created +// +//------------------------------------------------------------------------ + +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtIdSet.hh" +#include "EvtGenBase/EvtSpinType.hh" +#include "EvtGenBase/EvtScalarParticle.hh" + +#include "EvtGenModels/EvtBcToNPi.hh" + +#include +using std::endl; + +EvtBcToNPi::EvtBcToNPi(bool printAuthorInfo) { + nCall=0; maxAmp2=0; + if (printAuthorInfo == true) {this->printAuthorInfo();} +} + +EvtBcToNPi::~EvtBcToNPi() { +} + +std::string EvtBcToNPi::getName(){ + + return "EvtBcToNPi"; + +} + +EvtDecayBase* EvtBcToNPi::clone(){ + + return new EvtBcToNPi; + +} + + +void EvtBcToNPi::init(){ + + // check spins + checkSpinParent(EvtSpinType::SCALAR); + + + // the others are scalar + for (int i=1; i<=(getNDaug()-1);i++) { + checkSpinDaughter(i,EvtSpinType::SCALAR); + }; + + _beta=-0.108; _mRho=0.775; _gammaRho=0.149; + _mRhopr=1.364; _gammaRhopr=0.400; _mA1=1.23; _gammaA1=0.4; + + // read arguments + if( EvtPDL::getSpinType(getDaug(0)) == EvtSpinType::VECTOR) { + checkNArg(10); + int n=0; + _maxProb=getArg(n++); + FA0_N=getArg(n++); + FA0_c1=getArg(n++); + FA0_c2=getArg(n++); + FAp_N=getArg(n++); + FAp_c1=getArg(n++); + FAp_c2=getArg(n++); + FV_N=getArg(n++); + FV_c1=getArg(n++); + FV_c2=getArg(n++); + FAm_N=0; + FAm_c1=0; + FAm_c2=0; + } + else if( EvtPDL::getSpinType(getDaug(0)) == EvtSpinType::SCALAR) { + checkNArg(4); + int n=0; + _maxProb=getArg(n++); + Fp_N=getArg(n++); + Fp_c1=getArg(n++); + Fp_c2=getArg(n++); + Fm_N=0; + Fm_c1=0; + Fm_c2=0; + } + else { + report(ERROR,"EvtGen") << "Have not yet implemented this final state in BCPSINPI model" << endl; + report(ERROR,"EvtGen") << "Ndaug="<4) { + report(ERROR,"EvtGen") << "Have not yet implemented this final state in BCPSINPI model" << endl; + report(ERROR,"EvtGen") << "Ndaug="<0.) setProbMax(_maxProb); + else { + EvtId id=getParentId(); + EvtScalarParticle *p=new EvtScalarParticle(); + p->init(id, EvtPDL::getMass(id),0., 0., 0.); + p->setDiagonalSpinDensity(); + // add daughters + p->makeDaughters(getNDaug(), getDaugs() ); + + // fill the momenta + if(getNDaug()==2) { + double M=EvtPDL::getMass(id), m1=EvtPDL::getMass(getDaug(0)), m2=EvtPDL::getMass(getDaug(1)); + double __pp=_pp(M,m1,m2); + p->getDaug(0)->setP4( EvtVector4R( _ee(M,m1,m2), 0., 0., __pp) ); + p->getDaug(1)->setP4( EvtVector4R( _ee(M,m2,m1), 0., 0., -__pp) ); + } + else if( getNDaug()==3) { + double M=EvtPDL::getMass(id), + m1=EvtPDL::getMass(getDaug(0)), + m2=EvtPDL::getMass(getDaug(1)), + m3=EvtPDL::getMass(getDaug(2)); + double __ppRho=_pp(M,m1,_mRho), __ppPi=_pp(_mRho,m2,m3); + p->getDaug(0)->setP4( EvtVector4R( _ee(M,m1,_mRho), 0., 0., __ppRho) ); + EvtVector4R _pRho( _ee(M,_mRho,m1), 0., 0., -__ppRho); + EvtVector4R _p2( _ee(_mRho, m2, m3), 0., 0., __ppPi); _p2.applyBoostTo(_pRho); + EvtVector4R _p3( _ee(_mRho, m2, m3), 0., 0., -__ppPi); _p3.applyBoostTo(_pRho); + p->getDaug(1)->setP4(_p2); + p->getDaug(2)->setP4(_p3); + + } + else if( getNDaug()==4) { + double M=EvtPDL::getMass(id), + m1=EvtPDL::getMass(getDaug(0)), + m2=EvtPDL::getMass(getDaug(1)), + m3=EvtPDL::getMass(getDaug(2)), + m4=EvtPDL::getMass(getDaug(3)); + if(MgetDaug(0)->setP4( EvtVector4R( _ee(M,m1,_mRho), 0., 0., __ppA1) ); + EvtVector4R _pA1( _ee(M,_mA1,m1), 0., 0., -__ppA1); + EvtVector4R _pRho(_ee(_mA1, _mRho, m4), 0, 0, __ppRho); + _pRho.applyBoostTo(_pA1); + EvtVector4R _p4( _ee(_mA1, m4, _mRho), 0, 0, -__ppRho); _p4.applyBoostTo(_pA1); + p->getDaug(3)->setP4(_p4); + EvtVector4R _p2( _ee(_mRho, m2, m3), 0, 0, __ppPi); _p2.applyBoostTo(_pRho); + p->getDaug(1)->setP4(_p2); + EvtVector4R _p3( _ee(_mRho, m2, m3), 0, 0, -__ppPi); _p2.applyBoostTo(_pRho); + p->getDaug(2)->setP4(_p3); + }; + + + _amp2.init(p->getId(),getNDaug(),getDaugs()); + + decay(p); + + EvtSpinDensity rho=_amp2.getSpinDensity(); + + double prob=p->getSpinDensityForward().normalizedProb(rho); + + if(prob>0) setProbMax(0.9*prob); + + + }; +} + +void EvtBcToNPi::decay( EvtParticle *root_particle ){ + ++nCall; + + EvtIdSet thePis("pi+","pi-","pi0"); + EvtComplex I=EvtComplex(0.0, 1.0); + + + root_particle->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtVector4R + p(root_particle->mass(), 0., 0., 0.), // Bc momentum + k=root_particle->getDaug(0)->getP4(), // J/psi momenta + Q=p-k; + + double Q2=Q.mass2(); + + +// check pi-mesons and calculate hadronic current + EvtVector4C hardCur; + bool foundHadCurr=false; + + if ( getNDaug() == 2 ) // Bc -> psi pi+ + { + hardCur=Q; + foundHadCurr=true; + } + else if ( getNDaug() == 3 ) // Bc -> psi pi+ pi0 + { + EvtVector4R p1,p2; + p1=root_particle->getDaug(1)->getP4(), // pi+ momenta + p2=root_particle->getDaug(2)->getP4(), // pi0 momentum + hardCur=Fpi(p1,p2)*(p1-p2); + foundHadCurr=true; + } + else if( getNDaug()==4 ) // Bc -> psi pi+ pi pi + { + int diffPi(0),samePi1(0),samePi2(0); + if ( getDaug( 1) == getDaug( 2) ) {diffPi= 3; samePi1= 1; samePi2= 2;} + if ( getDaug( 1) == getDaug( 3) ) {diffPi= 2; samePi1= 1; samePi2= 3;} + if ( getDaug( 2) == getDaug( 3) ) {diffPi= 1; samePi1= 2; samePi2= 3;} + + EvtVector4R p1=root_particle->getDaug(samePi1)->getP4(); + EvtVector4R p2=root_particle->getDaug(samePi2)->getP4(); + EvtVector4R p3=root_particle->getDaug(diffPi)->getP4(); + + EvtComplex BA1; + double GA1=_gammaA1*pi3G(Q2,samePi1)/pi3G(_mA1*_mA1,samePi1); + EvtComplex denBA1(_mA1*_mA1 - Q.mass2(),-1.*_mA1*GA1); + BA1 = _mA1*_mA1 / denBA1; + + hardCur = BA1*( (p1-p3) - (Q*(Q*(p1-p3))/Q2)*Fpi(p2,p3) + + (p2-p3) - (Q*(Q*(p2-p3))/Q2)*Fpi(p1,p3) ); + foundHadCurr=true; + } + + if ( !foundHadCurr ) { + report(ERROR,"EvtGen") << "Have not yet implemented this final state in BCNPI model" << endl; + report(ERROR,"EvtGen") << "Ndaug="<getDaug(0)->getSpinType() == EvtSpinType::VECTOR) { + double FA0=FA0_N*exp(FA0_c1*Q2 + FA0_c2*Q2*Q2); + double FAp=FAp_N*exp(FAp_c1*Q2 + FAp_c2*Q2*Q2); + double FAm=FAm_N*exp(FAm_c1*Q2 + FAm_c2*Q2*Q2); + double FV= FV_N* exp( FV_c1*Q2 + FV_c2*Q2*Q2 ); + H=-FA0*EvtTensor4C::g() + -FAp*EvtGenFunctions::directProd(p,p+k) + +FAm*EvtGenFunctions::directProd(p,p-k) + +2*I*FV*dual(EvtGenFunctions::directProd(p,k)); + EvtVector4C Heps=H.cont2(hardCur); + + for(int i=0; i<4; i++) { + EvtVector4C eps=root_particle->getDaug(0)->epsParent(i).conj(); // psi-meson polarization vector + EvtComplex amp=eps*Heps; + vertex(i,amp); + amp2+=pow( abs(amp),2); + } + } + else if( root_particle->getDaug(0)->getSpinType() == EvtSpinType::SCALAR) { + double Fp=Fp_N*exp(Fp_c1*Q2 + Fp_c2*Q2*Q2); + double Fm=Fm_N*exp(Fm_c1*Q2 + Fm_c2*Q2*Q2); + EvtVector4C H=Fp*(p+k)+Fm*(p-k); + EvtComplex amp=H*hardCur; + vertex(amp); + amp2+=pow( abs(amp),2); + }; + if(amp2>maxAmp2) maxAmp2=amp2; + + return ; +} + +EvtComplex EvtBcToNPi::Fpi( EvtVector4R q1, EvtVector4R q2) { + double m1=q1.mass(); + double m2=q2.mass(); + + EvtVector4R Q = q1 + q2; + double mQ2= Q*Q; + + // momenta in the rho->pipi decay + double dRho= _mRho*_mRho - m1*m1 - m2*m2; + double pPiRho = (1.0/_mRho)*sqrt((dRho*dRho)/4.0 - m1*m1*m2*m2); + + double dRhopr= _mRhopr*_mRhopr - m1*m1 - m2*m2; + double pPiRhopr = (1.0/_mRhopr)*sqrt((dRhopr*dRhopr)/4.0 - m1*m1*m2*m2); + + double dQ= mQ2 - m1*m1 - m2*m2; + double pPiQ = (1.0/sqrt(mQ2))*sqrt((dQ*dQ)/4.0 - m1*m1*m2*m2); + + + double gammaRho = _gammaRho*_mRho/sqrt(mQ2)*pow((pPiQ/pPiRho),3); + EvtComplex BRhoDem(_mRho*_mRho - mQ2,-1.0*_mRho*gammaRho); + EvtComplex BRho= _mRho*_mRho / BRhoDem; + + double gammaRhopr = _gammaRhopr*_mRhopr/sqrt(mQ2)*pow((pPiQ/pPiRhopr),3); + EvtComplex BRhoprDem(_mRhopr*_mRhopr - mQ2,-1.0*_mRho*gammaRhopr); + EvtComplex BRhopr= _mRhopr*_mRhopr / BRhoprDem; + + return (BRho + _beta*BRhopr)/(1+_beta); +} + +double EvtBcToNPi::pi3G(double m2,int dupD) { + double mPi= EvtPDL::getMeanMass(getDaug(dupD)); + if ( m2 > (_mRho+mPi) ) { + return m2*(1.623 + 10.38/m2 - 9.32/(m2*m2) + 0.65/(m2*m2*m2)); + } + else { + double t1=m2-9.0*mPi*mPi; + return 4.1*pow(t1,3.0)*(1.0 - 3.3*t1+5.8*t1*t1); + } +} + +void EvtBcToNPi::printAuthorInfo() { + + report(INFO,"EvtGen")<<"Defining EvtBcToNPi model: Bc -> V + npi and Bc -> P + npi decays\n" + <<"from A.V. Berezhnoy, A.K. Likhoded, A.V. Luchinsky: " + <<"Phys.Rev.D 82, 014012 (2010) and arXiV:1104.0808."< V + npi and Bc -> P + npi +// +// Modification history: +// +// A.Berezhnoy, A.Likhoded, A.Luchinsky April 2011 Module created +// +//------------------------------------------------------------------------ + +#ifndef EvtBcToNPi_HH +#define EvtBcToNPi_HH + +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtVector4R.hh" + +#include + +class EvtBcToNPi: public EvtDecayAmp { + +public: + + EvtBcToNPi(bool printAuthorInfo = false); + virtual ~EvtBcToNPi(); + + std::string getName(); + + EvtDecayBase* clone(); + + void initProbMax(); + + void init(); + + void decay(EvtParticle *p); + +protected: + + int nCall; + double maxAmp2; + + // Bc form factors + double _maxProb; + double FA0_N, FA0_c1, FA0_c2; + double FAm_N, FAm_c1, FAm_c2; + double FAp_N, FAp_c1, FAp_c2; + double FV_N, FV_c1, FV_c2; + + double Fp_N, Fp_c1, Fp_c2; + double Fm_N, Fm_c1, Fm_c2; + + // W -> pi... form factors + double _beta; + double _mRho; + double _gammaRho; + double _mRhopr; + double _gammaRhopr; + double _mA1; + double _gammaA1; + + double _ee(double M, double m1, double m2); + double _pp(double M, double m1, double m2); + EvtComplex Fpi( EvtVector4R q1, EvtVector4R q2); + double pi3G(double m2,int dupD); + +private: + + void printAuthorInfo(); + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtBcVMuNu.cpp b/TEvtGen/EvtGenModels/EvtBcVMuNu.cpp new file mode 100755 index 00000000000..c26edf96321 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBcVMuNu.cpp @@ -0,0 +1,97 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the 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: EvtBcVMuNu.cc +// +// Description: Routine to implement semileptonic B->psi lnu decays +// +// Modification history: +// +// AVL July 6, 2012 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/EvtSemiLeptonicVectorAmp.hh" +#include +#include + +#include "EvtGenModels/EvtBcVMuNu.hh" +#include "EvtGenModels/EvtBCVFF.hh" + +using namespace std; + +EvtBcVMuNu::~EvtBcVMuNu() { +// cout<<"EvtBcVMuNu::destructor getProbMax(-1) = "<initializePhaseSpace(getNDaug(),getDaugs()); + calcamp->CalcAmp(p,_amp2,ffmodel); +// cout<<"EvtBcVMuNu::decay() getProbMax(-1) = "< +#include + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" + +class EvtParticle; + +class EvtBcVMuNu: public EvtDecayAmp { + +public: + + EvtBcVMuNu() {} + virtual ~EvtBcVMuNu(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + + virtual void initProbMax(); + + +private: + EvtSemiLeptonicFF *ffmodel; + EvtSemiLeptonicAmp *calcamp; + int whichfit; + int idVector; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtBcVNpi.cpp b/TEvtGen/EvtGenModels/EvtBcVNpi.cpp new file mode 100644 index 00000000000..c79ed3de923 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBcVNpi.cpp @@ -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: EvtBcVNpi.cc +// +// Description: Module to implement Bc -> psi + (n pi) decays +// +// Modification history: +// +// AVL July 6, 2012 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#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/EvtTensor4C.hh" +#include "EvtGenBase/EvtIdSet.hh" +#include "EvtGenBase/EvtParser.hh" + +#include "EvtGenModels/EvtBcVNpi.hh" +#include "EvtGenModels/EvtWnPi.hh" + + + +EvtBcVNpi::~EvtBcVNpi() { +// cout<<"BcVNpi::destructor : nCall = "<6) { + report(ERROR,"EvtGen") << "Have not yet implemented this final state in BcVNpi model" << endl; + report(ERROR,"EvtGen") << "Ndaug="<initializePhaseSpace(getNDaug(),getDaugs()); + + EvtVector4R + p4b(root_particle->mass(), 0., 0., 0.), // Bc momentum + p4meson=root_particle->getDaug(0)->getP4(), // J/psi momenta + Q=p4b-p4meson; + double Q2=Q.mass2(); + + +// check pi-mesons and calculate hadronic current + EvtVector4C hardCur; +// bool foundHadCurr=false; + if( getNDaug() == 2) { + hardCur = wcurr->WCurrent( root_particle->getDaug(1)->getP4() ); +// foundHadCurr=true; + } + else if( getNDaug() == 3) { + hardCur = wcurr->WCurrent( root_particle->getDaug(1)->getP4() , + root_particle->getDaug(2)->getP4() + ); +// foundHadCurr=true; + } + else if( getNDaug() == 4) { + hardCur = wcurr->WCurrent( root_particle->getDaug(1)->getP4() , + root_particle->getDaug(2)->getP4(), + root_particle->getDaug(3)->getP4() + ); +// foundHadCurr=true; + } + else if( getNDaug() == 6) // Bc -> psi pi+ pi+ pi- pi- pi+ from [Kuhn, Was, hep-ph/0602162 + { + + hardCur = wcurr->WCurrent(root_particle->getDaug(1)->getP4(), + root_particle->getDaug(2)->getP4(), + root_particle->getDaug(3)->getP4(), + root_particle->getDaug(4)->getP4(), + root_particle->getDaug(5)->getP4() + ); +// foundHadCurr=true; + } + else { + report(ERROR,"EvtGen") << "Have not yet implemented this final state in BCNPI model" << endl; + report(ERROR,"EvtGen") << "Ndaug="< V W form-factors + double a1f, a2f, vf, a0f; + double m_meson = root_particle->getDaug(0)->mass(); + double m_b = root_particle->mass(); + ffmodel->getvectorff(root_particle->getId(), + root_particle->getDaug(0)->getId(), + Q2, + m_meson, + &a1f, + &a2f, + &vf, + &a0f); + double a3f = ((m_b+m_meson)/(2.0*m_meson))*a1f - + ((m_b-m_meson)/(2.0*m_meson))*a2f; + +// calculate Bc -> V W current + EvtTensor4C H; + H = a1f*(m_b+m_meson)*EvtTensor4C::g(); + H.addDirProd((-a2f/(m_b+m_meson))*p4b,p4b+p4meson); + H+=EvtComplex(0.0,vf/(m_b+m_meson))*dual(EvtGenFunctions::directProd(p4meson+p4b,p4b-p4meson)); + H.addDirProd((a0f-a3f)*2.0*(m_meson/Q2)*p4b,p4b-p4meson); + EvtVector4C Heps=H.cont2(hardCur); + + for(int i=0; i<4; i++) { + EvtVector4C eps=root_particle->getDaug(0)->epsParent(i).conj(); // psi-meson polarization vector + EvtComplex amp=eps*Heps; + vertex(i,amp); + }; + +} + diff --git a/TEvtGen/EvtGenModels/EvtBcVNpi.hh b/TEvtGen/EvtGenModels/EvtBcVNpi.hh new file mode 100644 index 00000000000..2611a4867c1 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBcVNpi.hh @@ -0,0 +1,42 @@ +#ifndef EvtBcVNpi_HH +#define EvtBcVNpi_HH + +#include +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtScalarParticle.hh" +#include "EvtGenModels/EvtBCVFF.hh" + +#include "EvtGenModels/EvtWnPi.hh" + + +using std::endl; +using std::fstream; +using std::ifstream; +using std::cout; +using std::string; + +class EvtBcVNpi:public EvtDecayAmp { +public: + EvtBcVNpi() { }; + virtual ~EvtBcVNpi(); + std::string getName(); + EvtDecayBase* clone(); + void initProbMax(); + void init(); + void decay(EvtParticle *p); +protected: + int nCall; + int whichfit, idVector; + EvtBCVFF *ffmodel; + EvtWnPi *wcurr; + + EvtComplex Fpi( EvtVector4R q1, EvtVector4R q2); + EvtComplex BWa( EvtVector4R q); + EvtComplex BWf( EvtVector4R q); + EvtComplex BWr( EvtVector4R q); + EvtVector4C JB(EvtVector4R q1, EvtVector4R q2, EvtVector4R q3, EvtVector4R q4, EvtVector4R q5); + +}; +#endif + diff --git a/TEvtGen/EvtGenModels/EvtBsquark.cxx b/TEvtGen/EvtGenModels/EvtBsquark.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtBsquark.cxx rename to TEvtGen/EvtGenModels/EvtBsquark.cpp diff --git a/TEvtGen/EvtGenModels/EvtBto2piCPiso.cxx b/TEvtGen/EvtGenModels/EvtBto2piCPiso.cpp similarity index 82% rename from TEvtGen/EvtGenModels/EvtBto2piCPiso.cxx rename to TEvtGen/EvtGenModels/EvtBto2piCPiso.cpp index ca35e12ee7d..04bac32812b 100644 --- a/TEvtGen/EvtGenModels/EvtBto2piCPiso.cxx +++ b/TEvtGen/EvtGenModels/EvtBto2piCPiso.cpp @@ -48,9 +48,9 @@ EvtDecayBase* EvtBto2piCPiso::clone(){ void EvtBto2piCPiso::init(){ - // check that there are 11 arguments + // check that there are 10 arguments - checkNArg(11); + checkNArg(10); checkNDaug(2); checkSpinParent(EvtSpinType::SCALAR); @@ -108,13 +108,13 @@ void EvtBto2piCPiso::decay( EvtParticle *p ){ double tag = EvtRandom::Flat(0.0,1.0); if (tag < 0.5) { - EvtCPUtil::OtherB(p,t,other_b,1.0); - other_b = B0; + EvtCPUtil::getInstance()->OtherB(p,t,other_b,1.0); + other_b = B0; } else { - EvtCPUtil::OtherB(p,t,other_b,0.0); - other_b = B0B; + EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.0); + other_b = B0B; } EvtComplex amp; @@ -187,3 +187,52 @@ void EvtBto2piCPiso::decay( EvtParticle *p ){ return ; } +std::string EvtBto2piCPiso::getParamName(int i) { + switch(i) { + case 0: + return "weakPhase"; + case 1: + return "deltaM"; + case 2: + return "A2"; + case 3: + return "A2Phase"; + case 4: + return "A2bar"; + case 5: + return "A2barPhase"; + case 6: + return "A0"; + case 7: + return "A0Phase"; + case 8: + return "A0bar"; + case 9: + return "A0barPhase"; + default: + return ""; + } +} + +std::string EvtBto2piCPiso::getParamDefault(int i) { + switch(i) { + case 2: + return "1.0"; + case 3: + return "0.0"; + case 4: + return "1.0"; + case 5: + return "0.0"; + case 6: + return "1.0"; + case 7: + return "0.0"; + case 8: + return "1.0"; + case 9: + return "0.0"; + default: + return ""; + } +} diff --git a/TEvtGen/EvtGenModels/EvtBto2piCPiso.hh b/TEvtGen/EvtGenModels/EvtBto2piCPiso.hh index 85babe9a57c..150a388dfd7 100644 --- a/TEvtGen/EvtGenModels/EvtBto2piCPiso.hh +++ b/TEvtGen/EvtGenModels/EvtBto2piCPiso.hh @@ -39,6 +39,8 @@ public: void decay(EvtParticle *p); + std::string getParamName(int i); + std::string getParamDefault(int i); }; #endif diff --git a/TEvtGen/EvtGenModels/EvtBtoKD3P.cxx b/TEvtGen/EvtGenModels/EvtBtoKD3P.cpp similarity index 94% rename from TEvtGen/EvtGenModels/EvtBtoKD3P.cxx rename to TEvtGen/EvtGenModels/EvtBtoKD3P.cpp index b822e037186..b44626329dc 100644 --- a/TEvtGen/EvtGenModels/EvtBtoKD3P.cxx +++ b/TEvtGen/EvtGenModels/EvtBtoKD3P.cpp @@ -1,6 +1,6 @@ //----------------------------------------------------------------------- // File and Version Information: -// $Id: EvtBtoKD3P.cc,v 1.7 2009/02/19 03:23:29 ryd Exp $ +// $Id: EvtBtoKD3P.cpp,v 1.2 2009-04-02 15:22:28 robbep Exp $ // // Environment: // This software is part of the EvtGen package developed jointly @@ -39,7 +39,8 @@ EvtBtoKD3P::EvtBtoKD3P() : } //------------------------------------------------------------------ -EvtBtoKD3P::EvtBtoKD3P(const EvtBtoKD3P & other){ +EvtBtoKD3P::EvtBtoKD3P(const EvtBtoKD3P & other) : + EvtDecayAmp( other ){ } //------------------------------------------------------------------ @@ -100,11 +101,11 @@ void EvtBtoKD3P::decay(EvtParticle *p){ // 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)); + EvtPto3P * model1 = (EvtPto3P*)(EvtDecayTable::getInstance()->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)); + EvtPto3P * model2 = (EvtPto3P*)(EvtDecayTable::getInstance()->getDecayFunc(theD)); // on the first call: if (false == _decayedOnce) { @@ -200,7 +201,8 @@ void EvtBtoKD3P::decay(EvtParticle *p){ vertex (amp/comp); // Make the daughters of theD: - theD->generateMassTree(); + bool massTreeOK = theD->generateMassTree(); + if (massTreeOK == false) {return;} // Now generate the p4's of the daughters of theD: std::vector v = model2->initDaughters(x); diff --git a/TEvtGen/EvtGenModels/EvtBtoKD3P.hh b/TEvtGen/EvtGenModels/EvtBtoKD3P.hh index 98f5f68601c..a34a0b70305 100644 --- a/TEvtGen/EvtGenModels/EvtBtoKD3P.hh +++ b/TEvtGen/EvtGenModels/EvtBtoKD3P.hh @@ -1,6 +1,6 @@ //----------------------------------------------------------------------- // File and Version Information: -// $Id: EvtBtoKD3P.hh,v 1.4 2006/10/02 01:07:45 lange Exp $ +// $Id: EvtBtoKD3P.hh,v 1.1 2009-03-16 16:49:00 robbep Exp $ // // Environment: // This software is part of the EvtGen package developed jointly diff --git a/TEvtGen/EvtGenModels/EvtBtoKpiCPiso.cxx b/TEvtGen/EvtGenModels/EvtBtoKpiCPiso.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtBtoKpiCPiso.cxx rename to TEvtGen/EvtGenModels/EvtBtoKpiCPiso.cpp diff --git a/TEvtGen/EvtGenModels/EvtBtoXsEtap.cxx b/TEvtGen/EvtGenModels/EvtBtoXsEtap.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtBtoXsEtap.cxx rename to TEvtGen/EvtGenModels/EvtBtoXsEtap.cpp diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgamma.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgamma.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtBtoXsgamma.cxx rename to TEvtGen/EvtGenModels/EvtBtoXsgamma.cpp diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaAbsModel.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgammaAbsModel.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtBtoXsgammaAbsModel.cxx rename to TEvtGen/EvtGenModels/EvtBtoXsgammaAbsModel.cpp diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaAliGreub.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgammaAliGreub.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtBtoXsgammaAliGreub.cxx rename to TEvtGen/EvtGenModels/EvtBtoXsgammaAliGreub.cpp diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaFermiUtil.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgammaFermiUtil.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtBtoXsgammaFermiUtil.cxx rename to TEvtGen/EvtGenModels/EvtBtoXsgammaFermiUtil.cpp diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaFixedMass.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgammaFixedMass.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtBtoXsgammaFixedMass.cxx rename to TEvtGen/EvtGenModels/EvtBtoXsgammaFixedMass.cpp diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaFlatEnergy.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgammaFlatEnergy.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtBtoXsgammaFlatEnergy.cxx rename to TEvtGen/EvtGenModels/EvtBtoXsgammaFlatEnergy.cpp diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.cxx rename to TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.cpp diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaRootFinder.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgammaRootFinder.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtBtoXsgammaRootFinder.cxx rename to TEvtGen/EvtGenModels/EvtBtoXsgammaRootFinder.cpp diff --git a/TEvtGen/EvtGenModels/EvtBtoXsll.cxx b/TEvtGen/EvtGenModels/EvtBtoXsll.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtBtoXsll.cxx rename to TEvtGen/EvtGenModels/EvtBtoXsll.cpp diff --git a/TEvtGen/EvtGenModels/EvtBtoXsllUtil.cxx b/TEvtGen/EvtGenModels/EvtBtoXsllUtil.cpp similarity index 98% rename from TEvtGen/EvtGenModels/EvtBtoXsllUtil.cxx rename to TEvtGen/EvtGenModels/EvtBtoXsllUtil.cpp index ec2c0dd2516..8cf5aa1fc6d 100644 --- a/TEvtGen/EvtGenModels/EvtBtoXsllUtil.cxx +++ b/TEvtGen/EvtGenModels/EvtBtoXsllUtil.cpp @@ -140,27 +140,16 @@ EvtComplex EvtBtoXsllUtil::GetC7Eff1(double sh, double mbeff, bool nnlo) } -EvtComplex EvtBtoXsllUtil::GetC9Eff0(double sh, double mbeff, +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; @@ -171,10 +160,6 @@ EvtComplex EvtBtoXsllUtil::GetC9Eff0(double sh, double mbeff, U9 = 0.045 + 0.023; double W9; W9 = 0.044 + 0.016; - - double Lmu; - Lmu = log(muscale/mbeff); - EvtComplex uniti(0.0,1.0); @@ -236,16 +221,12 @@ EvtComplex EvtBtoXsllUtil::GetC9Eff0(double sh, double mbeff, } // 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); diff --git a/TEvtGen/EvtGenModels/EvtCBTo3piMPP.cxx b/TEvtGen/EvtGenModels/EvtCBTo3piMPP.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtCBTo3piMPP.cxx rename to TEvtGen/EvtGenModels/EvtCBTo3piMPP.cpp diff --git a/TEvtGen/EvtGenModels/EvtCBTo3piP00.cxx b/TEvtGen/EvtGenModels/EvtCBTo3piP00.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtCBTo3piP00.cxx rename to TEvtGen/EvtGenModels/EvtCBTo3piP00.cpp diff --git a/TEvtGen/EvtGenModels/EvtD0gammaDalitz.cpp b/TEvtGen/EvtGenModels/EvtD0gammaDalitz.cpp new file mode 100644 index 00000000000..8520a722706 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtD0gammaDalitz.cpp @@ -0,0 +1,322 @@ +//-------------------------------------------------------------------------- +// +// Module: EvtD0gammaDalitz.cc +// +// Modification history: +// +// JGT February 13, 2012 Module created +// +//------------------------------------------------------------------------ + +#include +#include +#include + +#include "EvtGenBase/EvtPatches.hh" + +#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/EvtD0gammaDalitz.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtFlatte.hh" +#include "EvtGenBase/EvtDecayTable.hh" + + +// Initialize the static variables. +const EvtSpinType::spintype& EvtD0gammaDalitz::_SCALAR = EvtSpinType::SCALAR; +const EvtSpinType::spintype& EvtD0gammaDalitz::_VECTOR = EvtSpinType::VECTOR; +const EvtSpinType::spintype& EvtD0gammaDalitz::_TENSOR = EvtSpinType::TENSOR; + +const EvtDalitzReso::CouplingType& EvtD0gammaDalitz::_EtaPic = EvtDalitzReso::EtaPic; +const EvtDalitzReso::CouplingType& EvtD0gammaDalitz::_PicPicKK = EvtDalitzReso::PicPicKK; + +const EvtDalitzReso::NumType& EvtD0gammaDalitz::_RBW = EvtDalitzReso::RBW_CLEO_ZEMACH; +const EvtDalitzReso::NumType& EvtD0gammaDalitz::_GS = EvtDalitzReso::GS_CLEO_ZEMACH; +const EvtDalitzReso::NumType& EvtD0gammaDalitz::_KMAT = EvtDalitzReso::K_MATRIX; + +const EvtCyclic3::Pair& EvtD0gammaDalitz::_AB = EvtCyclic3::AB; +const EvtCyclic3::Pair& EvtD0gammaDalitz::_AC = EvtCyclic3::AC; +const EvtCyclic3::Pair& EvtD0gammaDalitz::_BC = EvtCyclic3::BC; + + +EvtD0gammaDalitz::EvtD0gammaDalitz() +{ + /* Empty constructor. */ +} + + +EvtD0gammaDalitz::~EvtD0gammaDalitz() +{ + /* Empty destructor. */ +} + + +std::string EvtD0gammaDalitz::getName() +{ + return "D0GAMMADALITZ"; +} + + +EvtDecayBase* EvtD0gammaDalitz::clone() +{ + return new EvtD0gammaDalitz; +} + + +void EvtD0gammaDalitz::init() +{ + // check that there are 0 arguments + checkNArg(0); + + // Check that this model is valid for the specified decay. + checkNDaug( 3 ); + checkSpinParent ( _SCALAR ); + checkSpinDaughter( 0, _SCALAR ); + checkSpinDaughter( 1, _SCALAR ); + checkSpinDaughter( 2, _SCALAR ); + + // Get the values of the EvtId objects from the data files. + readPDGValues(); + + // Get the EvtId of the D0 and its 3 daughters. + getParentId(); + + EvtId dau[ 3 ]; + for ( int index = 0; index < 3; index++ ) + { + dau[ index ] = getDaug( index ); + } + + // Look for K0bar h+ h-. The order will 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(); + } + } + + // 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 EvtD0gammaDalitz::initProbMax() +{ + setProbMax( 5200. ); +} + + +void EvtD0gammaDalitz::decay( EvtParticle* part ) +{ + // Check if the D is from a B+- -> D0 K+- decay with the appropriate model. + EvtParticle* parent = part->getParent(); // If there are no mistakes, should be B+ or B-. + if (parent != 0 && EvtDecayTable::getInstance()->getDecayFunc( parent )->getName() == "BTODDALITZCPK" ) + { + EvtId parId = parent->getId(); + if ( ( parId == _BP ) || ( parId == _BM ) || + ( parId == _B0 ) || ( parId == _B0B) ) + { + _bFlavor = parId; + } + else + { + reportInvalidAndExit(); + } + } + else + { + reportInvalidAndExit(); + } + + // Read the D decay parameters from the B decay model. + // Gamma angle in rad. + double gamma = EvtDecayTable::getInstance()->getDecayFunc( parent )->getArg( 0 ); + // Strong phase in rad. + double delta = EvtDecayTable::getInstance()->getDecayFunc( parent )->getArg( 1 ); + // Ratio between B->D0K and B->D0barK + double rB = EvtDecayTable::getInstance()->getDecayFunc( parent )->getArg( 2 ); + + // 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 mSqAB = ( pA + pB ).mass2(); + double mSqAC = ( pA + pC ).mass2(); + double mSqBC = ( pB + pC ).mass2(); + + EvtComplex amp( 1.0, 0.0 ); + + // Direct and conjugated amplitudes. + EvtComplex ampDir; + EvtComplex ampCnj; + + if ( _isKsPiPi ) + { + // Direct and conjugated Dalitz points. + EvtDalitzPoint pointDir( _mKs, _mPi, _mPi, mSqAB, mSqBC, mSqAC ); + EvtDalitzPoint pointCnj( _mKs, _mPi, _mPi, mSqAC, mSqBC, mSqAB ); + + // Direct and conjugated amplitudes. + ampDir = dalitzKsPiPi( pointDir ); + ampCnj = dalitzKsPiPi( pointCnj ); + } + else + { + // Direct and conjugated Dalitz points. + EvtDalitzPoint pointDir( _mKs, _mK, _mK, mSqAB, mSqBC, mSqAC ); + EvtDalitzPoint pointCnj( _mKs, _mK, _mK, mSqAC, mSqBC, mSqAB ); + + // Direct and conjugated amplitudes. + ampDir = dalitzKsKK( pointDir ); + ampCnj = dalitzKsKK( pointCnj ); + } + + if ( _bFlavor == _BP || _bFlavor == _B0 ) + { + amp = ampCnj + rB * exp( EvtComplex( 0., delta + gamma ) ) * ampDir; + } + else + { + amp = ampDir + rB * exp( EvtComplex( 0., delta - gamma ) ) * ampCnj; + } + + vertex( amp ); + + return; + +} + + +EvtComplex EvtD0gammaDalitz::dalitzKsPiPi( const EvtDalitzPoint& point ) const +{ + static const EvtDalitzPlot plot( _mKs, _mPi, _mPi, _mD0 ); + + EvtComplex amp = 0.; + + // 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 ); + + return amp; +} + + +EvtComplex EvtD0gammaDalitz::dalitzKsKK( const EvtDalitzPoint& point ) const +{ + 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. +} + + +void EvtD0gammaDalitz::readPDGValues() +{ + // Define the EvtIds. + _BP = EvtPDL::getId( "B+" ); + _BM = EvtPDL::getId( "B-" ); + _B0 = EvtPDL::getId( "B0" ); + _B0B = EvtPDL::getId( "anti-B0" ); + _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 ); +} + + +void EvtD0gammaDalitz::reportInvalidAndExit() const +{ + report( ERROR, "EvtD0gammaDalitz" ) << "EvtD0gammaDalitz: Invalid mode." << std::endl; + exit( 1 ); +} diff --git a/TEvtGen/EvtGenModels/EvtD0gammaDalitz.hh b/TEvtGen/EvtGenModels/EvtD0gammaDalitz.hh new file mode 100644 index 00000000000..f8904042151 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtD0gammaDalitz.hh @@ -0,0 +1,96 @@ +//-------------------------------------------------------------------------- +// +// Module: EvtGen/EvtD0gammaDalitz.hh +// +// Modification history: +// +// JGT February 13, 2012 Module created +// +//------------------------------------------------------------------------ + +#ifndef __EVTD0GAMMADALITZ_HH__ +#define __EVTD0GAMMADALITZ_HH__ + +#include + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtFlatte.hh" + +#include "EvtGenBase/EvtSpinType.hh" +#include "EvtGenBase/EvtDalitzReso.hh" +#include "EvtGenBase/EvtCyclic3.hh" + +class EvtParticle; + +class EvtD0gammaDalitz : public EvtDecayAmp +{ +private: + int _d1; + int _d2; + int _d3; + int _flag; + + bool _isKsPiPi; + + // 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 _BP; + EvtId _BM; + EvtId _B0; + EvtId _B0B; + EvtId _D0; + EvtId _D0B; + EvtId _KM; + EvtId _KP; + EvtId _K0; + EvtId _K0B; + EvtId _KL; + EvtId _KS; + EvtId _PIM; + EvtId _PIP; + + // Flavor of the B mother. + EvtId _bFlavor; + + // Masses of the relevant particles. + double _mD0; + double _mKs; + double _mPi; + double _mK; + + void readPDGValues(); + void reportInvalidAndExit() const; + + EvtComplex dalitzKsPiPi( const EvtDalitzPoint& point ) const; + EvtComplex dalitzKsKK ( const EvtDalitzPoint& point ) const; + +public: + EvtD0gammaDalitz(); + virtual ~EvtD0gammaDalitz(); + + 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.cpp similarity index 94% rename from TEvtGen/EvtGenModels/EvtD0mixDalitz.cxx rename to TEvtGen/EvtGenModels/EvtD0mixDalitz.cpp index a6ad3183c47..82fcc8889b2 100644 --- a/TEvtGen/EvtGenModels/EvtD0mixDalitz.cxx +++ b/TEvtGen/EvtGenModels/EvtD0mixDalitz.cpp @@ -1,7 +1,7 @@ /***************************************************************************** * 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 $ + * File: $Id: EvtD0mixDalitz.cpp,v 1.2 2009-10-19 15:47:44 robbep Exp $ * * Description: * The D0mixDalitz model, with many resonances and mixing implemented. @@ -42,32 +42,26 @@ 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 ); - } + 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 ); diff --git a/TEvtGen/EvtGenModels/EvtD0mixDalitz.hh b/TEvtGen/EvtGenModels/EvtD0mixDalitz.hh index d490c6e0013..7273e8161c6 100644 --- a/TEvtGen/EvtGenModels/EvtD0mixDalitz.hh +++ b/TEvtGen/EvtGenModels/EvtD0mixDalitz.hh @@ -1,7 +1,7 @@ /***************************************************************************** * 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 $ + * File: $Id: EvtD0mixDalitz.hh,v 1.1 2009-03-16 16:49:00 robbep Exp $ * * Description: * The D0mixDalitz model, with many resonances and mixing implemented. diff --git a/TEvtGen/EvtGenModels/EvtDDalitz.cxx b/TEvtGen/EvtGenModels/EvtDDalitz.cpp similarity index 53% rename from TEvtGen/EvtGenModels/EvtDDalitz.cxx rename to TEvtGen/EvtGenModels/EvtDDalitz.cpp index b275a6ee87f..a6e85778ed5 100644 --- a/TEvtGen/EvtGenModels/EvtDDalitz.cxx +++ b/TEvtGen/EvtGenModels/EvtDDalitz.cpp @@ -85,6 +85,7 @@ void EvtDDalitz::init(){ 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- @@ -115,28 +116,34 @@ void EvtDDalitz::init(){ 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 ( 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=2;_d2=0;_d3=1;} + if ( d3==KS && d1==KP && d2==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;} + 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=2;_d2=0;_d3=1;} + if ( d3==KL && d1==KP && d2==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;} + if ( d3==KL && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;} + + if ( d1==KB && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;} + if ( d1==KB && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;} + if ( d2==KB && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;} + if ( d2==KB && d3==KP && d1==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;} + if ( d3==KB && d1==KP && d2==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;} + if ( d3==KB && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;} + + if ( d1==PIM && d2==PIP && d3==PI0 ) { _flag=12;_d1=0;_d2=1;_d3=2;} + if ( d1==PIM && d3==PIP && d2==PI0 ) { _flag=12;_d1=0;_d2=2;_d3=1;} + if ( d2==PIM && d1==PIP && d3==PI0 ) { _flag=12;_d1=1;_d2=0;_d3=2;} + if ( d2==PIM && d3==PIP && d1==PI0 ) { _flag=12;_d1=2;_d2=0;_d3=1;} + if ( d3==PIM && d1==PIP && d2==PI0 ) { _flag=12;_d1=1;_d2=2;_d3=0;} + if ( d3==PIM && d2==PIP && d1==PI0 ) { _flag=12;_d1=2;_d2=1;_d3=0;} } if ( parnum == D0B ) { //look for either a K+ pi- pi0 or K0 pi+ pi- @@ -168,27 +175,34 @@ void EvtDDalitz::init(){ 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 ( d1==KS && d2==KM && d3==KP ) {_flag=5;_d1=0;_d2=1;_d3=2;} + if ( d1==KS && d3==KM && d2==KP ) {_flag=5;_d1=0;_d2=2;_d3=1;} + if ( d2==KS && d1==KM && d3==KP ) {_flag=5;_d1=1;_d2=0;_d3=2;} + if ( d2==KS && d3==KM && d1==KP ) {_flag=5;_d1=2;_d2=0;_d3=1;} + if ( d3==KS && d1==KM && d2==KP ) {_flag=5;_d1=1;_d2=2;_d3=0;} + if ( d3==KS && d2==KM && d1==KP ) {_flag=5;_d1=2;_d2=1;_d3=0;} + + if ( d1==KL && d2==KM && d3==KP ) {_flag=5;_d1=0;_d2=1;_d3=2;} + if ( d1==KL && d3==KM && d2==KP ) {_flag=5;_d1=0;_d2=2;_d3=1;} + if ( d2==KL && d1==KM && d3==KP ) {_flag=5;_d1=1;_d2=0;_d3=2;} + if ( d2==KL && d3==KM && d1==KP ) {_flag=5;_d1=2;_d2=0;_d3=1;} + if ( d3==KL && d1==KM && d2==KP ) {_flag=5;_d1=1;_d2=2;_d3=0;} + if ( d3==KL && d2==KM && d1==KP ) {_flag=5;_d1=2;_d2=1;_d3=0;} + + if ( d1==K0 && d2==KM && d3==KP ) {_flag=5;_d1=0;_d2=1;_d3=2;} + if ( d1==K0 && d3==KM && d2==KP ) {_flag=5;_d1=0;_d2=2;_d3=1;} + if ( d2==K0 && d1==KM && d3==KP ) {_flag=5;_d1=1;_d2=0;_d3=2;} + if ( d2==K0 && d3==KM && d1==KP ) {_flag=5;_d1=2;_d2=0;_d3=1;} + if ( d3==K0 && d1==KM && d2==KP ) {_flag=5;_d1=1;_d2=2;_d3=0;} + if ( d3==K0 && d2==KM && d1==KP ) {_flag=5;_d1=2;_d2=1;_d3=0;} + + if ( d1==PIP && d2==PIM && d3==PI0 ) { _flag=12;_d1=0;_d2=1;_d3=2;} + if ( d1==PIP && d3==PIM && d2==PI0 ) { _flag=12;_d1=0;_d2=2;_d3=1;} + if ( d2==PIP && d1==PIM && d3==PI0 ) { _flag=12;_d1=1;_d2=0;_d3=2;} + if ( d2==PIP && d3==PIM && d1==PI0 ) { _flag=12;_d1=2;_d2=0;_d3=1;} + if ( d3==PIP && d1==PIM && d2==PI0 ) { _flag=12;_d1=1;_d2=2;_d3=0;} + if ( d3==PIP && d2==PIM && d1==PI0 ) { _flag=12;_d1=2;_d2=1;_d3=0;} + } if ( parnum == DP ) { @@ -254,6 +268,20 @@ void EvtDDalitz::init(){ 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 ( d1==PIM && d2==PIP && d3==KP ) { _flag=9; _d1=0; _d2=1; _d3=2; } + if ( d1==PIM && d3==PIP && d2==KP ) { _flag=9; _d1=0; _d2=2; _d3=1; } + if ( d2==PIM && d1==PIP && d3==KP ) { _flag=9; _d1=1; _d2=0; _d3=2; } + if ( d2==PIM && d3==PIP && d1==KP ) { _flag=9; _d1=1; _d2=2; _d3=0; } + if ( d3==PIM && d1==PIP && d2==KP ) { _flag=9; _d1=2; _d2=0; _d3=1; } + if ( d3==PIM && d2==PIP && d1==KP ) { _flag=9; _d1=2; _d2=1; _d3=0; } + + if ( d1==PIM && d2==PIP && d3==PIP ) { _flag=11; _d1=0; _d2=1; _d3=2; } + if ( d1==PIM && d3==PIP && d2==PIP ) { _flag=11; _d1=0; _d2=2; _d3=1; } + if ( d2==PIM && d1==PIP && d3==PIP ) { _flag=11; _d1=1; _d2=0; _d3=2; } + if ( d2==PIM && d3==PIP && d1==PIP ) { _flag=11; _d1=1; _d2=2; _d3=0; } + if ( d3==PIM && d1==PIP && d2==PIP ) { _flag=11; _d1=2; _d2=0; _d3=1; } + if ( d3==PIM && d2==PIP && d1==PIP ) { _flag=11; _d1=2; _d2=1; _d3=0; } } if ( parnum == DSM ) { @@ -263,6 +291,66 @@ void EvtDDalitz::init(){ 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 ( d1==PIP && d2==PIM && d3==KM ) { _flag=9; _d1=0; _d2=1; _d3=2; } + if ( d1==PIP && d3==PIM && d2==KM ) { _flag=9; _d1=0; _d2=2; _d3=1; } + if ( d2==PIP && d1==PIM && d3==KM ) { _flag=9; _d1=1; _d2=0; _d3=2; } + if ( d2==PIP && d3==PIM && d1==KM ) { _flag=9; _d1=1; _d2=2; _d3=0; } + if ( d3==PIP && d1==PIM && d2==KM ) { _flag=9; _d1=2; _d2=0; _d3=1; } + if ( d3==PIP && d2==PIM && d1==KM ) { _flag=9; _d1=2; _d2=1; _d3=0; } + + if ( d1==PIP && d2==PIM && d3==PIM ) { _flag=11; _d1=0; _d2=1; _d3=2; } + if ( d1==PIP && d3==PIM && d2==PIM ) { _flag=11; _d1=0; _d2=2; _d3=1; } + if ( d2==PIP && d1==PIM && d3==PIM ) { _flag=11; _d1=1; _d2=0; _d3=2; } + if ( d2==PIP && d3==PIM && d1==PIM ) { _flag=11; _d1=1; _d2=2; _d3=0; } + if ( d3==PIP && d1==PIM && d2==PIM ) { _flag=11; _d1=2; _d2=0; _d3=1; } + if ( d3==PIP && d2==PIM && d1==PIM ) { _flag=11; _d1=2; _d2=1; _d3=0; } + + } + if ( parnum == DP ) { + if ( d1==KM && d2==KP && d3==PIP ) { _flag=7; _d1=0; _d2=1; _d3=2; } + if ( d1==KM && d3==KP && d2==PIP ) { _flag=7; _d1=0; _d2=2; _d3=1; } + if ( d2==KM && d1==KP && d3==PIP ) { _flag=7; _d1=1; _d2=0; _d3=2; } + if ( d2==KM && d3==KP && d1==PIP ) { _flag=7; _d1=2; _d2=0; _d3=1; } + if ( d3==KM && d1==KP && d2==PIP ) { _flag=7; _d1=1; _d2=2; _d3=0; } + if ( d3==KM && d2==KP && d1==PIP ) { _flag=7; _d1=2; _d2=1; _d3=0; } + + if ( d1==PIM && d2==PIP && d3==KP ) { _flag=8; _d1=0; _d2=1; _d3=2; } + if ( d1==PIM && d3==PIP && d2==KP ) { _flag=8; _d1=0; _d2=2; _d3=1; } + if ( d2==PIM && d1==PIP && d3==KP ) { _flag=8; _d1=1; _d2=0; _d3=2; } + if ( d2==PIM && d3==PIP && d1==KP ) { _flag=8; _d1=1; _d2=2; _d3=0; } + if ( d3==PIM && d1==PIP && d2==KP ) { _flag=8; _d1=2; _d2=0; _d3=1; } + if ( d3==PIM && d2==PIP && d1==KP ) { _flag=8; _d1=2; _d2=1; _d3=0; } + + if ( d1==PIM && d2==PIP && d3==PIP ) { _flag=10; _d1=0; _d2=1; _d3=2; } + if ( d1==PIM && d3==PIP && d2==PIP ) { _flag=10; _d1=0; _d2=2; _d3=1; } + if ( d2==PIM && d1==PIP && d3==PIP ) { _flag=10; _d1=1; _d2=0; _d3=2; } + if ( d2==PIM && d3==PIP && d1==PIP ) { _flag=10; _d1=1; _d2=2; _d3=0; } + if ( d3==PIM && d1==PIP && d2==PIP ) { _flag=10; _d1=2; _d2=0; _d3=1; } + if ( d3==PIM && d2==PIP && d1==PIP ) { _flag=10; _d1=2; _d2=1; _d3=0; } + + } + if ( parnum == DM ) { + if ( d1==KP && d2==KM && d3==PIM ) { _flag=7; _d1=0; _d2=1; _d3=2; } + if ( d1==KP && d3==KM && d2==PIM ) { _flag=7; _d1=0; _d2=2; _d3=1; } + if ( d2==KP && d1==KM && d3==PIM ) { _flag=7; _d1=1; _d2=0; _d3=2; } + if ( d2==KP && d3==KM && d1==PIM ) { _flag=7; _d1=2; _d2=0; _d3=1; } + if ( d3==KP && d1==KM && d2==PIM ) { _flag=7; _d1=1; _d2=2; _d3=0; } + if ( d3==KP && d2==KM && d1==PIM ) { _flag=7; _d1=2; _d2=1; _d3=0; } + + if ( d1==PIP && d2==PIM && d3==KM ) { _flag=8; _d1=0; _d2=1; _d3=2; } + if ( d1==PIP && d3==PIM && d2==KM ) { _flag=8; _d1=0; _d2=2; _d3=1; } + if ( d2==PIP && d1==PIM && d3==KM ) { _flag=8; _d1=1; _d2=0; _d3=2; } + if ( d2==PIP && d3==PIM && d1==KM ) { _flag=8; _d1=1; _d2=2; _d3=0; } + if ( d3==PIP && d1==PIM && d2==KM ) { _flag=8; _d1=2; _d2=0; _d3=1; } + if ( d3==PIP && d2==PIM && d1==KM ) { _flag=8; _d1=2; _d2=1; _d3=0; } + + if ( d1==PIP && d2==PIM && d3==PIM ) { _flag=10; _d1=0; _d2=1; _d3=2; } + if ( d1==PIP && d3==PIM && d2==PIM ) { _flag=10; _d1=0; _d2=2; _d3=1; } + if ( d2==PIP && d1==PIM && d3==PIM ) { _flag=10; _d1=1; _d2=0; _d3=2; } + if ( d2==PIP && d3==PIM && d1==PIM ) { _flag=10; _d1=1; _d2=2; _d3=0; } + if ( d3==PIP && d1==PIM && d2==PIM ) { _flag=10; _d1=2; _d2=0; _d3=1; } + if ( d3==PIP && d2==PIM && d1==PIM ) { _flag=10; _d1=2; _d2=1; _d3=0; } } if ( _flag==6) { @@ -278,14 +366,20 @@ void EvtDDalitz::init(){ void EvtDDalitz::initProbMax() { -//probmax different for different modes! - - if ( _flag==1 ) {setProbMax(9.6);} - if ( _flag==2 ) {setProbMax(147.9);} - if ( _flag==3 ) {setProbMax(5000.0);} - if ( _flag==4 ) {setProbMax(3000.0);} - if ( _flag==5 ) {setProbMax(10000000.0);} - if ( _flag==6 ) {setProbMax(50000.0);} + // probmax different for different modes! + + if ( _flag==1 ) {setProbMax(2500.0);} + if ( _flag==2 ) {setProbMax(150.0);} + if ( _flag==3 ) {setProbMax(3000.0);} + if ( _flag==4 ) {setProbMax(600.0);} + if ( _flag==5 ) {setProbMax(2500000.0);} + if ( _flag==6 ) {setProbMax(45000.0);} + if ( _flag==7 ) {setProbMax(35000.0);} + if ( _flag==8 ) {setProbMax(2500.0);} + if ( _flag==9 ) {setProbMax(1700.0);} + if ( _flag==10 ) {setProbMax(1300.0);} + if ( _flag==11 ) {setProbMax(2200.0);} + if ( _flag==12 ) {setProbMax(1000.0);} } @@ -295,17 +389,8 @@ void EvtDDalitz::decay( EvtParticle *p){ static EvtId BM = EvtPDL::getId("B-"); static EvtId B0 = EvtPDL::getId("B0"); static EvtId B0B = EvtPDL::getId("anti-B0"); - 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 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 PIM=EvtPDL::getId("pi-"); - static EvtId PIP=EvtPDL::getId("pi+"); - static EvtId PI0=EvtPDL::getId("pi0"); double oneby2 = 0.707106782; @@ -314,7 +399,7 @@ void EvtDDalitz::decay( EvtParticle *p){ EvtId parId = p -> getParent()->getId (); if ( ( BP == parId ) || ( BM == parId ) || ( B0 == parId ) || ( B0B == parId ) ) - if (EvtDecayTable::getDecayFunc(p->getParent())->getName() == "BTODDALITZCPK") isBToDK=true; + if (EvtDecayTable::getInstance()->getDecayFunc(p->getParent())->getName() == "BTODDALITZCPK") isBToDK=true; } @@ -339,18 +424,35 @@ void EvtDDalitz::decay( EvtParticle *p){ 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) + // //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 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) +// 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()); +// amp = amp + oneby2*(-DplusRes11.resAmpl()+DplusRes12.resAmpl()) + oneby2*(DplusRes21.resAmpl() + DplusRes22.resAmpl()) + oneby2*(-DplusRes31.resAmpl()+ DplusRes32.resAmpl()); + + +// EvtResonance DplusRes11(p4_p,moms1,moms2,amp,phase,width,mass,L); + //CLEO-c p15,arxiv:0802.4214v2 + EvtResonance2 DplusRes11(p4_p,moms1,moms2,1.0, 0.0, 0.0503, 0.896, 1, true); + EvtResonance2 DplusRes12(p4_p,moms3,moms1,1.0, 0.0, 0.0503, 0.896, 1, true);//K*(892) + EvtResonance2 DplusRes21(p4_p,moms1,moms2,3.0, 49.7-180.0, 0.164, 1.463, 0); + EvtResonance2 DplusRes22(p4_p,moms3,moms1,3.0, 49.7-180.0, 0.164, 1.463, 0);//K*(1430) + EvtResonance2 DplusRes31(p4_p, moms1, moms2, 0.96, -29.9+180.0, 0.109, 1.4324, 2, true); + EvtResonance2 DplusRes32(p4_p, moms3, moms1, 0.96, -29.9+180.0, 0.109, 1.4324, 2, true);// K*_2(1430) + EvtResonance2 DplusRes41(p4_p,moms1,moms2, 6.5, 29.0, 0.323, 1.717, 1, true); + EvtResonance2 DplusRes42(p4_p,moms3,moms1, 6.5, 29.0, 0.323, 1.717, 1, true);//K*(1680) + EvtResonance2 DplusRes51(p4_p,moms1,moms2, 5.01, -163.7+180.0, 0.470, 0.809, 0); + EvtResonance2 DplusRes52(p4_p,moms3,moms1, 5.01, -163.7+180.0, 0.470, 0.809, 0);//kappa(800) + double pi180inv = 1.0/EvtConst::radToDegrees; + amp = EvtComplex(7.4*cos((-18.4+180.0)*pi180inv),7.4*sin((-18.4+180.0)*pi180inv))+ oneby2*(-DplusRes11.resAmpl()+DplusRes12.resAmpl()) + oneby2*(DplusRes21.resAmpl() + DplusRes22.resAmpl()) + oneby2*(DplusRes31.resAmpl()+ DplusRes32.resAmpl()) + oneby2*(-DplusRes41.resAmpl()+ DplusRes42.resAmpl()) + oneby2*(DplusRes51.resAmpl()+ DplusRes52.resAmpl()); + //amp = amp+oneby2*(-DplusRes11.resAmpl()+DplusRes12.resAmpl()); } @@ -380,13 +482,13 @@ void EvtDDalitz::decay( EvtParticle *p){ if ( isBToDK ) { // Gamma angle in rad. - double gamma = EvtDecayTable::getDecayFunc( p->getParent() ) + double gamma = EvtDecayTable::getInstance()->getDecayFunc( p->getParent() ) -> getArg( 0 ) ; // Strong phase in rad. - double delta = EvtDecayTable::getDecayFunc( p->getParent() ) + double delta = EvtDecayTable::getInstance()->getDecayFunc( p->getParent() ) -> getArg( 1 ) ; // Ratio between B->D0K and B->D0barK - double A = EvtDecayTable::getDecayFunc( p->getParent() ) + double A = EvtDecayTable::getInstance()->getDecayFunc( p->getParent() ) -> getArg( 2 ) ; EvtComplex Factor( fabs( A ) * cos ( delta ) , @@ -463,13 +565,13 @@ void EvtDDalitz::decay( EvtParticle *p){ if ( isBToDK ){ // Gamma angle in rad. - double gamma = EvtDecayTable::getDecayFunc( p->getParent() ) + double gamma = EvtDecayTable::getInstance()->getDecayFunc( p->getParent() ) -> getArg( 0 ) ; // Strong phase in rad. - double delta = EvtDecayTable::getDecayFunc( p->getParent() ) + double delta = EvtDecayTable::getInstance()->getDecayFunc( p->getParent() ) -> getArg( 1 ) ; // Ratio between B->D0K and B->D0barK - double A = EvtDecayTable::getDecayFunc( p->getParent() ) + double A = EvtDecayTable::getInstance()->getDecayFunc( p->getParent() ) -> getArg( 2 ) ; EvtComplex Factor( fabs( A ) * cos ( delta ) , @@ -517,6 +619,7 @@ void EvtDDalitz::decay( EvtParticle *p){ // Ds -> K K pi + //Babar, arxiv:1011.4190 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) @@ -529,7 +632,132 @@ void EvtDDalitz::decay( EvtParticle *p){ } + //D+ -> K K pi + //CLEO PRD 78, 072003 (2008) Fit A + if(_flag==7) { + EvtResonance2 DpKKpiRes1(p4_p, moms3, moms1, 1.0, 0.0, 0.0503, 0.8960, 1, true); // K*(892) + EvtResonance2 DpKKpiRes2(p4_p, moms3, moms1, 3.7, 73.0, 0.290, 1.414, 0); // K*_0(1430) + EvtResonance2 DpKKpiRes3(p4_p, moms1, moms2, 1.189, -179.0+180.0, 0.00426, 1.019455, 1, true); // phi(1020) + EvtResonance2 DpKKpiRes4(p4_p, moms1, moms2, 1.72, 123., 0.265, 1.474, 0); // a_0(1450) + EvtResonance2 DpKKpiRes5(p4_p, moms1, moms2, 1.9, -52.0+180.0, 0.15, 1.68, 1, true); // phi(1680) + EvtResonance2 DpKKpiRes6(p4_p, moms3, moms1, 6.4, 150., 0.109, 1.4324, 2, true); // K*_2(1430) + double pi180inv = 1.0/EvtConst::radToDegrees; + amp = EvtComplex(5.1*cos((53.0)*pi180inv),5.1*sin((53.0)*pi180inv)) + + DpKKpiRes1.resAmpl() + DpKKpiRes2.resAmpl() + DpKKpiRes3.resAmpl() + + DpKKpiRes4.resAmpl() + DpKKpiRes5.resAmpl() + DpKKpiRes6.resAmpl(); + } + +//D+ -> K pi pi WS (DCS) + //FOCUS PLB 601 10 (2004) ; amplitudes there are individually normalized (although not explicit in the paper) + // thus the magnitudes appearing below come from dividing the ones appearing in the paper by the sqrt of the + // integral over the DP of the corresponding squared amplitude. Writing as pi- pi+ K+ so pipi resonances are (12) + // and Kpi resonances are (31); masses and widths corresponds to PDG 2010 + if(_flag==8) { + EvtResonance2 DpKpipiDCSRes1(p4_p, moms1, moms2, 1.0, 0.0, 0.149, 0.775, 1, true); // rho(770) + EvtResonance2 DpKpipiDCSRes2(p4_p, moms3, moms1, 1.0971, -167.1, 0.0487, 0.896, 1, true); // K*(890) + EvtResonance2 DpKpipiDCSRes3(p4_p, moms1, moms2, 0.4738, -134.5, 0.059, 0.972, 0); // f0(980) as simple BW + EvtResonance2 DpKpipiDCSRes4(p4_p, moms3, moms1, 2.2688, 54.4, 0.109, 1.432, 2, true); // K*2(1430) + amp = DpKpipiDCSRes1.resAmpl() + DpKpipiDCSRes2.resAmpl() + DpKpipiDCSRes3.resAmpl() + + DpKpipiDCSRes4.resAmpl(); + } + //Ds+ -> K pi pi WS (CS) + //FOCUS PLB 601 10 (2004) ; amplitudes there are individually normalized (although not explicit in the paper) + // thus the magnitudes appearing below come from dividing the ones appearing in the paper by the sqrt of the + // integral over the DP of the corresponding squared amplitude. Writing as pi- pi+ K+ so pipi resonances are (12) + // and Kpi resonances are (31); masses and widths corresponds to PDG 2010 + // PROBLEM: by simply doing the procedure for D+, the resulting DP and projections do not resemble what is + // in the paper; the best model is by adding 180 to the vector Kpi resonances + if(_flag==9) { + EvtResonance2 DsKpipiCSRes1(p4_p, moms1, moms2, 1.0, 0.0, 0.149, 0.775, 1, true); // rho(770) + EvtResonance2 DsKpipiCSRes2(p4_p, moms3, moms1, 0.7236, -18.3, 0.0487, 0.896, 1, true); // K*(890) + EvtResonance2 DsKpipiCSRes3(p4_p, moms3, moms1, 2.711, 145.2, 0.232, 1.414, 1, true); // K*(1410) + EvtResonance2 DsKpipiCSRes4(p4_p, moms3, moms1, 1.7549, 59.3, 0.270, 1.425, 0); // K*0(1430) + EvtResonance2 DsKpipiCSRes5(p4_p, moms1, moms2, 7.0589, -151.7, 0.400, 1.465, 1, true); // rho(1450) + double pi180inv = 1.0/EvtConst::radToDegrees; + amp = EvtComplex(3.98*cos(43.1*pi180inv),3.98*sin(43.1*pi180inv)) + DsKpipiCSRes1.resAmpl() + + DsKpipiCSRes2.resAmpl() + DsKpipiCSRes3.resAmpl() + DsKpipiCSRes4.resAmpl() + + DsKpipiCSRes5.resAmpl(); + } + // D+ -> pi- pi+ pi+ from E791 [PRL 86 770 (2001)] + // masses and widths below correspond to what they used; there, the amplitudes were individually normalized + // (although not explicit) so magnitudes here are obtained after correcting for that + // Breit-Wigner has a factor of (-1) there which changes the relative phase of the NR wrt to the resonances + // thus the NR magnitude is set as negative + if(_flag==10) { + EvtResonance2 DppipipiRes11(p4_p, moms1, moms2, 1.0, 0.0, 0.150, 0.769, 1, true); // rho(770) + EvtResonance2 DppipipiRes12(p4_p, moms3, moms1, 1.0, 0.0, 0.150, 0.769, 1, true); // rho(770) + EvtResonance2 DppipipiRes21(p4_p, moms1, moms2, 2.2811, 205.7, 0.324, 0.478, 0); // sigma(500) + EvtResonance2 DppipipiRes22(p4_p, moms3, moms1, 2.2811, 205.7, 0.324, 0.478, 0); // sigma(500) + EvtResonance2 DppipipiRes31(p4_p, moms1, moms2, 0.4265, 165.0, 0.044, 0.977, 0); // f0(980) simple BW + EvtResonance2 DppipipiRes32(p4_p, moms3, moms1, 0.4265, 165.0, 0.044, 0.977, 0); // f0(980) simple BW + EvtResonance2 DppipipiRes41(p4_p, moms1, moms2, 2.0321, 57.3, 0.185, 1.275, 2, true); // f2(1270) + EvtResonance2 DppipipiRes42(p4_p, moms3, moms1, 2.0321, 57.3, 0.185, 1.275, 2, true); // f2(1270) + EvtResonance2 DppipipiRes51(p4_p, moms1, moms2, 0.7888, 105.4, 0.173, 1.434, 0); // f0(1370) + EvtResonance2 DppipipiRes52(p4_p, moms3, moms1, 0.7888, 105.4, 0.173, 1.434, 0); // f0(1370) + EvtResonance2 DppipipiRes61(p4_p, moms1, moms2, 0.7363, 319.1, 0.310, 1.465, 1, true); // rho(1450) + EvtResonance2 DppipipiRes62(p4_p, moms3, moms1, 0.7363, 319.1, 0.310, 1.465, 1, true); // rho(1450) + double pi180inv = 1.0/EvtConst::radToDegrees; + amp = EvtComplex(-3.98*cos(57.3*pi180inv),-3.98*sin(57.3*pi180inv)) + + (DppipipiRes11.resAmpl() - DppipipiRes12.resAmpl()) //spin1 + + (DppipipiRes21.resAmpl() + DppipipiRes22.resAmpl()) + (DppipipiRes31.resAmpl() + DppipipiRes32.resAmpl()) + + (DppipipiRes41.resAmpl() + DppipipiRes42.resAmpl()) + (DppipipiRes51.resAmpl() + DppipipiRes52.resAmpl()) + + (DppipipiRes61.resAmpl() - DppipipiRes62.resAmpl()); //spin1 + } + // Ds+ -> pi- pi+ pi+ from E791 [PRL 86 765 (2001)] + // masses and widths below correspond to what they used; there, the amplitudes were individually normalized + // (although not explicit) so magnitudes here are obtained after correcting for that + // Breit-Wigner has a factor of (-1) there which changes the relative phase of the NR wrt to the resonances + // thus the NR magnitude is set as negative + if(_flag==11) { + EvtResonance2 DspipipiRes11(p4_p, moms1, moms2, 0.288, 109., 0.150, 0.769, 1, true); // rho(770) + EvtResonance2 DspipipiRes12(p4_p, moms3, moms1, 0.288, 109., 0.150, 0.769, 1, true); // rho(770) + EvtResonance2 DspipipiRes21(p4_p, moms1, moms2, 1.0, 0.0, 0.044, 0.977, 0); // f0(980) simple BW + EvtResonance2 DspipipiRes22(p4_p, moms3, moms1, 1.0, 0.0, 0.044, 0.977, 0); // f0(980) simple BW + EvtResonance2 DspipipiRes31(p4_p, moms1, moms2, 1.075, 133., 0.185, 1.275, 2, true); // f2(1270) + EvtResonance2 DspipipiRes32(p4_p, moms3, moms1, 1.075, 133., 0.185, 1.275, 2, true); // f2(1270) + EvtResonance2 DspipipiRes41(p4_p, moms1, moms2, 2.225, 198., 0.173, 1.434, 0); // f0(1370) + EvtResonance2 DspipipiRes42(p4_p, moms3, moms1, 2.225, 198., 0.173, 1.434, 0); // f0(1370) + EvtResonance2 DspipipiRes51(p4_p, moms1, moms2, 1.107, 162., 0.310, 1.465, 1, true); // rho(1450) + EvtResonance2 DspipipiRes52(p4_p, moms3, moms1, 1.107, 162., 0.310, 1.465, 1, true); // rho(1450) + double pi180inv = 1.0/EvtConst::radToDegrees; + amp = EvtComplex(-0.723*cos(181.*pi180inv),-0.723*sin(181.*pi180inv)) + + (DspipipiRes11.resAmpl() - DspipipiRes12.resAmpl()) //spin1 + + (DspipipiRes21.resAmpl() + DspipipiRes22.resAmpl()) + (DspipipiRes31.resAmpl() + DspipipiRes32.resAmpl()) + + (DspipipiRes41.resAmpl() + DspipipiRes42.resAmpl()) + + (DspipipiRes51.resAmpl() - DspipipiRes52.resAmpl()); //spin1 + } + + //D0 -> pi+pi-pi0 + //PRL 99, 251801 (2007) + //arXiv:hep-ex/0703037 + if(_flag==12) { + EvtResonance2 DpipipiRes1p(p4_p, moms2, moms3, 1.0, 0.0, 0.149, 0.775, 1, true);//rho+(770) + EvtResonance2 DpipipiRes1(p4_p, moms1, moms2, 0.588, 16.2, 0.149, 0.775, 1, true);//rho0(770) + EvtResonance2 DpipipiRes1m(p4_p, moms3, moms1, 0.714, -2.0, 0.149, 0.775, 1, true);//rho-(770) + EvtResonance2 DpipipiRes2p(p4_p, moms2, moms3, 0.21, -146.0, 0.400, 1.465, 1, true);//rho+(1450) + EvtResonance2 DpipipiRes2(p4_p, moms1, moms2, 0.33, 10.0, 0.400, 1.465, 1, true);//rho0(1450) + EvtResonance2 DpipipiRes2m(p4_p, moms3, moms1, 0.82, 16.0, 0.400, 1.465, 1, true);//rho-(1450) + EvtResonance2 DpipipiRes3p(p4_p, moms2, moms3, 2.25, -17.0, 0.250, 1.720, 1, true);//rho+(1700) + EvtResonance2 DpipipiRes3(p4_p, moms1, moms2, 2.51, -17.0, 0.250, 1.720, 1, true);//rho0(1700) + EvtResonance2 DpipipiRes3m(p4_p, moms3, moms1, 2.00, -50.0, 0.250, 1.720, 1, true);//rho-(1700) + EvtResonance2 DpipipiRes4(p4_p, moms1, moms2, 0.015, -59.0, 0.07, 0.980, 0);//f0(980) + EvtResonance2 DpipipiRes5(p4_p, moms1, moms2, 0.063, 156.0, 0.350, 1.370, 0);//f0(1370) + EvtResonance2 DpipipiRes6(p4_p, moms1, moms2, 0.058, 12.0, 0.109, 1.505, 0);//f0(1500) + EvtResonance2 DpipipiRes7(p4_p, moms1, moms2, 0.112, 51.0, 0.135, 1.720, 0);//f0(1720) + EvtResonance2 DpipipiRes8(p4_p, moms1, moms2, 1.04, -171.0, 0.185, 1.275, 2, true);//f2(1270) + EvtResonance2 DpipipiRes9(p4_p, moms1, moms2, 0.069, 8.0, 0.600, 0.400, 0);//sigma(400) + + double pi180inv = 1.0/EvtConst::radToDegrees; + amp = EvtComplex(0.57*cos(-11.0*pi180inv),0.57*sin(-11.0*pi180inv)) + + DpipipiRes1p.resAmpl() + DpipipiRes1.resAmpl() + DpipipiRes1m.resAmpl() + + DpipipiRes2p.resAmpl() + DpipipiRes2.resAmpl() + DpipipiRes2m.resAmpl() + + DpipipiRes3p.resAmpl() + DpipipiRes3.resAmpl() + DpipipiRes3m.resAmpl() + + DpipipiRes4.resAmpl() + DpipipiRes5.resAmpl() + DpipipiRes6.resAmpl() + + DpipipiRes7.resAmpl() + DpipipiRes8.resAmpl() + DpipipiRes9.resAmpl(); + + } + vertex(amp); return ; diff --git a/TEvtGen/EvtGenModels/EvtDMix.cxx b/TEvtGen/EvtGenModels/EvtDMix.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtDMix.cxx rename to TEvtGen/EvtGenModels/EvtDMix.cpp diff --git a/TEvtGen/EvtGenModels/EvtDalitzDecayInfo.hh b/TEvtGen/EvtGenModels/EvtDalitzDecayInfo.hh new file mode 100644 index 00000000000..2ce1b918aab --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtDalitzDecayInfo.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/EvtGenericDalitz.hh +// +// Description: Model to describe a generic dalitz decay +// +// Modification history: +// +// DCC 16 December, 2011 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTDALITZDECAYINFO_HH +#define EVTDALITZDECAYINFO_HH + +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtDalitzReso.hh" +#include + +class EvtDalitzDecayInfo { +public: + + EvtDalitzDecayInfo(EvtId d1, EvtId d2, EvtId d3) + : _d1(d1), _d2(d2), _d3(d3), _probMax(0.) {} + ~EvtDalitzDecayInfo() {} + + void addResonance(EvtComplex amp, EvtDalitzReso res) {_resonances.push_back(std::pair(amp,res));} + void addResonance(std::pair res) {_resonances.push_back(res);} + void setProbMax(double probMax) {_probMax = probMax;} + + const std::vector< std::pair >& getResonances() const {return _resonances;} + double getProbMax() const {return _probMax;} + + inline const EvtId& daughter1() const {return _d1;} + inline const EvtId& daughter2() const {return _d2;} + inline const EvtId& daughter3() const {return _d3;} + +private: + + EvtId _d1, _d2, _d3; + std::vector > _resonances; + double _probMax; + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtDalitzTable.cpp b/TEvtGen/EvtGenModels/EvtDalitzTable.cpp new file mode 100644 index 00000000000..aacbc33c2c8 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtDalitzTable.cpp @@ -0,0 +1,563 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the 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/EvtGenericDalitz.hh +// +// Description: Model to describe a generic dalitz decay +// +// Modification history: +// +// DCC 16 December, 2011 Module created +// +//------------------------------------------------------------------------ + +#include "EvtGenModels/EvtDalitzTable.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtParserXml.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtSpinType.hh" +#include "EvtGenBase/EvtDalitzPlot.hh" +#include "EvtGenBase/EvtCyclic3.hh" + +#include +#include + +using std::endl; +using std::fstream; +using std::ifstream; + +EvtDalitzTable::EvtDalitzTable() { + _dalitztable.clear(); + _readFiles.clear(); +} + +EvtDalitzTable::~EvtDalitzTable() { + _dalitztable.clear(); + _readFiles.clear(); +} + +EvtDalitzTable* EvtDalitzTable::getInstance(const std::string dec_name, bool verbose) { + + static EvtDalitzTable* theDalitzTable = 0; + + if(theDalitzTable == 0) { + theDalitzTable = new EvtDalitzTable(); + } + + if(!theDalitzTable->fileHasBeenRead(dec_name)) { + theDalitzTable->readXMLDecayFile(dec_name,verbose); + } + + return theDalitzTable; + +} + +bool EvtDalitzTable::fileHasBeenRead(const std::string dec_name) { + std::vector::iterator i = _readFiles.begin(); + for( ; i!=_readFiles.end(); i++) { + if((*i).compare(dec_name) == 0) { + return true; + } + } + return false; +} + +void EvtDalitzTable::readXMLDecayFile(const std::string dec_name, bool verbose){ + + if (verbose) { + report(INFO,"EvtGen")<<"EvtDalitzTable: Reading in xml parameter file "< > angAndResPairs; + std::string shape(""); + EvtSpinType::spintype spinType(EvtSpinType::SCALAR); + double mass(0.), width(0.), FFp(0.), FFr(0.); + std::vector flatteParams; + //Nonres parameters + double alpha(0.); + //LASS parameters + double aLass(0.), rLass(0.), BLass(0.), phiBLass(0.), RLass(0.), phiRLass(0.), cutoffLass(-1.); + + EvtParserXml parser; + parser.open(dec_name); + + bool endReached = false; + + while(parser.readNextTag()) { + //TAGS FOUND UNDER DATA + if(parser.getParentTagTitle() == "data") { + if(parser.getTagTitle() == "dalitzDecay") { + int nDaughters = 0; + + decayParent = parser.readAttribute("particle"); + daugStr = parser.readAttribute("daughters"); + probMax = parser.readAttributeDouble("probMax",-1); + + checkParticle(decayParent); + ipar=EvtPDL::getId(decayParent); + + std::istringstream daugStream(daugStr); + + std::string daugh; + while(std::getline(daugStream, daugh, ' ')) { + checkParticle(daugh); + daughter[nDaughters++] = EvtPDL::getId(daugh); + } + + if(nDaughters!=3) { + report(ERROR,"EvtGen") << + "Expected to find three daughters for dalitzDecay of "< >::iterator it = angAndResPairs.begin(); + for( ; it != angAndResPairs.end(); it++) { + std::pair pairs = *it; + EvtDalitzReso resonance = getResonance(shape, dp, pairs.first, pairs.second, spinType, mass, width, FFp, FFr, alpha, aLass, rLass, BLass, phiBLass, RLass, phiRLass, cutoffLass); + dalitzDecay->addResonance(cAmp,resonance); + } + } + } else if(parser.getTagTitle() == "/dalitzDecay") { + if(probMax < 0) { + report(INFO,"EvtGen") << "probMax is not defined for " << decayParent << " -> " << daugStr << endl; + report(INFO,"EvtGen") << "Will now estimate probMax. This may take a while. Once probMax is calculated, update the XML file to skip this step in future." << endl; + probMax = calcProbMax(dp,dalitzDecay); + } + dalitzDecay->setProbMax(probMax); + addDecay(ipar, *dalitzDecay); + delete dalitzDecay; + dalitzDecay = 0; + } else if(verbose) { + report(INFO,"EvtGen") << "Unexpected tag "< >::iterator it = angAndResPairs.begin(); + for( ; it != angAndResPairs.end(); it++) { + std::pair pairs = *it; + EvtDalitzReso resonance = getResonance(shape, dp, pairs.first, pairs.second, spinType, mass, width, FFp, FFr, alpha, aLass, rLass, BLass, phiBLass, RLass, phiRLass, cutoffLass); + + std::vector::iterator flatteIt = flatteParams.begin(); + for( ; flatteIt != flatteParams.end(); flatteIt++) { + resonance.addFlatteParam((*flatteIt)); + } + + dalitzDecay->addResonance(cAmp,resonance); + } + } + } + } + + if(!endReached) { + report(ERROR,"EvtGen") << "Either the decay file ended prematurely or the file is badly formed.\n" + <<"Error occured near line"< copyTable = getDalitzTable(copy); + std::vector::iterator i = copyTable.begin(); + for( ; i != copyTable.end(); i++) { + EvtId daughter1 = (*i).daughter1(); + EvtId daughter2 = (*i).daughter2(); + EvtId daughter3 = (*i).daughter3(); + + if((copyd[0] == daughter1 && copyd[1] == daughter2 && copyd[2] == daughter3) || + (copyd[0] == daughter1 && copyd[1] == daughter3 && copyd[2] == daughter2) || + (copyd[0] == daughter2 && copyd[1] == daughter1 && copyd[2] == daughter3) || + (copyd[0] == daughter2 && copyd[1] == daughter3 && copyd[2] == daughter1) || + (copyd[0] == daughter3 && copyd[1] == daughter1 && copyd[2] == daughter2) || + (copyd[0] == daughter3 && copyd[1] == daughter2 && copyd[2] == daughter1)) { + decay.setProbMax((*i).getProbMax()); + std::vector >::const_iterator j = (*i).getResonances().begin(); + for( ; j != (*i).getResonances().end(); j++) { + decay.addResonance((*j)); + } + addDecay(parent,decay); + return; + } + } + //if we get here then there was no match + report(ERROR,"EvtGen") << "Did not find dalitz decays for particle:" + < EvtDalitzTable::getDalitzTable(const EvtId& parent) { + std::vector table; + if ( _dalitztable.find(parent)!=_dalitztable.end() ) { + table=_dalitztable[parent]; + } + + if (table.empty()){ + report(ERROR,"EvtGen") << "Did not find dalitz decays for particle:" + < >& angAndResPairs) { + int n(0); + if(resDaughter[0]==daughter[0] && resDaughter[1]==daughter[1]) { + angAndResPairs.push_back(std::make_pair(EvtCyclic3::BC,EvtCyclic3::AB)); n++; + } else if(resDaughter[0]==daughter[1] && resDaughter[1]==daughter[0]) { + angAndResPairs.push_back(std::make_pair(EvtCyclic3::CA,EvtCyclic3::AB)); n++; + } + + if(resDaughter[0]==daughter[1] && resDaughter[1]==daughter[2]) { + angAndResPairs.push_back(std::make_pair(EvtCyclic3::CA,EvtCyclic3::BC)); n++; + } else if(resDaughter[0]==daughter[2] && resDaughter[1]==daughter[1]) { + angAndResPairs.push_back(std::make_pair(EvtCyclic3::AB,EvtCyclic3::BC)); n++; + } + + if(resDaughter[0]==daughter[2] && resDaughter[1]==daughter[0]) { + angAndResPairs.push_back(std::make_pair(EvtCyclic3::AB,EvtCyclic3::CA)); n++; + } else if(resDaughter[0]==daughter[0] && resDaughter[1]==daughter[2]) { + angAndResPairs.push_back(std::make_pair(EvtCyclic3::BC,EvtCyclic3::CA)); n++; + } + + return n; +} + +double EvtDalitzTable::calcProbMax(EvtDalitzPlot dp, EvtDalitzDecayInfo* model) { + + double factor = 1.2; //factor to increase our final answer by + int nStep(1000); //number of steps - total points will be 3*nStep*nStep + + double maxProb(0); + double min(0), max(0), step(0), min2(0), max2(0), step2(0); + + //first do AB, BC + min = dp.qAbsMin(EvtCyclic3::AB); + max = dp.qAbsMax(EvtCyclic3::AB); + step = (max-min)/nStep; + for(int i=0; i maxProb) maxProb = prob; + } + } + + //next do BC, CA + min = dp.qAbsMin(EvtCyclic3::BC); + max = dp.qAbsMax(EvtCyclic3::BC); + step = (max-min)/nStep; + for(int i=0; i maxProb) maxProb = prob; + } + } + + //finally do CA, AB + min = dp.qAbsMin(EvtCyclic3::CA); + max = dp.qAbsMax(EvtCyclic3::CA); + step = (max-min)/nStep; + for(int i=0; i maxProb) maxProb = prob; + } + } + report(INFO,"EvtGen") << "Largest probability found was " << maxProb << endl; + report(INFO,"EvtGen") << "Setting probMax to " << factor*maxProb << endl; + return factor*maxProb; +} + +double EvtDalitzTable::calcProb(EvtDalitzPoint point, EvtDalitzDecayInfo* model) { + + std::vector > resonances = model->getResonances(); + + EvtComplex amp(0,0); + std::vector >::iterator i = resonances.begin(); + for( ; i!= resonances.end(); i++) { + std::pair res = (*i); + amp += res.first * res.second.evaluate( point ); + } + return abs2(amp); +} diff --git a/TEvtGen/EvtGenModels/EvtDalitzTable.hh b/TEvtGen/EvtGenModels/EvtDalitzTable.hh new file mode 100644 index 00000000000..b186dac9e7f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtDalitzTable.hh @@ -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: EvtGen/EvtGenericDalitz.hh +// +// Description: Model to describe a generic dalitz decay +// +// Modification history: +// +// DCC 16 December, 2011 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTDALITZTABLE_HPP +#define EVTDALITZTABLE_HPP + +#include "EvtGenModels/EvtDalitzDecayInfo.hh" +#include "EvtGenBase/EvtId.hh" + +#include "EvtGenBase/EvtDalitzReso.hh" +#include "EvtGenBase/EvtDalitzPlot.hh" +#include "EvtGenBase/EvtCyclic3.hh" +#include "EvtGenBase/EvtSpinType.hh" + +#include +#include +#include + +class EvtDalitzTable { +public: + + static EvtDalitzTable* getInstance(const std::string dec_name="", bool verbose=true); + + bool fileHasBeenRead(const std::string dec_name); + void readXMLDecayFile(const std::string dec_name, bool verbose=true); + void checkParticle(std::string particle); + + void addDecay(EvtId parent, const EvtDalitzDecayInfo& dec); + void copyDecay(EvtId parent, EvtId* daughters, EvtId copy, EvtId* copyd); + + std::vector getDalitzTable(const EvtId& parent); + +protected: + + EvtDalitzTable(); + ~EvtDalitzTable(); + +private: + + EvtDalitzReso getResonance(std::string shape, EvtDalitzPlot dp, EvtCyclic3::Pair angPair, EvtCyclic3::Pair resPair, + EvtSpinType::spintype spinType, double mass, double width, double FFp, double FFr, double alpha, + double aLass, double rLass, double BLass, double phiBLass, double RLass, double phiRLass, double cutoffLass); + int getDaughterPairs(EvtId* resDaughter, EvtId* daughter, std::vector< std::pair >& angAndResPairs); + + std::map > _dalitztable; + std::vector _readFiles; + + EvtDalitzTable(const EvtDalitzTable&); + EvtDalitzTable& operator=(const EvtDalitzTable&); + + //to calculate probMax + double calcProbMax(EvtDalitzPlot dp, EvtDalitzDecayInfo* model); + double calcProb(EvtDalitzPoint point, EvtDalitzDecayInfo* model); +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtEta2MuMuGamma.cpp b/TEvtGen/EvtGenModels/EvtEta2MuMuGamma.cpp new file mode 100644 index 00000000000..8343e8b0fc2 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtEta2MuMuGamma.cpp @@ -0,0 +1,117 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the 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/EvtEta2MuMuGamma.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +using std::fstream; + +EvtEta2MuMuGamma::~EvtEta2MuMuGamma() {} + +std::string EvtEta2MuMuGamma::getName(){ + + return "ETA2MUMUGAMMA"; + +} + +EvtDecayBase* EvtEta2MuMuGamma::clone(){ + + return new EvtEta2MuMuGamma; + +} + + +void EvtEta2MuMuGamma::initProbMax(){ + + setProbMax(3.5); + +} + + +void EvtEta2MuMuGamma::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 EvtEta2MuMuGamma::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)*EvtGenFunctions::directProd(q,gamma->getP4()) + - (gamma->getP4()*q)*(gamma->getP4()*q)*EvtTensor4C::g() + -m2*EvtGenFunctions::directProd(gamma->getP4(),gamma->getP4()); + + w=4.0*( EvtGenFunctions::directProd(ep->getP4(),em->getP4()) + + EvtGenFunctions::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 "< decays = EvtDalitzTable::getInstance(getArgStr(0))->getDalitzTable(parnum); + + std::vector::iterator i = decays.begin(); + for( ; i != decays.end(); i++) { + EvtId daughter1 = (*i).daughter1(); + EvtId daughter2 = (*i).daughter2(); + EvtId daughter3 = (*i).daughter3(); + + if(d1 == daughter1 && d2 == daughter2 && d3 == daughter3) { + _d1 = 0; + _d2 = 1; + _d3 = 2; + } else if(d1 == daughter1 && d2 == daughter3 && d3 == daughter2) { + _d1 = 0; + _d2 = 2; + _d3 = 1; + } else if(d1 == daughter2 && d2 == daughter1 && d3 == daughter3) { + _d1 = 1; + _d2 = 0; + _d3 = 2; + } else if(d1 == daughter2 && d2 == daughter3 && d3 == daughter1) { + _d1 = 1; + _d2 = 2; + _d3 = 0; + } else if(d1 == daughter3 && d2 == daughter1 && d3 == daughter2) { + _d1 = 2; + _d2 = 0; + _d3 = 1; + } else if(d1 == daughter3 && d2 == daughter2 && d3 == daughter1) { + _d1 = 2; + _d2 = 1; + _d3 = 0; + } else { + continue; + } + + _resonances = (*i).getResonances(); + setProbMax((*i).getProbMax()); + return; + } +} + +void EvtGenericDalitz::decay(EvtParticle *p) { + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtVector4R p4_d1 = p->getDaug(_d1)->getP4(); + EvtVector4R p4_d2 = p->getDaug(_d2)->getP4(); + EvtVector4R p4_d3 = p->getDaug(_d3)->getP4(); + + double mA = p->getDaug(_d1)->mass(); + double mB = p->getDaug(_d2)->mass(); + double mC = p->getDaug(_d3)->mass(); + + double m2AB = ( p4_d1 + p4_d2 ).mass2(); + double m2CA = ( p4_d1 + p4_d3 ).mass2(); + double m2BC = ( p4_d2 + p4_d3 ).mass2(); + + EvtDalitzPoint point( mA, mB, mC, m2AB, m2BC, m2CA ); + + EvtComplex amp(0,0); + std::vector >::iterator i = _resonances.begin(); + for( ; i!= _resonances.end(); i++) { + std::pair res = (*i); + amp += res.first * res.second.evaluate( point ); + } + + vertex(amp); + return; +} + +std::string EvtGenericDalitz::getParamName(int i) { + switch(i) { + case 0: + return "xmlFile"; + default: + return ""; + } +} diff --git a/TEvtGen/EvtGenModels/EvtGenericDalitz.hh b/TEvtGen/EvtGenModels/EvtGenericDalitz.hh new file mode 100644 index 00000000000..25cd1b000e4 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtGenericDalitz.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/EvtGenericDalitz.hh +// +// Description: Model to describe a generic dalitz decay +// +// Modification history: +// +// DCC 16 December, 2011 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTGENERICDALITZ_HH +#define EVTGENERICDALITZ_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtFlatte.hh" +#include "EvtGenBase/EvtDalitzReso.hh" +#include +#include + +class EvtParticle; + +class EvtGenericDalitz:public EvtDecayAmp { + +public: + + EvtGenericDalitz() {} + virtual ~EvtGenericDalitz() {} + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax() {};//prob max will be set in init + + void decay(EvtParticle *p); + + std::string getParamName(int i); + +private: + + int _d1,_d2,_d3; + std::vector > _resonances; +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtGoityRoberts.cxx b/TEvtGen/EvtGenModels/EvtGoityRoberts.cpp similarity index 87% rename from TEvtGen/EvtGenModels/EvtGoityRoberts.cxx rename to TEvtGen/EvtGenModels/EvtGoityRoberts.cpp index b020575fad2..743f5c1cf24 100644 --- a/TEvtGen/EvtGenModels/EvtGoityRoberts.cxx +++ b/TEvtGen/EvtGenModels/EvtGoityRoberts.cpp @@ -95,7 +95,7 @@ void EvtGoityRoberts::decay( EvtParticle *p){ } void EvtGoityRoberts::DecayBDstarpilnuGR(EvtParticle *pb,EvtId ndstar, - EvtId nlep, EvtId nnu) + EvtId nlep, EvtId /*nnu*/) { pb->initializePhaseSpace(getNDaug(),getDaugs()); @@ -254,32 +254,32 @@ void EvtGoityRoberts::DecayBDstarpilnuGR(EvtParticle *pb,EvtId ndstar, g_metric.setdiag(1.0,-1.0,-1.0,-1.0); if (nlep==EM||nlep==MUM){ - 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), + omega=EvtComplex(0.0,0.5)*dual(h1*mb*md*EvtGenFunctions::directProd(v,vp)+ + h2*mb*EvtGenFunctions::directProd(v,p4_pi)+ + h3*md*EvtGenFunctions::directProd(vp,p4_pi))+ + f1*mb*EvtGenFunctions::directProd(v,p4_pi)+f2*md*EvtGenFunctions::directProd(vp,p4_pi)+ + f3*EvtGenFunctions::directProd(p4_pi,p4_pi)+f4*mb*mb*EvtGenFunctions::directProd(v,v)+ + f5*mb*md*EvtGenFunctions::directProd(vp,v)+f6*mb*EvtGenFunctions::directProd(p4_pi,v)+k*g_metric+ + EvtComplex(0.0,0.5)*EvtGenFunctions::directProd(dual(EvtGenFunctions::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)); + EvtComplex(0.0,0.5)*EvtGenFunctions::directProd((g3*mb*v+g4*md*vp+g5*p4_pi), + dual(EvtGenFunctions::directProd(vp,p4_pi)).cont2(v)); l1=EvtLeptonVACurrent(lepton->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), + omega=EvtComplex(0.0,-0.5)*dual(h1*mb*md*EvtGenFunctions::directProd(v,vp)+ + h2*mb*EvtGenFunctions::directProd(v,p4_pi)+ + h3*md*EvtGenFunctions::directProd(vp,p4_pi))+ + f1*mb*EvtGenFunctions::directProd(v,p4_pi)+f2*md*EvtGenFunctions::directProd(vp,p4_pi)+ + f3*EvtGenFunctions::directProd(p4_pi,p4_pi)+f4*mb*mb*EvtGenFunctions::directProd(v,v)+ + f5*mb*md*EvtGenFunctions::directProd(vp,v)+f6*mb*EvtGenFunctions::directProd(p4_pi,v)+k*g_metric+ + EvtComplex(0.0,-0.5)*EvtGenFunctions::directProd(dual(EvtGenFunctions::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)); + EvtComplex(0.0,-0.5)*EvtGenFunctions::directProd((g3*mb*v+g4*md*vp+g5*p4_pi), + dual(EvtGenFunctions::directProd(vp,p4_pi)).cont2(v)); l1=EvtLeptonVACurrent(neutrino->spParentNeutrino(),lepton->spParent(0)); l2=EvtLeptonVACurrent(neutrino->spParentNeutrino(),lepton->spParent(1)); @@ -307,7 +307,7 @@ void EvtGoityRoberts::DecayBDstarpilnuGR(EvtParticle *pb,EvtId ndstar, } void EvtGoityRoberts::DecayBDpilnuGR(EvtParticle *pb,EvtId nd, - EvtId nlep, EvtId nnu) + EvtId nlep, EvtId /*nnu*/) { //added by Lange Jan4,2000 @@ -401,7 +401,7 @@ void EvtGoityRoberts::DecayBDpilnuGR(EvtParticle *pb,EvtId nd, EvtVector4C omega; if ( nlep==EM|| nlep==MUM ) { - omega=EvtComplex(0.0,-1.0)*h*mb*md*dual(directProd(vp,p4_pi)).cont2(v)+ + omega=EvtComplex(0.0,-1.0)*h*mb*md*dual(EvtGenFunctions::directProd(vp,p4_pi)).cont2(v)+ a1*p4_pi+a2*mb*v+a3*md*vp; l1=EvtLeptonVACurrent( lepton->spParent(0),neutrino->spParentNeutrino()); @@ -410,7 +410,7 @@ void EvtGoityRoberts::DecayBDpilnuGR(EvtParticle *pb,EvtId nd, } else{ if ( nlep==EP|| nlep==MUP ) { - omega=EvtComplex(0.0,1.0)*h*mb*md*dual(directProd(vp,p4_pi)).cont2(v)+ + omega=EvtComplex(0.0,1.0)*h*mb*md*dual(EvtGenFunctions::directProd(vp,p4_pi)).cont2(v)+ a1*p4_pi+a2*mb*v+a3*md*vp; l1=EvtLeptonVACurrent( neutrino->spParentNeutrino(),lepton->spParent(0)); diff --git a/TEvtGen/EvtGenModels/EvtHQET.cxx b/TEvtGen/EvtGenModels/EvtHQET.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtHQET.cxx rename to TEvtGen/EvtGenModels/EvtHQET.cpp diff --git a/TEvtGen/EvtGenModels/EvtHQET2.cxx b/TEvtGen/EvtGenModels/EvtHQET2.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtHQET2.cxx rename to TEvtGen/EvtGenModels/EvtHQET2.cpp diff --git a/TEvtGen/EvtGenModels/EvtHQET2FF.cxx b/TEvtGen/EvtGenModels/EvtHQET2FF.cpp similarity index 86% rename from TEvtGen/EvtGenModels/EvtHQET2FF.cxx rename to TEvtGen/EvtGenModels/EvtHQET2FF.cpp index 2811acc7114..08072beabf7 100644 --- a/TEvtGen/EvtGenModels/EvtHQET2FF.cxx +++ b/TEvtGen/EvtGenModels/EvtHQET2FF.cpp @@ -110,3 +110,19 @@ void EvtHQET2FF::getbaryonff(EvtId, EvtId, double, double, double*, ::abort(); } + +void EvtHQET2FF::getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtHQET2FF.\n"; + ::abort(); + +} + +void EvtHQET2FF::getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtHQET2FF.\n"; + ::abort(); + +} diff --git a/TEvtGen/EvtGenModels/EvtHQET2FF.hh b/TEvtGen/EvtGenModels/EvtHQET2FF.hh index a17e9b62864..a42b04bd333 100644 --- a/TEvtGen/EvtGenModels/EvtHQET2FF.hh +++ b/TEvtGen/EvtGenModels/EvtHQET2FF.hh @@ -35,6 +35,11 @@ public: void getbaryonff(EvtId, EvtId, double, double, double*, double*, double*, double*); + void getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*); + + void getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*); private: double r1_1; diff --git a/TEvtGen/EvtGenModels/EvtHQETFF.cxx b/TEvtGen/EvtGenModels/EvtHQETFF.cpp similarity index 84% rename from TEvtGen/EvtGenModels/EvtHQETFF.cxx rename to TEvtGen/EvtGenModels/EvtHQETFF.cpp index b9240500b35..5f59c87232a 100644 --- a/TEvtGen/EvtGenModels/EvtHQETFF.cxx +++ b/TEvtGen/EvtGenModels/EvtHQETFF.cpp @@ -108,3 +108,19 @@ void EvtHQETFF::getbaryonff(EvtId, EvtId, double, double, double*, } + +void EvtHQETFF::getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtHQETFF.\n"; + ::abort(); + +} + +void EvtHQETFF::getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtHQETFF.\n"; + ::abort(); + +} diff --git a/TEvtGen/EvtGenModels/EvtHQETFF.hh b/TEvtGen/EvtGenModels/EvtHQETFF.hh index 7ca4ea5c815..f7d89cfd0f4 100644 --- a/TEvtGen/EvtGenModels/EvtHQETFF.hh +++ b/TEvtGen/EvtGenModels/EvtHQETFF.hh @@ -43,6 +43,11 @@ public: void getbaryonff(EvtId, EvtId, double, double, double*, double*, double*, double*); + void getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*); + + void getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*); private: double r1; diff --git a/TEvtGen/EvtGenModels/EvtHelAmp.cxx b/TEvtGen/EvtGenModels/EvtHelAmp.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtHelAmp.cxx rename to TEvtGen/EvtGenModels/EvtHelAmp.cpp diff --git a/TEvtGen/EvtGenModels/EvtHypNonLepton.cxx b/TEvtGen/EvtGenModels/EvtHypNonLepton.cpp similarity index 99% rename from TEvtGen/EvtGenModels/EvtHypNonLepton.cxx rename to TEvtGen/EvtGenModels/EvtHypNonLepton.cpp index dedfc17ea0d..2c422b7de88 100644 --- a/TEvtGen/EvtGenModels/EvtHypNonLepton.cxx +++ b/TEvtGen/EvtGenModels/EvtHypNonLepton.cpp @@ -130,7 +130,7 @@ void EvtHypNonLepton::calcAmp(EvtAmp *amp,EvtParticle *parent){ static long noTries=0; int i; - EvtComplex Matrix[2][2],B_to_A; + EvtComplex Matrix[2][2]; //G_F = 1.16637e-5; //M_pi = 0.13957; diff --git a/TEvtGen/EvtGenModels/EvtISGW.cxx b/TEvtGen/EvtGenModels/EvtISGW.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtISGW.cxx rename to TEvtGen/EvtGenModels/EvtISGW.cpp diff --git a/TEvtGen/EvtGenModels/EvtISGW2.cxx b/TEvtGen/EvtGenModels/EvtISGW2.cpp similarity index 98% rename from TEvtGen/EvtGenModels/EvtISGW2.cxx rename to TEvtGen/EvtGenModels/EvtISGW2.cpp index 07d5c953370..b436d2fc4ff 100644 --- a/TEvtGen/EvtGenModels/EvtISGW2.cxx +++ b/TEvtGen/EvtGenModels/EvtISGW2.cpp @@ -202,11 +202,6 @@ void EvtISGW2::initProbMax() { 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-"); diff --git a/TEvtGen/EvtGenModels/EvtISGW2FF.cpp b/TEvtGen/EvtGenModels/EvtISGW2FF.cpp new file mode 100644 index 00000000000..2256c0f302d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtISGW2FF.cpp @@ -0,0 +1,1811 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the 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 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 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 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 A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + + 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 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 DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_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 + 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 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 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 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 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 RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + 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 OMEG=EvtPDL::getId("omega"); + 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 PHI=EvtPDL::getId("phi"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + 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,gammaji,chiji,betaji_fppfm; + double rfppfm,rfpmfm,f3fppfm,f3fpmfm,fppfm,fpmfm,ai,f3; + double mqm,msb(0.0),bb2(0.0),mup,bbx2,tm,r2,betaji_fpmfm; + + EvtId prnt=parent; + EvtId dgt=daugt; + + //added by Lange Jan4,2000 + static EvtIdSet theB("B+","B-","B0","anti-B0"); + + 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 PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + + 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 DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=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; + + 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"; + + 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 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 RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + static EvtId OMEG=EvtPDL::getId("omega"); + + 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 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 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_apmam, betaji_f,betaji_g; + double betaji_appam, betaji_apmam; + double mqm,r2,chiji,zji,ai,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)); + + 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_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 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 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 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 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)-"); + + double mtb, mbb(0.0); + double msd(0.0), mx,mb,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 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; + + 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; + 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; + + 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 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 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 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)"); + + double mtb, mbb(0.0); + double msd(0.0), mx,mb,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,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; + + 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; + + 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; + + 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 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 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 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 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 D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + 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,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; + 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; + 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; + + 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 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 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 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 A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + + 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 D3P1SP=EvtPDL::getId("D'_s1+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1-"); + + 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,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),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; + + 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; + + 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 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 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 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 D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_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 DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=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,nfp(0.0); + double msq(0.0),bx2(0.0),mbx(0.0),mtx; + double f5uppum,f5upmum,uppum,upmum,f5; + double mqm,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; + 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; + 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; + + 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; + + 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; + + 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 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 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 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 A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + 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 D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + 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,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; + + 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; + 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; + + 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(); + +} + +void EvtISGW2FF::getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtISGW2FF.\n"; + ::abort(); + +} + +void EvtISGW2FF::getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtISGW2FF.\n"; + ::abort(); + +} diff --git a/TEvtGen/EvtGenModels/EvtISGW2FF.cxx b/TEvtGen/EvtGenModels/EvtISGW2FF.cxx deleted file mode 100644 index 462f3738c33..00000000000 --- a/TEvtGen/EvtGenModels/EvtISGW2FF.cxx +++ /dev/null @@ -1,3145 +0,0 @@ -//-------------------------------------------------------------------------- -// -// Environment: -// This software is part of the EvtGen package developed jointly -// for the 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 index e83ddc48b68..a862b673646 100644 --- a/TEvtGen/EvtGenModels/EvtISGW2FF.hh +++ b/TEvtGen/EvtGenModels/EvtISGW2FF.hh @@ -42,6 +42,11 @@ public: void getbaryonff(EvtId, EvtId, double, double, double*, double*, double*, double*); + void getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*); + + void getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*); private: diff --git a/TEvtGen/EvtGenModels/EvtISGWFF.cpp b/TEvtGen/EvtGenModels/EvtISGWFF.cpp new file mode 100644 index 00000000000..d471fba9f51 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtISGWFF.cpp @@ -0,0 +1,881 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the 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 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 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 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 A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + + 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 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 DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_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 + 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 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 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 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 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 RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + 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 OMEG=EvtPDL::getId("omega"); + + 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 PHI=EvtPDL::getId("phi"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1*+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + 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 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 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 A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + 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 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 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 PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + + 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 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 RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId OMEG=EvtPDL::getId("omega"); + + double msd(0.0),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; + + 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 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 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)"); + + 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,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; + 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 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 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 A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + + 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),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; + + 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 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 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 A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + + double mtb; + double msd(0.0), mx(0.0), mb(0.0); + double msq(0.0), bx2(0.0),mtx; + double f5; + double mum,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; + + 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 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 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 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"); + + 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 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 D21S0P=EvtPDL::getId("hi"); + static EvtId D21S0N=EvtPDL::getId("hi"); + static EvtId D21S00=EvtPDL::getId("hi"); + static EvtId D21S0B=EvtPDL::getId("hi"); + + 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)-"); + + 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(); + +} + +void EvtISGWFF::getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtISGWFF.\n"; + ::abort(); + +} + +void EvtISGWFF::getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtISGWFF.\n"; + ::abort(); + +} diff --git a/TEvtGen/EvtGenModels/EvtISGWFF.cxx b/TEvtGen/EvtGenModels/EvtISGWFF.cxx deleted file mode 100644 index 3f900a3df05..00000000000 --- a/TEvtGen/EvtGenModels/EvtISGWFF.cxx +++ /dev/null @@ -1,2300 +0,0 @@ -//-------------------------------------------------------------------------- -// -// Environment: -// This software is part of the EvtGen package developed jointly -// for the 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 index b272758b8ce..f7c457a5961 100644 --- a/TEvtGen/EvtGenModels/EvtISGWFF.hh +++ b/TEvtGen/EvtGenModels/EvtISGWFF.hh @@ -41,6 +41,11 @@ class EvtISGWFF : public EvtSemiLeptonicFF { void getbaryonff(EvtId, EvtId, double, double, double*, double*, double*, double*); + void getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*); + + void getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*); // getscalarff, getvectorff, and gettensorff call the // correct isgw form factor routine which computes diff --git a/TEvtGen/EvtGenModels/EvtIntervalDecayAmp.hh b/TEvtGen/EvtGenModels/EvtIntervalDecayAmp.hh index 6a919f4f5ca..8a0bace577b 100644 --- a/TEvtGen/EvtGenModels/EvtIntervalDecayAmp.hh +++ b/TEvtGen/EvtGenModels/EvtIntervalDecayAmp.hh @@ -1,6 +1,6 @@ //----------------------------------------------------------------------- // File and Version Information: -// $Id: EvtIntervalDecayAmp.hh,v 1.12 2009/02/15 18:21:51 ryd Exp $ +// $Id: EvtIntervalDecayAmp.hh,v 1.4 2009-03-16 16:39:16 robbep Exp $ // // Environment: // This software is part of the EvtGen package developed jointly @@ -109,10 +109,8 @@ public: { // 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"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); double t; EvtId other_b; EvtComplex ampl(0.,0.); @@ -130,7 +128,7 @@ public: EvtComplex A = _fact->getAmp()->evaluate(_x); EvtComplex Abar = _fact->getAmpConj()->evaluate(_x); - EvtCPUtil::OtherB(p,t,other_b); + EvtCPUtil::getInstance()->OtherB(p,t,other_b); double dm = _fact->dm(); double mixAmpli = _fact->mixAmpli(); diff --git a/TEvtGen/EvtGenModels/EvtItgAbsFunction.cxx b/TEvtGen/EvtGenModels/EvtItgAbsFunction.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtItgAbsFunction.cxx rename to TEvtGen/EvtGenModels/EvtItgAbsFunction.cpp diff --git a/TEvtGen/EvtGenModels/EvtItgAbsIntegrator.cxx b/TEvtGen/EvtGenModels/EvtItgAbsIntegrator.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtItgAbsIntegrator.cxx rename to TEvtGen/EvtGenModels/EvtItgAbsIntegrator.cpp diff --git a/TEvtGen/EvtGenModels/EvtItgFourCoeffFcn.cxx b/TEvtGen/EvtGenModels/EvtItgFourCoeffFcn.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtItgFourCoeffFcn.cxx rename to TEvtGen/EvtGenModels/EvtItgFourCoeffFcn.cpp diff --git a/TEvtGen/EvtGenModels/EvtItgFunction.cxx b/TEvtGen/EvtGenModels/EvtItgFunction.cpp similarity index 94% rename from TEvtGen/EvtGenModels/EvtItgFunction.cxx rename to TEvtGen/EvtGenModels/EvtItgFunction.cpp index 8a43441fb06..55d0c77f389 100644 --- a/TEvtGen/EvtGenModels/EvtItgFunction.cxx +++ b/TEvtGen/EvtGenModels/EvtItgFunction.cpp @@ -1,6 +1,6 @@ //-------------------------------------------------------------------------- // File and Version Information: -// $Id: EvtItgFunction.cc,v 1.3 2004/12/21 22:16:02 ryd Exp $ +// $Id: EvtItgFunction.cpp,v 1.4 2009-03-16 15:47:39 robbep Exp $ // // Description: // Class EvtItgFunction diff --git a/TEvtGen/EvtGenModels/EvtItgFunction.hh b/TEvtGen/EvtGenModels/EvtItgFunction.hh index 845fc559ed0..9c41f62557c 100644 --- a/TEvtGen/EvtGenModels/EvtItgFunction.hh +++ b/TEvtGen/EvtGenModels/EvtItgFunction.hh @@ -25,7 +25,7 @@ * * @see EvtItgFunctionEvtItgFunction * - * @version $Id: EvtItgFunction.hh,v 1.1 2002/04/19 20:07:47 lange Exp $ + * @version $Id: EvtItgFunction.hh,v 1.2 2009-03-16 16:34:00 robbep Exp $ * * @author Phil Strother Originator */ diff --git a/TEvtGen/EvtGenModels/EvtItgPtrFunction.cxx b/TEvtGen/EvtGenModels/EvtItgPtrFunction.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtItgPtrFunction.cxx rename to TEvtGen/EvtGenModels/EvtItgPtrFunction.cpp diff --git a/TEvtGen/EvtGenModels/EvtItgSimpsonIntegrator.cxx b/TEvtGen/EvtGenModels/EvtItgSimpsonIntegrator.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtItgSimpsonIntegrator.cxx rename to TEvtGen/EvtGenModels/EvtItgSimpsonIntegrator.cpp diff --git a/TEvtGen/EvtGenModels/EvtItgThreeCoeffFcn.cxx b/TEvtGen/EvtGenModels/EvtItgThreeCoeffFcn.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtItgThreeCoeffFcn.cxx rename to TEvtGen/EvtGenModels/EvtItgThreeCoeffFcn.cpp diff --git a/TEvtGen/EvtGenModels/EvtItgTwoCoeffFcn.cxx b/TEvtGen/EvtGenModels/EvtItgTwoCoeffFcn.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtItgTwoCoeffFcn.cxx rename to TEvtGen/EvtGenModels/EvtItgTwoCoeffFcn.cpp diff --git a/TEvtGen/EvtGenModels/EvtJetSet.cxx b/TEvtGen/EvtGenModels/EvtJetSet.cxx deleted file mode 100644 index 991a60a852a..00000000000 --- a/TEvtGen/EvtGenModels/EvtJetSet.cxx +++ /dev/null @@ -1,840 +0,0 @@ -//-------------------------------------------------------------------------- -// -// Environment: -// This software is part of the EvtGen package developed jointly -// for the 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 deleted file mode 100644 index b69d8352b2b..00000000000 --- a/TEvtGen/EvtGenModels/EvtJetSetCDF.cxx +++ /dev/null @@ -1,841 +0,0 @@ -//-------------------------------------------------------------------------- -// -// Environment: -// This software is part of the EvtGen package developed jointly -// for the 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 deleted file mode 100644 index 4c66891afbe..00000000000 --- a/TEvtGen/EvtGenModels/EvtJetSetCDFInit.F +++ /dev/null @@ -1,45 +0,0 @@ -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 deleted file mode 100644 index b2cc5229316..00000000000 --- a/TEvtGen/EvtGenModels/EvtJetSetInit.F +++ /dev/null @@ -1,44 +0,0 @@ -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 deleted file mode 100644 index 6034ce8cbac..00000000000 --- a/TEvtGen/EvtGenModels/EvtJscont.cxx +++ /dev/null @@ -1,150 +0,0 @@ -//-------------------------------------------------------------------------- -// -// Environment: -// This software is part of the EvtGen package developed jointly -// for the 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/EvtJscontCDF.cxx b/TEvtGen/EvtGenModels/EvtJscontCDF.cxx deleted file mode 100644 index 0f6dcacfc0d..00000000000 --- a/TEvtGen/EvtGenModels/EvtJscontCDF.cxx +++ /dev/null @@ -1,149 +0,0 @@ -//-------------------------------------------------------------------------- -// -// Environment: -// This software is part of the EvtGen package developed jointly -// for the 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/EvtKKLambdaC.cxx b/TEvtGen/EvtGenModels/EvtKKLambdaC.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtKKLambdaC.cxx rename to TEvtGen/EvtGenModels/EvtKKLambdaC.cpp diff --git a/TEvtGen/EvtGenModels/EvtKKLambdaCFF.cxx b/TEvtGen/EvtGenModels/EvtKKLambdaCFF.cpp similarity index 76% rename from TEvtGen/EvtGenModels/EvtKKLambdaCFF.cxx rename to TEvtGen/EvtGenModels/EvtKKLambdaCFF.cpp index 3875daaf5fd..95135b1a81f 100644 --- a/TEvtGen/EvtGenModels/EvtKKLambdaCFF.cxx +++ b/TEvtGen/EvtGenModels/EvtKKLambdaCFF.cpp @@ -36,8 +36,8 @@ EvtKKLambdaCFF::EvtKKLambdaCFF(int numarg, double *arglist) { return; } -void EvtKKLambdaCFF::getbaryonff(EvtId parent,EvtId daught, - double t, double mass, double *f1v, +void EvtKKLambdaCFF::getbaryonff(EvtId /*parent*/,EvtId /*daught*/, + double t, double /*mass*/, double *f1v, double *f1a, double *f2v, double *f2a ) { *f1v=(_args[0])/(1.0-(t/(_args[1]*_args[1]))); @@ -74,3 +74,19 @@ void EvtKKLambdaCFF::gettensorff(EvtId, EvtId, double, double, double*, ::abort(); } + +void EvtKKLambdaCFF::getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtKKLambdaCFF.\n"; + ::abort(); + +} + +void EvtKKLambdaCFF::getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtKKLambdaCFF.\n"; + ::abort(); + +} diff --git a/TEvtGen/EvtGenModels/EvtKKLambdaCFF.hh b/TEvtGen/EvtGenModels/EvtKKLambdaCFF.hh index 030d34ed52d..7ffa43e45d0 100644 --- a/TEvtGen/EvtGenModels/EvtKKLambdaCFF.hh +++ b/TEvtGen/EvtGenModels/EvtKKLambdaCFF.hh @@ -43,6 +43,12 @@ public: double t, double mass, double *f1v, double *f1a, double *f2v, double *f2a ); + void getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*); + + void getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*); + private: int _nargs; double _args[2]; diff --git a/TEvtGen/EvtGenModels/EvtKstarnunu.cxx b/TEvtGen/EvtGenModels/EvtKstarnunu.cpp similarity index 93% rename from TEvtGen/EvtGenModels/EvtKstarnunu.cxx rename to TEvtGen/EvtGenModels/EvtKstarnunu.cpp index 04c0cce45ad..f1ba95cdd96 100644 --- a/TEvtGen/EvtGenModels/EvtKstarnunu.cxx +++ b/TEvtGen/EvtGenModels/EvtKstarnunu.cpp @@ -96,14 +96,12 @@ void EvtKstarnunu::decay(EvtParticle *p){ EvtVector4R momnu2 = neutrino2->getP4(); EvtVector4R momkstar = meson->getP4(); - double v0_0, a0_0, a1_0, a2_0; - double m2v0, m2a0, a1_b, a2_b; + double v0_0, a1_0, a2_0; + double m2v0, 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; @@ -119,10 +117,10 @@ void EvtKstarnunu::decay(EvtParticle *p){ double m_k = meson->mass(); - EvtTensor4C tds=(-2*v0/(m_b+m_k))*dual(directProd(p4b,momkstar)) + EvtTensor4C tds=(-2*v0/(m_b+m_k))*dual(EvtGenFunctions::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)); + - (a2/(m_b+m_k))*EvtGenFunctions::directProd(p4b-momkstar,p4b+momkstar)); EvtVector4C l; diff --git a/TEvtGen/EvtGenModels/EvtKstarstargamma.cxx b/TEvtGen/EvtGenModels/EvtKstarstargamma.cpp similarity index 98% rename from TEvtGen/EvtGenModels/EvtKstarstargamma.cxx rename to TEvtGen/EvtGenModels/EvtKstarstargamma.cpp index 41e53ee7cb6..309192a4e0a 100644 --- a/TEvtGen/EvtGenModels/EvtKstarstargamma.cxx +++ b/TEvtGen/EvtGenModels/EvtKstarstargamma.cpp @@ -72,7 +72,7 @@ void EvtKstarstargamma::initProbMax() { } -void EvtKstarstargamma::decay( EvtParticle *p){ +void EvtKstarstargamma::decay( EvtParticle * /*p*/){ /* diff --git a/TEvtGen/EvtGenModels/EvtLNuGamma.cxx b/TEvtGen/EvtGenModels/EvtLNuGamma.cpp similarity index 95% rename from TEvtGen/EvtGenModels/EvtLNuGamma.cxx rename to TEvtGen/EvtGenModels/EvtLNuGamma.cpp index 8ca530b8e8c..869da320e21 100644 --- a/TEvtGen/EvtGenModels/EvtLNuGamma.cxx +++ b/TEvtGen/EvtGenModels/EvtLNuGamma.cpp @@ -134,8 +134,8 @@ void EvtLNuGamma::decay(EvtParticle *p){ fa = fv; } - EvtVector4C temp1a = dual(directProd(parVelocity,photp)).cont2(photone1); - EvtVector4C temp2a = dual(directProd(parVelocity,photp)).cont2(photone2); + EvtVector4C temp1a = dual(EvtGenFunctions::directProd(parVelocity,photp)).cont2(photone1); + EvtVector4C temp2a = dual(EvtGenFunctions::directProd(parVelocity,photp)).cont2(photone2); EvtVector4C temp1b = (photone1)*(parVelocity*photp); EvtVector4C temp1c = (photp)*(photone1*parVelocity); diff --git a/TEvtGen/EvtGenModels/EvtLambdaB2LambdaV.cpp b/TEvtGen/EvtGenModels/EvtLambdaB2LambdaV.cpp new file mode 100644 index 00000000000..a3390d3b31c --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtLambdaB2LambdaV.cpp @@ -0,0 +1,1227 @@ +#include "EvtGenModels/EvtLambdaB2LambdaV.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" + +using std::fstream ; +//************************************************************************ +//* * +//* Class EvtLambdaB2LambdaV * +//* * +//************************************************************************ +//DECLARE_ALGORITHM_FACTORY( EvtLambdaB2LambdaV ); + +EvtLambdaB2LambdaV::EvtLambdaB2LambdaV() +{ + //set facility name + fname="EvtGen.EvtLambdaB2LambdaV"; +} + + +//------------------------------------------------------------------------ +// Destructor +//------------------------------------------------------------------------ +EvtLambdaB2LambdaV::~EvtLambdaB2LambdaV() +{} + + +//------------------------------------------------------------------------ +// Method 'getName' +//------------------------------------------------------------------------ +std::string EvtLambdaB2LambdaV::getName() +{ + return "LAMBDAB2LAMBDAV"; +} + + +//------------------------------------------------------------------------ +// Method 'clone' +//------------------------------------------------------------------------ +EvtDecayBase* EvtLambdaB2LambdaV::clone() +{ + return new EvtLambdaB2LambdaV; + +} + + +//------------------------------------------------------------------------ +// Method 'initProbMax' +//------------------------------------------------------------------------ +void EvtLambdaB2LambdaV::initProbMax() +{ + //maximum (case where C=0) + double Max = 1+fabs(A*B); + report(DEBUG,fname.c_str())<<" PDF max value : "< Lambda J/psi"< anti-Lambda J/psi"< Lambda rho0"< anti-Lambda rho0"< Lambda omega"< anti-Lambda omega"< Lambda rho-omega-mixing"< anti-Lambda rho-omega-mixing"<getP4(); + V->getP4(); + report(INFO,fname.c_str())<<" LambdaB px: "<init(getDaugs()[0],q_lambda); + V ->init(getDaugs()[1],q_V ); + + //computate pdf + double pdf = 1 + A*B*cos(theta) + 2*A*real(C*EvtComplex(cos(phi),sin(phi)))*sin(theta); + + report(DEBUG,fname.c_str())<<" LambdaB decay pdf value : "<max2) Max=max1; else Max=max2; + } + report(DEBUG,fname.c_str())<<" PDF max value : "< p+ pi-"< anti-p- pi+"< Lambda J/psi"< anti-Lambda J/psi"< Lambda rho0"< anti-Lambda rho0"< Lambda omega"< anti-Lambda omega"< Lambda rho-omega-mixing"< anti-Lambda rho-omega-mixing"<init(getDaugs()[0],q_proton); + pion ->init(getDaugs()[1],q_pion ); + + //computate pdf + //double pdf = 1 + A*B*cos(theta) - EvtConst::pi/2.0*C*A*real(D*EvtComplex(cos(phi),sin(phi)))*sin(theta); + double pdf = 1 + A*B*cos(theta) + 2*A*real(D*EvtComplex(cos(phi),sin(phi)))*sin(theta); + report(DEBUG,fname.c_str())<<" Lambda decay pdf value : "<0) Max=2*(1-A); + else Max=1+A; + } + else + { + if ((3*A-1)>=0) Max=2*A; + else Max=1-A; + } + + report(DEBUG,fname.c_str())<<" PDF max value : "< mu+ mu-"< pi+ pi-"< pi+ pi-"< pi+ pi-"<init(getDaugs()[0],q_Vp); + Vm->init(getDaugs()[1],q_Vm); + + //computate pdf + double pdf = 0; + if (Vtype==VID::JPSI) + { + //leptonic case + pdf = (1-3*A)*cos(theta)*cos(theta) + (1+A); + } + else + { + //hadronic case + pdf = (3*A-1)*cos(theta)*cos(theta) + (1-A); + + } + report(DEBUG,fname.c_str())<<" V decay pdf value : "< Lambda(p pi) V(Vp Vm) decays +// with V a vector meson such as J/psi (mu+mu-) +// Rho (pi+pi-) +// Omega (pi+pi-) +// Rho-omega mixing (pi+pi-) +// +// Author : Eric Conte (LPC Clermont-Ferrand) +// econte@clermont.in2p3.fr / ziad@clermont.in2p3.fr +// +// Modification history: +// +// E. Conte April 13, 2006 Module created +// E. Conte February 5, 2006 First draft +// +//------------------------------------------------------------------------ + +#ifndef EVTLAMBDAB2LAMBDAV_HH +#define EVTLAMBDAB2LAMBDAV_HH + +#include +#include +#include "EvtGenBase/EvtDecayProb.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" + +namespace VID +{ + enum VectorMesonType{JPSI, OMEGA, RHO, RHO_OMEGA_MIXING}; +} + +//******************************************************************* +//* * +//* Class EvtLambdaB2LambdaV * +//* * +//******************************************************************* +// +// DECAY : LambdaB -> Lambda + vector meson +// +// d(Sigma) +// -------- = 1 + A*B*cos(theta) + 2*A*Re(C*exp(i*phi))*sin(theta) +// d(Omega) +// +// with A (real) : lambdaB helicity asymmetry parameter +// B (real) : lambdaB polarisation +// C (complex) : lambdaB density matrix element rho+- +// +// cf : O. Leitner, Z.J Ajaltouni, E. Conte, +// PCCF RI 0601, ECT-05-15, LPNHE/2006-01, hep-ph/0602043 + +class EvtLambdaB2LambdaV:public EvtDecayProb +{ + +public: + + EvtLambdaB2LambdaV(); + virtual ~EvtLambdaB2LambdaV(); + EvtDecayBase* clone(); + + virtual std::string getName(); + void init(); + void initProbMax(); + void decay(EvtParticle *lambdab); + +private: + + //class name for report method + std::string fname; + + //meson vector identity + VID::VectorMesonType Vtype; + + //decay dynamics parameters + double A; + double B; + EvtComplex C; + + //V mass generator method + double getVMass(double MASS_LAMBDAB, double MASS_LAMBDA); + + //PDF generator method + double BreitWignerRelPDF(double m,double _m0, double _g0); + double RhoOmegaMixingPDF(double m, double _mr, double _gr, double _mo, double _go); +}; + + + + + +//******************************************************************* +//* * +//* Class EvtLambda2PPiForLambdaB2LambdaV * +//* * +//******************************************************************* +// +// DECAY : Lambda -> p + pi- +// +// d(Sigma) +// -------- = 1 + A*B*cos(theta) + 2*A*Re(D*exp(i*phi))*sin(theta) +// d(Omega) +// +// with A (real) : lambda asymmetry parameter +// B (real) : lambda polarisation +// C (real) : lambdaB polarisation +// D (complex) : lambda density matrix element rho+- +// +// cf : O. Leitner, Z.J Ajaltouni, E. Conte +// PCCF RI 0601, ECT-05-15, LPNHE/2006-01, hep-ph/0602043 + +class EvtLambda2PPiForLambdaB2LambdaV:public EvtDecayProb +{ + +public: + + EvtLambda2PPiForLambdaB2LambdaV(); + virtual ~EvtLambda2PPiForLambdaB2LambdaV(); + EvtDecayBase* clone(); + + virtual std::string getName(); + void init(); + void initProbMax(); + void decay(EvtParticle *lambda); + +private : + + //class name for report method + std::string fname; + + //meson vector identity + VID::VectorMesonType Vtype; + + //decay dynamics parameters + double A; + double B; + double C; + EvtComplex D; +}; + + + + + +//******************************************************************* +//* * +//* Class EvtV2VpVmForLambdaB2LambdaV * +//* * +//******************************************************************* +// +// DECAY : vector meson V -> Vp + Vm +// +// d(Sigma) +// -------- = (1-3A)*cos(theta)^2 + (1+A) //leptonic decays +// d(Omega) +// +// d(Sigma) +// -------- = (3A-1)*cos(theta)^2 + (1-A) //hadronic decays +// d(Omega) +// +// with A (real) : V density matrix element indicating the +// probability to be longitudinally polarized +// +// cf : O. Leitner, Z.J Ajaltouni, E. Conte +// PCCF RI 0601, ECT-05-15, LPNHE/2006-01, hep-ph/0602043 + +class EvtV2VpVmForLambdaB2LambdaV:public EvtDecayProb +{ + +public: + + EvtV2VpVmForLambdaB2LambdaV(); + virtual ~EvtV2VpVmForLambdaB2LambdaV(); + EvtDecayBase* clone(); + + virtual std::string getName(); + void init(); + void initProbMax(); + void decay(EvtParticle *V); + +private: + + //class name for report method + std::string fname; + + //meson vector identity + VID::VectorMesonType Vtype; + //decay dynamics parameters + double A; +}; + + +#endif diff --git a/TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.cxx b/TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.cpp similarity index 87% rename from TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.cxx rename to TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.cpp index 3e3bb6722e6..83c72a71aa2 100644 --- a/TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.cxx +++ b/TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.cpp @@ -97,10 +97,13 @@ void EvtLambdaP_BarGamma::decay(EvtParticle* p) { 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); + -I*_gLambdab * lambdaPol.adjoint() * + ((constA()*EvtGammaMatrix::id() + constB()*EvtGammaMatrix::g5()) + * photonGamma * (EvtGenFunctions::slash(lambdaMomentum) + + EvtGenFunctions::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); @@ -116,21 +119,20 @@ void EvtLambdaP_BarGamma::initProbMax() } // form factors at 0 -double EvtLambdaP_BarGamma::f0(double fqm, int n){ +double EvtLambdaP_BarGamma::f0(double fqm, int n) const { return fqm * pow(1 - pow(_mLambdab - _mLambda0, 2) / (_mV * _mV), n); } -double EvtLambdaP_BarGamma::g0(double gqm, int n){ +double EvtLambdaP_BarGamma::g0(double gqm, int n) const { return gqm * pow(1 - pow(_mLambdab - _mLambda0, 2) / (_mA * _mA), n); } - -double EvtLambdaP_BarGamma::constA(){ +double EvtLambdaP_BarGamma::constA() const { return _GF/sqrt(2.) * _e0 / (8 * EvtConst::pi*EvtConst::pi) * 2 * _c7Eff * _mb * _VtbVtsStar * (f0(_f1) - f0(_f2)); } -double EvtLambdaP_BarGamma::constB(){ +double EvtLambdaP_BarGamma::constB() const { 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 index 67b99b19695..5a147e1d29f 100644 --- a/TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.hh +++ b/TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.hh @@ -61,15 +61,15 @@ private: // user never needs to call this -> private // baryonic form factors f(p), g(p), at p=0 - double f0(double f_qm, int n=1); // calculate f(0) with f(q_max) - double g0(double f_qm, int n=1); // calculate g(0) with g(q_max) + double f0(const double f_qm, int n=1) const ; // calculate f(0) with f(q_max) + double g0(const double f_qm, int n=1) const ; // calculate g(0) with g(q_max) // shorthand for constants a and b in the formula - double constA(); - double constB(); + double constA() const; + double constB() const; // initialize phasespace and calculate the amplitude for one (i=0,1) state of the photon - EvtComplex calcAmplitude(const EvtParticle* p, unsigned int polState); + EvtComplex calcAmpliude(const EvtParticle* p, const unsigned int polState); }; diff --git a/TEvtGen/EvtGenModels/EvtLb2Lll.cxx b/TEvtGen/EvtGenModels/EvtLb2Lll.cpp similarity index 96% rename from TEvtGen/EvtGenModels/EvtLb2Lll.cxx rename to TEvtGen/EvtGenModels/EvtLb2Lll.cpp index 9565db82a5f..bd4a596c8c3 100644 --- a/TEvtGen/EvtGenModels/EvtLb2Lll.cxx +++ b/TEvtGen/EvtGenModels/EvtLb2Lll.cpp @@ -8,11 +8,16 @@ // // Modification history: // +// 10/07/2012 MK Fix calculation of N1, N2; based on hep-ph/021144 // 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. // +// Todo list: +// +// - Properly handle antiparticles, needs change of u, ubar to v, vbar in +// hadronic current, or other way of putting that in //---------------------------------------------------------------------------------- #ifdef WIN32 @@ -193,9 +198,9 @@ void EvtLb2Lll::init(){ report(INFO,"EvtGen") << " EvtLb2Lll maximum probability was set to " << m_maxProbability << std::endl; m_poleSize=0; - // Initialize Wilson coeficients by Buras and Munz + // Initialize Wilson coefficients by Buras and Munz // TODO: should have common W.C. source for all decays in EvtGen - m_WC.CalculateAllCoeficients(); + m_WC.CalculateAllCoefficients(); } @@ -298,10 +303,10 @@ void EvtLb2Lll::calcAmp(EvtAmp *amp,EvtParticle *parent){ 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 r,M_L,M_Lb,M_s,M_c,M_b,q2,alpha,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; + 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(0.0),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; @@ -320,8 +325,6 @@ void EvtLb2Lll::calcAmp(EvtAmp *amp,EvtParticle *parent){ 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; @@ -481,12 +484,13 @@ void EvtLb2Lll::calcAmp(EvtAmp *amp,EvtParticle *parent){ 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); + N1 = (f_1*(M_Lb-M_L)+f_3*q2)/M_b*(C_LRLR+C_RLLR+C_LRRL+C_RLRL); // Should be mLb - mL + 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)); @@ -549,15 +553,18 @@ void EvtLb2Lll::calcAmp(EvtAmp *amp,EvtParticle *parent){ //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))); + Matrix[j/2][j%2][i/2][i%2] += + cont(lbar_Smunu_l[i/2][i%2] , + -4*C_T*f_TV*i1*(EvtGenFunctions::directProd(q_mu,hbar_Gmu_h[j/2][j%2])- + EvtGenFunctions::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]); + Matrix[j/2][j%2][i/2][i%2] += cont(lbar_Smunu_l[i/2][i%2] , -4*C_T*f_TS*i1*(EvtGenFunctions::directProd(P_mu,q_mu)-EvtGenFunctions::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))); + Matrix[j/2][j%2][i/2][i%2] += cont(lbar_ESmunu_l[i/2][i%2] , 4*C_TE*f_TV*(EvtGenFunctions::directProd(q_mu,hbar_Gmu_h[j/2][j%2])-EvtGenFunctions::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]); + Matrix[j/2][j%2][i/2][i%2] += cont(lbar_ESmunu_l[i/2][i%2] , 4*C_TE*f_TS*(EvtGenFunctions::directProd(P_mu,q_mu)-EvtGenFunctions::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; diff --git a/TEvtGen/EvtGenModels/EvtLb2Lll.hh b/TEvtGen/EvtGenModels/EvtLb2Lll.hh index 5178a862a04..30e6b79d4b0 100644 --- a/TEvtGen/EvtGenModels/EvtLb2Lll.hh +++ b/TEvtGen/EvtGenModels/EvtLb2Lll.hh @@ -20,7 +20,7 @@ #include "EvtGenBase/EvtDecayAmp.hh" #include "EvtGenBase/EvtTensor4C.hh" #include "EvtGenBase/EvtDiracSpinor.hh" -#include "EvtGenModels/EvtWilsonCoeficients.hh" +#include "EvtGenModels/EvtWilsonCoefficients.hh" class EvtLb2Lll:public EvtDecayAmp { @@ -53,7 +53,7 @@ private: std::string m_FFtype; std::string m_effectContribution; - EvtWilsonCoeficients m_WC; + EvtWilsonCoefficients m_WC; }; diff --git a/TEvtGen/EvtGenModels/EvtMelikhov.cxx b/TEvtGen/EvtGenModels/EvtMelikhov.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtMelikhov.cxx rename to TEvtGen/EvtGenModels/EvtMelikhov.cpp diff --git a/TEvtGen/EvtGenModels/EvtMelikhovFF.cxx b/TEvtGen/EvtGenModels/EvtMelikhovFF.cpp similarity index 86% rename from TEvtGen/EvtGenModels/EvtMelikhovFF.cxx rename to TEvtGen/EvtGenModels/EvtMelikhovFF.cpp index 9182b36f74d..666a6ae5623 100644 --- a/TEvtGen/EvtGenModels/EvtMelikhovFF.cxx +++ b/TEvtGen/EvtGenModels/EvtMelikhovFF.cpp @@ -132,3 +132,19 @@ void EvtMelikhovFF::getbaryonff(EvtId, EvtId, double, double, double*, } +void EvtMelikhovFF::getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtMelikhovFF.\n"; + ::abort(); + +} + +void EvtMelikhovFF::getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtMelikhovFF.\n"; + ::abort(); + +} + diff --git a/TEvtGen/EvtGenModels/EvtMelikhovFF.hh b/TEvtGen/EvtGenModels/EvtMelikhovFF.hh index d28348afd4f..a62ac622169 100644 --- a/TEvtGen/EvtGenModels/EvtMelikhovFF.hh +++ b/TEvtGen/EvtGenModels/EvtMelikhovFF.hh @@ -42,6 +42,11 @@ public: void getbaryonff(EvtId, EvtId, double, double, double*, double*, double*, double*); + void getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*); + + void getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*); private: int whichfit; diff --git a/TEvtGen/EvtGenModels/EvtModelReg.cxx b/TEvtGen/EvtGenModels/EvtModelReg.cpp similarity index 84% rename from TEvtGen/EvtGenModels/EvtModelReg.cxx rename to TEvtGen/EvtGenModels/EvtModelReg.cpp index 58fd8bea274..40ca7fd26ee 100644 --- a/TEvtGen/EvtGenModels/EvtModelReg.cxx +++ b/TEvtGen/EvtGenModels/EvtModelReg.cpp @@ -86,10 +86,10 @@ #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/EvtBToDDalitzCPK.hh" +#include "EvtGenModels/EvtPVVCPLH.hh" +#include "EvtGenModels/EvtLambdaB2LambdaV.hh" +#include "EvtGenModels/EvtSSD_DirectCP.hh" #include "EvtGenModels/EvtHQET.hh" #include "EvtGenModels/EvtHQET2.hh" @@ -118,7 +118,6 @@ #include "EvtGenModels/EvtLNuGamma.hh" #include "EvtGenModels/EvtVub.hh" -//#include "EvtGenModels/EvtVubAFR.hh" #include "EvtGenModels/EvtVubHybrid.hh" #include "EvtGenModels/EvtVubNLO.hh" #include "EvtGenModels/EvtVubBLNP.hh" @@ -133,21 +132,25 @@ #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/EvtBaryonPCR.hh" #include "EvtGenModels/EvtDMix.hh" #include "EvtGenModels/EvtD0mixDalitz.hh" +#include "EvtGenModels/EvtD0gammaDalitz.hh" +#include "EvtGenModels/EvtEta2MuMuGamma.hh" + +#include "EvtGenModels/EvtBcToNPi.hh" +#include "EvtGenModels/EvtBcPsiNPi.hh" +#include "EvtGenModels/EvtBcBsNPi.hh" +#include "EvtGenModels/EvtBcBsStarNPi.hh" + +#include "EvtGenModels/EvtBcVMuNu.hh" +#include "EvtGenModels/EvtBcVNpi.hh" +#include "EvtGenModels/EvtSVP.hh" +#include "EvtGenModels/EvtTVP.hh" +#include "EvtGenModels/EvtXPsiGamma.hh" + +#include "EvtGenModels/EvtGenericDalitz.hh" #include "EvtGenModels/EvtModelReg.hh" using std::fstream; @@ -251,7 +254,6 @@ EvtModelReg::EvtModelReg(const std::list* extraModels) modelist.registerModel(new EvtKstarstargamma); modelist.registerModel(new EvtVub); - //modelist.registerModel(new EvtVubAFR); modelist.registerModel(new EvtVubHybrid); modelist.registerModel(new EvtVubNLO); @@ -264,37 +266,30 @@ EvtModelReg::EvtModelReg(const std::list* extraModels) modelist.registerModel(new EvtMultibody); modelist.registerModel(new EvtDMix); modelist.registerModel(new EvtD0mixDalitz); - - //modelist.registerModel(new EvtJetSetCDF); - //modelist.registerModel(new EvtJscontCDF); + modelist.registerModel(new EvtD0gammaDalitz); + modelist.registerModel(new EvtEta2MuMuGamma); 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 EvtDecayBase ; + class EvtModelReg{ public: diff --git a/TEvtGen/EvtGenModels/EvtMultibody.cxx b/TEvtGen/EvtGenModels/EvtMultibody.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtMultibody.cxx rename to TEvtGen/EvtGenModels/EvtMultibody.cpp diff --git a/TEvtGen/EvtGenModels/EvtNoRadCorr.hh b/TEvtGen/EvtGenModels/EvtNoRadCorr.hh new file mode 100644 index 00000000000..9add6713e89 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtNoRadCorr.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2012 University of Warwick, UK +// +// Module: EvtNoRadCorr +// +// Description: Create an empty radiative correction engine which does nothing. +// This is required since the EvtGen constructor still needs at least one +// concrete implementation of EvtAbsRadCorr for the case when Photos is not used. +// +// Modification history: +// +// John Back Sept 2012 Module created +// +//------------------------------------------------------------------------------ +// + +#ifndef EVTNORADCORR_HH +#define EVTNORADCORR_HH + +#include "EvtGenBase/EvtAbsRadCorr.hh" +#include + +class EvtParticle; + +class EvtNoRadCorr : public EvtAbsRadCorr { + +public: + + EvtNoRadCorr() {;} + virtual ~EvtNoRadCorr() {;} + + virtual void doRadCorr(EvtParticle *p) {;} + +private: + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtOmegaDalitz.cxx b/TEvtGen/EvtGenModels/EvtOmegaDalitz.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtOmegaDalitz.cxx rename to TEvtGen/EvtGenModels/EvtOmegaDalitz.cpp diff --git a/TEvtGen/EvtGenModels/EvtPFermi.cxx b/TEvtGen/EvtGenModels/EvtPFermi.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtPFermi.cxx rename to TEvtGen/EvtGenModels/EvtPFermi.cpp diff --git a/TEvtGen/EvtGenModels/EvtPHOTOS.cxx b/TEvtGen/EvtGenModels/EvtPHOTOS.cxx deleted file mode 100644 index bf9b1a41919..00000000000 --- a/TEvtGen/EvtGenModels/EvtPHOTOS.cxx +++ /dev/null @@ -1,235 +0,0 @@ -//-------------------------------------------------------------------------- -// -// Environment: -// This software is part of the EvtGen package developed jointly -// for the 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 "TRandom.h" -#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_(int *, int *); - - -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"<Integer(31327); - int iseed2=(int)gRandom->Integer(30080); - phoini_(&iseed1,&iseed2); - } - - double mpho=EvtPDL::getMeanMass(GAMM); - - int entry,eventnum,numparticle,istat,partnum,mother; - int daugfirst,dauglast; - - int numparticlephotos; - - double px,py,pz,e,m,x,y,z,t; - - static EvtId dq=EvtPDL::getId("d"); - static EvtId adq=EvtPDL::getId("anti-d"); - static EvtId uq=EvtPDL::getId("u"); - static EvtId auq=EvtPDL::getId("anti-u"); - static EvtId sq=EvtPDL::getId("s"); - static EvtId asq=EvtPDL::getId("anti-s"); - static EvtId cq=EvtPDL::getId("c"); - static EvtId acq=EvtPDL::getId("anti-c"); - static EvtId bq=EvtPDL::getId("b"); - static EvtId abq=EvtPDL::getId("anti-b"); - static EvtId tq=EvtPDL::getId("t"); - static EvtId atq=EvtPDL::getId("anti-t"); - static EvtId vpho=EvtPDL::getId("vpho"); - - static EvtIdSet quarks(dq,adq,uq,auq,sq,asq,cq,acq,bq,abq,tq,atq); - - if ( p->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/EvtPVVCPLH.cpp b/TEvtGen/EvtGenModels/EvtPVVCPLH.cpp new file mode 100644 index 00000000000..ebd2f53a711 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPVVCPLH.cpp @@ -0,0 +1,186 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the 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: EvtPVVCPLH.cc +// +// Description: The decay of a scalar to two vector particles are +// performed with CP violation and different widths for +// the CP-even and CP-odd states. E.g. Bs->J/psi phi. +// +// Modification history: +// +// RYD November 5, 1999 Module EvtSVVCPLH created +// +// DUPREE October 10, 2006 Large modification: EvtSVVCPLH->EvtPVVCPLH +// Time-dependence correctly +// +// COWAN June 10, 2009 Modified to use the new EvtCPUtils class. +// EvtIncoherentMixing removed. +// +//------------------------------------------------------------------------ +// +#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/EvtPVVCPLH.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtRandom.hh" + +EvtPVVCPLH::~EvtPVVCPLH() {} + +std::string EvtPVVCPLH::getName() { + return "PVV_CPLH"; +} + + +EvtDecayBase* EvtPVVCPLH::clone(){ + + return new EvtPVVCPLH; + +} + +void EvtPVVCPLH::init(){ + + // check that there are 8 arguments (deltaMs no argument anymore) + checkNArg(8); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::VECTOR); + +} + +void EvtPVVCPLH::initProbMax(){ + + //This is probably not quite right, but it should do as a start... + //Anders + + setProbMax(2*(getArg(2)*getArg(2)+getArg(4)*getArg(4)+getArg(6)*getArg(6))); + +} + +void EvtPVVCPLH::decay( EvtParticle *p){ + + //added by Lange Jan4,2000 + static EvtId BS0=EvtPDL::getId("B_s0"); + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + + //This is only to get tag-ID + //Mixing is not relevant + //Lifetime is made correctly later + //Tristan + EvtId other_b; + double t; + +// To generate integrated CP asymmetry, EvtGen uses the "flipping". +// CP-asymmetry in this channel very small, since: +// deltaMs large ..and.. +// CPV-phase small + EvtCPUtil::getInstance()->OtherB(p,t,other_b); + + //Here we're gonna generate and set the "envelope" lifetime + //So we take the longest living component (for positive deltaGamma: tauH) + //The double exponent will be taken care of later, by the amplitudes + //Tristan + + static double Gamma = EvtConst::c/(EvtPDL::getctau(BS0)); + static double deltaGamma = EvtCPUtil::getInstance()->getDeltaGamma(BS0); + static double ctauLong = EvtConst::c/(Gamma-fabs(deltaGamma)/2); + // if dG>0: tauLong=tauH(CP-odd) is then largest + + //This overrules the lifetimes made in OtherB + t=-log(EvtRandom::Flat())*(ctauLong);//ctauLong has same dimensions as t + if(isBsMixed(p)){ + p->getParent()->setLifetime(t); + }else{ + p->setLifetime(t); + } + + //These should be filled with the transversity amplitudes at t=0 //Tristan + EvtComplex G0P,G1P,G1M; + G1P=EvtComplex(getArg(2)*cos(getArg(3)),getArg(2)*sin(getArg(3))); + G0P=EvtComplex(getArg(4)*cos(getArg(5)),getArg(4)*sin(getArg(5))); + G1M=EvtComplex(getArg(6)*cos(getArg(7)),getArg(6)*sin(getArg(7))); + + EvtComplex lambda_km=EvtComplex(cos(2*getArg(0)),sin(2*getArg(0)));//was een min in oude versie + + //deltaMs is no argument anymore + //Tristan + + static double deltaMs = EvtCPUtil::getInstance()->getDeltaM(BS0); + + EvtComplex cG0P,cG1P,cG1M; + + double mt = exp(-std::max(0.,deltaGamma)*t/(2*EvtConst::c)); + double pt = exp(+std::min(0.,deltaGamma)*t/(2*EvtConst::c)); + + EvtComplex gplus = ( mt*EvtComplex(cos(deltaMs*t/(2*EvtConst::c)),sin( deltaMs*t/(2*EvtConst::c))) + +pt*EvtComplex(cos(deltaMs*t/(2*EvtConst::c)),sin(-deltaMs*t/(2*EvtConst::c))) )/2; + EvtComplex gminus = ( mt*EvtComplex(cos(deltaMs*t/(2*EvtConst::c)),sin( deltaMs*t/(2*EvtConst::c))) + -pt*EvtComplex(cos(deltaMs*t/(2*EvtConst::c)),sin(-deltaMs*t/(2*EvtConst::c))) )/2;; + + if (other_b==BSB){ + //These are the right equations for the transversity formalism + //cGOP is de 0-component, CP-even, so lives shorter: mainly lifetime tauL + //cG1P is the //-component, also CP-even, also mainly smaller exponent + //cG1M is the transverse component, CP-odd, so has mainly longer lifetime tauH + //Tristan + cG0P = G0P*( gplus + lambda_km*gminus ); + cG1P = G1P*( gplus + lambda_km*gminus ); + cG1M = G1M*( gplus - lambda_km*gminus ); + } else if (other_b==BS0){ + //The equations for BsBar + //Note the minus-sign difference + //Tristan + cG0P = G0P*( gplus + (1.0/lambda_km)*gminus ); + cG1P = G1P*( gplus + (1.0/lambda_km)*gminus ); + cG1M =-G1M*( gplus - (1.0/lambda_km)*gminus ); + + } else{ + report(ERROR,"EvtGen") << "other_b was not BSB or BS0!"<getParent() ) ) return false ; + + static EvtId BS0=EvtPDL::getId("B_s0"); + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + + if ( ( p->getId() != BS0 ) && ( p->getId() != BSB ) ) return false ; + + if ( ( p->getParent()->getId() == BS0 ) || + ( p->getParent()->getId() == BSB ) ) return true ; + + return false ; +} + + diff --git a/TEvtGen/EvtGenModels/EvtPyGaGa.hh b/TEvtGen/EvtGenModels/EvtPVVCPLH.hh similarity index 56% rename from TEvtGen/EvtGenModels/EvtPyGaGa.hh rename to TEvtGen/EvtGenModels/EvtPVVCPLH.hh index 79d7d8da867..ef0a3beb77c 100644 --- a/TEvtGen/EvtGenModels/EvtPyGaGa.hh +++ b/TEvtGen/EvtGenModels/EvtPVVCPLH.hh @@ -6,39 +6,46 @@ // of it, please give an appropriate acknowledgement. // // Copyright Information: See EvtGen/COPYRIGHT -// Copyright (C) 1998 Caltech, UCSB +// Copyright (C) 1999 Caltech, UCSB // -// Module: BelEvtGen/EvtJscont.hh +// Module: EvtGen/EvtPVVCPLH.hh // // Description: // // Modification history: // -// DJL/RYD August 11, 1998 Module created -// RS October 28, 2002 copied from JETSET module +// RYD November 5, 1999 Module created +// +// TDP October 10, 2006 Modified // //------------------------------------------------------------------------ -#ifndef EVTPYGAGA_HH -#define EVTPYGAGA_HH +#ifndef EVTPVVCPLH_HH +#define EVTPVVCPLH_HH + +#include "EvtGenBase/EvtDecayAmp.hh" -#include "EvtGenBase/EvtDecayIncoherent.hh" -#include "EvtGenBase/EvtParticle.hh" +class EvtParticle; -class EvtPyGaGa:public EvtDecayIncoherent { +class EvtPVVCPLH:public EvtDecayAmp { public: - - EvtPyGaGa() {} - virtual ~EvtPyGaGa(); - - std::string getName(); + + EvtPVVCPLH() {} + virtual ~EvtPVVCPLH(); + + virtual std::string getName(); EvtDecayBase* clone(); - - void init(); + void initProbMax(); - + void init(); + void decay(EvtParticle *p); + +private: + bool isBsMixed ( EvtParticle * p ) ; + + }; #endif diff --git a/TEvtGen/EvtGenModels/EvtPartWave.cxx b/TEvtGen/EvtGenModels/EvtPartWave.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtPartWave.cxx rename to TEvtGen/EvtGenModels/EvtPartWave.cpp diff --git a/TEvtGen/EvtGenModels/EvtPhiDalitz.cxx b/TEvtGen/EvtGenModels/EvtPhiDalitz.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtPhiDalitz.cxx rename to TEvtGen/EvtGenModels/EvtPhiDalitz.cpp diff --git a/TEvtGen/EvtGenModels/EvtPhsp.cxx b/TEvtGen/EvtGenModels/EvtPhsp.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtPhsp.cxx rename to TEvtGen/EvtGenModels/EvtPhsp.cpp diff --git a/TEvtGen/EvtGenModels/EvtPi0Dalitz.cxx b/TEvtGen/EvtGenModels/EvtPi0Dalitz.cpp similarity index 90% rename from TEvtGen/EvtGenModels/EvtPi0Dalitz.cxx rename to TEvtGen/EvtGenModels/EvtPi0Dalitz.cpp index 1e546ecb6f0..aa476201dc2 100644 --- a/TEvtGen/EvtGenModels/EvtPi0Dalitz.cxx +++ b/TEvtGen/EvtGenModels/EvtPi0Dalitz.cpp @@ -96,11 +96,12 @@ void EvtPi0Dalitz::decay( EvtParticle *p){ EvtTensor4C w,v; - v=2.0*(gamma->getP4()*q)*directProd(q,gamma->getP4()) + v=2.0*(gamma->getP4()*q)*EvtGenFunctions::directProd(q,gamma->getP4()) - (gamma->getP4()*q)*(gamma->getP4()*q)*EvtTensor4C::g() - -m2*directProd(gamma->getP4(),gamma->getP4()); + -m2*EvtGenFunctions::directProd(gamma->getP4(),gamma->getP4()); - w=4.0*( directProd(ep->getP4(),em->getP4()) + directProd(em->getP4(),ep->getP4()) + w=4.0*( EvtGenFunctions::directProd(ep->getP4(),em->getP4()) + + EvtGenFunctions::directProd(em->getP4(),ep->getP4()) -EvtTensor4C::g()*(ep->getP4()*em->getP4()-ep->getP4().mass2())); double prob=(real(cont(v,w)))/(m2*m2); diff --git a/TEvtGen/EvtGenModels/EvtPropSLPole.cxx b/TEvtGen/EvtGenModels/EvtPropSLPole.cpp similarity index 99% rename from TEvtGen/EvtGenModels/EvtPropSLPole.cxx rename to TEvtGen/EvtGenModels/EvtPropSLPole.cpp index 82d9a7d4216..86b3b665706 100644 --- a/TEvtGen/EvtGenModels/EvtPropSLPole.cxx +++ b/TEvtGen/EvtGenModels/EvtPropSLPole.cpp @@ -384,7 +384,7 @@ double EvtPropSLPole::calcMaxProb( EvtId parent, EvtId meson, trino=root_part->getDaug(2); EvtDecayBase *decayer; - decayer = EvtDecayTable::getDecayFunc(daughter); + decayer = EvtDecayTable::getInstance()->getDecayFunc(daughter); if ( decayer ) { daughter->makeDaughters(decayer->nRealDaughters(),decayer->getDaugs()); for(int ii=0; iinRealDaughters(); ii++){ diff --git a/TEvtGen/EvtGenModels/EvtPto3P.cxx b/TEvtGen/EvtGenModels/EvtPto3P.cpp similarity index 98% rename from TEvtGen/EvtGenModels/EvtPto3P.cxx rename to TEvtGen/EvtGenModels/EvtPto3P.cpp index 257f09ee563..36449f43174 100644 --- a/TEvtGen/EvtGenModels/EvtPto3P.cxx +++ b/TEvtGen/EvtGenModels/EvtPto3P.cpp @@ -1,6 +1,6 @@ //----------------------------------------------------------------------- // File and Version Information: -// $Id: EvtPto3P.cc,v 1.13 2004/12/21 22:16:05 ryd Exp $ +// $Id: EvtPto3P.cpp,v 1.4 2009-03-16 15:46:31 robbep Exp $ // // Environment: // This software is part of the EvtGen package developed jointly diff --git a/TEvtGen/EvtGenModels/EvtPto3P.hh b/TEvtGen/EvtGenModels/EvtPto3P.hh index d7ec74b0c5d..857ed906b5c 100644 --- a/TEvtGen/EvtGenModels/EvtPto3P.hh +++ b/TEvtGen/EvtGenModels/EvtPto3P.hh @@ -1,6 +1,6 @@ //----------------------------------------------------------------------- // File and Version Information: -// $Id: EvtPto3P.hh,v 1.7 2006/10/02 01:07:49 lange Exp $ +// $Id: EvtPto3P.hh,v 1.2 2009-03-16 16:31:05 robbep Exp $ // // Environment: // This software is part of the EvtGen package developed jointly diff --git a/TEvtGen/EvtGenModels/EvtPyGaGa.cxx b/TEvtGen/EvtGenModels/EvtPyGaGa.cxx deleted file mode 100644 index 4d0ccbd12c4..00000000000 --- a/TEvtGen/EvtGenModels/EvtPyGaGa.cxx +++ /dev/null @@ -1,123 +0,0 @@ -//-------------------------------------------------------------------------- -// -// Environment: -// This software is part of the EvtGen package developed jointly -// for the 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/EvtPycont.cxx b/TEvtGen/EvtGenModels/EvtPycont.cxx deleted file mode 100644 index 3a94c00bf69..00000000000 --- a/TEvtGen/EvtGenModels/EvtPycont.cxx +++ /dev/null @@ -1,151 +0,0 @@ -//-------------------------------------------------------------------------- -// -// Environment: -// This software is part of the EvtGen package developed jointly -// for the 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 deleted file mode 100644 index 95b8fc0e1b3..00000000000 --- a/TEvtGen/EvtGenModels/EvtPycont.hh +++ /dev/null @@ -1,45 +0,0 @@ -//-------------------------------------------------------------------------- -// -// Environment: -// This software is part of the EvtGen package 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 deleted file mode 100644 index 1d0cdbb7e41..00000000000 --- a/TEvtGen/EvtGenModels/EvtPythia.cxx +++ /dev/null @@ -1,1095 +0,0 @@ -//-------------------------------------------------------------------------- -// -// Environment: -// This software is part of the EvtGen package 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.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtSLBKPole.cxx rename to TEvtGen/EvtGenModels/EvtSLBKPole.cpp diff --git a/TEvtGen/EvtGenModels/EvtSLBKPoleFF.cxx b/TEvtGen/EvtGenModels/EvtSLBKPoleFF.cpp similarity index 88% rename from TEvtGen/EvtGenModels/EvtSLBKPoleFF.cxx rename to TEvtGen/EvtGenModels/EvtSLBKPoleFF.cpp index f63e5f5cc30..fb490fe3678 100644 --- a/TEvtGen/EvtGenModels/EvtSLBKPoleFF.cxx +++ b/TEvtGen/EvtGenModels/EvtSLBKPoleFF.cpp @@ -37,7 +37,7 @@ EvtSLBKPoleFF::EvtSLBKPoleFF(int numarg, double *arglist) {//modified void EvtSLBKPoleFF::getscalarff(EvtId parent,EvtId daught, - double t, double mass, double *fpf, + double t, double /*mass*/, double *fpf, double *f0f ) { // Form factors have a general form, with parameters passed in @@ -74,8 +74,8 @@ void EvtSLBKPoleFF::getscalarff(EvtId parent,EvtId daught, return; } -void EvtSLBKPoleFF::getvectorff(EvtId parent,EvtId daught, - double t, double mass, double *a1f, +void EvtSLBKPoleFF::getvectorff(EvtId parent,EvtId /*daught*/, + double t, double /*mass*/, double *a1f, double *a2f, double *vf, double *a0f ){ if ( numSLBKPoleargs !=8 ) {//modified @@ -114,8 +114,8 @@ void EvtSLBKPoleFF::getvectorff(EvtId parent,EvtId daught, static EvtId DPMS=EvtPDL::getId("D*+"); static EvtId DSPMS=EvtPDL::getId("D_s*+"); - double mass_star; - double mass_star2; + double mass_star=0.0; + double mass_star2=0.0; if(parent==B0||parent==B0B){ mass_star=EvtPDL::getMeanMass(B0S); mass_star2=mass_star*mass_star; @@ -176,8 +176,8 @@ void EvtSLBKPoleFF::getvectorff(EvtId parent,EvtId daught, -void EvtSLBKPoleFF::gettensorff(EvtId parent,EvtId daught, - double t, double mass, double *hf, +void EvtSLBKPoleFF::gettensorff(EvtId parent,EvtId /*daught*/, + double t, double /*mass*/, double *hf, double *kf, double *bpf, double *bmf ){ if ( numSLBKPoleargs !=16 ) { @@ -229,4 +229,20 @@ void EvtSLBKPoleFF::getbaryonff(EvtId, EvtId, double, double, double*, } +void EvtSLBKPoleFF::getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtSLBKPoleFF.\n"; + ::abort(); + +} + +void EvtSLBKPoleFF::getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtSLBKPoleFF.\n"; + ::abort(); + +} + diff --git a/TEvtGen/EvtGenModels/EvtSLBKPoleFF.hh b/TEvtGen/EvtGenModels/EvtSLBKPoleFF.hh index ee5d7369654..818a33fddc0 100644 --- a/TEvtGen/EvtGenModels/EvtSLBKPoleFF.hh +++ b/TEvtGen/EvtGenModels/EvtSLBKPoleFF.hh @@ -42,6 +42,11 @@ public: void getbaryonff(EvtId, EvtId, double, double, double*, double*, double*, double*); + void getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*); + + void getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*); private: int numSLBKPoleargs;//modified diff --git a/TEvtGen/EvtGenModels/EvtSLN.cxx b/TEvtGen/EvtGenModels/EvtSLN.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtSLN.cxx rename to TEvtGen/EvtGenModels/EvtSLN.cpp diff --git a/TEvtGen/EvtGenModels/EvtSLPole.cxx b/TEvtGen/EvtGenModels/EvtSLPole.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtSLPole.cxx rename to TEvtGen/EvtGenModels/EvtSLPole.cpp diff --git a/TEvtGen/EvtGenModels/EvtSLPoleFF.cxx b/TEvtGen/EvtGenModels/EvtSLPoleFF.cpp similarity index 90% rename from TEvtGen/EvtGenModels/EvtSLPoleFF.cxx rename to TEvtGen/EvtGenModels/EvtSLPoleFF.cpp index 4a9d957875b..613a1476dd6 100644 --- a/TEvtGen/EvtGenModels/EvtSLPoleFF.cxx +++ b/TEvtGen/EvtGenModels/EvtSLPoleFF.cpp @@ -168,3 +168,19 @@ void EvtSLPoleFF::getbaryonff(EvtId, EvtId, double, double, double*, } +void EvtSLPoleFF::getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtSLPoleFF.\n"; + ::abort(); + +} + +void EvtSLPoleFF::getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*) { + + report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtSLPoleFF.\n"; + ::abort(); + +} + diff --git a/TEvtGen/EvtGenModels/EvtSLPoleFF.hh b/TEvtGen/EvtGenModels/EvtSLPoleFF.hh index 8b408f1a9bd..88b50875751 100644 --- a/TEvtGen/EvtGenModels/EvtSLPoleFF.hh +++ b/TEvtGen/EvtGenModels/EvtSLPoleFF.hh @@ -41,6 +41,12 @@ public: void getbaryonff(EvtId, EvtId, double, double, double*, double*, double*, double*); + void getdiracff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*); + + void getraritaff(EvtId, EvtId, double, double, double*, double*, + double*, double*, double*, double*, double*, double*); + private: int numSLPoleargs; double SLPoleargs[16]; diff --git a/TEvtGen/EvtGenModels/EvtSSDCP.cxx b/TEvtGen/EvtGenModels/EvtSSDCP.cpp similarity index 87% rename from TEvtGen/EvtGenModels/EvtSSDCP.cxx rename to TEvtGen/EvtGenModels/EvtSSDCP.cpp index f2300281529..f7e2afa5db6 100644 --- a/TEvtGen/EvtGenModels/EvtSSDCP.cxx +++ b/TEvtGen/EvtGenModels/EvtSSDCP.cpp @@ -29,6 +29,7 @@ #include "EvtGenBase/EvtVector4C.hh" #include "EvtGenBase/EvtTensor4C.hh" #include "EvtGenModels/EvtSSDCP.hh" +#include "EvtGenBase/EvtIncoherentMixing.hh" #include #include "EvtGenBase/EvtConst.hh" using std::endl; @@ -205,13 +206,14 @@ void EvtSSDCP::decay( EvtParticle *p){ EvtComplex amp; - EvtCPUtil::OtherB(p,t,other_b,0.5); // t is c*Dt (mm) - + EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.5); // t is c*Dt (mm) +// EvtIncoherentMixing::OtherB( p , t , other_b , 0.5 ) ; + //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)); + EvtComplex expH=exp(-EvtComplex(-0.25*_dgamma*t,0.5*_dm*t)); + EvtComplex expL=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); @@ -233,22 +235,22 @@ void EvtSSDCP::decay( EvtParticle *p){ if (other_b==B0B||other_b==B0Bs){ //at t=0 we have a B0 //report(INFO,"EvtGen") << "B0B"< +#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/EvtSSD_DirectCP.hh" +#include +#include "EvtGenBase/EvtConst.hh" + +EvtSSD_DirectCP::~EvtSSD_DirectCP() {} + +std::string EvtSSD_DirectCP::getName( ){ + + return "SSD_DirectCP" ; + +} + + +EvtDecayBase* EvtSSD_DirectCP::clone(){ + + return new EvtSSD_DirectCP; + +} + +void EvtSSD_DirectCP::init(){ + + // check that there is 1 argument and 2-body decay + + checkNArg(1); + checkNDaug(2); + + EvtSpinType::spintype d1type=EvtPDL::getSpinType(getDaug(0)); + EvtSpinType::spintype d2type=EvtPDL::getSpinType(getDaug(1)); + + 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") << "EvtSSD_DirectCP 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 " + < 0 ) flip = true ; + } + + if ( flip ) { + if ( ( isB0Mixed( p ) ) || ( isBsMixed( p ) ) ) { + p->getParent() + ->setId( EvtPDL::chargeConj( p->getParent()->getId() ) ) ; + p->setId( EvtPDL::chargeConj( p->getId() ) ) ; + } + else { + p->setId( EvtPDL::chargeConj( p->getId() ) ) ; + } + } + + if (!flip) { + daugs[0]=getDaug(0); + daugs[1]=getDaug(1); + } + else{ + daugs[0]=EvtPDL::chargeConj(getDaug(0)); + daugs[1]=EvtPDL::chargeConj(getDaug(1)); + } + + EvtParticle *d; + p->initializePhaseSpace(2, daugs); + + EvtVector4R p4_parent=p->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(1.); + } + + if (d2type==EvtSpinType::VECTOR) { + + double norm=momv.mass()/(momv.d3mag()*p->mass()); + + vertex(0,norm*p4_parent*(d->epsParent(0))); + vertex(1,norm*p4_parent*(d->epsParent(1))); + vertex(2,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,norm*d->epsTensorParent(0).cont1(p4_parent)*p4_parent); + vertex(1,norm*d->epsTensorParent(1).cont1(p4_parent)*p4_parent); + vertex(2,norm*d->epsTensorParent(2).cont1(p4_parent)*p4_parent); + vertex(3,norm*d->epsTensorParent(3).cont1(p4_parent)*p4_parent); + vertex(4,norm*d->epsTensorParent(4).cont1(p4_parent)*p4_parent); + } +} + +bool EvtSSD_DirectCP::isB0Mixed ( EvtParticle * p ) { + if ( ! ( p->getParent() ) ) return false ; + + static EvtId B0 =EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + if ( ( p->getId() != B0 ) && ( p->getId() != B0B ) ) return false ; + + if ( ( p->getParent()->getId() == B0 ) || + ( p->getParent()->getId() == B0B ) ) return true ; + + return false ; +} + +bool EvtSSD_DirectCP::isBsMixed ( EvtParticle * p ) { + if ( ! ( p->getParent() ) ) return false ; + + static EvtId BS0=EvtPDL::getId("B_s0"); + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + + if ( ( p->getId() != BS0 ) && ( p->getId() != BSB ) ) return false ; + + if ( ( p->getParent()->getId() == BS0 ) || + ( p->getParent()->getId() == BSB ) ) return true ; + + return false ; +} + +std::string EvtSSD_DirectCP::getParamName(int i) { + switch(i) { + case 0: + return "ACP"; + default: + return ""; + } +} diff --git a/TEvtGen/EvtGenModels/EvtSSD_DirectCP.hh b/TEvtGen/EvtGenModels/EvtSSD_DirectCP.hh new file mode 100644 index 00000000000..a4233e2c7ec --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSSD_DirectCP.hh @@ -0,0 +1,38 @@ +// $Id: EvtSSD_DirectCP.hh,v 1.2 2009-03-16 16:31:53 robbep Exp $ +// Generation of direct CP violation in hadronic environment +// Patrick Robbe, LHCb, 08 Nov 2006 +// + +#ifndef EVTSSD_DirectCP_HH +#define EVTSSD_DirectCP_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtSSD_DirectCP : public EvtDecayAmp { + +public: + + EvtSSD_DirectCP() {} + virtual ~EvtSSD_DirectCP(); + + virtual std::string getName(); + EvtDecayBase* clone(); + + void initProbMax(); + void init(); + void decay(EvtParticle *p); + + std::string getParamName(int i); + +private: + bool isB0Mixed( EvtParticle * p ) ; + bool isBsMixed( EvtParticle * p ) ; + + //Arguments + + double _acp; +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSSSCP.cxx b/TEvtGen/EvtGenModels/EvtSSSCP.cpp similarity index 80% rename from TEvtGen/EvtGenModels/EvtSSSCP.cxx rename to TEvtGen/EvtGenModels/EvtSSSCP.cpp index d4faa8c5e63..1e34b5e7aef 100644 --- a/TEvtGen/EvtGenModels/EvtSSSCP.cxx +++ b/TEvtGen/EvtGenModels/EvtSSSCP.cpp @@ -74,7 +74,7 @@ void EvtSSSCP::decay( EvtParticle *p ){ double t; EvtId other_b; - EvtCPUtil::OtherB(p,t,other_b); + EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.5); p->initializePhaseSpace(getNDaug(),getDaugs()); @@ -102,3 +102,38 @@ void EvtSSSCP::decay( EvtParticle *p ){ return ; } +std::string EvtSSSCP::getParamName(int i) { + switch(i) { + case 0: + return "weakPhase"; + case 1: + return "deltaM"; + case 2: + return "finalStateCP"; + case 3: + return "Af"; + case 4: + return "AfPhase"; + case 5: + return "Abarf"; + case 6: + return "AbarfPhase"; + default: + return ""; + } +} + +std::string EvtSSSCP::getParamDefault(int i) { + switch(i) { + case 3: + return "1.0"; + case 4: + return "0.0"; + case 5: + return "1.0"; + case 6: + return "0.0"; + default: + return ""; + } +} diff --git a/TEvtGen/EvtGenModels/EvtSSSCP.hh b/TEvtGen/EvtGenModels/EvtSSSCP.hh index 977e9869dfb..3b4d7fdccbc 100644 --- a/TEvtGen/EvtGenModels/EvtSSSCP.hh +++ b/TEvtGen/EvtGenModels/EvtSSSCP.hh @@ -41,6 +41,8 @@ public: void decay(EvtParticle *p); + std::string getParamName(int i); + std::string getParamDefault(int i); }; #endif diff --git a/TEvtGen/EvtGenModels/EvtSSSCPT.cxx b/TEvtGen/EvtGenModels/EvtSSSCPT.cpp similarity index 97% rename from TEvtGen/EvtGenModels/EvtSSSCPT.cxx rename to TEvtGen/EvtGenModels/EvtSSSCPT.cpp index df78ba08369..51249eee907 100644 --- a/TEvtGen/EvtGenModels/EvtSSSCPT.cxx +++ b/TEvtGen/EvtGenModels/EvtSSSCPT.cpp @@ -64,7 +64,7 @@ void EvtSSSCPT::decay( EvtParticle *p){ double t; EvtId other_b; - EvtCPUtil::OtherB(p,t,other_b); + EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.5); p->initializePhaseSpace(getNDaug(),getDaugs()); diff --git a/TEvtGen/EvtGenModels/EvtSSSCPpng.cxx b/TEvtGen/EvtGenModels/EvtSSSCPpng.cpp similarity index 98% rename from TEvtGen/EvtGenModels/EvtSSSCPpng.cxx rename to TEvtGen/EvtGenModels/EvtSSSCPpng.cpp index 951f97d1b5b..acf57f0c5b6 100644 --- a/TEvtGen/EvtGenModels/EvtSSSCPpng.cxx +++ b/TEvtGen/EvtGenModels/EvtSSSCPpng.cpp @@ -120,7 +120,7 @@ void EvtSSSCPpng::decay( EvtParticle *p ){ //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); + EvtCPUtil::getInstance()->OtherB(p,t,other_b,fract); //this method works just as well -- NK //randomly generate the tag (B0 or B0B) diff --git a/TEvtGen/EvtGenModels/EvtSTS.cxx b/TEvtGen/EvtGenModels/EvtSTS.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtSTS.cxx rename to TEvtGen/EvtGenModels/EvtSTS.cpp diff --git a/TEvtGen/EvtGenModels/EvtSTSCP.cxx b/TEvtGen/EvtGenModels/EvtSTSCP.cpp similarity index 84% rename from TEvtGen/EvtGenModels/EvtSTSCP.cxx rename to TEvtGen/EvtGenModels/EvtSTSCP.cpp index 731086c85b4..12ac721a6b5 100644 --- a/TEvtGen/EvtGenModels/EvtSTSCP.cxx +++ b/TEvtGen/EvtGenModels/EvtSTSCP.cpp @@ -86,7 +86,7 @@ void EvtSTSCP::decay( EvtParticle *p){ EvtVector4R moms = p->getDaug(1)->getP4(); double masst = t1->mass(); - EvtCPUtil::OtherB(p,t,other_b); + EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.5); double m_parent = p->mass(); @@ -124,3 +124,38 @@ void EvtSTSCP::decay( EvtParticle *p){ return ; } +std::string EvtSTSCP::getParamName(int i) { + switch(i) { + case 0: + return "weakPhase"; + case 1: + return "deltaM"; + case 2: + return "finalStateCP"; + case 3: + return "Af"; + case 4: + return "AfPhase"; + case 5: + return "Abarf"; + case 6: + return "AbarfPhase"; + default: + return ""; + } +} + +std::string EvtSTSCP::getParamDefault(int i) { + switch(i) { + case 3: + return "1.0"; + case 4: + return "0.0"; + case 5: + return "1.0"; + case 6: + return "0.0"; + default: + return ""; + } +} diff --git a/TEvtGen/EvtGenModels/EvtSTSCP.hh b/TEvtGen/EvtGenModels/EvtSTSCP.hh index a4f588d7ee9..ceb8a05297f 100644 --- a/TEvtGen/EvtGenModels/EvtSTSCP.hh +++ b/TEvtGen/EvtGenModels/EvtSTSCP.hh @@ -39,6 +39,8 @@ public: void initProbMax(); void decay(EvtParticle *p); + std::string getParamName(int i); + std::string getParamDefault(int i); }; #endif diff --git a/TEvtGen/EvtGenModels/EvtSVP.cpp b/TEvtGen/EvtGenModels/EvtSVP.cpp new file mode 100644 index 00000000000..97bf6fef70b --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVP.cpp @@ -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: EvtSVP.cc +// +// Description: Routine to implement radiative decay chi_c0 -> psi gamma +// +// +// Modification history: +// AVL Jul 6, 2012 modle created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtTensorParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" + + +#include "EvtGenModels/EvtSVP.hh" + + +#include +#include + +using namespace std; + + + +EvtSVP::~EvtSVP() { + // cout<<"(* AVL EvtSVP::destructor getProbMax(-1) = "<initializePhaseSpace(getNDaug(),getDaugs()); + + EvtVector4R p = root->getDaug(1)->getP4(), // J/psi momentum + k = root->getDaug(0)->getP4(); // Photon momentum + for(int iPsi = 0; iPsi < 4; iPsi++) { + for(int iGamma = 0; iGamma < 1; iGamma++) { + EvtVector4C epsPsi = root->getDaug(1)->epsParent(iPsi).conj(); + EvtVector4C epsGamma = root->getDaug(0)->epsParentPhoton(iGamma).conj(); + + // EvtComplex amp = epsPsi*epsGamma - (epsPsi*k)/(epsGamma*p)/(k*p); + EvtComplex amp = (epsPsi*epsGamma) - (epsPsi*k)*(epsGamma*p)/(k*p); + + // cout<<"EvtSVP::decay(): (k*p) = "<<(k*p)< +#include + + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" + +class EvtParticle; + +class EvtSVP:public EvtDecayAmp { + +public: + + EvtSVP() {} + virtual ~EvtSVP(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + + virtual void initProbMax(); + + +private: + int ncall; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtSVPCP.cxx b/TEvtGen/EvtGenModels/EvtSVPCP.cpp similarity index 84% rename from TEvtGen/EvtGenModels/EvtSVPCP.cxx rename to TEvtGen/EvtGenModels/EvtSVPCP.cpp index 82f46ec2733..021f7a88dc2 100644 --- a/TEvtGen/EvtGenModels/EvtSVPCP.cxx +++ b/TEvtGen/EvtGenModels/EvtSVPCP.cpp @@ -78,7 +78,7 @@ void EvtSVPCP::decay( EvtParticle *p ){ double t; EvtId other_b; - EvtCPUtil::OtherB(p,t,other_b); + EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.5); EvtComplex G1P,G1M, G1_T_even, G1_T_odd; @@ -133,8 +133,8 @@ void EvtSVPCP::decay( EvtParticle *p ){ 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); + ((1.0/sqrt(2.0))*(hp-hm)*EvtComplex(0.0,1.0)*(sqrt(1.0/2.0)))*dual(EvtGenFunctions::directProd(v,vp))+ + (sqrt(2.0/3.0)*(h0+0.5*(hp+hm))*sqrt(3.0/2.0))*(EvtGenFunctions::directProd(v,v)+(1.0/3.0)*g); EvtVector4C ep0,ep1,ep2; @@ -161,3 +161,38 @@ void EvtSVPCP::decay( EvtParticle *p ){ } +std::string EvtSVPCP::getParamName(int i) { + switch(i) { + case 0: + return "weakPhase"; + case 1: + return "deltaM"; + case 2: + return "finalStateCP"; + case 3: + return "Af"; + case 4: + return "AfPhase"; + case 5: + return "Abarf"; + case 6: + return "AbarfPhase"; + default: + return ""; + } +} + +std::string EvtSVPCP::getParamDefault(int i) { + switch(i) { + case 3: + return "1.0"; + case 4: + return "0.0"; + case 5: + return "1.0"; + case 6: + return "0.0"; + default: + return ""; + } +} diff --git a/TEvtGen/EvtGenModels/EvtSVPCP.hh b/TEvtGen/EvtGenModels/EvtSVPCP.hh index a0ac146537f..202f9877442 100644 --- a/TEvtGen/EvtGenModels/EvtSVPCP.hh +++ b/TEvtGen/EvtGenModels/EvtSVPCP.hh @@ -49,6 +49,8 @@ public: static void SVPHel(EvtParticle *parent,EvtAmp& amp,EvtId n_v1,EvtId n_v2, const EvtComplex& hp,const EvtComplex& hm); + std::string getParamName(int i); + std::string getParamDefault(int i); }; #endif diff --git a/TEvtGen/EvtGenModels/EvtSVPHelAmp.cxx b/TEvtGen/EvtGenModels/EvtSVPHelAmp.cpp similarity index 95% rename from TEvtGen/EvtGenModels/EvtSVPHelAmp.cxx rename to TEvtGen/EvtGenModels/EvtSVPHelAmp.cpp index 937411cea99..00844c2742c 100644 --- a/TEvtGen/EvtGenModels/EvtSVPHelAmp.cxx +++ b/TEvtGen/EvtGenModels/EvtSVPHelAmp.cpp @@ -100,8 +100,8 @@ void EvtSVPHelAmp::decay( EvtParticle *p ){ 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); + ((1.0/sqrt(2.0))*(hp-hm)*EvtComplex(0.0,1.0)*(sqrt(1.0/2.0)))*dual(EvtGenFunctions::directProd(v,vp))+ + (sqrt(2.0/3.0)*(h0+0.5*(hp+hm))*sqrt(3.0/2.0))*(EvtGenFunctions::directProd(v,v)+(1.0/3.0)*g); EvtVector4C ep0,ep1,ep2; diff --git a/TEvtGen/EvtGenModels/EvtSVS.cxx b/TEvtGen/EvtGenModels/EvtSVS.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtSVS.cxx rename to TEvtGen/EvtGenModels/EvtSVS.cpp diff --git a/TEvtGen/EvtGenModels/EvtSVSCP.cxx b/TEvtGen/EvtGenModels/EvtSVSCP.cpp similarity index 83% rename from TEvtGen/EvtGenModels/EvtSVSCP.cxx rename to TEvtGen/EvtGenModels/EvtSVSCP.cpp index 3e1010c791c..5f7ba41dc91 100644 --- a/TEvtGen/EvtGenModels/EvtSVSCP.cxx +++ b/TEvtGen/EvtGenModels/EvtSVSCP.cpp @@ -86,7 +86,7 @@ void EvtSVSCP::decay( EvtParticle *p ){ double t; EvtId other_b; - EvtCPUtil::OtherB(p,t,other_b); + EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.5); EvtComplex amp; @@ -119,3 +119,38 @@ void EvtSVSCP::decay( EvtParticle *p ){ return ; } +std::string EvtSVSCP::getParamName(int i) { + switch(i) { + case 0: + return "weakPhase"; + case 1: + return "deltaM"; + case 2: + return "finalStateCP"; + case 3: + return "Af"; + case 4: + return "AfPhase"; + case 5: + return "Abarf"; + case 6: + return "AbarfPhase"; + default: + return ""; + } +} + +std::string EvtSVSCP::getParamDefault(int i) { + switch(i) { + case 3: + return "1.0"; + case 4: + return "0.0"; + case 5: + return "1.0"; + case 6: + return "0.0"; + default: + return ""; + } +} diff --git a/TEvtGen/EvtGenModels/EvtSVSCP.hh b/TEvtGen/EvtGenModels/EvtSVSCP.hh index 479acdb2b24..f7d35bda72e 100644 --- a/TEvtGen/EvtGenModels/EvtSVSCP.hh +++ b/TEvtGen/EvtGenModels/EvtSVSCP.hh @@ -39,6 +39,8 @@ public: void init(); void decay(EvtParticle *p); + std::string getParamName(int i); + std::string getParamDefault(int i); }; #endif diff --git a/TEvtGen/EvtGenModels/EvtSVSCPLH.cxx b/TEvtGen/EvtGenModels/EvtSVSCPLH.cpp similarity index 98% rename from TEvtGen/EvtGenModels/EvtSVSCPLH.cxx rename to TEvtGen/EvtGenModels/EvtSVSCPLH.cpp index c4814db3564..bfdf52eefbf 100644 --- a/TEvtGen/EvtGenModels/EvtSVSCPLH.cxx +++ b/TEvtGen/EvtGenModels/EvtSVSCPLH.cpp @@ -103,7 +103,7 @@ void EvtSVSCPLH::decay( EvtParticle *p){ double t; EvtId other_b; - EvtCPUtil::OtherB(p,t,other_b,0.5); + EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.5); //convert time from mm to seconds t/=EvtConst::c; diff --git a/TEvtGen/EvtGenModels/EvtSVSCPiso.cxx b/TEvtGen/EvtGenModels/EvtSVSCPiso.cpp similarity index 96% rename from TEvtGen/EvtGenModels/EvtSVSCPiso.cxx rename to TEvtGen/EvtGenModels/EvtSVSCPiso.cpp index 94517abb854..e6d5ecfed66 100644 --- a/TEvtGen/EvtGenModels/EvtSVSCPiso.cxx +++ b/TEvtGen/EvtGenModels/EvtSVSCPiso.cpp @@ -52,8 +52,8 @@ EvtDecayBase* EvtSVSCPiso::clone(){ void EvtSVSCPiso::init(){ - // check that there are 26 arguments - checkNArg(26); + // check that there are 27 arguments + checkNArg(27); checkNDaug(2); checkSpinParent(EvtSpinType::SCALAR); @@ -126,19 +126,19 @@ void EvtSVSCPiso::decay( EvtParticle *p){ double tag = EvtRandom::Flat(0.0,1.0); if (tag < 0.5) { - EvtCPUtil::OtherB(p,t,other_b,1.0); - other_b = B0; + EvtCPUtil::getInstance()->OtherB(p,t,other_b,1.0); + other_b = B0; } else { - EvtCPUtil::OtherB(p,t,other_b,0.0); - other_b = B0B; + EvtCPUtil::getInstance()->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; diff --git a/TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.cxx b/TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.cpp similarity index 98% rename from TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.cxx rename to TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.cpp index 62ea69717d0..c68ffc6a4e9 100644 --- a/TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.cxx +++ b/TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.cpp @@ -97,7 +97,7 @@ void EvtSVSNONCPEIGEN::decay( EvtParticle *p){ daugs[1]=getDaug(1); p->initializePhaseSpace(2, daugs); - EvtCPUtil::OtherB(p,t,other_b,0.5); + EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.5); EvtComplex amp; double dmt2 = (_dm * t) / (2 * EvtConst::c); diff --git a/TEvtGen/EvtGenModels/EvtSVVCP.cxx b/TEvtGen/EvtGenModels/EvtSVVCP.cpp similarity index 80% rename from TEvtGen/EvtGenModels/EvtSVVCP.cxx rename to TEvtGen/EvtGenModels/EvtSVVCP.cpp index 9e4853c5883..6d2ebf787fa 100644 --- a/TEvtGen/EvtGenModels/EvtSVVCP.cxx +++ b/TEvtGen/EvtGenModels/EvtSVVCP.cpp @@ -78,7 +78,7 @@ void EvtSVVCP::decay( EvtParticle *p){ double t; EvtId other_b; - EvtCPUtil::OtherB(p,t,other_b); + EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.5); EvtComplex G0P,G1P,G1M; @@ -116,3 +116,46 @@ void EvtSVVCP::decay( EvtParticle *p){ return ; } +std::string EvtSVVCP::getParamName(int i) { + switch(i) { + case 0: + return "weakPhase"; + case 1: + return "deltaM"; + case 2: + return "eta"; + case 3: + return "G1Plus"; + case 4: + return "G1PlusPhase"; + case 5: + return "G0Plus"; + case 6: + return "G0PlusPhase"; + case 7: + return "G1Minus"; + case 8: + return "G1MinusPhase"; + default: + return ""; + } +} + +std::string EvtSVVCP::getParamDefault(int i) { + switch(i) { + case 3: + return "1.0"; + case 4: + return "0.0"; + case 5: + return "1.0"; + case 6: + return "0.0"; + case 7: + return "1.0"; + case 8: + return "0.0"; + default: + return ""; + } +} diff --git a/TEvtGen/EvtGenModels/EvtSVVCP.hh b/TEvtGen/EvtGenModels/EvtSVVCP.hh index 67ef2b55422..a07db95153a 100644 --- a/TEvtGen/EvtGenModels/EvtSVVCP.hh +++ b/TEvtGen/EvtGenModels/EvtSVVCP.hh @@ -40,6 +40,8 @@ public: void decay(EvtParticle *p); + std::string getParamName(int i); + std::string getParamDefault(int i); }; #endif diff --git a/TEvtGen/EvtGenModels/EvtSVVCPLH.cxx b/TEvtGen/EvtGenModels/EvtSVVCPLH.cpp similarity index 98% rename from TEvtGen/EvtGenModels/EvtSVVCPLH.cxx rename to TEvtGen/EvtGenModels/EvtSVVCPLH.cpp index e92d2230993..e2cfbbd9592 100644 --- a/TEvtGen/EvtGenModels/EvtSVVCPLH.cxx +++ b/TEvtGen/EvtGenModels/EvtSVVCPLH.cpp @@ -80,7 +80,7 @@ void EvtSVVCPLH::decay( EvtParticle *p){ double t; EvtId other_b; - EvtCPUtil::OtherB(p,t,other_b); + EvtCPUtil::getInstance()->OtherB(p,t,other_b); EvtComplex G0P,G1P,G1M; diff --git a/TEvtGen/EvtGenModels/EvtSVVHelAmp.cxx b/TEvtGen/EvtGenModels/EvtSVVHelAmp.cpp similarity index 83% rename from TEvtGen/EvtGenModels/EvtSVVHelAmp.cxx rename to TEvtGen/EvtGenModels/EvtSVVHelAmp.cpp index 50768baca45..6970cedfbcb 100644 --- a/TEvtGen/EvtGenModels/EvtSVVHelAmp.cxx +++ b/TEvtGen/EvtGenModels/EvtSVVHelAmp.cpp @@ -112,8 +112,8 @@ void EvtSVVHelAmp::SVVHel(EvtParticle *parent,EvtAmp& amp,EvtId n_v1,EvtId n_v2, EvtComplex c=h0+0.5*(hp+hm); EvtTensor3C M=a*EvtTensor3C::id()+ - b*eps(v1dir)+ - c*directProd(v1dir,v1dir); + b*EvtGenFunctions::eps(v1dir)+ + c*EvtGenFunctions::directProd(v1dir,v1dir); EvtVector3C t0=M.cont1(v1->eps(0).vec().conj()); EvtVector3C t1=M.cont1(v1->eps(1).vec().conj()); @@ -139,4 +139,40 @@ void EvtSVVHelAmp::SVVHel(EvtParticle *parent,EvtAmp& amp,EvtId n_v1,EvtId n_v2, } +std::string EvtSVVHelAmp::getParamName(int i) { + switch(i) { + case 0: + return "plusHelAmp"; + case 1: + return "plusHelAmpPhase"; + case 2: + return "zeroHelAmp"; + case 3: + return "zeroHelAmpPhase"; + case 4: + return "minusHelAmp"; + case 5: + return "minusHelAmpPhase"; + default: + return ""; + } +} +std::string EvtSVVHelAmp::getParamDefault(int i) { + switch(i) { + case 0: + return "1.0"; + case 1: + return "0.0"; + case 2: + return "1.0"; + case 3: + return "0.0"; + case 4: + return "1.0"; + case 5: + return "0.0"; + default: + return ""; + } +} diff --git a/TEvtGen/EvtGenModels/EvtSVVHelAmp.hh b/TEvtGen/EvtGenModels/EvtSVVHelAmp.hh index beb5cca3ae7..6af72413458 100644 --- a/TEvtGen/EvtGenModels/EvtSVVHelAmp.hh +++ b/TEvtGen/EvtGenModels/EvtSVVHelAmp.hh @@ -51,6 +51,8 @@ public: const EvtComplex& hp, const EvtComplex& h0, const EvtComplex& hm); + std::string getParamName(int i); + std::string getParamDefault(int i); }; #endif diff --git a/TEvtGen/EvtGenModels/EvtSVVHelCPMix.cxx b/TEvtGen/EvtGenModels/EvtSVVHelCPMix.cpp similarity index 82% rename from TEvtGen/EvtGenModels/EvtSVVHelCPMix.cxx rename to TEvtGen/EvtGenModels/EvtSVVHelCPMix.cpp index ca0ce13f000..425e175d394 100644 --- a/TEvtGen/EvtGenModels/EvtSVVHelCPMix.cxx +++ b/TEvtGen/EvtGenModels/EvtSVVHelCPMix.cpp @@ -124,24 +124,23 @@ void EvtSVVHelCPMix::decay( EvtParticle *p){ 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: + // 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 + 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; + // 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)* + // 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)* + 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 @@ -151,8 +150,8 @@ EvtComplex fminus = EvtComplex(cos(averageM*t), -1.*sin(averageM*t))*exp(-(gamma c=(h0+0.5*(hp+hm)); M=a*EvtTensor3C::id()+ - b*eps(v1dir)+ - c*directProd(v1dir,v1dir); + b*EvtGenFunctions::eps(v1dir)+ + c*EvtGenFunctions::directProd(v1dir,v1dir); EvtVector3C t0=M.cont1(v1->eps(0).vec().conj()); EvtVector3C t1=M.cont1(v1->eps(1).vec().conj()); @@ -231,4 +230,52 @@ EvtComplex fminus = EvtComplex(cos(averageM*t), -1.*sin(averageM*t))*exp(-(gamma } +std::string EvtSVVHelCPMix::getParamName(int i) { + switch(i) { + case 0: + return "plusHelAmp"; + case 1: + return "plusHelAmpPhase"; + case 2: + return "zeroHelAmp"; + case 3: + return "zeroHelAmpPhase"; + case 4: + return "minusHelAmp"; + case 5: + return "minusHelAmpPhase"; + case 6: + return "averageM"; + case 7: + return "deltaM"; + case 8: + return "gamma"; + case 9: + return "deltaGamma"; + case 10: + return "weakMixPhase"; + case 11: + return "weakDirectPhase"; + default: + return ""; + } +} +std::string EvtSVVHelCPMix::getParamDefault(int i) { + switch(i) { + case 0: + return "1.0"; + case 1: + return "0.0"; + case 2: + return "1.0"; + case 3: + return "0.0"; + case 4: + return "1.0"; + case 5: + return "0.0"; + default: + return ""; + } +} diff --git a/TEvtGen/EvtGenModels/EvtSVVHelCPMix.hh b/TEvtGen/EvtGenModels/EvtSVVHelCPMix.hh index 6dda8da8cc2..2a1fd5d8ca0 100644 --- a/TEvtGen/EvtGenModels/EvtSVVHelCPMix.hh +++ b/TEvtGen/EvtGenModels/EvtSVVHelCPMix.hh @@ -60,6 +60,8 @@ public: void decay(EvtParticle *p); + std::string getParamName(int i); + std::string getParamDefault(int i); }; #endif diff --git a/TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.cxx b/TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.cpp similarity index 79% rename from TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.cxx rename to TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.cpp index bb58dfb1719..55a90b6ff4f 100644 --- a/TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.cxx +++ b/TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.cpp @@ -144,7 +144,7 @@ void EvtSVVNONCPEIGEN::decay( EvtParticle *p){ daugs[1]=getDaug(1); p->initializePhaseSpace(2,daugs); - EvtCPUtil::OtherB(p,t,other_b,0.5); + EvtCPUtil::getInstance()->OtherB(p,t,other_b,0.5); EvtComplex amp[3]; @@ -195,3 +195,94 @@ void EvtSVVNONCPEIGEN::decay( EvtParticle *p){ return ; } +std::string EvtSVVNONCPEIGEN::getParamName(int i) { + switch(i) { + case 0: + return "deltaM"; + case 1: + return "weakPhase1"; + case 2: + return "weakPhase2"; + case 3: + return "AfPlusHelAmp"; + case 4: + return "AfPlusHelAmpPhase"; + case 5: + return "AfZeroHelAmp"; + case 6: + return "AfZeroHelAmpPhase"; + case 7: + return "AfMinusHelAmp"; + case 8: + return "AfMinusHelAmpPhase"; + case 9: + return "AbarfPlusHelAmp"; + case 10: + return "AbarfPlusHelAmpPhase"; + case 11: + return "AbarfZeroHelAmp"; + case 12: + return "AbarfZeroHelAmpPhase"; + case 13: + return "AbarfMinusHelAmp"; + case 14: + return "AbarfMinusHelAmpPhase"; + case 15: + return "AfbarPlusHelAmp"; + case 16: + return "AfbarPlusHelAmpPhase"; + case 17: + return "AfbarZeroHelAmp"; + case 18: + return "AfbarZeroHelAmpPhase"; + case 19: + return "AfbarMinusHelAmp"; + case 20: + return "AfbarMinusHelAmpPhase"; + case 21: + return "AbarfbarPlusHelAmp"; + case 22: + return "AbarfbarPlusHelAmpPhase"; + case 23: + return "AbarfbarZeroHelAmp"; + case 24: + return "AbarfbarZeroHelAmpPhase"; + case 25: + return "AbarfbarMinusHelAmp"; + case 26: + return "AbarfbarMinusHelAmpPhase"; + default: + return ""; + } +} + +std::string EvtSVVNONCPEIGEN::getParamDefault(int i) { + switch(i) { + case 3: + return "1.0"; + case 4: + return "0.0"; + case 5: + return "1.0"; + case 6: + return "0.0"; + case 7: + return "1.0"; + case 8: + return "0.0"; + case 9: + return "1.0"; + case 10: + return "0.0"; + case 11: + return "1.0"; + case 12: + return "0.0"; + case 13: + return "1.0"; + case 14: + return "0.0"; + default: + return ""; + } +} diff --git a/TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.hh b/TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.hh index ce7d02dd4ef..793d1800c29 100644 --- a/TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.hh +++ b/TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.hh @@ -40,6 +40,9 @@ public: void decay(EvtParticle *p); + std::string getParamName(int i); + std::string getParamDefault(int i); + private: EvtComplex _A_f[12]; diff --git a/TEvtGen/EvtGenModels/EvtSingleParticle.cxx b/TEvtGen/EvtGenModels/EvtSingleParticle.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtSingleParticle.cxx rename to TEvtGen/EvtGenModels/EvtSingleParticle.cpp diff --git a/TEvtGen/EvtGenModels/EvtSll.cxx b/TEvtGen/EvtGenModels/EvtSll.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtSll.cxx rename to TEvtGen/EvtGenModels/EvtSll.cpp diff --git a/TEvtGen/EvtGenModels/EvtTSS.cxx b/TEvtGen/EvtGenModels/EvtTSS.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtTSS.cxx rename to TEvtGen/EvtGenModels/EvtTSS.cpp diff --git a/TEvtGen/EvtGenModels/EvtTVP.cpp b/TEvtGen/EvtGenModels/EvtTVP.cpp new file mode 100644 index 00000000000..fafa7e075c8 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtTVP.cpp @@ -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: EvtTVP.cc +// +// Description: Routine to implement radiative decay chi_c2 -> psi gamma +// matrix element from [S.P Baranov et al, PRD 85, 014034 (2012)] +// +// Modification history: +// AVL 6 July, 2012 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtTensorParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" + + +#include "EvtGenModels/EvtTVP.hh" + + +#include +#include + +using namespace std; + + + +EvtTVP::~EvtTVP() { +// cout<<"(* AVL EvtTVP::destructor getProbMax(-1) = "<initializePhaseSpace(getNDaug(),getDaugs()); + + EvtVector4R p = root->getDaug(1)->getP4(), // J/psi momentum + k = root->getDaug(0)->getP4(); // Photon momentum +/* + cout<<"(* AVL *) p="< +#include + + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" + +class EvtParticle; + +class EvtTVP:public EvtDecayAmp { + +public: + + EvtTVP() {} + virtual ~EvtTVP(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + + virtual void initProbMax(); + + +private: +// EvtSemiLeptonicFF *ffmodel; +// EvtSemiLeptonicAmp *calcamp; +// int whichfit; + int ncall; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtTVSPwave.cxx b/TEvtGen/EvtGenModels/EvtTVSPwave.cpp similarity index 83% rename from TEvtGen/EvtGenModels/EvtTVSPwave.cxx rename to TEvtGen/EvtGenModels/EvtTVSPwave.cpp index aab40802802..9ee9c7e7f71 100644 --- a/TEvtGen/EvtGenModels/EvtTVSPwave.cxx +++ b/TEvtGen/EvtGenModels/EvtTVSPwave.cpp @@ -96,7 +96,7 @@ void EvtTVSPwave::decay( EvtParticle *p ){ EvtVector4C epsdual0,epsdual1,epsdual2; double norm=massv/(m_parent*momv.get(0)*momv.d3mag()*momv.d3mag()); - pdual=dual(directProd(norm*p_parent,momv)); + pdual=dual(EvtGenFunctions::directProd(norm*p_parent,momv)); epsdual0=pdual.cont1(v->epsParent(0).conj()); epsdual1=pdual.cont1(v->epsParent(1).conj()); @@ -129,3 +129,40 @@ void EvtTVSPwave::decay( EvtParticle *p ){ return ; } +std::string EvtTVSPwave::getParamName(int i) { + switch(i) { + case 0: + return "PWave"; + case 1: + return "PWavePhase"; + case 2: + return "DWave"; + case 3: + return "DWavePhase"; + case 4: + return "FWave"; + case 5: + return "FWavePhase"; + default: + return ""; + } +} + +std::string EvtTVSPwave::getParamDefault(int i) { + switch(i) { + case 0: + return "0.0"; + case 1: + return "0.0"; + case 2: + return "1.0"; + case 3: + return "0.0"; + case 4: + return "0.0"; + case 5: + return "0.0"; + default: + return ""; + } +} diff --git a/TEvtGen/EvtGenModels/EvtTVSPwave.hh b/TEvtGen/EvtGenModels/EvtTVSPwave.hh index 62148574e8f..1be570aa76a 100644 --- a/TEvtGen/EvtGenModels/EvtTVSPwave.hh +++ b/TEvtGen/EvtGenModels/EvtTVSPwave.hh @@ -44,6 +44,8 @@ public: void init(); void initProbMax(); + std::string getParamName(int i); + std::string getParamDefault(int i); }; #endif diff --git a/TEvtGen/EvtGenModels/EvtTauHadnu.cxx b/TEvtGen/EvtGenModels/EvtTauHadnu.cpp similarity index 99% rename from TEvtGen/EvtGenModels/EvtTauHadnu.cxx rename to TEvtGen/EvtGenModels/EvtTauHadnu.cpp index b73effe1ad9..b12495648ec 100644 --- a/TEvtGen/EvtGenModels/EvtTauHadnu.cxx +++ b/TEvtGen/EvtGenModels/EvtTauHadnu.cpp @@ -122,7 +122,7 @@ void EvtTauHadnu::decay(EvtParticle *p){ EvtParticle *nut; nut = p->getDaug(getNDaug()-1); - EvtVector4R momscalar = p->getDaug(0)->getP4(); + p->getDaug(0)->getP4(); //get the leptonic current EvtVector4C tau1, tau2; diff --git a/TEvtGen/EvtGenModels/EvtTauScalarnu.cxx b/TEvtGen/EvtGenModels/EvtTauScalarnu.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtTauScalarnu.cxx rename to TEvtGen/EvtGenModels/EvtTauScalarnu.cpp diff --git a/TEvtGen/EvtGenModels/EvtTauVectornu.cxx b/TEvtGen/EvtGenModels/EvtTauVectornu.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtTauVectornu.cxx rename to TEvtGen/EvtGenModels/EvtTauVectornu.cpp diff --git a/TEvtGen/EvtGenModels/EvtTaulnunu.cxx b/TEvtGen/EvtGenModels/EvtTaulnunu.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtTaulnunu.cxx rename to TEvtGen/EvtGenModels/EvtTaulnunu.cpp diff --git a/TEvtGen/EvtGenModels/EvtVPHOtoV.cxx b/TEvtGen/EvtGenModels/EvtVPHOtoV.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtVPHOtoV.cxx rename to TEvtGen/EvtGenModels/EvtVPHOtoV.cpp diff --git a/TEvtGen/EvtGenModels/EvtVPHOtoVISR.cxx b/TEvtGen/EvtGenModels/EvtVPHOtoVISR.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtVPHOtoVISR.cxx rename to TEvtGen/EvtGenModels/EvtVPHOtoVISR.cpp diff --git a/TEvtGen/EvtGenModels/EvtVPHOtoVISRHi.cxx b/TEvtGen/EvtGenModels/EvtVPHOtoVISRHi.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtVPHOtoVISRHi.cxx rename to TEvtGen/EvtGenModels/EvtVPHOtoVISRHi.cpp diff --git a/TEvtGen/EvtGenModels/EvtVSPPwave.cxx b/TEvtGen/EvtGenModels/EvtVSPPwave.cpp similarity index 97% rename from TEvtGen/EvtGenModels/EvtVSPPwave.cxx rename to TEvtGen/EvtGenModels/EvtVSPPwave.cpp index e734ee4f650..a439a787c96 100644 --- a/TEvtGen/EvtGenModels/EvtVSPPwave.cxx +++ b/TEvtGen/EvtGenModels/EvtVSPPwave.cpp @@ -82,7 +82,7 @@ void EvtVSPPwave::decay( EvtParticle *p){ double norm=1/(m_p*momgamma.d3mag()); - tds = dual(directProd(norm*p4_p,momgamma)); + tds = dual(EvtGenFunctions::directProd(norm*p4_p,momgamma)); vertex(0,0,(tds.cont1( p->eps(0))).cont( gamma->epsParentPhoton(0).conj() ) ); diff --git a/TEvtGen/EvtGenModels/EvtVSS.cxx b/TEvtGen/EvtGenModels/EvtVSS.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtVSS.cxx rename to TEvtGen/EvtGenModels/EvtVSS.cpp diff --git a/TEvtGen/EvtGenModels/EvtVSSBMixCPT.cxx b/TEvtGen/EvtGenModels/EvtVSSBMixCPT.cpp similarity index 92% rename from TEvtGen/EvtGenModels/EvtVSSBMixCPT.cxx rename to TEvtGen/EvtGenModels/EvtVSSBMixCPT.cpp index bd37a11a610..a0bf41804cf 100644 --- a/TEvtGen/EvtGenModels/EvtVSSBMixCPT.cxx +++ b/TEvtGen/EvtGenModels/EvtVSSBMixCPT.cpp @@ -301,9 +301,54 @@ void EvtVSSBMixCPT::decay( EvtParticle *p ){ return ; } +std::string EvtVSSBMixCPT::getParamName(int i) { + switch(i) { + case 0: + return "deltaM"; + case 1: + return "deltaGammaOverGamma"; + case 2: + return "qOverP"; + case 3: + return "qOverPPhase"; + case 4: + return "Af"; + case 5: + return "AfPhase"; + case 6: + return "Abarf"; + case 7: + return "AbarfPhase"; + case 8: + return "Afbar"; + case 9: + return "AfbarPhase"; + case 10: + return "Abarfbar"; + case 11: + return "AbarfbarPhase"; + case 12: + return "Z"; + case 13: + return "ZPhase"; + default: + return ""; + } +} - - - - - +std::string EvtVSSBMixCPT::getParamDefault(int i) { + switch(i) { + case 3: + return "0.0"; + case 4: + return "1.0"; + case 5: + return "0.0"; + case 6: + return "1.0"; + case 7: + return "0.0"; + default: + return ""; + } +} diff --git a/TEvtGen/EvtGenModels/EvtVSSBMixCPT.hh b/TEvtGen/EvtGenModels/EvtVSSBMixCPT.hh index 68955a98193..575d2de79a5 100644 --- a/TEvtGen/EvtGenModels/EvtVSSBMixCPT.hh +++ b/TEvtGen/EvtGenModels/EvtVSSBMixCPT.hh @@ -56,6 +56,8 @@ private: EvtComplex _A_fbar; EvtComplex _Abar_fbar; + std::string getParamName(int i); + std::string getParamDefault(int i); }; #endif diff --git a/TEvtGen/EvtGenModels/EvtVSSMix.cxx b/TEvtGen/EvtGenModels/EvtVSSMix.cpp similarity index 95% rename from TEvtGen/EvtGenModels/EvtVSSMix.cxx rename to TEvtGen/EvtGenModels/EvtVSSMix.cpp index 092aa623a58..eda67ce30a3 100644 --- a/TEvtGen/EvtGenModels/EvtVSSMix.cxx +++ b/TEvtGen/EvtGenModels/EvtVSSMix.cpp @@ -108,3 +108,11 @@ void EvtVSSMix::decay( EvtParticle *p ){ return ; } +std::string EvtVSSMix::getParamName(int i) { + switch(i) { + case 0: + return "deltaM"; + default: + return ""; + } +} diff --git a/TEvtGen/EvtGenModels/EvtVSSMix.hh b/TEvtGen/EvtGenModels/EvtVSSMix.hh index 0747a8fd4dd..79ec3b630ee 100644 --- a/TEvtGen/EvtGenModels/EvtVSSMix.hh +++ b/TEvtGen/EvtGenModels/EvtVSSMix.hh @@ -39,6 +39,7 @@ public: void init(); void initProbMax(); + std::string getParamName(int i); }; #endif diff --git a/TEvtGen/EvtGenModels/EvtVVP.cxx b/TEvtGen/EvtGenModels/EvtVVP.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtVVP.cxx rename to TEvtGen/EvtGenModels/EvtVVP.cpp diff --git a/TEvtGen/EvtGenModels/EvtVVPIPI_WEIGHTED.cxx b/TEvtGen/EvtGenModels/EvtVVPIPI_WEIGHTED.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtVVPIPI_WEIGHTED.cxx rename to TEvtGen/EvtGenModels/EvtVVPIPI_WEIGHTED.cpp diff --git a/TEvtGen/EvtGenModels/EvtVVSPwave.cxx b/TEvtGen/EvtGenModels/EvtVVSPwave.cpp similarity index 94% rename from TEvtGen/EvtGenModels/EvtVVSPwave.cxx rename to TEvtGen/EvtGenModels/EvtVVSPwave.cpp index ebdeb0790be..26bf9cb3813 100644 --- a/TEvtGen/EvtGenModels/EvtVVSPwave.cxx +++ b/TEvtGen/EvtGenModels/EvtVVSPwave.cpp @@ -80,15 +80,15 @@ void EvtVVSPwave::decay( EvtParticle *p){ ::abort(); } - EvtParticle *v,*s; + EvtParticle *v; v=p->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)+ + d=ad*((1.0/(v->getP4().d3mag()*v->getP4().d3mag()))* + EvtGenFunctions::directProd(v->getP4(),v->getP4())+(1/3.0)*g)+ as*g; EvtVector4C ep0,ep1,ep2; diff --git a/TEvtGen/EvtGenModels/EvtVVpipi.cxx b/TEvtGen/EvtGenModels/EvtVVpipi.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtVVpipi.cxx rename to TEvtGen/EvtGenModels/EvtVVpipi.cpp diff --git a/TEvtGen/EvtGenModels/EvtVectorIsr.cxx b/TEvtGen/EvtGenModels/EvtVectorIsr.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtVectorIsr.cxx rename to TEvtGen/EvtGenModels/EvtVectorIsr.cpp diff --git a/TEvtGen/EvtGenModels/EvtVll.cxx b/TEvtGen/EvtGenModels/EvtVll.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtVll.cxx rename to TEvtGen/EvtGenModels/EvtVll.cpp diff --git a/TEvtGen/EvtGenModels/EvtVtoSll.cxx b/TEvtGen/EvtGenModels/EvtVtoSll.cpp similarity index 97% rename from TEvtGen/EvtGenModels/EvtVtoSll.cxx rename to TEvtGen/EvtGenModels/EvtVtoSll.cpp index 9e5c2282cdb..b1f032c4b47 100644 --- a/TEvtGen/EvtGenModels/EvtVtoSll.cxx +++ b/TEvtGen/EvtGenModels/EvtVtoSll.cpp @@ -90,9 +90,7 @@ void EvtVtoSll::decay(EvtParticle *p){ EvtVector4R k=l1->getP4()+l2->getP4(); double k2=k*k; - EvtTensor4C T(dual(directProd(P,(1.0/k2)*k))); - - + EvtTensor4C T(dual(EvtGenFunctions::directProd(P,(1.0/k2)*k))); double M2=p->mass(); M2*=M2; diff --git a/TEvtGen/EvtGenModels/EvtVub.cxx b/TEvtGen/EvtGenModels/EvtVub.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtVub.cxx rename to TEvtGen/EvtGenModels/EvtVub.cpp diff --git a/TEvtGen/EvtGenModels/EvtVubAC.cxx b/TEvtGen/EvtGenModels/EvtVubAC.cpp similarity index 99% rename from TEvtGen/EvtGenModels/EvtVubAC.cxx rename to TEvtGen/EvtGenModels/EvtVubAC.cpp index cbbc3f9eaef..34e3e4e8e06 100644 --- a/TEvtGen/EvtGenModels/EvtVubAC.cxx +++ b/TEvtGen/EvtGenModels/EvtVubAC.cpp @@ -413,7 +413,7 @@ int k = 0; int JMAX = 20; int KMAX = 6282; - if (x1 < 0.04 | x1 > 1.0 | x2 > 0.9981306360766614) { + if ((x1 < 0.04) | (x1 > 1.0) | (x2 > 0.9981306360766614)) { cout<<"Input variables are not in range"< class EvtParticle; -class RandGeneral; -class EvtVubdGamma; class EvtVubAC:public EvtDecayIncoherent { diff --git a/TEvtGen/EvtGenModels/EvtVubBLNP.cxx b/TEvtGen/EvtGenModels/EvtVubBLNP.cpp similarity index 97% rename from TEvtGen/EvtGenModels/EvtVubBLNP.cxx rename to TEvtGen/EvtGenModels/EvtVubBLNP.cpp index d465926138d..fe29c1190ba 100644 --- a/TEvtGen/EvtGenModels/EvtVubBLNP.cxx +++ b/TEvtGen/EvtGenModels/EvtVubBLNP.cpp @@ -166,7 +166,7 @@ void EvtVubBLNP::decay(EvtParticle *Bmeson) { EvtParticle *xuhad, *lepton, *neutrino; EvtVector4R p4; - double Pp, Pm, Pl, pdf, EX, PX, sh, qsq, El, ml, mpi, ratemax; + double Pp, Pm, Pl, pdf, EX, sh, El, ml, mpi, ratemax; double xhigh, xlow, what; @@ -206,8 +206,6 @@ void EvtVubBLNP::decay(EvtParticle *Bmeson) { 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. @@ -399,7 +397,7 @@ double EvtVubBLNP::F1(double Pp, double Pm, double muh, double mui, double mubar } -double EvtVubBLNP::F2(double Pp, double Pm, double muh, double mui, double mubar, double done3) { +double EvtVubBLNP::F2(double Pp, double Pm, double muh, double /*mui*/, double mubar, double done3) { std::vector vars(12); vars[0] = Pp; @@ -421,7 +419,7 @@ double EvtVubBLNP::F2(double Pp, double Pm, double muh, double mui, double mubar } -double EvtVubBLNP::F3(double Pp, double Pm, double muh, double mui, double mubar, double done2) { +double EvtVubBLNP::F3(double Pp, double Pm, double /*muh*/, double /*mui*/, double mubar, double done2) { std::vector vars(12); vars[0] = Pp; @@ -441,7 +439,7 @@ double EvtVubBLNP::F3(double Pp, double Pm, double muh, double mui, double mubar } -double EvtVubBLNP::DoneJS(double Pp, double Pm, double mui) { +double EvtVubBLNP::DoneJS(double Pp, double Pm, double /*mui*/) { std::vector vars(12); vars[0] = Pp; @@ -460,7 +458,7 @@ double EvtVubBLNP::DoneJS(double Pp, double Pm, double mui) { } -double EvtVubBLNP::Done1(double Pp, double Pm, double mui) { +double EvtVubBLNP::Done1(double Pp, double Pm, double /*mui*/) { std::vector vars(12); vars[0] = Pp; @@ -479,7 +477,7 @@ double EvtVubBLNP::Done1(double Pp, double Pm, double mui) { } -double EvtVubBLNP::Done2(double Pp, double Pm, double mui) { +double EvtVubBLNP::Done2(double Pp, double Pm, double /*mui*/) { std::vector vars(12); vars[0] = Pp; @@ -498,7 +496,7 @@ double EvtVubBLNP::Done2(double Pp, double Pm, double mui) { } -double EvtVubBLNP::Done3(double Pp, double Pm, double mui) { +double EvtVubBLNP::Done3(double Pp, double Pm, double /*mui*/) { std::vector vars(12); vars[0] = Pp; @@ -704,7 +702,7 @@ double EvtVubBLNP::myfunction(double w, double Lbar, double mom2) { } -double EvtVubBLNP::myfunctionBIK(double w, double Lbar, double mom2) { +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; @@ -751,7 +749,7 @@ double EvtVubBLNP::S0(double a1, double r) { return answer; } -double EvtVubBLNP::S1(double a1, double r) { +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; } diff --git a/TEvtGen/EvtGenModels/EvtVubBLNPHybrid.cxx b/TEvtGen/EvtGenModels/EvtVubBLNPHybrid.cpp similarity index 98% rename from TEvtGen/EvtGenModels/EvtVubBLNPHybrid.cxx rename to TEvtGen/EvtGenModels/EvtVubBLNPHybrid.cpp index 3e72fa1b2ab..b7e1aa45cd5 100644 --- a/TEvtGen/EvtGenModels/EvtVubBLNPHybrid.cxx +++ b/TEvtGen/EvtGenModels/EvtVubBLNPHybrid.cpp @@ -242,7 +242,7 @@ void EvtVubBLNPHybrid::decay(EvtParticle *Bmeson) { EvtParticle *xuhad, *lepton, *neutrino; EvtVector4R p4; - double Pp, Pm, Pl, pdf, EX, PX, sh, qsq, El, ml, mpi, ratemax; + double Pp, Pm, Pl, pdf, EX, sh, qsq, El, ml, mpi, ratemax; double xhigh, xlow, what; double mX; @@ -287,7 +287,6 @@ void EvtVubBLNPHybrid::decay(EvtParticle *Bmeson) { sh = Pm*Pp; EX = 0.5*(Pm + Pp); - PX = 0.5*(Pm - Pp); qsq = (mBB - Pp)*(mBB - Pm); El = 0.5*(mBB - Pl); @@ -493,7 +492,7 @@ double EvtVubBLNPHybrid::F1(double Pp, double Pm, double muh, double mui, double } -double EvtVubBLNPHybrid::F2(double Pp, double Pm, double muh, double mui, double mubar, double done3) { +double EvtVubBLNPHybrid::F2(double Pp, double Pm, double muh, double /* mui */, double mubar, double done3) { std::vector vars(12); vars[0] = Pp; @@ -515,7 +514,7 @@ double EvtVubBLNPHybrid::F2(double Pp, double Pm, double muh, double mui, double } -double EvtVubBLNPHybrid::F3(double Pp, double Pm, double muh, double mui, double mubar, double done2) { +double EvtVubBLNPHybrid::F3(double Pp, double Pm, double /*muh*/, double /* mui */, double mubar, double done2) { std::vector vars(12); vars[0] = Pp; @@ -535,7 +534,7 @@ double EvtVubBLNPHybrid::F3(double Pp, double Pm, double muh, double mui, double } -double EvtVubBLNPHybrid::DoneJS(double Pp, double Pm, double mui) { +double EvtVubBLNPHybrid::DoneJS(double Pp, double Pm, double /* mui */) { std::vector vars(12); vars[0] = Pp; @@ -554,7 +553,7 @@ double EvtVubBLNPHybrid::DoneJS(double Pp, double Pm, double mui) { } -double EvtVubBLNPHybrid::Done1(double Pp, double Pm, double mui) { +double EvtVubBLNPHybrid::Done1(double Pp, double Pm, double /* mui */) { std::vector vars(12); vars[0] = Pp; @@ -573,7 +572,7 @@ double EvtVubBLNPHybrid::Done1(double Pp, double Pm, double mui) { } -double EvtVubBLNPHybrid::Done2(double Pp, double Pm, double mui) { +double EvtVubBLNPHybrid::Done2(double Pp, double Pm, double /* mui */ ) { std::vector vars(12); vars[0] = Pp; @@ -592,7 +591,7 @@ double EvtVubBLNPHybrid::Done2(double Pp, double Pm, double mui) { } -double EvtVubBLNPHybrid::Done3(double Pp, double Pm, double mui) { +double EvtVubBLNPHybrid::Done3(double Pp, double Pm, double /* mui */) { std::vector vars(12); vars[0] = Pp; @@ -798,7 +797,7 @@ double EvtVubBLNPHybrid::myfunction(double w, double Lbar, double mom2) { } -double EvtVubBLNPHybrid::myfunctionBIK(double w, double Lbar, double mom2) { +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; @@ -845,7 +844,7 @@ double EvtVubBLNPHybrid::S0(double a1, double r) { return answer; } -double EvtVubBLNPHybrid::S1(double a1, double r) { +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; } diff --git a/TEvtGen/EvtGenModels/EvtVubHybrid.cxx b/TEvtGen/EvtGenModels/EvtVubHybrid.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtVubHybrid.cxx rename to TEvtGen/EvtGenModels/EvtVubHybrid.cpp diff --git a/TEvtGen/EvtGenModels/EvtVubNLO.cxx b/TEvtGen/EvtGenModels/EvtVubNLO.cpp similarity index 99% rename from TEvtGen/EvtGenModels/EvtVubNLO.cxx rename to TEvtGen/EvtGenModels/EvtVubNLO.cpp index 6b1ba572534..0883294a923 100644 --- a/TEvtGen/EvtGenModels/EvtVubNLO.cxx +++ b/TEvtGen/EvtGenModels/EvtVubNLO.cpp @@ -507,7 +507,7 @@ EvtVubNLO::F3(const std::vector &coeffs){ } */ -double EvtVubNLO::SFNorm( const std::vector &coeffs){ +double EvtVubNLO::SFNorm( const std::vector &/*coeffs*/){ double omega0=1.68;//normalization scale (mB-2*1.8) if(_idSF==1){ // exponential SF diff --git a/TEvtGen/EvtGenModels/EvtVubNLO.hh b/TEvtGen/EvtGenModels/EvtVubNLO.hh index d0db5b634f8..2b5cb3e37f0 100644 --- a/TEvtGen/EvtGenModels/EvtVubNLO.hh +++ b/TEvtGen/EvtGenModels/EvtVubNLO.hh @@ -115,7 +115,7 @@ private: 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;} + inline double lambda(double){ return _mB-_mb;} // specail for gaussian SF static double cGaus(double b){return pow(Gamma(1+b/2.)/Gamma((1+b)/2.),2);} @@ -134,7 +134,7 @@ private: // 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)*( + 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)*( diff --git a/TEvtGen/EvtGenModels/EvtVubdGamma.cxx b/TEvtGen/EvtGenModels/EvtVubdGamma.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtVubdGamma.cxx rename to TEvtGen/EvtGenModels/EvtVubdGamma.cpp diff --git a/TEvtGen/EvtGenModels/EvtWilsonCoeficients.cxx b/TEvtGen/EvtGenModels/EvtWilsonCoefficients.cpp similarity index 77% rename from TEvtGen/EvtGenModels/EvtWilsonCoeficients.cxx rename to TEvtGen/EvtGenModels/EvtWilsonCoefficients.cpp index 301bec1e6fc..06381350990 100644 --- a/TEvtGen/EvtGenModels/EvtWilsonCoeficients.cxx +++ b/TEvtGen/EvtGenModels/EvtWilsonCoefficients.cpp @@ -2,7 +2,7 @@ // // 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: +// Coefficient 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 @@ -16,7 +16,7 @@ #include "EvtGenBase/EvtPatches.hh" #include "EvtGenBase/EvtConst.hh" #include "EvtGenBase/EvtReport.hh" -#include "EvtGenModels/EvtWilsonCoeficients.hh" +#include "EvtGenModels/EvtWilsonCoefficients.hh" #include // including EvtLi2Spence.F @@ -24,7 +24,7 @@ extern "C" { extern double li2spence_(double*); } -EvtWilsonCoeficients::EvtWilsonCoeficients(){ +EvtWilsonCoefficients::EvtWilsonCoefficients(){ 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}; @@ -66,16 +66,16 @@ EvtWilsonCoeficients::EvtWilsonCoeficients(){ m_ksi=0; } -void EvtWilsonCoeficients::SetRenormalizationScheme(std::string scheme){ +void EvtWilsonCoefficients::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; + report(ERROR,"EvtGen") << "ERROR: EvtWilsonCoefficients knows only NDR and HV schemes !" << std::endl; ::abort(); } } -double EvtWilsonCoeficients::alphaS(double mu=4.8,int n_f=5,double Lambda=0.2167){ +double EvtWilsonCoefficients::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; @@ -86,7 +86,7 @@ double EvtWilsonCoeficients::alphaS(double mu=4.8,int n_f=5,double Lambda=0.2167 return aS; } -double EvtWilsonCoeficients::Lambda(double alpha=0.1187,int n_f=5,double mu=91.1876,double epsilon=0.00005,int maxstep=1000){ +double EvtWilsonCoefficients::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; @@ -115,47 +115,47 @@ double EvtWilsonCoeficients::Lambda(double alpha=0.1187,int n_f=5,double mu=91.1 } } -double EvtWilsonCoeficients::eta(double mu=4.8,int n_f=5,double Lambda=0.2167,double M_W=80.425){ +double EvtWilsonCoefficients::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){ +EvtComplex EvtWilsonCoefficients::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){ +EvtComplex EvtWilsonCoefficients::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){ +EvtComplex EvtWilsonCoefficients::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){ +EvtComplex EvtWilsonCoefficients::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){ +EvtComplex EvtWilsonCoefficients::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){ +EvtComplex EvtWilsonCoefficients::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]); @@ -163,15 +163,15 @@ EvtComplex EvtWilsonCoeficients::C6(double mu=4.8,int n_f=5,double Lambda=0.2167 } -EvtComplex EvtWilsonCoeficients::C7(double M_t=174.3,double M_W=80.425){ +EvtComplex EvtWilsonCoefficients::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){ +EvtComplex EvtWilsonCoefficients::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){ +EvtComplex EvtWilsonCoefficients::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]); @@ -181,7 +181,7 @@ EvtComplex EvtWilsonCoeficients::C7eff0(double mu=4.8,int n_f=5,double Lambda=0. 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){ +EvtComplex EvtWilsonCoefficients::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]); @@ -190,57 +190,57 @@ EvtComplex EvtWilsonCoeficients::C8eff0(double mu=4.8,int n_f=5,double Lambda=0. } -EvtComplex EvtWilsonCoeficients::C10tilda(double sin2W=0.23120,double M_t=174.3,double M_W=80.425){ +EvtComplex EvtWilsonCoefficients::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){ +EvtComplex EvtWilsonCoefficients::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){ +double EvtWilsonCoefficients::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){ +double EvtWilsonCoefficients::B(double x){ return ( x/4/(1-x) + x/4/(x-1)/(x-1)*log(x) ); } -double EvtWilsonCoeficients::C(double x){ +double EvtWilsonCoefficients::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){ +double EvtWilsonCoefficients::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){ +double EvtWilsonCoefficients::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){ +double EvtWilsonCoefficients::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){ +double EvtWilsonCoefficients::Y(double x){ return (C(x)-B(x)); } -double EvtWilsonCoeficients::Z(double x){ +double EvtWilsonCoefficients::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){ +EvtComplex EvtWilsonCoefficients::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){ +EvtComplex EvtWilsonCoefficients::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){ +EvtComplex EvtWilsonCoefficients::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); @@ -250,7 +250,7 @@ EvtComplex EvtWilsonCoeficients::P0(int ksi=0,double mu=4.8,int n_f=5,double Lam return myP0; } -double EvtWilsonCoeficients::PE(double mu=4.8,int n_f=5,double Lambda=0.2167,double M_W=80.425){ +double EvtWilsonCoefficients::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); @@ -258,7 +258,7 @@ double EvtWilsonCoeficients::PE(double mu=4.8,int n_f=5,double Lambda=0.2167,dou } -void EvtWilsonCoeficients::CalculateAllCoeficients(){ +void EvtWilsonCoefficients::CalculateAllCoefficients(){ 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); @@ -332,7 +332,7 @@ void EvtWilsonCoeficients::CalculateAllCoeficients(){ report(DEBUG,"EvtGen") << " +--------------------------------------" << std::endl; } -EvtComplex EvtWilsonCoeficients::hzs(double z,double shat,double mu=4.8,double M_b=4.8){ +EvtComplex EvtWilsonCoefficients::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); @@ -340,19 +340,19 @@ EvtComplex EvtWilsonCoeficients::hzs(double z,double shat,double mu=4.8,double M 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){ +double EvtWilsonCoefficients::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){ +double EvtWilsonCoefficients::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){ +double EvtWilsonCoefficients::etatilda(double shat,double alpha_S){ return (1. + alpha_S/EvtConst::pi*omega(shat)); } -double EvtWilsonCoeficients::omega(double shat){ +double EvtWilsonCoefficients::omega(double shat){ double o=0; o -= (2./9.)*EvtConst::pi*EvtConst::pi; o -= (4./3.)*li2spence_(&shat); @@ -363,7 +363,7 @@ double EvtWilsonCoeficients::omega(double 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 EvtWilsonCoefficients::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); @@ -373,12 +373,12 @@ EvtComplex EvtWilsonCoeficients::C9efftilda(double z,double shat,double alpha_S, return c; } -EvtComplex EvtWilsonCoeficients::C7b2sg(double alpha_S,double et,EvtComplex c2,double M_t=174.3,double M_W=80.425){ +EvtComplex EvtWilsonCoefficients::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 EvtWilsonCoefficients::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; diff --git a/TEvtGen/EvtGenModels/EvtWilsonCoeficients.hh b/TEvtGen/EvtGenModels/EvtWilsonCoefficients.hh similarity index 96% rename from TEvtGen/EvtGenModels/EvtWilsonCoeficients.hh rename to TEvtGen/EvtGenModels/EvtWilsonCoefficients.hh index e7a5ec62ad7..08c9bc19c33 100644 --- a/TEvtGen/EvtGenModels/EvtWilsonCoeficients.hh +++ b/TEvtGen/EvtGenModels/EvtWilsonCoefficients.hh @@ -2,7 +2,7 @@ // // 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: +// Coefficient 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 @@ -18,12 +18,12 @@ #include "EvtGenBase/EvtComplex.hh" -class EvtWilsonCoeficients { +class EvtWilsonCoefficients { public: - EvtWilsonCoeficients(); - //~EvtWilsonCoeficients() {}; + EvtWilsonCoefficients(); + //~EvtWilsonCoefficients() {}; // calculate strong coupling constant for n_f flavours and scale mu double alphaS(double mu,int n_f,double Lambda); @@ -74,7 +74,7 @@ public: 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(); + void CalculateAllCoefficients(); // 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); } diff --git a/TEvtGen/EvtGenModels/EvtWnPi.cpp b/TEvtGen/EvtGenModels/EvtWnPi.cpp new file mode 100644 index 00000000000..b5a040356fb --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtWnPi.cpp @@ -0,0 +1,137 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the 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: EvtTVP.cc +// +// Description: Routine to calculate W -> (n pi) current +// according to [Kuhn, Was, Acta.Phys.Polon B39 (2008) 147] +// +// Modification history: +// AVL 6 July, 2012 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#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/EvtTensor4C.hh" +#include "EvtGenBase/EvtIdSet.hh" +#include "EvtGenBase/EvtParser.hh" + +#include "EvtGenModels/EvtWnPi.hh" + +using namespace std; + +// W+ -> pi_ current +EvtVector4C EvtWnPi::WCurrent(EvtVector4R q1) { + return q1; +} + +// W+ -> pi+ pi0 current +EvtVector4C EvtWnPi::WCurrent(EvtVector4R q1, EvtVector4R q2) { + return BWr(q1+q2)*(q1-q2); +} + +// W+ -> pi+ pi+ pi- current +EvtVector4C EvtWnPi::WCurrent(EvtVector4R q1, EvtVector4R q2, EvtVector4R q3) { + EvtVector4R Q=q1+q2+q3; + double Q2=Q.mass2(); + return BWa(Q)*( (q1-q3) - (Q*(Q*(q1-q3))/Q2)*BWr(q2+q3) + + (q2-q3) - (Q*(Q*(q2-q3))/Q2)*BWr(q1+q3) ); +} + +// W+ -> pi+ pi+ pi- pi- pi+ current with symmetrization +EvtVector4C EvtWnPi::WCurrent(EvtVector4R q1, EvtVector4R q2, EvtVector4R q3, EvtVector4R q4, EvtVector4R q5) { +// double Q2 = Qtot*Qtot; +// return q1-Qtot*(q1*Qtot)/Q2; + EvtVector4C V = JB(q1, q2, q3, q4, q5) + JB(q5, q2, q3, q4, q1) + JB(q1, q5, q3, q4, q2) + + JB(q1,q2,q4,q3,q5)+JB(q5,q2,q4,q3,q1)+JB(q1,q5,q4,q3,q2); +// cout<<"BC2: Qtot="<pipi decay + double dRho= _mRho*_mRho - m1*m1 - m2*m2; + double pPiRho = (1.0/_mRho)*sqrt((dRho*dRho)/4.0 - m1*m1*m2*m2); + + double dRhopr= _mRhopr*_mRhopr - m1*m1 - m2*m2; + double pPiRhopr = (1.0/_mRhopr)*sqrt((dRhopr*dRhopr)/4.0 - m1*m1*m2*m2); + + double dQ= mQ2 - m1*m1 - m2*m2; + double pPiQ = (1.0/sqrt(mQ2))*sqrt((dQ*dQ)/4.0 - m1*m1*m2*m2); + + + double gammaRho = _gammaRho*_mRho/sqrt(mQ2)*pow((pPiQ/pPiRho),3); + EvtComplex BRhoDem(_mRho*_mRho - mQ2,-1.0*_mRho*gammaRho); + EvtComplex BRho= _mRho*_mRho / BRhoDem; + + double gammaRhopr = _gammaRhopr*_mRhopr/sqrt(mQ2)*pow((pPiQ/pPiRhopr),3); + EvtComplex BRhoprDem(_mRhopr*_mRhopr - mQ2,-1.0*_mRho*gammaRhopr); + EvtComplex BRhopr= _mRhopr*_mRhopr / BRhoprDem; + + return (BRho + _beta*BRhopr)/(1+_beta); +} + +double EvtWnPi::pi3G(double m2) { + double mPi = EvtPDL::getMeanMass(EvtPDL::getId("pi+")); + double _mRho = 0.775; + if ( m2 > (_mRho+mPi) ) { + return m2*(1.623 + 10.38/m2 - 9.32/(m2*m2) + 0.65/(m2*m2*m2)); + } + else { + double t1=m2-9.0*mPi*mPi; + return 4.1*pow(t1,3.0)*(1.0 - 3.3*t1+5.8*t1*t1); + }; +} + +EvtVector4C EvtWnPi::JB( EvtVector4R p1, EvtVector4R p2, EvtVector4R p3, EvtVector4R p4, EvtVector4R p5) { + EvtVector4R Qtot = p1+p2+p3+p4+p5, Qa=p1+p2+p3; + EvtTensor4C T= (1/Qtot.mass2())*EvtGenFunctions::directProd(Qtot,Qtot) - EvtTensor4C::g(); + EvtVector4R V13 = Qa*( p2*(p1-p3) )/Qa.mass2() - (p1-p3); + EvtVector4R V23 = Qa*( p1*(p2-p3) )/Qa.mass2() - (p2-p3); + return BWa(Qtot)*BWa(Qa)*BWf(p4+p5)*( + T.cont1(V13)*BWr(p1+p3) + T.cont1(V23)*BWr(p2+p3) + ); +} diff --git a/TEvtGen/EvtGenModels/EvtWnPi.hh b/TEvtGen/EvtGenModels/EvtWnPi.hh new file mode 100644 index 00000000000..40823ff274e --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtWnPi.hh @@ -0,0 +1,23 @@ +#ifndef EvtWNPI_HH +#define EvtWNPI_HH + +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" + +class EvtWnPi { +public: + EvtVector4C WCurrent(EvtVector4R q1); + EvtVector4C WCurrent(EvtVector4R q1, EvtVector4R q2); + EvtVector4C WCurrent(EvtVector4R q1, EvtVector4R q2, EvtVector4R q3); + EvtVector4C WCurrent(EvtVector4R q1, EvtVector4R q2, EvtVector4R q3, EvtVector4R q4, EvtVector4R q5); +protected: + EvtVector4C JB(EvtVector4R q1, EvtVector4R q2, EvtVector4R q3, EvtVector4R q4, EvtVector4R q5); + EvtComplex BWa( EvtVector4R q); + EvtComplex BWf( EvtVector4R q); + EvtComplex BWr( EvtVector4R q); + double pi3G(double Q2); +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtXPsiGamma.cpp b/TEvtGen/EvtGenModels/EvtXPsiGamma.cpp new file mode 100755 index 00000000000..8b906fada01 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtXPsiGamma.cpp @@ -0,0 +1,205 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the 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: EvtXPsiGamma.cc +// +// Description: Routine to implement radiative decay X3872(2-+) -> J/psi gamma +// according to [F. Brazzi et al, arXiv:1103.3155 +// +// Modification history: +// +// May, 7, 2012 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtTensorParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" + +#include "EvtGenModels/EvtXPsiGamma.hh" + +#include +#include + +using namespace std; + +EvtXPsiGamma::~EvtXPsiGamma() { +/* cout<<"(* AVL EvtXPsiGamma::destructor getProbMax(-1) = "< initializePhaseSpace(getNDaug(),getDaugs()); + + double gOmega = 1.58, gPOmega = -0.74; // X -> omega psi couplings from table II + double gRho = 1.58, gPRho = -0.74; // X -> omega psi couplings from table II + double fRho=0.121, mRho2 = 0.770*0.770, fOmega=0.036, mOmega2 = 0.782*0.782; + + EvtComplex amp; + + if(_ID0 == EvtPDL::getId("gamma") ) { + for(int iPsi = 0; iPsi < 4; iPsi++) { + for(int iGamma = 0; iGamma < 1; iGamma++) { + for(int iChi = 0; iChi<4; iChi++) { + + EvtComplex T2 = fT2( + root->getDaug(1)->getP4(), + root->getDaug(0)->getP4(), + root->epsTensor(iChi), + root->getDaug(1)->epsParent(iPsi).conj(), + root->getDaug(0)->epsParentPhoton(iGamma).conj() + ); + EvtComplex T3 = fT3( + root->getDaug(1)->getP4(), + root->getDaug(0)->getP4(), + root->epsTensor(iChi), + root->getDaug(1)->epsParent(iPsi).conj(), + root->getDaug(0)->epsParentPhoton(iGamma).conj() + ); + amp = (fOmega/mOmega2*gOmega+fRho/mRho2*gRho)*T2 + + (fOmega/mOmega2*gPOmega+fRho/mRho2*gPRho)*T3; + vertex(iChi, iGamma, iPsi, amp); + };};}; + } + else if(_ID0 == EvtPDL::getId("omega") ) { + for(int iPsi = 0; iPsi < 4; iPsi++) { + for(int iGamma = 0; iGamma < 4; iGamma++) { + for(int iChi = 0; iChi<4; iChi++) { + + EvtComplex T2 = fT2( + root->getDaug(1)->getP4(), + root->getDaug(0)->getP4(), + root->epsTensor(iChi), + root->getDaug(1)->epsParent(iPsi).conj(), + root->getDaug(0)->epsParent(iGamma).conj() + ); + EvtComplex T3 = fT3( + root->getDaug(1)->getP4(), + root->getDaug(0)->getP4(), + root->epsTensor(iChi), + root->getDaug(1)->epsParent(iPsi).conj(), + root->getDaug(0)->epsParent(iGamma).conj() + ); + // cout << "AVL:: omega"<getDaug(1)->getP4(), + root->getDaug(0)->getP4(), + root->epsTensor(iChi), + root->getDaug(1)->epsParent(iPsi).conj(), + root->getDaug(0)->epsParent(iGamma).conj() + ); + EvtComplex T3 = fT3( + root->getDaug(1)->getP4(), + root->getDaug(0)->getP4(), + root->epsTensor(iChi), + root->getDaug(1)->epsParent(iPsi).conj(), + root->getDaug(0)->epsParent(iGamma).conj() + ); + // cout << "AVL:: rho"< J/psi gamma decay +// +// Modification history: +// +// 7 May 2012: Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTXPSIGAMMA_HH +#define EVTXPSIGAMMA_HH + +#include +#include + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" + +class EvtParticle; + +class EvtXPsiGamma: public EvtDecayAmp { + +public: + + EvtXPsiGamma() {} + virtual ~EvtXPsiGamma(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + + virtual void initProbMax(); + + +private: +// EvtSemiLeptonicFF *ffmodel; +// EvtSemiLeptonicAmp *calcamp; +// int whichfit; + EvtComplex fT2(EvtVector4R p, EvtVector4R q , EvtTensor4C epsPI, EvtVector4C epsEps, EvtVector4C epsEta); + EvtComplex fT3(EvtVector4R p, EvtVector4R q , EvtTensor4C epsPI, EvtVector4C epsEps, EvtVector4C epsEta); + EvtId _ID0; + int ncall; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtY3SToY1SpipiMoxhay.cxx b/TEvtGen/EvtGenModels/EvtY3SToY1SpipiMoxhay.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtY3SToY1SpipiMoxhay.cxx rename to TEvtGen/EvtGenModels/EvtY3SToY1SpipiMoxhay.cpp diff --git a/TEvtGen/EvtGenModels/EvtYmSToYnSpipiCLEO.cxx b/TEvtGen/EvtGenModels/EvtYmSToYnSpipiCLEO.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtYmSToYnSpipiCLEO.cxx rename to TEvtGen/EvtGenModels/EvtYmSToYnSpipiCLEO.cpp diff --git a/TEvtGen/EvtGenModels/EvtbTosllAli.cxx b/TEvtGen/EvtGenModels/EvtbTosllAli.cpp similarity index 95% rename from TEvtGen/EvtGenModels/EvtbTosllAli.cxx rename to TEvtGen/EvtGenModels/EvtbTosllAli.cpp index 26bb9018dfd..88f78738ffb 100644 --- a/TEvtGen/EvtGenModels/EvtbTosllAli.cxx +++ b/TEvtGen/EvtGenModels/EvtbTosllAli.cpp @@ -49,7 +49,8 @@ EvtDecayBase* EvtbTosllAli::clone(){ void EvtbTosllAli::decay( EvtParticle *p ){ - setWeight(p->initializePhaseSpace(getNDaug(),getDaugs(),_poleSize,1,2)); + setWeight(p->initializePhaseSpace(getNDaug(),getDaugs(),false, + _poleSize,1,2)); _calcamp->CalcAmp(p,_amp2,_aliffmodel); diff --git a/TEvtGen/EvtGenModels/EvtbTosllAliFF.cxx b/TEvtGen/EvtGenModels/EvtbTosllAliFF.cpp similarity index 93% rename from TEvtGen/EvtGenModels/EvtbTosllAliFF.cxx rename to TEvtGen/EvtGenModels/EvtbTosllAliFF.cpp index 87a8011328f..67589c2aa67 100644 --- a/TEvtGen/EvtGenModels/EvtbTosllAliFF.cxx +++ b/TEvtGen/EvtGenModels/EvtbTosllAliFF.cpp @@ -27,7 +27,7 @@ EvtbTosllAliFF::EvtbTosllAliFF(){} -void EvtbTosllAliFF::getScalarFF(EvtId parent, EvtId daught, +void EvtbTosllAliFF::getScalarFF(EvtId parent, EvtId /*daught*/, double t, double /*mass*/, double& fp,double& f0,double& ft){ @@ -45,7 +45,7 @@ void EvtbTosllAliFF::getScalarFF(EvtId parent, EvtId daught, } -void EvtbTosllAliFF::getVectorFF(EvtId parent, EvtId daught, +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 ){ diff --git a/TEvtGen/EvtGenModels/EvtbTosllAmp.cxx b/TEvtGen/EvtGenModels/EvtbTosllAmp.cpp similarity index 98% rename from TEvtGen/EvtGenModels/EvtbTosllAmp.cxx rename to TEvtGen/EvtGenModels/EvtbTosllAmp.cpp index 0686dee73ef..bab67bd89a0 100644 --- a/TEvtGen/EvtGenModels/EvtbTosllAmp.cxx +++ b/TEvtGen/EvtGenModels/EvtbTosllAmp.cpp @@ -260,20 +260,10 @@ EvtComplex EvtbTosllAmp::GetC7Eff(double q2, bool nnlo) 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); @@ -287,21 +277,13 @@ EvtComplex EvtbTosllAmp::GetC7Eff(double q2, bool nnlo) 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; @@ -363,14 +345,10 @@ EvtComplex EvtbTosllAmp::GetC9Eff(double q2, bool nnlo, bool btod) 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; diff --git a/TEvtGen/EvtGenModels/EvtbTosllAmp.hh b/TEvtGen/EvtGenModels/EvtbTosllAmp.hh index 6863a64b455..3fad22b072e 100644 --- a/TEvtGen/EvtGenModels/EvtbTosllAmp.hh +++ b/TEvtGen/EvtGenModels/EvtbTosllAmp.hh @@ -30,6 +30,7 @@ class EvtComplex; class EvtbTosllAmp{ public: + virtual ~EvtbTosllAmp() { } ; //Daughters are initialized and have been added to the parent. //No need to carry around the daughters seperately! diff --git a/TEvtGen/EvtGenModels/EvtbTosllBall.cxx b/TEvtGen/EvtGenModels/EvtbTosllBall.cpp similarity index 96% rename from TEvtGen/EvtGenModels/EvtbTosllBall.cxx rename to TEvtGen/EvtGenModels/EvtbTosllBall.cpp index 370046a65ef..a110f6da4e4 100644 --- a/TEvtGen/EvtGenModels/EvtbTosllBall.cxx +++ b/TEvtGen/EvtGenModels/EvtbTosllBall.cpp @@ -53,7 +53,8 @@ EvtDecayBase* EvtbTosllBall::clone(){ void EvtbTosllBall::decay( EvtParticle *p ){ - setWeight(p->initializePhaseSpace(getNDaug(),getDaugs(),_poleSize,1,2)); + setWeight(p->initializePhaseSpace(getNDaug(),getDaugs(),false, + _poleSize,1,2)); _calcamp->CalcAmp(p,_amp2,_ballffmodel); diff --git a/TEvtGen/EvtGenModels/EvtbTosllBallFF.cxx b/TEvtGen/EvtGenModels/EvtbTosllBallFF.cpp similarity index 94% rename from TEvtGen/EvtGenModels/EvtbTosllBallFF.cxx rename to TEvtGen/EvtGenModels/EvtbTosllBallFF.cpp index 42c66d50620..f42176b0280 100644 --- a/TEvtGen/EvtGenModels/EvtbTosllBallFF.cxx +++ b/TEvtGen/EvtGenModels/EvtbTosllBallFF.cpp @@ -24,7 +24,7 @@ #include "EvtGenBase/EvtPatches.hh" #include "EvtGenBase/EvtPDL.hh" #include "EvtGenModels/EvtbTosllBallFF.hh" -#include +#include EvtbTosllBallFF::EvtbTosllBallFF(int ffmodel) { @@ -210,8 +210,11 @@ void EvtbTosllBallFF::getVectorFF(EvtId parent, EvtId daught, daught == EvtPDL::getId(std::string("K*+")) || daught == EvtPDL::getId(std::string("K*-")) || daught == EvtPDL::getId(std::string("K*0")) || - daught == EvtPDL::getId(std::string("anti-K*0")) - ) + daught == EvtPDL::getId(std::string("anti-K*0")) || + daught == EvtPDL::getId(std::string("K_1+")) || + daught == EvtPDL::getId(std::string("K_1-")) + + ) { if (model == 1) { //this is Ali-Ball '01 @@ -287,8 +290,12 @@ void EvtbTosllBallFF::getVectorFF(EvtId parent, EvtId daught, t1 = (0.823 / (1. - (t/(5.32*5.32)))) + (-0.491 / (1 - (t/46.31))); t2 = 0.333 / (1. - (t/41.41)); - t3 = (-0.036 / (1. - (t/48.10))) + + double t3tilde = (-0.036 / (1. - (t/48.10))) + (0.368 / (1. - (t/48.10)) / (1. - (t/48.10))); + t3 = 0.0; + if (fabs(t) > 1e-10) { + t3 = (m*m - md*md)*(t3tilde - t2)/t; + } } } else if (daught == EvtPDL::getId(std::string("rho+")) || @@ -318,8 +325,13 @@ void EvtbTosllBallFF::getVectorFF(EvtId parent, EvtId daught, 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))) + + double t3tilde = (0.022 / (1. - (t/40.88))) + (0.246 / (1. - (t/40.88)) / (1. - (t/40.88))); + t3 = 0.0; + if (fabs(t) > 1e-10) { + t3 = (m*m - md*md)*(t3tilde - t2)/t; + } + } } else if (daught == EvtPDL::getId(std::string("omega")) @@ -347,8 +359,12 @@ void EvtbTosllBallFF::getVectorFF(EvtId parent, EvtId daught, 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))) + + double t3tilde = (0.023 / (1. - (t/40.87))) + (0.220 / (1. - (t/40.87)) / (1. - (t/40.87))); + t3 = 0.0; + if (fabs(t) > 1e-10) { + t3 = (m*m - md*md)*(t3tilde - t2)/t; + } } } else if (daught == EvtPDL::getId(std::string("phi")) @@ -366,8 +382,12 @@ void EvtbTosllBallFF::getVectorFF(EvtId parent, EvtId daught, 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))) + + double t3tilde = (0.027 / (1. - (t/45.56))) + (0.321 / (1. - (t/45.56)) / (1. - (t/45.56))); + t3 = 0.0; + if (fabs(t) > 1e-10) { + t3 = (m*m - md*md)*(t3tilde - t2)/t; + } } } diff --git a/TEvtGen/EvtGenModels/EvtbTosllFF.hh b/TEvtGen/EvtGenModels/EvtbTosllFF.hh index 540c7ed966b..a8a1a2a15b3 100644 --- a/TEvtGen/EvtGenModels/EvtbTosllFF.hh +++ b/TEvtGen/EvtGenModels/EvtbTosllFF.hh @@ -28,11 +28,15 @@ 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;} + virtual ~EvtbTosllFF( ) { } ; + + 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;} }; diff --git a/TEvtGen/EvtGenModels/EvtbTosllScalarAmp.cxx b/TEvtGen/EvtGenModels/EvtbTosllScalarAmp.cpp similarity index 100% rename from TEvtGen/EvtGenModels/EvtbTosllScalarAmp.cxx rename to TEvtGen/EvtGenModels/EvtbTosllScalarAmp.cpp diff --git a/TEvtGen/EvtGenModels/EvtbTosllVectorAmp.cxx b/TEvtGen/EvtGenModels/EvtbTosllVectorAmp.cpp similarity index 89% rename from TEvtGen/EvtGenModels/EvtbTosllVectorAmp.cxx rename to TEvtGen/EvtGenModels/EvtbTosllVectorAmp.cpp index c820ab65f6c..42c79b64290 100644 --- a/TEvtGen/EvtGenModels/EvtbTosllVectorAmp.cxx +++ b/TEvtGen/EvtGenModels/EvtbTosllVectorAmp.cpp @@ -134,15 +134,15 @@ void EvtbTosllVectorAmp::CalcAmp( EvtParticle *parent, if (bmesons.contains(parentID)) { - T1=a*dual(directProd(pbhat,pkstarhat)) + T1=a*dual(EvtGenFunctions::directProd(pbhat,pkstarhat)) -b*uniti*EvtTensor4C::g() - +c*uniti*directProd(pbhat,phat) - +d*uniti*directProd(pbhat,qhat); + +c*uniti*EvtGenFunctions::directProd(pbhat,phat) + +d*uniti*EvtGenFunctions::directProd(pbhat,qhat); - T2=e*dual(directProd(pbhat,pkstarhat)) + T2=e*dual(EvtGenFunctions::directProd(pbhat,pkstarhat)) -f*uniti*EvtTensor4C::g() - +g*uniti*directProd(pbhat,phat) - +h*uniti*directProd(pbhat,qhat); + +g*uniti*EvtGenFunctions::directProd(pbhat,phat) + +h*uniti*EvtGenFunctions::directProd(pbhat,qhat); l11=EvtLeptonVCurrent(lepPlus->spParent(0), lepMinus->spParent(0)); @@ -166,15 +166,15 @@ void EvtbTosllVectorAmp::CalcAmp( EvtParticle *parent, if (bbarmesons.contains(parentID)) { - T1=-a*dual(directProd(pbhat,pkstarhat)) + T1=-a*dual(EvtGenFunctions::directProd(pbhat,pkstarhat)) -b*uniti*EvtTensor4C::g() - +c*uniti*directProd(pbhat,phat) - +d*uniti*directProd(pbhat,qhat); + +c*uniti*EvtGenFunctions::directProd(pbhat,phat) + +d*uniti*EvtGenFunctions::directProd(pbhat,qhat); - T2=-e*dual(directProd(pbhat,pkstarhat)) + T2=-e*dual(EvtGenFunctions::directProd(pbhat,pkstarhat)) -f*uniti*EvtTensor4C::g() - +g*uniti*directProd(pbhat,phat) - +h*uniti*directProd(pbhat,qhat); + +g*uniti*EvtGenFunctions::directProd(pbhat,phat) + +h*uniti*EvtGenFunctions::directProd(pbhat,qhat); l11=EvtLeptonVCurrent(lepPlus->spParent(1), lepMinus->spParent(1)); @@ -197,6 +197,7 @@ void EvtbTosllVectorAmp::CalcAmp( EvtParticle *parent, } else{ report(ERROR,"EvtGen") << "Wrong lepton number\n"; + T1.zero(); T2.zero(); // Set all tensor terms to zero. } } diff --git a/TEvtGen/EvtGenModels/Makefile b/TEvtGen/EvtGenModels/Makefile deleted file mode 100644 index b4046a505dc..00000000000 --- a/TEvtGen/EvtGenModels/Makefile +++ /dev/null @@ -1,15839 +0,0 @@ - -#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 deleted file mode 100644 index e4779709ca9..00000000000 --- a/TEvtGen/EvtGenModels/Pythia.F +++ /dev/null @@ -1,351 +0,0 @@ -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 deleted file mode 100644 index 7e2090c5c13..00000000000 --- a/TEvtGen/EvtGenModels/begevtgenget.F +++ /dev/null @@ -1,55 +0,0 @@ - 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 deleted file mode 100644 index e41a3194c9e..00000000000 --- a/TEvtGen/EvtGenModels/begevtgengetx.F +++ /dev/null @@ -1,76 +0,0 @@ -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 deleted file mode 100644 index b2fdd45f649..00000000000 --- a/TEvtGen/EvtGenModels/begevtgenstore.F +++ /dev/null @@ -1,134 +0,0 @@ -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 deleted file mode 100644 index 35239caf2b7..00000000000 --- a/TEvtGen/EvtGenModels/begevtgenstorex.F +++ /dev/null @@ -1,76 +0,0 @@ -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 deleted file mode 100644 index fe9f89b816a..00000000000 --- a/TEvtGen/EvtGenModels/continuum.F +++ /dev/null @@ -1,123 +0,0 @@ -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 deleted file mode 100644 index b5d1735b78f..00000000000 --- a/TEvtGen/EvtGenModels/continuumCDF.F +++ /dev/null @@ -1,123 +0,0 @@ -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 deleted file mode 100644 index fbeb8935d2c..00000000000 --- a/TEvtGen/EvtGenModels/jetset1.F +++ /dev/null @@ -1,138 +0,0 @@ -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 deleted file mode 100644 index a2276171dd5..00000000000 --- a/TEvtGen/EvtGenModels/jetset7410CDF.F +++ /dev/null @@ -1,11712 +0,0 @@ -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 deleted file mode 100644 index c1027d6cd01..00000000000 --- a/TEvtGen/EvtGenModels/jetsetCDF.F +++ /dev/null @@ -1,138 +0,0 @@ -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 deleted file mode 100644 index 6ec8ab9df6a..00000000000 --- a/TEvtGen/EvtGenModels/jetsetcont.F +++ /dev/null @@ -1,69 +0,0 @@ -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 deleted file mode 100644 index a191ccb5fe9..00000000000 --- a/TEvtGen/EvtGenModels/pykcut.F +++ /dev/null @@ -1,80 +0,0 @@ - -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 deleted file mode 100644 index 7020d72bded..00000000000 --- a/TEvtGen/EvtGenModels/pytime.F +++ /dev/null @@ -1,76 +0,0 @@ - -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 deleted file mode 100644 index f439212cdde..00000000000 --- a/TEvtGen/EvtGenModels/rly.cxx +++ /dev/null @@ -1,13 +0,0 @@ -// $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 old mode 100644 new mode 100755 index dcb14a08a33..9285a59422d --- a/TEvtGen/EvtGenModels/stdhep.inc +++ b/TEvtGen/EvtGenModels/stdhep.inc @@ -15,7 +15,7 @@ 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) + PARAMETER ( nmxhep=10000) REAL*8 phep, vhep ! to be real*4 or *8 depending on host INTEGER nevhep,nhep,isthep,idhep,jmohep, $ jdahep @@ -29,8 +29,6 @@ C VHEP(4,I) = x,y,z,L of production vertex $ 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) diff --git a/TEvtGen/HepMC/CompareGenEvent.cc b/TEvtGen/HepMC/CompareGenEvent.cc new file mode 100644 index 00000000000..69efeba397c --- /dev/null +++ b/TEvtGen/HepMC/CompareGenEvent.cc @@ -0,0 +1,192 @@ +///////////////////////////////////////////////////////////////////////// +// CompareGenEvent.cc +// +// garren@fnal.gov, January 2008 +// Free functions used to compare two copies of GenEvent +////////////////////////////////////////////////////////////////////////// +// + +#include + +#include "HepMC/CompareGenEvent.h" +#include "HepMC/GenEvent.h" + +namespace HepMC { + +bool compareGenEvent( GenEvent* e1, GenEvent* e2) +{ + //std::cout << "compareGenEvent: comparing event " << e1->event_number() << " to event " + // << e2->event_number() << std::endl; + if( e1->event_number() != e2->event_number() ) { + std::cerr << "compareGenEvent: event numbers differ " << std::endl; + return false; + } + if( e1->signal_process_id() != e2->signal_process_id() ) { + std::cerr << "compareGenEvent: signal process ids differ " << std::endl; + return false; + } + if( e1->event_scale() != e2->event_scale() ) { + std::cerr << "compareGenEvent: event scales differ " << std::endl; + return false; + } + if( e1->alphaQCD() != e2->alphaQCD() ) { + std::cerr << "compareGenEvent: alphaQCD differs " << std::endl; + return false; + } + if( e1->alphaQED() != e2->alphaQED() ) { + std::cerr << "alphaQED differs " << std::endl; + return false; + } + if( e1->mpi() != e2->mpi() ) { + std::cerr << "compareGenEvent: mpi differs " << std::endl; + return false; + } + if ( !compareSignalProcessVertex( e1, e2 ) ) { return false; } + if ( !compareBeamParticles( e1, e2 ) ) { return false; } + if ( !compareWeights( e1, e2 ) ) { return false; } + if( e1->random_states() != e2->random_states() ) { + std::cerr << "compareGenEvent: random states differ " << std::endl; + return false; + } + if( e1->heavy_ion() != e2->heavy_ion() ) { + std::cerr << "compareGenEvent: heavy ions differ " << std::endl; + return false; + } + if( e1->pdf_info() != e2->pdf_info() ) { + std::cerr << "compareGenEvent: pdf info differs " << std::endl; + return false; + } + if ( !compareParticles( e1, e2 ) ) { return false; } + if ( !compareVertices( e1, e2 ) ) { return false; } + return true; +} + +bool compareSignalProcessVertex( GenEvent* e1, GenEvent* e2 ) { + // compare signal process vertex + GenVertex* s1 = e1->signal_process_vertex(); + GenVertex* s2 = e2->signal_process_vertex(); + if( s1 && s2 ) { + if( (*s1) != (*s2) ) { + std::cerr << "compareSignalProcessVertex: signal process vertices differ " << std::endl; + return false; + } + } + return true; +} + +bool compareBeamParticles( GenEvent* e1, GenEvent* e2 ) { + GenParticle* e1b1 = e1->beam_particles().first; + GenParticle* e1b2 = e1->beam_particles().second; + GenParticle* e2b1 = e2->beam_particles().first; + GenParticle* e2b2 = e2->beam_particles().second; + if( e1b1 && e1b2 && e2b1 && e2b2 ) { + if( (*e1b1) == (*e2b1) && (*e1b2) == (*e2b2) ) { + } else { + std::cerr << "compareBeamParticles: beam particles differ " << std::endl; + return false; + } + } + return true; +} + +bool compareWeights( GenEvent* e1, GenEvent* e2 ) { + if( e1->weights() == e2->weights() ) return true; + std::cerr << "compareWeights: weight containers differ " << std::endl; + return false; +} + +bool compareParticles( GenEvent* e1, GenEvent* e2 ) { + if( e1->particles_size() != e2->particles_size() ) { + std::cerr << "compareParticles: number of particles differs " << std::endl; + return false; + } + if( e1->particles_size() == 0 ) { return true; } + for ( GenEvent::particle_const_iterator p1 = e1->particles_begin(), + p2 = e2->particles_begin(); + p1 != e1->particles_end(); ++p1, ++p2 ) { + /* std::cout << "compareParticles: particle " + << (*p1)->barcode() << " " << (*p2)->barcode() + << std::endl; */ + if ( **p1 != **p2 ) { + std::cerr << "compareParticles: particle " + << (*p1)->barcode() << " differs from " + << (*p2)->barcode() << std::endl; + return false; + } + } + return true; +} + +bool compareVertices( GenEvent* e1, GenEvent* e2 ) { + if( e1->vertices_size() != e2->vertices_size() ) { + std::cerr << "compareVertices: number of vertices differs " << std::endl; + return false; + } + for ( GenEvent::vertex_const_iterator v = e1->vertices_begin(); + v != e1->vertices_end(); ++v ) { + //std::cout << "compareVertices: comparing vertex " + // << (*v)->barcode() << std::endl; + GenVertex* v1 = (*v); + GenVertex* v2 = e2->barcode_to_vertex((*v)->barcode()); + compareVertex( (*v), e2->barcode_to_vertex((*v)->barcode())); + if ( (*v1) != (*v2) ) { + std::cerr << "compareVertices: vertex " + << (*v)->barcode() << " differs" << std::endl; + return false; + } + } + return true; +} + +bool compareVertex( GenVertex* v1, GenVertex* v2 ) { + if ( v1->position() != v2->position() ) { + std::cerr << "compareVertex: position " + << v1->barcode() << " differs" << std::endl; + return false; + } + // if the size of the inlist differs, return false. + if ( v1->particles_in_size() != v2->particles_in_size() ) { + std::cerr << "compareVertex: particles_in_size " + << v1->barcode() << " differs" << std::endl; + return false; + } + // loop over the inlist and ensure particles are identical + if ( v1->particles_in_const_begin() != v1->particles_in_const_end() ) { + for ( GenVertex::particles_in_const_iterator + ia = v1->particles_in_const_begin(), + ib = v2->particles_in_const_begin(); + ia != v1->particles_in_const_end(); ia++, ib++ ){ + if ( **ia != **ib ) { + std::cerr << "compareVertex: incoming particle " + << v1->barcode() << " differs: " + << (*ia)->barcode() << " " << (*ib)->barcode() + << std::endl; + //return false; + } + } + } + // if the size of the outlist differs, return false. + if ( v1->particles_out_size() != v2->particles_out_size() ) { + std::cerr << "compareVertex: particles_out_size " + << v1->barcode() << " differs" << std::endl; + return false; + } + // loop over the outlist and ensure particles are identical + if ( v1->particles_out_const_begin() != v1->particles_out_const_end() ) { + for ( GenVertex::particles_out_const_iterator + ia = v1->particles_out_const_begin(), + ib = v2->particles_out_const_begin(); + ia != v1->particles_out_const_end(); ia++, ib++ ){ + if ( **ia != **ib ) { + std::cerr << "compareVertex: outgoing particle " + << v1->barcode() << " differs: " + << (*ia)->barcode() << " " << (*ib)->barcode() + << std::endl; + //return false; + } + } + } + return true; +} + +} // HepMC diff --git a/TEvtGen/HepMC/CompareGenEvent.h b/TEvtGen/HepMC/CompareGenEvent.h new file mode 100644 index 00000000000..90f2be4ea36 --- /dev/null +++ b/TEvtGen/HepMC/CompareGenEvent.h @@ -0,0 +1,30 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_COMPARE_GENEVENT_H +#define HEPMC_COMPARE_GENEVENT_H + +///////////////////////////////////////////////////////////////////////// +// CompareGenEvent.h +// +// garren@fnal.gov, January 2008 +// Free functions used to compare two copies of GenEvent +////////////////////////////////////////////////////////////////////////// +// + +#include + +#include "HepMC/GenEvent.h" + +namespace HepMC { + +bool compareGenEvent( GenEvent*, GenEvent* ); +bool compareSignalProcessVertex( GenEvent*, GenEvent* ); +bool compareBeamParticles( GenEvent*, GenEvent* ); +bool compareWeights( GenEvent*, GenEvent* ); +bool compareVertices( GenEvent*, GenEvent* ); +bool compareParticles( GenEvent*, GenEvent* ); +bool compareVertex( GenVertex* v1, GenVertex* v2 ); + +} // HepMC + +#endif // HEPMC_COMPARE_GENEVENT_H +//-------------------------------------------------------------------------- diff --git a/TEvtGen/HepMC/Flow.cc b/TEvtGen/HepMC/Flow.cc new file mode 100644 index 00000000000..d56183e0ef2 --- /dev/null +++ b/TEvtGen/HepMC/Flow.cc @@ -0,0 +1,217 @@ +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, January 2000 +// particle's flow object +////////////////////////////////////////////////////////////////////////// + +#include "HepMC/Flow.h" +#include "HepMC/GenParticle.h" +#include "HepMC/GenVertex.h" +#include "HepMC/SearchVector.h" + +namespace HepMC { + + Flow::Flow( GenParticle* particle_owner ) + : m_particle_owner(particle_owner) + {} + + Flow::Flow( const Flow& inflow ) : + m_particle_owner(inflow.m_particle_owner), + m_icode(inflow.m_icode) + { + /// copies both the m_icode AND the m_particle_owner + } + + Flow::~Flow() { + m_icode.clear(); + } + + void Flow::swap( Flow & other) + { + std::swap( m_particle_owner, other.m_particle_owner ); + m_icode.swap( other.m_icode ); + } + + void Flow::print( std::ostream& ostr ) const { + ostr << "Flow(" << m_particle_owner << "): " << *this << std::endl; + } + + std::vector Flow::connected_partners( int code, int code_index, + int num_indices ) const { + /// Returns all flow partners which have "code" in any of the + /// num_indices beginning with index code_index. + /// m_particle_owner is included in the result. + /// Return is by value since the set should never be very big. + /// EXAMPLE: if you want to find all flow partners that have the same + /// code in indices 2,3,4 as particle p has in index 2, you would use: + /// set result = + /// p->flow().connected_partners(p->flow().icode(2),2,3); + // + std::vector output; + for ( int i = code_index; i!=code_index+num_indices; ++i ) { + if ( icode(i)==code ) { + output.push_back(m_particle_owner); + connected_partners( &output, code, code_index, num_indices ); + break; + } + } + return output; + } + + void Flow::connected_partners( std::vector* output, int code, + int code_index, int num_indices ) const + { + /// protected: for recursive use by Flow::connected_partners() + // + if ( !m_particle_owner ) return; // nothing to do + // look for connected partners joined to this m_particle_owner + // through its end_vertex + if ( m_particle_owner->end_vertex() ) { + for ( GenVertex::particle_iterator p + = m_particle_owner->end_vertex()->particles_begin(family); + p != m_particle_owner->end_vertex()->particles_end(family); + ++p ) { + // if the particle has the correct flow code and is not yet in + // the set, then we recursively call connected_partners + for ( int index = code_index; index!=code_index+num_indices; + ++index ){ + if ( (*p)->flow(index)==code && not_in_vector(output,(*p)) ) { + output->push_back(*p); + (*p)->flow().connected_partners( output, code, + code_index, + num_indices ); + } + } + } + } + // same for production_vertex + if ( m_particle_owner->production_vertex() ) { + for ( GenVertex::particle_iterator p + = m_particle_owner->production_vertex()-> + particles_begin( family ); + p != m_particle_owner->production_vertex()-> + particles_end( family ); ++p ) { + // if the particle has the correct flow code and is not yet in + // the set, then we recursively call connected_partners + for ( int index = code_index; index!=code_index+num_indices; + ++index ){ + if ( (*p)->flow(index)==code && not_in_vector(output,(*p)) ) { + output->push_back(*p); + (*p)->flow().connected_partners( output, code, + code_index, + num_indices ); + } + } + } + } + } + + std::vector Flow::dangling_connected_partners( int code, + int code_index, int num_indices ) const { + std::vector output; + std::vector visited_particles; + for ( int i = code_index; i!=code_index+num_indices; ++i ) { + if ( icode(i)==code ) { + visited_particles.push_back(m_particle_owner); + dangling_connected_partners( &output, &visited_particles, code, + code_index, num_indices ); + break; + } + } + return output; + } + + void Flow::dangling_connected_partners( std::vector* output, + std::vector* + visited_particles, + int code, int code_index, + int num_indices ) const + { + /// protected: for recursive use by Flow::dangling_connected_partners + // + if ( !m_particle_owner ) return; // nothing to do + int count_partners = 0; + // look for connected partners joined to this m_particle_owner + // through its end_vertex + if ( m_particle_owner->end_vertex() ) { + for ( GenVertex::particle_iterator p + = m_particle_owner->end_vertex()->particles_begin(family); + p != m_particle_owner->end_vertex()->particles_end(family); + ++p ) { + // if the particle has the correct flow code and is not yet in + // the set, then we recursively call connected_partners + for ( int index = code_index; index!=code_index+num_indices; + ++index ){ + if ( (*p)->flow(index)==code ) { + if ( *p!=m_particle_owner ) ++count_partners; + if ( not_in_vector(visited_particles,(*p)) ) { + visited_particles->push_back(*p); + (*p)->flow().dangling_connected_partners( output, + visited_particles, code, + code_index, num_indices ); + + } + } + } + } + } + // same for production_vertex + if ( m_particle_owner->production_vertex() ) { + for ( GenVertex::particle_iterator p = m_particle_owner-> + production_vertex()-> + particles_begin( family ); + p != m_particle_owner->production_vertex()-> + particles_end( family ); + ++p ) { + // if the particle has the correct flow code and is not yet in + // the set, then we recursively call connected_partners + for ( int index = code_index; index!=code_index+num_indices; + ++index ){ + if ( (*p)->flow(index)==code ) { + if ( *p!=m_particle_owner ) ++count_partners; + if ( not_in_vector(visited_particles,(*p)) ) { + visited_particles->push_back(*p); + (*p)->flow().dangling_connected_partners( output, + visited_particles, code, + code_index, num_indices ); + + } + } + } + } + } + if ( count_partners <= 1 ) output->push_back( m_particle_owner ); + } + + ///////////// + // Friends // + ///////////// + + /// send Flow informatin to ostr for printing + std::ostream& operator<<( std::ostream& ostr, const Flow& f ) { + ostr << f.m_icode.size(); + for ( std::map::const_iterator i = f.m_icode.begin(); + i != f.m_icode.end(); ++i ) { + ostr << " " << (*i).first << " " << (*i).second; + } + return ostr; + } + +} // HepMC + + + + + + + + + + + + + + + + + + diff --git a/TEvtGen/HepMC/Flow.h b/TEvtGen/HepMC/Flow.h new file mode 100644 index 00000000000..d55d055d21d --- /dev/null +++ b/TEvtGen/HepMC/Flow.h @@ -0,0 +1,215 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_FLOW_H +#define HEPMC_FLOW_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, January 2000, refer to: +// M. Dobbs and J.B. Hansen, "The HepMC C++ Monte Carlo Event Record for +// High Energy Physics", Computer Physics Communications (to be published). +// +// particle's flow object +// keeps track of an arbitrary number of flow patterns within a graph +// (i.e. color flow, charge flow, lepton number flow, ...) +// Flow patterns are coded with an integer, in the same manner as in Herwig. +// Note: 0 is NOT allowed as code index nor as flow code since it +// is used to indicate null. +////////////////////////////////////////////////////////////////////////// + +// This class can be used to keep track of flow patterns within +// a graph. An example is color flow. If we have two quarks going through +// an s-channel gluon to form two more quarks: +// +// \q1 /q3 then we can keep track of the color flow with the +// \_______/ HepMC::Flow class as follows: +// / g \. +// /q2 \q4 +// +// lets say the color flows from q2-->g-->q3 and q1-->g-->q4 +// the individual colors are unimportant, but the flow pattern is. +// We can capture this flow by assigning the first pattern (q2-->g-->q3) +// a unique (arbitrary) flow code 678 and the second pattern (q1-->g-->q4) +// flow code 269 ( you can ask HepMC::Flow to choose +// a unique code for you using Flow::set_unique_icode() ). +// The first two code indices are reserved for color codes, so we store +// these codes with the particles as follows: +// q2->flow().set_icode(1,678); +// g->flow().set_icode(1,678); +// q3->flow().set_icode(1,678); +// q1->flow().set_icode(1,269); +// g->flow().set_icode(2,269); +// q4->flow().set_icode(1,269); +// later on if we wish to know the color partner of q1 we can ask for a list +// of all particles connected via this code to q1 which do have less than +// 2 color partners using: +// vector result=q1->dangling_connected_partners(q1->icode(1),1,2); +// this will return a list containing q1 and q4. +// vector result=q1->connected_partners(q1->icode(1),1,2); +// would return a list containing q1, g, and q4. +// + +#include +#include +#include + +namespace HepMC { + + class GenParticle; + + //! The flow object + + /// + /// \class Flow + /// The particle's flow object + /// keeps track of an arbitrary number of flow patterns within a graph + /// (i.e. color flow, charge flow, lepton number flow, ...) + /// Flow patterns are coded with an integer, in the same manner as in Herwig. + class Flow { + + /// for printing + friend std::ostream& operator<<( std::ostream& ostr, const Flow& f ); + + public: + /// default constructor + Flow( GenParticle* particle_owner = 0 ); + /// copy + Flow( const Flow& ); + virtual ~Flow(); + /// swap + void swap( Flow & other); + /// make a copy + Flow& operator=( const Flow& ); + /// equality + bool operator==( const Flow& a ) const; //compares only flow + /// inequality + bool operator!=( const Flow& a ) const; //patterns not owner + + /// print Flow information to ostr + void print( std::ostream& ostr = std::cout ) const; + + /// returns all connected particles which have "code" in any of the + /// num_indices beginning with index code_index. + std::vector connected_partners( int code, int code_index =1, + int num_indices = 2 ) const; + /// same as connected_partners, but returns only those particles which + /// are connected to <=1 other particles (i.e. the flow line "dangles" + /// at these particles) + std::vector dangling_connected_partners( int code, + int code_index = 1, int num_indices = 2 ) const; + + //////////////////// + // access methods // + //////////////////// + + /// find particle owning this Flow + const GenParticle* particle_owner() const; + /// flow code + int icode( int code_index = 1 ) const; + /// set flow code + Flow set_icode( int code_index, int code ); + /// set unique flow code + Flow set_unique_icode( int code_index = 1 ); + + ////////////////////// + // container access // + ////////////////////// + + /// return true if there is no flow container + bool empty() const; + /// size of flow pattern container + int size() const; + /// clear flow patterns + void clear(); + /// empty flow pattern container + bool erase( int code_index ); + + /// iterator for flow pattern container + typedef std::map::iterator iterator; + /// const iterator for flow pattern container + typedef std::map::const_iterator const_iterator; + /// beginning of flow pattern container + iterator begin(); + /// end of flow pattern container + iterator end(); + /// beginning of flow pattern container + const_iterator begin() const; + /// end of flow pattern container + const_iterator end() const; + + protected: // intended for internal use only + /// for internal use only + void connected_partners( std::vector* output, + int code, + int code_index, + int num_indices ) const; + /// for internal use only + void dangling_connected_partners( std::vector* + output, + std::vector* + visited_particles, + int code, int code_index, + int num_indices ) const; + private: + GenParticle* m_particle_owner; + std::map m_icode; // stores flow patterns as(code_index,icode) + }; + + /////////////////////////// + // INLINE Access Methods // + /////////////////////////// + + inline const GenParticle* Flow::particle_owner() const { + return m_particle_owner; + } + inline int Flow::icode( int code_index ) const { + std::map::const_iterator a = m_icode.find(code_index); + return a==m_icode.end() ? 0 : (*a).second; + } + inline Flow Flow::set_icode( int code_index, int code ) { + m_icode[code_index] = code; + return *this; + } + inline Flow Flow::set_unique_icode( int flow_num ) { + /// use this method if you want to assign a unique flow code, but + /// do not want the burden of choosing it yourself + m_icode[flow_num] = size_t(this); + return *this; + } + inline bool Flow::empty() const { return (bool)m_icode.empty(); } + inline int Flow::size() const { return (int)m_icode.size(); } + inline void Flow::clear() { m_icode.clear(); } + inline bool Flow::erase( int code_index ) { + // this will return true if the number of elements removed is nonzero + return m_icode.erase( code_index )==0 ? false : true ; + } + inline Flow::iterator Flow::begin() { return m_icode.begin(); } + inline Flow::iterator Flow::end() { return m_icode.end(); } + inline Flow::const_iterator Flow::begin() const { return m_icode.begin(); } + inline Flow::const_iterator Flow::end() const { return m_icode.end(); } + + /////////////////////////// + // INLINE Operators // + /////////////////////////// + + inline bool Flow::operator==( const Flow& a ) const { + /// equivalent flows have the same flow codes for all flow_numbers + /// (i.e. their m_icode maps are identical), but they need not have the + /// same m_particle owner + return (m_icode == a.m_icode); + } + inline bool Flow::operator!=( const Flow& a ) const { + return !( *this == a ); + } + inline Flow& Flow::operator=( const Flow& inflow ) { + /// copies only the m_icode ... not the particle_owner + /// this is intuitive behaviour so you can do + /// oneparticle->flow() = otherparticle->flow() + // + m_icode = inflow.m_icode; + return *this; + } + +} // HepMC + +#endif // HEPMC_FLOW_H +//-------------------------------------------------------------------------- + diff --git a/TEvtGen/HepMC/GenCrossSection.cc b/TEvtGen/HepMC/GenCrossSection.cc new file mode 100644 index 00000000000..1e6a8ac2543 --- /dev/null +++ b/TEvtGen/HepMC/GenCrossSection.cc @@ -0,0 +1,106 @@ +//-------------------------------------------------------------------------- +////////////////////////////////////////////////////////////////////////// +// garren@fnal.gov, January 2009 +// +// The singleton GenCrossSection class holds run level information, +// such as the cross section. +// +////////////////////////////////////////////////////////////////////////// +//-------------------------------------------------------------------------- + +#include +#include + +#include "HepMC/GenCrossSection.h" +#include "HepMC/IO_Exception.h" + +namespace HepMC { + +GenCrossSection::GenCrossSection( GenCrossSection const & orig ) + : m_cross_section( orig.cross_section() ), + m_cross_section_error( orig.cross_section_error() ), + m_is_set( orig.is_set() ) +{} + +void GenCrossSection::swap( GenCrossSection & other) +{ + std::swap( m_cross_section, other.m_cross_section ); + std::swap( m_cross_section_error, other.m_cross_section_error ); + std::swap( m_is_set, other.m_is_set ); +} + +GenCrossSection & GenCrossSection::operator = ( GenCrossSection const & rhs ) +{ + GenCrossSection tmp( rhs ); + swap( tmp ); + return *this; +} + +bool GenCrossSection::operator==( const GenCrossSection& rhs ) const +{ + if( rhs.cross_section() != this->cross_section() ) return false; + if( rhs.cross_section_error() != this->cross_section_error() ) return false; + return true; +} + +bool GenCrossSection::operator!=( const GenCrossSection& rhs ) const +{ + return !( rhs == *this ); +} + + +void GenCrossSection::clear() +{ + m_cross_section = 0.0; + m_cross_section_error = 0.0; + m_is_set = false; +} + +std::ostream & GenCrossSection::write( std::ostream & os ) const +{ + // make sure the stream is valid + if ( !os ) { + std::cerr << "GenCrossSection::print !os, setting badbit" << std::endl; + os.clear(std::ios::badbit); + return os; + } + // write the GenCrossSection information if the cross section was set + if( is_set() ) { + os << "C " << m_cross_section + << " " << m_cross_section_error + << "\n"; + } + return os; +} + +std::istream & GenCrossSection::read( std::istream & is ) +{ + // make sure the stream is valid + if ( !is ) { + std::cerr << "GenCrossSection stream input setting badbit." << std::endl; + is.clear(std::ios::badbit); + return is; + } + // check to see if we have a GenCrossSection line + // This line is optional and may not exist + if ( is.peek()!='C' ) { + return is; + } + // get the GenCrossSection line + std::string line, firstc; + std::getline(is,line); + std::istringstream iline(line); + // Get first character and throw it away + iline >> firstc; + // Now get the numbers + double xs = 0., xserr = 0.; + iline >> xs ; + if(!iline) throw IO_Exception("GenCrossSection::read encounterd invalid data"); + iline >> xserr ; + if(!iline) throw IO_Exception("GenCrossSection::read encounterd invalid data"); + // set the data members + set_cross_section( xs, xserr ); + return is; +} + +} // HepMC diff --git a/TEvtGen/HepMC/GenCrossSection.h b/TEvtGen/HepMC/GenCrossSection.h new file mode 100644 index 00000000000..71195a12184 --- /dev/null +++ b/TEvtGen/HepMC/GenCrossSection.h @@ -0,0 +1,116 @@ +#ifndef HEPMC_GEN_CROSS_SECTION_H +#define HEPMC_GEN_CROSS_SECTION_H + +//-------------------------------------------------------------------------- +////////////////////////////////////////////////////////////////////////// +// garren@fnal.gov, May 2009 +// +////////////////////////////////////////////////////////////////////////// +//-------------------------------------------------------------------------- + +#include + +namespace HepMC { + +//! The GenCrossSection class stores the generated cross section + +/// +/// \class GenCrossSection +/// HepMC::GenCrossSection is used to store the generated cross section. +/// This class is meant to be used to pass, on an event by event basis, +/// the current best guess of the total cross section. +/// It is expected that the final cross section will be stored elsewhere. +/// +/// - double cross_section; // cross section in pb +/// - double cross_section_error; // error associated with this cross section +/// +/// The units of cross_section and cross_section_error are expected to be pb. +/// +/// GenCrossSection information will be written if GenEvent contains a pointer +/// to a valid GenCrossSection object. +/// +class GenCrossSection { + +public: + GenCrossSection() + : m_cross_section(0), + m_cross_section_error(0), + m_is_set(false) + {} + ~GenCrossSection() {} + + GenCrossSection( GenCrossSection const & orig ); //!< copy + + void swap( GenCrossSection & other); //!< swap + GenCrossSection & operator = ( GenCrossSection const & rhs ); //!< shallow + /// check for equality + bool operator==( const GenCrossSection& ) const; + /// check for inequality + bool operator!=( const GenCrossSection& ) const; + + + // --- accessors: + + /// cross section in pb + double cross_section() const { return m_cross_section; } + /// error associated with this cross section in pb + double cross_section_error() const { return m_cross_section_error; } + + /// True if the cross section has been set. False by default. + bool is_set() const { return m_is_set; } + + // --- mutators: + /// Set cross section and error in pb + void set_cross_section( double xs, double xs_err ); + /// set cross section in pb + void set_cross_section( double ); + /// set error associated with this cross section in pb + void set_cross_section_error( double ); + /// Clear all GenCrossSection info + /// (disables output of GenCrossSection until the cross section is set again) + void clear(); + + // --- I/O: + /// write to an output stream + std::ostream & write( std::ostream & ) const; + /// read from an input stream + std::istream & read( std::istream & ); + +private: // data members + double m_cross_section; + double m_cross_section_error; + bool m_is_set; + +}; + +// +// streaming I/O + +inline std::ostream & operator << ( std::ostream & os, GenCrossSection & xs ) +{ return xs.write(os); } + +inline std::istream & operator >> ( std::istream & is, GenCrossSection & xs ) +{ return xs.read(is); } + +// +// inline methods + +inline void GenCrossSection::set_cross_section( double xs, double xserr ) { + set_cross_section(xs); + set_cross_section_error(xserr); +} + +inline void GenCrossSection::set_cross_section( double xs ) +{ + m_cross_section = xs; + m_is_set = true; +} + +inline void GenCrossSection::set_cross_section_error( double xserr ) +{ + m_cross_section_error = xserr; +} + +} // HepMC + +#endif // HEPMC_GEN_CROSS_SECTION_H diff --git a/TEvtGen/HepMC/GenEvent.cc b/TEvtGen/HepMC/GenEvent.cc new file mode 100644 index 00000000000..0f7f6ed3288 --- /dev/null +++ b/TEvtGen/HepMC/GenEvent.cc @@ -0,0 +1,780 @@ +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, September 1999 +// Updated: 7.1.2000 iterators complete and working! +// Updated: 10.1.2000 GenEvent::vertex, particle iterators are made +// constant WRT this event ... note that +// GenVertex::***_iterator is not const, since it must +// be able to return a mutable pointer to itself. +// Updated: 08.2.2000 the event now holds a set of all attached vertices +// rather than just the roots of the graph +// Event record for MC generators (for use at any stage of generation) +////////////////////////////////////////////////////////////////////////// + +#include + +#include "HepMC/GenEvent.h" +#include "HepMC/GenCrossSection.h" +#include "HepMC/Version.h" +#include "HepMC/StreamHelpers.h" + +namespace HepMC { + + GenEvent::GenEvent( int signal_process_id, + int event_number, + GenVertex* signal_vertex, + const WeightContainer& weights, + const std::vector& random_states, + Units::MomentumUnit mom, + Units::LengthUnit len ) : + m_signal_process_id(signal_process_id), + m_event_number(event_number), + m_mpi(-1), + m_event_scale(-1), + m_alphaQCD(-1), + m_alphaQED(-1), + m_signal_process_vertex(signal_vertex), + m_beam_particle_1(0), + m_beam_particle_2(0), + m_weights(weights), + m_random_states(random_states), + m_vertex_barcodes(), + m_particle_barcodes(), + m_cross_section(0), + m_heavy_ion(0), + m_pdf_info(0), + m_momentum_unit(mom), + m_position_unit(len) + { + /// This constructor only allows null pointers to HeavyIon and PdfInfo + /// + /// note: default values for m_event_scale, m_alphaQCD, m_alphaQED + /// are as suggested in hep-ph/0109068, "Generic Interface..." + /// + } + + GenEvent::GenEvent( int signal_process_id, int event_number, + GenVertex* signal_vertex, + const WeightContainer& weights, + const std::vector& random_states, + const HeavyIon& ion, + const PdfInfo& pdf, + Units::MomentumUnit mom, + Units::LengthUnit len ) : + m_signal_process_id(signal_process_id), + m_event_number(event_number), + m_mpi(-1), + m_event_scale(-1), + m_alphaQCD(-1), + m_alphaQED(-1), + m_signal_process_vertex(signal_vertex), + m_beam_particle_1(0), + m_beam_particle_2(0), + m_weights(weights), + m_random_states(random_states), + m_vertex_barcodes(), + m_particle_barcodes(), + m_cross_section(0), + m_heavy_ion( new HeavyIon(ion) ), + m_pdf_info( new PdfInfo(pdf) ), + m_momentum_unit(mom), + m_position_unit(len) + { + /// GenEvent makes its own copy of HeavyIon and PdfInfo + /// + /// note: default values for m_event_scale, m_alphaQCD, m_alphaQED + /// are as suggested in hep-ph/0109068, "Generic Interface..." + } + + GenEvent::GenEvent( Units::MomentumUnit mom, + Units::LengthUnit len, + int signal_process_id, + int event_number, + GenVertex* signal_vertex, + const WeightContainer& weights, + const std::vector& random_states ) : + m_signal_process_id(signal_process_id), + m_event_number(event_number), + m_mpi(-1), + m_event_scale(-1), + m_alphaQCD(-1), + m_alphaQED(-1), + m_signal_process_vertex(signal_vertex), + m_beam_particle_1(0), + m_beam_particle_2(0), + m_weights(weights), + m_random_states(random_states), + m_vertex_barcodes(), + m_particle_barcodes(), + m_cross_section(0), + m_heavy_ion(0), + m_pdf_info(0), + m_momentum_unit(mom), + m_position_unit(len) + { + /// constructor requiring units - all else is default + /// This constructor only allows null pointers to HeavyIon and PdfInfo + /// + /// note: default values for m_event_scale, m_alphaQCD, m_alphaQED + /// are as suggested in hep-ph/0109068, "Generic Interface..." + /// + } + + GenEvent::GenEvent( Units::MomentumUnit mom, + Units::LengthUnit len, + int signal_process_id, int event_number, + GenVertex* signal_vertex, + const WeightContainer& weights, + const std::vector& random_states, + const HeavyIon& ion, + const PdfInfo& pdf ) : + m_signal_process_id(signal_process_id), + m_event_number(event_number), + m_mpi(-1), + m_event_scale(-1), + m_alphaQCD(-1), + m_alphaQED(-1), + m_signal_process_vertex(signal_vertex), + m_beam_particle_1(0), + m_beam_particle_2(0), + m_weights(weights), + m_random_states(random_states), + m_vertex_barcodes(), + m_particle_barcodes(), + m_cross_section(0), + m_heavy_ion( new HeavyIon(ion) ), + m_pdf_info( new PdfInfo(pdf) ), + m_momentum_unit(mom), + m_position_unit(len) + { + /// explicit constructor with units first that takes HeavyIon and PdfInfo + /// GenEvent makes its own copy of HeavyIon and PdfInfo + /// + /// note: default values for m_event_scale, m_alphaQCD, m_alphaQED + /// are as suggested in hep-ph/0109068, "Generic Interface..." + } + + GenEvent::GenEvent( const GenEvent& inevent ) + : m_signal_process_id ( inevent.signal_process_id() ), + m_event_number ( inevent.event_number() ), + m_mpi ( inevent.mpi() ), + m_event_scale ( inevent.event_scale() ), + m_alphaQCD ( inevent.alphaQCD() ), + m_alphaQED ( inevent.alphaQED() ), + m_signal_process_vertex( /* inevent.m_signal_process_vertex */ ), + m_beam_particle_1 ( /* inevent.m_beam_particle_1 */ ), + m_beam_particle_2 ( /* inevent.m_beam_particle_2 */ ), + m_weights ( /* inevent.m_weights */ ), + m_random_states ( /* inevent.m_random_states */ ), + m_vertex_barcodes ( /* inevent.m_vertex_barcodes */ ), + m_particle_barcodes ( /* inevent.m_particle_barcodes */ ), + m_cross_section ( inevent.cross_section() ? new GenCrossSection(*inevent.cross_section()) : 0 ), + m_heavy_ion ( inevent.heavy_ion() ? new HeavyIon(*inevent.heavy_ion()) : 0 ), + m_pdf_info ( inevent.pdf_info() ? new PdfInfo(*inevent.pdf_info()) : 0 ), + m_momentum_unit ( inevent.momentum_unit() ), + m_position_unit ( inevent.length_unit() ) + { + /// deep copy - makes a copy of all vertices! + // + + // 1. create a NEW copy of all vertices from inevent + // taking care to map new vertices onto the vertices being copied + // and add these new vertices to this event. + // We do not use GenVertex::operator= because that would copy + // the attached particles as well. + std::map map_in_to_new; + for ( GenEvent::vertex_const_iterator v = inevent.vertices_begin(); + v != inevent.vertices_end(); ++v ) { + GenVertex* newvertex = new GenVertex( + (*v)->position(), (*v)->id(), (*v)->weights() ); + newvertex->suggest_barcode( (*v)->barcode() ); + map_in_to_new[*v] = newvertex; + add_vertex( newvertex ); + } + // 2. copy the signal process vertex info. + if ( inevent.signal_process_vertex() ) { + set_signal_process_vertex( + map_in_to_new[inevent.signal_process_vertex()] ); + } else set_signal_process_vertex( 0 ); + // + // 3. create a NEW copy of all particles from inevent + // taking care to attach them to the appropriate vertex + GenParticle* beam1(0); + GenParticle* beam2(0); + for ( GenEvent::particle_const_iterator p = inevent.particles_begin(); + p != inevent.particles_end(); ++p ) + { + GenParticle* oldparticle = *p; + GenParticle* newparticle = new GenParticle(*oldparticle); + if ( oldparticle->end_vertex() ) { + map_in_to_new[ oldparticle->end_vertex() ]-> + add_particle_in(newparticle); + } + if ( oldparticle->production_vertex() ) { + map_in_to_new[ oldparticle->production_vertex() ]-> + add_particle_out(newparticle); + } + if ( oldparticle == inevent.beam_particles().first ) beam1 = newparticle; + if ( oldparticle == inevent.beam_particles().second ) beam2 = newparticle; + } + set_beam_particles( beam1, beam2 ); + // + // 4. now that vtx/particles are copied, copy weights and random states + set_random_states( inevent.random_states() ); + weights() = inevent.weights(); + } + + void GenEvent::swap( GenEvent & other ) + { + // if a container has a swap method, use that for improved performance + std::swap(m_signal_process_id , other.m_signal_process_id ); + std::swap(m_event_number , other.m_event_number ); + std::swap(m_mpi , other.m_mpi ); + std::swap(m_event_scale , other.m_event_scale ); + std::swap(m_alphaQCD , other.m_alphaQCD ); + std::swap(m_alphaQED , other.m_alphaQED ); + std::swap(m_signal_process_vertex, other.m_signal_process_vertex); + std::swap(m_beam_particle_1 , other.m_beam_particle_1 ); + std::swap(m_beam_particle_2 , other.m_beam_particle_2 ); + m_weights.swap( other.m_weights ); + m_random_states.swap( other.m_random_states ); + m_vertex_barcodes.swap( other.m_vertex_barcodes ); + m_particle_barcodes.swap( other.m_particle_barcodes ); + std::swap(m_cross_section , other.m_cross_section ); + std::swap(m_heavy_ion , other.m_heavy_ion ); + std::swap(m_pdf_info , other.m_pdf_info ); + std::swap(m_momentum_unit , other.m_momentum_unit ); + std::swap(m_position_unit , other.m_position_unit ); + // must now adjust GenVertex back pointers + for ( GenEvent::vertex_const_iterator vthis = vertices_begin(); + vthis != vertices_end(); ++vthis ) { + (*vthis)->change_parent_event_( this ); + } + for ( GenEvent::vertex_const_iterator voth = other.vertices_begin(); + voth != other.vertices_end(); ++voth ) { + (*voth)->change_parent_event_( &other ); + } + } + + GenEvent::~GenEvent() + { + /// Deep destructor. + /// deletes all vertices/particles in this GenEvent + /// deletes the associated HeavyIon and PdfInfo + delete_all_vertices(); + delete m_cross_section; + delete m_heavy_ion; + delete m_pdf_info; + } + + GenEvent& GenEvent::operator=( const GenEvent& inevent ) + { + /// best practices implementation + GenEvent tmp( inevent ); + swap( tmp ); + return *this; + } + + void GenEvent::print( std::ostream& ostr ) const { + /// dumps the content of this event to ostr + /// to dump to cout use: event.print(); + /// if you want to write this event to file outfile.txt you could use: + /// std::ofstream outfile("outfile.txt"); event.print( outfile ); + ostr << "________________________________________" + << "________________________________________\n"; + ostr << "GenEvent: #" << event_number() + << " ID=" << signal_process_id() + << " SignalProcessGenVertex Barcode: " + << ( signal_process_vertex() ? signal_process_vertex()->barcode() + : 0 ) + << "\n"; + write_units( ostr ); + write_cross_section(ostr); + ostr << " Entries this event: " << vertices_size() << " vertices, " + << particles_size() << " particles.\n"; + if( m_beam_particle_1 && m_beam_particle_2 ) { + ostr << " Beam Particle barcodes: " << beam_particles().first->barcode() << " " + << beam_particles().second->barcode() << " \n"; + } else { + ostr << " Beam Particles are not defined.\n"; + } + // Random State + ostr << " RndmState(" << m_random_states.size() << ")="; + for ( std::vector::const_iterator rs + = m_random_states.begin(); + rs != m_random_states.end(); ++rs ) { ostr << *rs << " "; } + ostr << "\n"; + // Weights + ostr << " Wgts(" << weights().size() << ")="; + weights().print(ostr); + ostr << " EventScale " << event_scale() + << " [energy] \t alphaQCD=" << alphaQCD() + << "\t alphaQED=" << alphaQED() << std::endl; + // print a legend to describe the particle info + ostr << " GenParticle Legend\n"; + ostr << " Barcode PDG ID " + << "( Px, Py, Pz, E )" + << " Stat DecayVtx\n"; + ostr << "________________________________________" + << "________________________________________\n"; + // Print all Vertices + for ( GenEvent::vertex_const_iterator vtx = this->vertices_begin(); + vtx != this->vertices_end(); ++vtx ) { + (*vtx)->print(ostr); + } + ostr << "________________________________________" + << "________________________________________" << std::endl; + } + + void GenEvent::print_version( std::ostream& ostr ) const { + ostr << "---------------------------------------------" << std::endl; + writeVersion( ostr ); + ostr << "---------------------------------------------" << std::endl; + } + + bool GenEvent::add_vertex( GenVertex* vtx ) { + /// returns true if successful - generally will only return false + /// if the inserted vertex is already included in the event. + if ( !vtx ) return false; + // if vtx previously pointed to another GenEvent, remove it from that + // GenEvent's list + if ( vtx->parent_event() && vtx->parent_event() != this ) { + bool remove_status = vtx->parent_event()->remove_vertex( vtx ); + if ( !remove_status ) { + std::cerr << "GenEvent::add_vertex ERROR " + << "GenVertex::parent_event points to \n" + << "an event that does not point back to the " + << "GenVertex. \n This probably indicates a deeper " + << "problem. " << std::endl; + } + } + // + // setting the vertex parent also inserts the vertex into this + // event + vtx->set_parent_event_( this ); + return ( m_vertex_barcodes.count(vtx->barcode()) ? true : false ); + } + + bool GenEvent::remove_vertex( GenVertex* vtx ) { + /// this removes vtx from the event but does NOT delete it. + /// returns True if an entry vtx existed in the table and was erased + if ( m_signal_process_vertex == vtx ) m_signal_process_vertex = 0; + if ( vtx->parent_event() == this ) vtx->set_parent_event_( 0 ); + return ( m_vertex_barcodes.count(vtx->barcode()) ? false : true ); + } + + void GenEvent::clear() + { + /// remove all information from the event + /// deletes all vertices/particles in this evt + /// + delete_all_vertices(); + // remove existing objects and set pointers to null + delete m_cross_section; + m_cross_section = 0; + delete m_heavy_ion; + m_heavy_ion = 0; + delete m_pdf_info; + m_pdf_info = 0; + m_signal_process_id = 0; + m_beam_particle_1 = 0; + m_beam_particle_2 = 0; + m_event_number = 0; + m_mpi = -1; + m_event_scale = -1; + m_alphaQCD = -1; + m_alphaQED = -1; + m_weights = std::vector(); + m_random_states = std::vector(); + // resetting unit information + m_momentum_unit = Units::default_momentum_unit(); + m_position_unit = Units::default_length_unit(); + // error check just to be safe + if ( m_vertex_barcodes.size() != 0 + || m_particle_barcodes.size() != 0 ) { + std::cerr << "GenEvent::clear() strange result ... \n" + << "either the particle and/or the vertex map isn't empty" << std::endl; + std::cerr << "Number vtx,particle the event after deleting = " + << m_vertex_barcodes.size() << " " + << m_particle_barcodes.size() << std::endl; + } + return; + } + + void GenEvent::delete_all_vertices() { + /// deletes all vertices in the vertex container + /// (i.e. all vertices owned by this event) + /// The vertices are the "owners" of the particles, so as we delete + /// the vertices, the vertex desctructors are automatically + /// deleting their particles. + + // delete each vertex individually (this deletes particles as well) + while ( !vertices_empty() ) { + GenVertex* vtx = ( m_vertex_barcodes.begin() )->second; + m_vertex_barcodes.erase( m_vertex_barcodes.begin() ); + delete vtx; + } + // + // Error checking: + if ( !vertices_empty() || ! particles_empty() ) { + std::cerr << "GenEvent::delete_all_vertices strange result ... " + << "after deleting all vertices, \nthe particle and " + << "vertex maps aren't empty.\n This probably " + << "indicates deeper problems or memory leak in the " + << "code." << std::endl; + std::cerr << "Number vtx,particle the event after deleting = " + << m_vertex_barcodes.size() << " " + << m_particle_barcodes.size() << std::endl; + } + } + + bool GenEvent::set_barcode( GenParticle* p, int suggested_barcode ) + { + if ( p->parent_event() != this ) { + std::cerr << "GenEvent::set_barcode attempted, but the argument's" + << "\n parent_event is not this ... request rejected." + << std::endl; + return false; + } + // M.Dobbs Nov 4, 2002 + // First we must check to see if the particle already has a + // barcode which is different from the suggestion. If yes, we + // remove it from the particle map. + if ( p->barcode() != 0 && p->barcode() != suggested_barcode ) { + if ( m_particle_barcodes.count(p->barcode()) && + m_particle_barcodes[p->barcode()] == p ) { + m_particle_barcodes.erase( p->barcode() ); + } + // At this point either the particle is NOT in + // m_particle_barcodes, or else it is in the map, but + // already with the suggested barcode. + } + // + // First case --- a valid barcode has been suggested + // (valid barcodes are numbers greater than zero) + bool insert_success = true; + if ( suggested_barcode > 0 ) { + if ( m_particle_barcodes.count(suggested_barcode) ) { + // the suggested_barcode is already used. + if ( m_particle_barcodes[suggested_barcode] == p ) { + // but it was used for this particle ... so everythings ok + p->set_barcode_( suggested_barcode ); + return true; + } + insert_success = false; + suggested_barcode = 0; + } else { // suggested barcode is OK, proceed to insert + m_particle_barcodes[suggested_barcode] = p; + p->set_barcode_( suggested_barcode ); + return true; + } + } + // + // Other possibility -- a valid barcode has not been suggested, + // so one is automatically generated + if ( suggested_barcode < 0 ) insert_success = false; + if ( suggested_barcode <= 0 ) { + if ( !m_particle_barcodes.empty() ) { + // in this case we find the highest barcode that was used, + // and increment it by 1 + suggested_barcode = m_particle_barcodes.rbegin()->first; + ++suggested_barcode; + } + // For the automatically assigned barcodes, the first one + // we use is 10001 ... this is just because when we read + // events from HEPEVT, we will suggest their index as the + // barcode, and that index has maximum value 10000. + // This way we will immediately be able to recognize the hepevt + // particles from the auto-assigned ones. + if ( suggested_barcode <= 10000 ) suggested_barcode = 10001; + } + // At this point we should have a valid barcode + if ( m_particle_barcodes.count(suggested_barcode) ) { + std::cerr << "GenEvent::set_barcode ERROR, this should never " + << "happen \n report bug to matt.dobbs@cern.ch" + << std::endl; + } + m_particle_barcodes[suggested_barcode] = p; + p->set_barcode_( suggested_barcode ); + return insert_success; + } + + bool GenEvent::set_barcode( GenVertex* v, int suggested_barcode ) + { + if ( v->parent_event() != this ) { + std::cerr << "GenEvent::set_barcode attempted, but the argument's" + << "\n parent_event is not this ... request rejected." + << std::endl; + return false; + } + // M.Dobbs Nov 4, 2002 + // First we must check to see if the vertex already has a + // barcode which is different from the suggestion. If yes, we + // remove it from the vertex map. + if ( v->barcode() != 0 && v->barcode() != suggested_barcode ) { + if ( m_vertex_barcodes.count(v->barcode()) && + m_vertex_barcodes[v->barcode()] == v ) { + m_vertex_barcodes.erase( v->barcode() ); + } + // At this point either the vertex is NOT in + // m_vertex_barcodes, or else it is in the map, but + // already with the suggested barcode. + } + + // + // First case --- a valid barcode has been suggested + // (valid barcodes are numbers greater than zero) + bool insert_success = true; + if ( suggested_barcode < 0 ) { + if ( m_vertex_barcodes.count(suggested_barcode) ) { + // the suggested_barcode is already used. + if ( m_vertex_barcodes[suggested_barcode] == v ) { + // but it was used for this vertex ... so everythings ok + v->set_barcode_( suggested_barcode ); + return true; + } + insert_success = false; + suggested_barcode = 0; + } else { // suggested barcode is OK, proceed to insert + m_vertex_barcodes[suggested_barcode] = v; + v->set_barcode_( suggested_barcode ); + return true; + } + } + // + // Other possibility -- a valid barcode has not been suggested, + // so one is automatically generated + if ( suggested_barcode > 0 ) insert_success = false; + if ( suggested_barcode >= 0 ) { + if ( !m_vertex_barcodes.empty() ) { + // in this case we find the highest barcode that was used, + // and increment it by 1, (vertex barcodes are negative) + suggested_barcode = m_vertex_barcodes.rbegin()->first; + --suggested_barcode; + } + if ( suggested_barcode >= 0 ) suggested_barcode = -1; + } + // At this point we should have a valid barcode + if ( m_vertex_barcodes.count(suggested_barcode) ) { + std::cerr << "GenEvent::set_barcode ERROR, this should never " + << "happen \n report bug to matt.dobbs@cern.ch" + << std::endl; + } + m_vertex_barcodes[suggested_barcode] = v; + v->set_barcode_( suggested_barcode ); + return insert_success; + } + + /// test to see if we have two valid beam particles + bool GenEvent::valid_beam_particles() const { + bool have1 = false; + bool have2 = false; + // first check that both are defined + if(m_beam_particle_1 && m_beam_particle_2) { + // now look for a match with the particle "list" + for ( particle_const_iterator p = particles_begin(); + p != particles_end(); ++p ) { + if( m_beam_particle_1 == *p ) have1 = true; + if( m_beam_particle_2 == *p ) have2 = true; + } + } + if( have1 && have2 ) return true; + return false; + } + + /// construct the beam particle information using pointers to GenParticle + /// returns false if either GenParticle* is null + bool GenEvent::set_beam_particles(GenParticle* bp1, GenParticle* bp2) { + m_beam_particle_1 = bp1; + m_beam_particle_2 = bp2; + if( m_beam_particle_1 && m_beam_particle_2 ) return true; + return false; + } + + /// construct the beam particle information using a std::pair of pointers to GenParticle + /// returns false if either GenParticle* is null + bool GenEvent::set_beam_particles(std::pair const & bp) { + return set_beam_particles(bp.first,bp.second); + } + + void GenEvent::write_units( std::ostream & os ) const { + os << " Momenutm units:" << std::setw(8) << name(momentum_unit()); + os << " Position units:" << std::setw(8) << name(length_unit()); + os << std::endl; + } + + void GenEvent::write_cross_section( std::ostream& os ) const + { + // write the GenCrossSection information if the cross section was set + if( !cross_section() ) return; + if( cross_section()->is_set() ) { + os << " Cross Section: " << cross_section()->cross_section() ; + os << " +/- " << cross_section()->cross_section_error() ; + os << std::endl; + } + } + + bool GenEvent::use_momentum_unit( Units::MomentumUnit newunit ) { + // currently not exception-safe. + // Easy to fix, though, if needed. + if ( m_momentum_unit != newunit ) { + const double factor = Units::conversion_factor( m_momentum_unit, newunit ); + // multiply all momenta by 'factor', + // loop is entered only if particle list is not empty + for ( GenEvent::particle_iterator p = particles_begin(); + p != particles_end(); ++p ) + { + (*p)->convert_momentum(factor); + } + // ... + m_momentum_unit = newunit; + } + return true; + } + + bool GenEvent::use_length_unit( Units::LengthUnit newunit ) { + // currently not exception-safe. + // Easy to fix, though, if needed. + if ( m_position_unit != newunit ) { + const double factor = Units::conversion_factor( m_position_unit, newunit ); + // multiply all lengths by 'factor', + // loop is entered only if vertex list is not empty + for ( GenEvent::vertex_iterator vtx = vertices_begin(); + vtx != vertices_end(); ++vtx ) { + (*vtx)->convert_position(factor); + } + // ... + m_position_unit = newunit; + } + return true; + } + + bool GenEvent::use_momentum_unit( std::string& newunit ) { + if ( newunit == "MEV" ) return use_momentum_unit( Units::MEV ); + else if( newunit == "GEV" ) return use_momentum_unit( Units::GEV ); + else std::cerr << "GenEvent::use_momentum_unit ERROR: use either MEV or GEV\n"; + return false; + } + + bool GenEvent::use_length_unit( std::string& newunit ) { + if ( newunit == "MM" ) return use_length_unit( Units::MM ); + else if( newunit == "CM" ) return use_length_unit( Units::CM ); + else std::cerr << "GenEvent::use_length_unit ERROR: use either MM or CM\n"; + return false; + } + + void GenEvent::define_units( std::string& new_m, std::string& new_l ) { + + if ( new_m == "MEV" ) m_momentum_unit = Units::MEV ; + else if( new_m == "GEV" ) m_momentum_unit = Units::GEV ; + else std::cerr << "GenEvent::define_units ERROR: use either MEV or GEV\n"; + + if ( new_l == "MM" ) m_position_unit = Units::MM ; + else if( new_l == "CM" ) m_position_unit = Units::CM ; + else std::cerr << "GenEvent::define_units ERROR: use either MM or CM\n"; + + } + + bool GenEvent::is_valid() const { + /// A GenEvent is presumed valid if it has both associated + /// particles and vertices. No other information is checked. + if ( vertices_empty() ) return false; + if ( particles_empty() ) return false; + return true; + } + + std::ostream & GenEvent::write_beam_particles(std::ostream & os, + std::pair pr ) + { + GenParticle* p = pr.first; + if(!p) { + detail::output( os, 0 ); + } else { + detail::output( os, p->barcode() ); + } + p = pr.second; + if(!p) { + detail::output( os, 0 ); + } else { + detail::output( os, p->barcode() ); + } + + return os; + } + + std::ostream & GenEvent::write_vertex(std::ostream & os, GenVertex const * v) + { + if ( !v || !os ) { + std::cerr << "GenEvent::write_vertex !v||!os, " + << "v="<< v << " setting badbit" << std::endl; + os.clear(std::ios::badbit); + return os; + } + // First collect info we need + // count the number of orphan particles going into v + int num_orphans_in = 0; + for ( GenVertex::particles_in_const_iterator p1 + = v->particles_in_const_begin(); + p1 != v->particles_in_const_end(); ++p1 ) { + if ( !(*p1)->production_vertex() ) ++num_orphans_in; + } + // + os << 'V'; + detail::output( os, v->barcode() ); // v's unique identifier + detail::output( os, v->id() ); + detail::output( os, v->position().x() ); + detail::output( os, v->position().y() ); + detail::output( os, v->position().z() ); + detail::output( os, v->position().t() ); + detail::output( os, num_orphans_in ); + detail::output( os, (int)v->particles_out_size() ); + detail::output( os, (int)v->weights().size() ); + for ( WeightContainer::const_iterator w = v->weights().begin(); + w != v->weights().end(); ++w ) { + detail::output( os, *w ); + } + detail::output( os,'\n'); + // incoming particles + for ( GenVertex::particles_in_const_iterator p2 + = v->particles_in_const_begin(); + p2 != v->particles_in_const_end(); ++p2 ) { + if ( !(*p2)->production_vertex() ) { + write_particle( os, *p2 ); + } + } + // outgoing particles + for ( GenVertex::particles_out_const_iterator p3 + = v->particles_out_const_begin(); + p3 != v->particles_out_const_end(); ++p3 ) { + write_particle( os, *p3 ); + } + return os; + } + + std::ostream & GenEvent::write_particle( std::ostream & os, GenParticle const * p ) + { + if ( !p || !os ) { + std::cerr << "GenEvent::write_particle !p||!os, " + << "p="<< p << " setting badbit" << std::endl; + os.clear(std::ios::badbit); + return os; + } + os << 'P'; + detail::output( os, p->barcode() ); + detail::output( os, p->pdg_id() ); + detail::output( os, p->momentum().px() ); + detail::output( os, p->momentum().py() ); + detail::output( os, p->momentum().pz() ); + detail::output( os, p->momentum().e() ); + detail::output( os, p->generated_mass() ); + detail::output( os, p->status() ); + detail::output( os, p->polarization().theta() ); + detail::output( os, p->polarization().phi() ); + // since end_vertex is oftentimes null, this CREATES a null vertex + // in the map + detail::output( os, ( p->end_vertex() ? p->end_vertex()->barcode() : 0 ) ); + os << ' ' << p->flow() << "\n"; + + return os; + } + +} // HepMC diff --git a/TEvtGen/HepMC/GenEvent.h b/TEvtGen/HepMC/GenEvent.h new file mode 100644 index 00000000000..17bac2c79e8 --- /dev/null +++ b/TEvtGen/HepMC/GenEvent.h @@ -0,0 +1,877 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_GEN_EVENT_H +#define HEPMC_GEN_EVENT_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, September 1999, refer to: +// M. Dobbs and J.B. Hansen, "The HepMC C++ Monte Carlo Event Record for +// High Energy Physics", Computer Physics Communications (to be published). +// +// Event record for MC generators (for use at any stage of generation) +////////////////////////////////////////////////////////////////////////// +// +// This class is intended as both a "container class" ( to store a MC +// event for interface between MC generators and detector simulation ) +// and also as a "work in progress class" ( that could be used inside +// a generator and modified as the event is built ). +// +// Iterators are provided which allow the user to easily obtain a +// list of particles or vertices in an event --- this list can be filled +// subject to some sort of selection criteria. Examples are given below +// ( see HepMC::copy_if and std::copy ) + +/// +/// \namespace HepMC +/// All classes in the HepMC packages are in the HepMC namespace +/// +namespace HepMC { + + // To create a list from an iterator, use: (i.e. for a list of particles); + // #include + // list thelist; + // copy( evt->particles_begin(), evt->particles_end(), + // back_inserter(thelist) ); + // to create a list subject to a condition (predicate) use: + // list thelist; + // HepMC::copy_if( evt->particles_begin(), evt->particles_end(), + // back_inserter(thelist), is_photon() ); + // where is_photon() is a predicate like: + // class is_photon { + // public: + // bool operator() ( GenParticle const * p ) { + // if ( p && p->pdg_id() == 22 ) return true; + // return false; + // } + // }; + // which the user defines herself. + + /// define the type of iterator to use + template + void copy_if( InputIterator first, InputIterator last, OutputIterator out, + Predicate pred ) { + for ( ; first != last; ++first ) { if ( pred(*first) ) out = *first; } + } +} // HepMC + +// Since a container of all vertices in the event is maintained, the time +// required to loop over all vertices (or particles) is very fast -- and +// the user does not gain much by first making his own list. +// (this is not true for the GenVertex:: versions of these iterators, which +// allow you to specify the vertex starting point and range) + +// Data Members: +// signal_process_id() The integer ID that uniquely specifies this signal +// process, i.e. MSUB in Pythia. It is necessary to +// package this with each event rather than with the run +// because many processes may be generated within one +// run. +// event_number() Strictly speaking we cannot think of any reason that +// an event would need to know its own event number, it +// is more likely something that would be assigned by +// a database. It is included anyway (tradition?) since +// we expect it may be useful for debugging. It can +// be reset later by a database. +// mpi() The number of multi parton interactions in the event. +// This is NOT beam pileup. Set to -1 by default. +// beam_particles() A pair of pointers to the incoming beam particles. +// signal_process_vertex() pointer to the vertex containing the signal process +// weights() Vector of doubles which specify th weight of the evnt, +// the first entry will be the "event weight" used for +// hit and miss etc., but a general vector is used to +// allow for reweighting etc. We envision a list of +// WeightTags to be included with a run class which +// would specify the meaning of the Weights . +// random_states() Vector of integers which specify the random number +// generator's state for this event. It is left to the +// generator to make use of this. We envision a vector of +// RndmStatesTags to be included with a run class which +// would specify the meaning of the random_states. +// +/////////////////////// +// Memory allocation // +/////////////////////// +// -When a vertex (particle) is added to a event (vertex), it is "adopted" +// and becomes the responsibility of the event (vertex) to delete that +// particle. +// -objects responsible for deleting memory: +// -events delete included vertices +// -each vertex deletes its outgoing particles which do not have decay +// vertices +// -each vertex deletes its incoming particles which do not +// have creation vertices +// +//////////////////////// +// About the Barcodes // +//////////////////////// +// - each vertex or particle has a barcode, which is just an integer which +// uniquely identifies it inside the event (i.e. there is a one to one +// mapping between particle memory addresses and particle barcodes... and +// the same applied for vertices) +// - The value of a barcode has NO MEANING and NO ORDER! +// For the user's convenience, when an event is read in via an IO_method +// from an indexed list (like the HEPEVT common block), then the index will +// become the barcode for that particle. +// - particle barcodes are always positive integers +// vertex barcodes are always negative integers +// The barcodes are chosen and set automatically when a vertex or particle +// comes under the ownership of an event (i.e. it is contained in an event). +// - You can tell when a particle or vertex is owned, because its +// parent_event() return value will return a pointer to the event which owns +// it (or null if its an orphan). +// - Please note that the barcodes are intended for internal use within HepMC +// as a unique identifier for the particles and vertices. +// Using the barcode to encode extra information is an abuse of +// the barcode data member and causes confusion among users. +// + +#include "HepMC/GenVertex.h" +#include "HepMC/GenParticle.h" +#include "HepMC/WeightContainer.h" +#include "HepMC/GenCrossSection.h" +#include "HepMC/HeavyIon.h" +#include "HepMC/PdfInfo.h" +#include "HepMC/Units.h" +#include "HepMC/HepMCDefs.h" +#include +#include +#include +#include +#include + +namespace HepMC { + + class GenEventVertexRange; + class ConstGenEventVertexRange; + class GenEventParticleRange; + class ConstGenEventParticleRange; + + //! The GenEvent class is the core of HepMC + + /// + /// \class GenEvent + /// HepMC::GenEvent contains information about generated particles. + /// GenEvent is structured as a set of vertices which contain the particles. + /// + class GenEvent { + friend class GenParticle; + friend class GenVertex; + public: + /// default constructor creates null pointers to HeavyIon, PdfInfo, and GenCrossSection + GenEvent( int signal_process_id = 0, int event_number = 0, + GenVertex* signal_vertex = 0, + const WeightContainer& weights = std::vector(), + const std::vector& randomstates = std::vector(), + Units::MomentumUnit = Units::default_momentum_unit(), + Units::LengthUnit = Units::default_length_unit() ); + /// explicit constructor that takes HeavyIon and PdfInfo + GenEvent( int signal_process_id, int event_number, + GenVertex* signal_vertex, const WeightContainer& weights, + const std::vector& randomstates, + const HeavyIon& ion, const PdfInfo& pdf, + Units::MomentumUnit = Units::default_momentum_unit(), + Units::LengthUnit = Units::default_length_unit() ); + /// constructor requiring units - all else is default + GenEvent( Units::MomentumUnit, Units::LengthUnit, + int signal_process_id = 0, int event_number = 0, + GenVertex* signal_vertex = 0, + const WeightContainer& weights = std::vector(), + const std::vector& randomstates = std::vector() ); + /// explicit constructor with units first that takes HeavyIon and PdfInfo + GenEvent( Units::MomentumUnit, Units::LengthUnit, + int signal_process_id, int event_number, + GenVertex* signal_vertex, const WeightContainer& weights, + const std::vector& randomstates, + const HeavyIon& ion, const PdfInfo& pdf ); + GenEvent( const GenEvent& inevent ); //!< deep copy + GenEvent& operator=( const GenEvent& inevent ); //!< make a deep copy + virtual ~GenEvent(); //! beam_particles() const; + /// check GenEvent for validity + /// A GenEvent is presumed valid if it has particles and/or vertices. + bool is_valid() const; + + /// direct access to the weights container is allowed. + /// Thus you can use myevt.weights()[2]; + /// to access element 2 of the weights. + /// or use myevt.weights().push_back( mywgt ); to add an element. + /// and you can set the weights with myevt.weights() = myvector; + WeightContainer& weights(); //!< direct access to WeightContainer + const WeightContainer& weights() const; //!< direct access to WeightContainer + + /// access the GenCrossSection container if it exists + GenCrossSection const * cross_section() const; + GenCrossSection* cross_section(); + /// access the HeavyIon container if it exists + HeavyIon const * heavy_ion() const; + HeavyIon* heavy_ion(); + /// access the PdfInfo container if it exists + PdfInfo const * pdf_info() const; + PdfInfo* pdf_info(); + + /// vector of integers containing information about the random state + const std::vector& random_states() const; + + /// how many particle barcodes exist? + int particles_size() const; + /// return true if there are no particle barcodes + bool particles_empty() const; + /// how many vertex barcodes exist? + int vertices_size() const; + /// return true if there are no vertex barcodes + bool vertices_empty() const; + + /// Write the unit information to an output stream. + /// If the output stream is not defined, use std::cout. + void write_units( std::ostream & os = std::cout ) const; + /// If the cross section is defined, + /// write the cross section information to an output stream. + /// If the output stream is not defined, use std::cout. + void write_cross_section( std::ostream& ostr = std::cout ) const; + + /// Units used by the GenParticle momentum FourVector. + Units::MomentumUnit momentum_unit() const; + /// Units used by the GenVertex position FourVector. + Units::LengthUnit length_unit() const; + + std::ostream& write(std::ostream&); + std::istream& read(std::istream&); + + ///////////////////// + // mutator methods // + ///////////////////// + + bool add_vertex( GenVertex* vtx ); //!< adds to evt and adopts + bool remove_vertex( GenVertex* vtx ); //!< erases vtx from evt + void clear(); //!< empties the entire event + + void set_signal_process_id( int id ); //!< set unique signal process id + void set_event_number( int eventno ); //!< set event number + void set_mpi( int ); //!< set number of multi parton interactions + void set_event_scale( double scale ); //!< set energy scale + void set_alphaQCD( double a ); //!< set QCD coupling + void set_alphaQED( double a ); //!< set QED coupling + + /// set pointer to the vertex containing the signal process + void set_signal_process_vertex( GenVertex* ); + /// set incoming beam particles + bool set_beam_particles(GenParticle*, GenParticle*); + /// use a pair of GenParticle*'s to set incoming beam particles + bool set_beam_particles(std::pair const &); + /// provide random state information + void set_random_states( const std::vector& randomstates ); + + /// provide a pointer to the GenCrossSection container + void set_cross_section( const GenCrossSection& ); + /// provide a pointer to the HeavyIon container + void set_heavy_ion( const HeavyIon& ion ); + /// provide a pointer to the PdfInfo container + void set_pdf_info( const PdfInfo& p ); + + /// set the units using enums + /// This method will convert momentum and position data if necessary + void use_units( Units::MomentumUnit, Units::LengthUnit ); + /// set the units using strings + /// the string must match the enum exactly + /// This method will convert momentum and position data if necessary + void use_units( std::string&, std::string& ); + + /// set the units using enums + /// This method will NOT convert momentum and position data + void define_units( Units::MomentumUnit, Units::LengthUnit ); + /// set the units using strings + /// the string must match the enum exactly + /// This method will NOT convert momentum and position data + void define_units( std::string&, std::string& ); + + /// vertex range + GenEventVertexRange vertex_range(); + /// vertex range + ConstGenEventVertexRange vertex_range() const; + /// particle range + GenEventParticleRange particle_range(); + /// particle range + ConstGenEventParticleRange particle_range() const; + + public: + /////////////////////////////// + // vertex_iterators // + /////////////////////////////// + // Note: the XXX_iterator is "resolvable" as XXX_const_iterator, but + // not the reverse, which is consistent with STL, + // see Musser, Derge, Saini 2ndEd. p. 69,70. + + //! const vertex iterator + + /// \class vertex_const_iterator + /// HepMC::GenEvent::vertex_const_iterator + /// is used to iterate over all vertices in the event. + class vertex_const_iterator : + public std::iterator{ + // Iterates over all vertices in this event + public: + /// constructor requiring vertex information + vertex_const_iterator( + const + std::map >::const_iterator& i) + : m_map_iterator(i) {} + vertex_const_iterator() {} + /// copy constructor + vertex_const_iterator( const vertex_const_iterator& i ) + { *this = i; } + virtual ~vertex_const_iterator() {} + /// make a copy + vertex_const_iterator& operator=( const vertex_const_iterator& i ) + { m_map_iterator = i.m_map_iterator; return *this; } + /// return a pointer to a GenVertex + GenVertex* operator*(void) const { return m_map_iterator->second; } + /// Pre-fix increment + vertex_const_iterator& operator++(void) //Pre-fix increment + { ++m_map_iterator; return *this; } + /// Post-fix increment + vertex_const_iterator operator++(int) //Post-fix increment + { vertex_const_iterator out(*this); ++(*this); return out; } + /// equality + bool operator==( const vertex_const_iterator& a ) const + { return m_map_iterator == a.m_map_iterator; } + /// inequality + bool operator!=( const vertex_const_iterator& a ) const + { return !(m_map_iterator == a.m_map_iterator); } + protected: + /// const iterator to a vertex map + std::map >::const_iterator + m_map_iterator; + private: + /// Pre-fix increment -- is not allowed + vertex_const_iterator& operator--(void); + /// Post-fix increment -- is not allowed + vertex_const_iterator operator--(int); + }; + friend class vertex_const_iterator; + /// begin vertex iteration + vertex_const_iterator vertices_begin() const + { return GenEvent::vertex_const_iterator( + m_vertex_barcodes.begin() ); } + /// end vertex iteration + vertex_const_iterator vertices_end() const + { return GenEvent::vertex_const_iterator( + m_vertex_barcodes.end() ); } + + + //! non-const vertex iterator + + /// \class vertex_iterator + /// HepMC::GenEvent::vertex_iterator + /// is used to iterate over all vertices in the event. + class vertex_iterator : + public std::iterator{ + // Iterates over all vertices in this event + public: + /// constructor requiring vertex information + vertex_iterator( + const + std::map >::iterator& i ) + : m_map_iterator( i ) {} + vertex_iterator() {} + /// copy constructor + vertex_iterator( const vertex_iterator& i ) { *this = i; } + virtual ~vertex_iterator() {} + /// make a copy + vertex_iterator& operator=( const vertex_iterator& i ) { + m_map_iterator = i.m_map_iterator; + return *this; + } + /// const vertex iterator + operator vertex_const_iterator() const + { return vertex_const_iterator(m_map_iterator); } + /// return a pointer to a GenVertex + GenVertex* operator*(void) const + { return m_map_iterator->second; } + /// Pre-fix increment + vertex_iterator& operator++(void) //Pre-fix increment + { ++m_map_iterator; return *this; } + /// Post-fix increment + vertex_iterator operator++(int) //Post-fix increment + { vertex_iterator out(*this); ++(*this); return out; } + /// equality + bool operator==( const vertex_iterator& a ) const + { return m_map_iterator == a.m_map_iterator; } + /// inequality + bool operator!=( const vertex_iterator& a ) const + { return !(m_map_iterator == a.m_map_iterator); } + protected: + /// iterator to the vertex map + std::map >::iterator + m_map_iterator; + private: + /// Pre-fix increment + vertex_iterator& operator--(void); + /// Post-fix increment + vertex_iterator operator--(int); + + }; + friend class vertex_iterator; + /// begin vertex iteration + vertex_iterator vertices_begin() + { return GenEvent::vertex_iterator( + m_vertex_barcodes.begin() ); } + /// end vertex iteration + vertex_iterator vertices_end() + { return GenEvent::vertex_iterator( + m_vertex_barcodes.end() ); } + + public: + /////////////////////////////// + // particle_iterator // + /////////////////////////////// + // Example of iterating over all particles in the event: + // for ( GenEvent::particle_const_iterator p = particles_begin(); + // p != particles_end(); ++p ) { + // (*p)->print(); + // } + // + + //! const particle iterator + + /// \class particle_const_iterator + /// HepMC::GenEvent::particle_const_iterator + /// is used to iterate over all particles in the event. + class particle_const_iterator : + public std::iterator{ + // Iterates over all vertices in this event + public: + /// iterate over particles + particle_const_iterator( + const std::map::const_iterator& i ) + : m_map_iterator(i) {} + particle_const_iterator() {} + /// copy constructor + particle_const_iterator( const particle_const_iterator& i ) + { *this = i; } + virtual ~particle_const_iterator() {} + /// make a copy + particle_const_iterator& operator=( + const particle_const_iterator& i ) + { m_map_iterator = i.m_map_iterator; return *this; } + /// return a pointer to GenParticle + GenParticle* operator*(void) const + { return m_map_iterator->second; } + /// Pre-fix increment + particle_const_iterator& operator++(void) //Pre-fix increment + { ++m_map_iterator; return *this; } + /// Post-fix increment + particle_const_iterator operator++(int) //Post-fix increment + { particle_const_iterator out(*this); ++(*this); return out; } + /// equality + bool operator==( const particle_const_iterator& a ) const + { return m_map_iterator == a.m_map_iterator; } + /// inequality + bool operator!=( const particle_const_iterator& a ) const + { return !(m_map_iterator == a.m_map_iterator); } + protected: + /// const iterator to the GenParticle map + std::map::const_iterator m_map_iterator; + private: + /// Pre-fix increment + particle_const_iterator& operator--(void); + /// Post-fix increment + particle_const_iterator operator--(int); + }; + friend class particle_const_iterator; + /// begin particle iteration + particle_const_iterator particles_begin() const + { return GenEvent::particle_const_iterator( + m_particle_barcodes.begin() ); } + /// end particle iteration + particle_const_iterator particles_end() const + { return GenEvent::particle_const_iterator( + m_particle_barcodes.end() ); } + + //! non-const particle iterator + + /// \class particle_iterator + /// HepMC::GenEvent::particle_iterator + /// is used to iterate over all particles in the event. + class particle_iterator : + public std::iterator{ + // Iterates over all vertices in this event + public: + /// iterate over particles + particle_iterator( const std::map::iterator& i ) + : m_map_iterator( i ) {} + particle_iterator() {} + /// copy constructor + particle_iterator( const particle_iterator& i ) { *this = i; } + virtual ~particle_iterator() {} + /// make a copy + particle_iterator& operator=( const particle_iterator& i ) { + m_map_iterator = i.m_map_iterator; + return *this; + } + /// const particle iterator + operator particle_const_iterator() const + { return particle_const_iterator(m_map_iterator); } + /// return pointer to GenParticle + GenParticle* operator*(void) const + { return m_map_iterator->second; } + /// Pre-fix increment + particle_iterator& operator++(void) + { ++m_map_iterator; return *this; } + /// Post-fix increment + particle_iterator operator++(int) + { particle_iterator out(*this); ++(*this); return out; } + /// equality + bool operator==( const particle_iterator& a ) const + { return m_map_iterator == a.m_map_iterator; } + /// inequality + bool operator!=( const particle_iterator& a ) const + { return !(m_map_iterator == a.m_map_iterator); } + protected: + /// iterator for GenParticle map + std::map::iterator m_map_iterator; + private: + /// Pre-fix increment + particle_iterator& operator--(void); + /// Post-fix increment + particle_iterator operator--(int); + }; + friend class particle_iterator; + /// begin particle iteration + particle_iterator particles_begin() + { return GenEvent::particle_iterator( + m_particle_barcodes.begin() ); } + /// end particle iteration + particle_iterator particles_end() + { return GenEvent::particle_iterator( + m_particle_barcodes.end() ); } + + //////////////////////////////////////////////// + protected: + // + // Following methods intended for use by GenParticle/Vertex classes: + // In general there is no reason they should be used elsewhere. + /// set the barcode - intended for use by GenParticle + bool set_barcode( GenParticle* p, int suggested_barcode =false ); + /// set the barcode - intended for use by GenVertex + bool set_barcode( GenVertex* v, int suggested_barcode =false ); + /// intended for use by GenParticle + void remove_barcode( GenParticle* p ); + /// intended for use by GenVertex + void remove_barcode( GenVertex* v ); + + void delete_all_vertices(); //! ); + /// send a GenVertex to ASCII output + std::ostream & write_vertex( std::ostream &, GenVertex const * ); + /// send a GenParticle to ASCII output + std::ostream & write_particle( std::ostream&, GenParticle const * ); + /// find the file type + std::istream & find_file_type( std::istream & ); + /// find the key at the end of the block + std::istream & find_end_key( std::istream &, int & ); + /// get unit information from ASCII input + std::istream & read_units( std::istream & ); + /// get weight names from ASCII input + std::istream & read_weight_names( std::istream & ); + /// read the event header line + std::istream & process_event_line( std::istream &, int &, int &, int &, int & ); + + private: // data members + int m_signal_process_id; + int m_event_number; + int m_mpi; // number of multi paricle interactions + double m_event_scale;// energy scale, see hep-ph/0109068 + double m_alphaQCD; // QCD coupling, see hep-ph/0109068 + double m_alphaQED; // QED coupling, see hep-ph/0109068 + GenVertex* m_signal_process_vertex; + GenParticle* m_beam_particle_1; + GenParticle* m_beam_particle_2; + WeightContainer m_weights; // weights for this event first weight + // is used by default for hit and miss + std::vector m_random_states; // container of rndm num + // generator states + + std::map< int,HepMC::GenVertex*,std::greater > m_vertex_barcodes; + std::map< int,HepMC::GenParticle*,std::less > m_particle_barcodes; + GenCrossSection* m_cross_section; // undefined by default + HeavyIon* m_heavy_ion; // undefined by default + PdfInfo* m_pdf_info; // undefined by default + Units::MomentumUnit m_momentum_unit; // default value set by configure switch + Units::LengthUnit m_position_unit; // default value set by configure switch + + }; + + + /////////////////////////// + // IO Free Functions // + /////////////////////////// + + /// standard streaming IO output operator + std::ostream & operator << (std::ostream &, GenEvent &); + /// standard streaming IO input operator + std::istream & operator >> (std::istream &, GenEvent &); + /// set the units for this input stream + std::istream & set_input_units(std::istream &, + Units::MomentumUnit, Units::LengthUnit); + /// Explicitly write the begin block lines that IO_GenEvent uses + std::ostream & write_HepMC_IO_block_begin(std::ostream & ); + /// Explicitly write the end block line that IO_GenEvent uses + std::ostream & write_HepMC_IO_block_end(std::ostream & ); + + + /////////////////////////// + // INLINE Free Functions // + /////////////////////////// + + // Implemented in terms of GenEvent::use_... + inline GenEvent& convert_units(GenEvent & evt, Units::MomentumUnit m, Units::LengthUnit l) + { + evt.use_units(m, l); + return evt; + } + + /////////////////////////// + // INLINE Access Methods // + /////////////////////////// + + /// The integer ID that uniquely specifies this signal + /// process, i.e. MSUB in Pythia. It is necessary to + /// package this with each event rather than with the run + /// because many processes may be generated within one run. + inline int GenEvent::signal_process_id() const + { return m_signal_process_id; } + + inline int GenEvent::event_number() const { return m_event_number; } + + /// Returns the number of multi parton interactions in the event. + /// This number is -1 if it is not set. + inline int GenEvent::mpi() const { return m_mpi; } + + inline double GenEvent::event_scale() const { return m_event_scale; } + + inline double GenEvent::alphaQCD() const { return m_alphaQCD; } + + inline double GenEvent::alphaQED() const { return m_alphaQED; } + + inline GenVertex* GenEvent::signal_process_vertex() const { + /// returns a (mutable) pointer to the signal process vertex + return m_signal_process_vertex; + } + + inline WeightContainer& GenEvent::weights() { return m_weights; } + + inline const WeightContainer& GenEvent::weights() const + { return m_weights; } + + inline GenCrossSection const * GenEvent::cross_section() const + { return m_cross_section; } + + inline GenCrossSection* GenEvent::cross_section() + { return m_cross_section; } + + inline HeavyIon const * GenEvent::heavy_ion() const + { return m_heavy_ion; } + + inline HeavyIon* GenEvent::heavy_ion() + { return m_heavy_ion; } + + inline PdfInfo const * GenEvent::pdf_info() const + { return m_pdf_info; } + + inline PdfInfo* GenEvent::pdf_info() + { return m_pdf_info; } + + /// Vector of integers which specify the random number + /// generator's state for this event. It is left to the + /// generator to make use of this. We envision a vector of + /// RndmStatesTags to be included with a run class which + /// would specify the meaning of the random_states. + inline const std::vector& GenEvent::random_states() const + { return m_random_states; } + + inline void GenEvent::set_signal_process_id( int id ) + { m_signal_process_id = id; } + + inline void GenEvent::set_event_number( int eventno ) + { m_event_number = eventno; } + + /// Use this to set the number of multi parton interactions in each event. + inline void GenEvent::set_mpi( int nmpi ) + { m_mpi = nmpi; } + + + inline void GenEvent::set_event_scale( double sc ) { m_event_scale = sc; } + + inline void GenEvent::set_alphaQCD( double a ) { m_alphaQCD = a; } + + inline void GenEvent::set_alphaQED( double a ) { m_alphaQED = a; } + + inline void GenEvent::set_signal_process_vertex( GenVertex* vtx ) { + m_signal_process_vertex = vtx; + if ( m_signal_process_vertex ) add_vertex( m_signal_process_vertex ); + } + + inline void GenEvent::set_cross_section( const GenCrossSection& xs ) + { + delete m_cross_section; + m_cross_section = new GenCrossSection(xs); + } + + inline void GenEvent::set_heavy_ion( const HeavyIon& ion ) + { + delete m_heavy_ion; + m_heavy_ion = new HeavyIon(ion); + } + + inline void GenEvent::set_pdf_info( const PdfInfo& p ) + { + delete m_pdf_info; + m_pdf_info = new PdfInfo(p); + } + + inline void GenEvent::set_random_states( const std::vector& + randomstates ) + { m_random_states = randomstates; } + + inline void GenEvent::remove_barcode( GenParticle* p ) + { m_particle_barcodes.erase( p->barcode() ); } + + inline void GenEvent::remove_barcode( GenVertex* v ) + { m_vertex_barcodes.erase( v->barcode() ); } + + /// Each vertex or particle has a barcode, which is just an integer which + /// uniquely identifies it inside the event (i.e. there is a one to one + /// mapping between particle memory addresses and particle barcodes... and + /// the same applied for vertices). + /// + /// The value of a barcode has NO MEANING and NO ORDER! + /// For the user's convenience, when an event is read in via an IO_method + /// from an indexed list (like the HEPEVT common block), then the index will + /// become the barcode for that particle. + /// + /// Particle barcodes are always positive integers. + /// The barcodes are chosen and set automatically when a vertex or particle + /// comes under the ownership of an event (i.e. it is contained in an event). + /// + /// Please note that the barcodes are intended for internal use within + /// HepMC as a unique identifier for the particles and vertices. + /// Using the barcode to encode extra information is an abuse of + /// the barcode data member and causes confusion among users. + inline GenParticle* GenEvent::barcode_to_particle( int barCode ) const + { + std::map::const_iterator i + = m_particle_barcodes.find(barCode); + return ( i != m_particle_barcodes.end() ) ? (*i).second : 0; + } + + /// Each vertex or particle has a barcode, which is just an integer which + /// uniquely identifies it inside the event (i.e. there is a one to one + /// mapping between particle memory addresses and particle barcodes... and + /// the same applied for vertices). + /// + /// The value of a barcode has NO MEANING and NO ORDER! + /// For the user's convenience, when an event is read in via an IO_method + /// from an indexed list (like the HEPEVT common block), then the index will + /// become the barcode for that particle. + /// + /// Vertex barcodes are always negative integers. + /// The barcodes are chosen and set automatically when a vertex or particle + /// comes under the ownership of an event (i.e. it is contained in an event). + /// + /// Please note that the barcodes are intended for internal use within + /// HepMC as a unique identifier for the particles and vertices. + /// Using the barcode to encode extra information is an abuse of + /// the barcode data member and causes confusion among users. + inline GenVertex* GenEvent::barcode_to_vertex( int barCode ) const + { + std::map >::const_iterator i + = m_vertex_barcodes.find(barCode); + return ( i != m_vertex_barcodes.end() ) ? (*i).second : 0; + } + + inline int GenEvent::particles_size() const { + return (int)m_particle_barcodes.size(); + } + inline bool GenEvent::particles_empty() const { + return (bool)m_particle_barcodes.empty(); + } + inline int GenEvent::vertices_size() const { + return (int)m_vertex_barcodes.size(); + } + inline bool GenEvent::vertices_empty() const { + return (bool)m_vertex_barcodes.empty(); + } + + // beam particles + inline std::pair GenEvent::beam_particles() const { + return std::pair (m_beam_particle_1, m_beam_particle_2); + } + + // units + inline Units::MomentumUnit GenEvent::momentum_unit() const { + return m_momentum_unit; + } + inline Units::LengthUnit GenEvent::length_unit() const { + return m_position_unit; + } + + inline void GenEvent::use_units( Units::MomentumUnit new_m, Units::LengthUnit new_l ) { + use_momentum_unit( new_m ); + use_length_unit( new_l ); + } + + inline void GenEvent::use_units( std::string& new_m, std::string& new_l ) { + use_momentum_unit( new_m ); + use_length_unit( new_l ); + } + + inline void GenEvent::define_units( Units::MomentumUnit new_m, Units::LengthUnit new_l ) { + m_momentum_unit = new_m; + m_position_unit = new_l; + } + +} // HepMC + +#endif // HEPMC_GEN_EVENT_H + +//-------------------------------------------------------------------------- + + diff --git a/TEvtGen/HepMC/GenEventStreamIO.cc b/TEvtGen/HepMC/GenEventStreamIO.cc new file mode 100644 index 00000000000..e08b20cd2b6 --- /dev/null +++ b/TEvtGen/HepMC/GenEventStreamIO.cc @@ -0,0 +1,799 @@ +//-------------------------------------------------------------------------- +// +// GenEventStreamIO.cc +// Author: Lynn Garren +// +// Implement operator >> and operator << +// +// ---------------------------------------------------------------------- + +#include +#include +#include +#include + +#include "HepMC/GenEvent.h" +#include "HepMC/GenCrossSection.h" +#include "HepMC/StreamInfo.h" +#include "HepMC/StreamHelpers.h" +#include "HepMC/Version.h" +#include "HepMC/IO_Exception.h" + +namespace HepMC { + +// ------------------------- local methods ---------------- + +/// This method is called by the stream destructor. +/// It does cleanup on stored user data (StreamInfo) +/// and is registered by the first call to get_stream_info(). +void HepMCStreamCallback(std::ios_base::event e, std::ios_base& b, int i) +{ + // only clean up if the stream object is going away. + if(i!=0 && e!= std::ios_base::erase_event) return; + + // retrieve the pointer to the object + StreamInfo* hd = (StreamInfo*)b.pword(i); + b.pword(i) = 0; + b.iword(i) = 0; +#ifdef HEPMC_DEBUG + // the following line is just for sanity checking + if(hd) std::cerr << "deleted StreamInfo " << hd->stream_id() << "\n"; +#endif + delete hd; +} + +// ------------------------- iomanip ---------------- + +/// A custom iomanip that allows us to store and access user data (StreamInfo) +/// associated with the stream. +/// This method creates the StreamInfo object the first time it is called. +template +StreamInfo& get_stream_info(IO& iost) +{ + if(iost.iword(0) == 0) + { + // make sure we add the callback if this is the first time through + iost.iword(0)=1; + iost.register_callback(&HepMCStreamCallback, 0); + // this is our special "context" record. + // there is one of these at the head of each IO block. + // allocate room for a StreamInfo in the userdata area + iost.pword(0) = new StreamInfo; +#ifdef HEPMC_DEBUG + // the following line is just for sanity checking + std::cerr << "created StreamInfo " << ((StreamInfo*)iost.pword(0))->stream_id() << "\n"; +#endif + } + return *(StreamInfo*)iost.pword(0); +} + +// ------------------------- GenEvent member functions ---------------- + +std::ostream& GenEvent::write( std::ostream& os ) +{ + /// Writes evt to an output stream. + + // + StreamInfo & info = get_stream_info(os); + // + // if this is the first event, set precision + if ( !info.finished_first_event() ) { + // precision 16 (# digits following decimal point) is the minimum that + // will capture the full information stored in a double + // However, we let the user set precision, since that is the expected functionality + // we use decimal to store integers, because it is smaller than hex! + os.setf(std::ios::dec,std::ios::basefield); + os.setf(std::ios::scientific,std::ios::floatfield); + // + info.set_finished_first_event(true); + } + // + // output the event data including the number of primary vertices + // and the total number of vertices + //std::vector random_states = random_states(); + os << 'E'; + detail::output( os, event_number() ); + detail::output( os, mpi() ); + detail::output( os, event_scale() ); + detail::output( os, alphaQCD() ); + detail::output( os, alphaQED() ); + detail::output( os, signal_process_id() ); + detail::output( os, ( signal_process_vertex() ? + signal_process_vertex()->barcode() : 0 ) ); + detail::output( os, vertices_size() ); // total number of vertices. + write_beam_particles( os, beam_particles() ); + // random state + detail::output( os, (int)m_random_states.size() ); + for ( std::vector::iterator rs = m_random_states.begin(); + rs != m_random_states.end(); ++rs ) { + detail::output( os, *rs ); + } + // weights + // we need to iterate over the map so that the weights printed + // here will be in the same order as the names printed next + os << ' ' << (int)weights().size() ; + for ( WeightContainer::const_map_iterator w = weights().map_begin(); + w != weights().map_end(); ++w ) { + detail::output( os, m_weights[w->second] ); + } + detail::output( os,'\n'); + // now add names for weights + // note that this prints a new line if and only if the weight container + // is not empty + if ( ! weights().empty() ) { + os << "N " << weights().size() << " " ; + for ( WeightContainer::const_map_iterator w = weights().map_begin(); + w != weights().map_end(); ++w ) { + detail::output( os,'"'); + os << w->first; + detail::output( os,'"'); + detail::output( os,' '); + } + detail::output( os,'\n'); + } + // + // Units + os << "U " << name(momentum_unit()); + os << " " << name(length_unit()); + detail::output( os,'\n'); + // + // write GenCrossSection if it has been set + if( m_cross_section ) m_cross_section->write(os); + // + // write HeavyIon and PdfInfo if they have been set + if( m_heavy_ion ) os << heavy_ion() ; + if( m_pdf_info ) os << pdf_info() ; + // + // Output all of the vertices - note there is no real order. + for ( GenEvent::vertex_const_iterator v = vertices_begin(); + v != vertices_end(); ++v ) { + write_vertex(os, *v); + } + return os; +} + +std::istream& GenEvent::read( std::istream& is ) +{ + /// read a GenEvent from streaming input + // + StreamInfo & info = get_stream_info(is); + clear(); + // + // search for event listing key before first event only. + if ( !info.finished_first_event() ) { + // + find_file_type(is); + info.set_finished_first_event(true); + } + // + // make sure the stream is good + if ( !is ) { + std::cerr << "streaming input: end of stream found " + << "setting badbit." << std::endl; + is.clear(std::ios::badbit); + return is; + } + + // + // test to be sure the next entry is of type "E" then ignore it + if ( is.peek()!='E' ) { + // if the E is not the next entry, then check to see if it is + // the end event listing key - if yes, search for another start key + int ioendtype; + find_end_key(is,ioendtype); + if ( ioendtype == info.io_type() ) { + find_file_type(is); + // are we at the end of the file? + if( !is ) return is; + } else if ( ioendtype > 0 ) { + std::cerr << "streaming input: end key does not match start key " + << "setting badbit." << std::endl; + is.clear(std::ios::badbit); + return is; + } else if ( !info.has_key() ) { + find_file_type(is); + // are we at the end of the file? + if( !is ) return is; + } else { + std::cerr << "streaming input: end key not found " + << "setting badbit." << std::endl; + is.clear(std::ios::badbit); + return is; + } + } + + int signal_process_vertex = 0; + int num_vertices = 0, bp1 = 0, bp2 = 0; + bool units_line = false; + // OK - now ready to start reading the event, so set the header flag + info.set_reading_event_header(true); + // The flag will be set to false when we reach the end of the header + while(info.reading_event_header()) { + switch(is.peek()) { + case 'E': + { // deal with the event line + process_event_line( is, num_vertices, bp1, bp2, signal_process_vertex ); + } break; + case 'N': + { // get weight names + read_weight_names( is ); + } break; + case 'U': + { // get unit information if it exists + units_line = true; + if( info.io_type() == gen ) { + read_units( is ); + } + } break; + case 'C': + { // we have a GenCrossSection line + // create cross section + GenCrossSection xs; + // check for invalid data + try { + // read the line + xs.read(is); + } + catch (IO_Exception& e) { + detail::find_event_end( is ); + } + if(xs.is_set()) { + set_cross_section( xs ); + } + } break; + case 'H': + { // we have a HeavyIon line OR an unexpected HepMC... line + if( info.io_type() == gen || info.io_type() == extascii ) { + // get HeavyIon + HeavyIon ion; + // check for invalid data + try { + is >> &ion; + } + catch (IO_Exception& e) { + detail::find_event_end( is ); + } + if(ion.is_valid()) { + set_heavy_ion( ion ); + } + } + } break; + case 'F': + { // we have a PdfInfo line + if( info.io_type() == gen || info.io_type() == extascii ) { + // get PdfInfo + PdfInfo pdf; + // check for invalid data + try { + is >> &pdf; + } + catch (IO_Exception& e) { + detail::find_event_end( is ); + } + if(pdf.is_valid()) { + set_pdf_info( pdf ); + } + } + } break; + case 'V': + { + // this should be the first vertex line - exit this loop + info.set_reading_event_header(false); + } break; + case 'P': + { // we should not find this line + std::cerr << "streaming input: found unexpected line P" << std::endl; + info.set_reading_event_header(false); + } break; + default: + // ignore everything else + break; + } // switch on line type + } // while reading_event_header + // before proceeding - did we find a units line? + if( !units_line ) { + use_units( info.io_momentum_unit(), + info.io_position_unit() ); + } + // + // the end vertices of the particles are not connected until + // after the event is read --- we store the values in a map until then + TempParticleMap particle_to_end_vertex; + // + // read in the vertices + for ( int iii = 1; iii <= num_vertices; ++iii ) { + GenVertex* v = new GenVertex(); + try { + detail::read_vertex(is,particle_to_end_vertex,v); + } + catch (IO_Exception& e) { + for( TempParticleMap::orderIterator it = particle_to_end_vertex.order_begin(); + it != particle_to_end_vertex.order_end(); ++it ) { + GenParticle* p = it->second; + // delete particles only if they are not already owned by a vertex + if( p->production_vertex() ) { + } else if( p->end_vertex() ) { + } else { + delete p; + } + } + delete v; + detail::find_event_end( is ); + } + add_vertex( v ); + } + // set the signal process vertex + if ( signal_process_vertex ) { + set_signal_process_vertex( + barcode_to_vertex(signal_process_vertex) ); + } + // + // last connect particles to their end vertices + GenParticle* beam1(0); + GenParticle* beam2(0); + for ( TempParticleMap::orderIterator pmap + = particle_to_end_vertex.order_begin(); + pmap != particle_to_end_vertex.order_end(); ++pmap ) { + GenParticle* p = pmap->second; + int vtx = particle_to_end_vertex.end_vertex( p ); + GenVertex* itsDecayVtx = barcode_to_vertex(vtx); + if ( itsDecayVtx ) itsDecayVtx->add_particle_in( p ); + else { + std::cerr << "read_io_genevent: ERROR particle points" + << " to null end vertex. " <barcode() == bp1 ) beam1 = p; + if( p->barcode() == bp2 ) beam2 = p; + } + set_beam_particles(beam1,beam2); + return is; +} + +// ------------------------- operator << and operator >> ---------------- + +std::ostream & operator << (std::ostream & os, GenEvent & evt) +{ + /// Writes evt to an output stream. + evt.write(os); + return os; +} + +std::istream & operator >> (std::istream & is, GenEvent & evt) +{ + evt.read(is); + return is; +} + +// ------------------------- set units ---------------- + +std::istream & set_input_units(std::istream & is, + Units::MomentumUnit mom, + Units::LengthUnit len ) +{ + // + StreamInfo & info = get_stream_info(is); + info.use_input_units( mom, len ); + return is; +} + +// ------------------------- begin and end block lines ---------------- + +std::ostream & write_HepMC_IO_block_begin(std::ostream & os ) +{ + // + StreamInfo & info = get_stream_info(os); + + if( !info.finished_first_event() ) { + os << "\n" << "HepMC::Version " << versionName(); + os << "\n"; + os << info.IO_GenEvent_Key() << "\n"; + } + return os; +} + +std::ostream & write_HepMC_IO_block_end(std::ostream & os ) +{ + // + StreamInfo & info = get_stream_info(os); + + if( info.finished_first_event() ) { + os << info.IO_GenEvent_End() << "\n"; + os << std::flush; + } + return os; +} + +std::istream & GenEvent::process_event_line( std::istream & is, + int & num_vertices, + int & bp1, int & bp2, + int & signal_process_vertex ) +{ + // + if ( !is ) { + std::cerr << "GenEvent::process_event_line setting badbit." << std::endl; + is.clear(std::ios::badbit); + return is; + } + // + StreamInfo & info = get_stream_info(is); + std::string line; + std::getline(is,line); + std::istringstream iline(line); + std::string firstc; + iline >> firstc; + // + // read values into temp variables, then fill GenEvent + int event_number = 0, signal_process_id = 0, + random_states_size = 0, nmpi = -1; + double eventScale = 0, alpha_qcd = 0, alpha_qed = 0; + iline >> event_number; + if(!iline) detail::find_event_end( is ); + if( info.io_type() == gen || info.io_type() == extascii ) { + iline >> nmpi; + if(!iline) detail::find_event_end( is ); + set_mpi( nmpi ); + } + iline >> eventScale ; + if(!iline) detail::find_event_end( is ); + iline >> alpha_qcd ; + if(!iline) detail::find_event_end( is ); + iline >> alpha_qed; + if(!iline) detail::find_event_end( is ); + iline >> signal_process_id ; + if(!iline) detail::find_event_end( is ); + iline >> signal_process_vertex; + if(!iline) detail::find_event_end( is ); + iline >> num_vertices; + if(!iline) detail::find_event_end( is ); + if( info.io_type() == gen || info.io_type() == extascii ) { + iline >> bp1 ; + if(!iline) detail::find_event_end( is ); + iline >> bp2; + if(!iline) detail::find_event_end( is ); + } + iline >> random_states_size; + if(!iline) detail::find_event_end( is ); + std::vector random_states(random_states_size); + for ( int i = 0; i < random_states_size; ++i ) { + iline >> random_states[i]; + if(!iline) detail::find_event_end( is ); + } + WeightContainer::size_type weights_size = 0; + iline >> weights_size; + if(!iline) detail::find_event_end( is ); + std::vector wgt(weights_size); + for ( WeightContainer::size_type ii = 0; ii < weights_size; ++ii ) { + iline >> wgt[ii]; + if(!iline) detail::find_event_end( is ); + } + // weight names will be added later if they exist + if( weights_size > 0 ) m_weights = wgt; + // + // fill signal_process_id, event_number, random_states, etc. + set_signal_process_id( signal_process_id ); + set_event_number( event_number ); + set_random_states( random_states ); + set_event_scale( eventScale ); + set_alphaQCD( alpha_qcd ); + set_alphaQED( alpha_qed ); + // + return is; +} + +std::istream & GenEvent::read_weight_names( std::istream & is ) +{ + // now check for a named weight line + if ( !is ) { + std::cerr << "GenEvent::read_weight_names setting badbit." << std::endl; + is.clear(std::ios::badbit); + return is; + } + // Test to be sure the next entry is of type "N" + // If we have no named weight line, this is not an error + // releases prior to 2.06.00 do not have named weights + if ( is.peek() !='N') { + return is; + } + // now get this line and process it + std::string line; + std::getline(is,line); + std::istringstream wline(line); + std::string firstc; + WeightContainer::size_type name_size = 0; + wline >> firstc >> name_size; + if(!wline) detail::find_event_end( is ); + if( firstc != "N") { + std::cout << "debug: first character of named weights is " << firstc << std::endl; + std::cout << "debug: We should never get here" << std::endl; + is.clear(std::ios::badbit); + return is; + } + if( m_weights.size() != name_size ) { + std::cout << "debug: weight sizes do not match "<< std::endl; + std::cout << "debug: weight vector size is " << m_weights.size() << std::endl; + std::cout << "debug: weight name size is " << name_size << std::endl; + is.clear(std::ios::badbit); + return is; + } + std::string name; + std::string::size_type i1 = line.find("\""); + std::string::size_type i2; + std::string::size_type len = line.size(); + WeightContainer namedWeight; + for ( WeightContainer::size_type ii = 0; ii < name_size; ++ii ) { + // weight names may contain blanks + if(i1 >= len) { + std::cout << "debug: attempting to read past the end of the named weight line " << std::endl; + std::cout << "debug: We should never get here" << std::endl; + std::cout << "debug: Looking for the end of this event" << std::endl; + detail::find_event_end( is ); + } + i2 = line.find("\"",i1+1); + name = line.substr(i1+1,i2-i1-1); + namedWeight[name] = m_weights[ii]; + i1 = line.find("\"",i2+1); + } + m_weights = namedWeight; + return is; +} + +std::istream & GenEvent::read_units( std::istream & is ) +{ + // + if ( !is ) { + std::cerr << "GenEvent::read_units setting badbit." << std::endl; + is.clear(std::ios::badbit); + return is; + } + // + StreamInfo & info = get_stream_info(is); + // test to be sure the next entry is of type "U" then ignore it + // if we have no units, this is not an error + // releases prior to 2.04.00 did not write unit information + if ( is.peek() !='U') { + use_units( info.io_momentum_unit(), + info.io_position_unit() ); + return is; + } + is.ignore(); // ignore the first character in the line + std::string mom, pos; + is >> mom >> pos; + is.ignore(1); // eat the extra whitespace + use_units(mom,pos); + // + return is; +} + +std::istream & GenEvent::find_file_type( std::istream & istr ) +{ + // + // make sure the stream is good + if ( !istr ) return istr; + + // + StreamInfo & info = get_stream_info(istr); + + // if there is no input block line, then we assume this stream + // is in the IO_GenEvent format + if ( istr.peek()=='E' ) { + info.set_io_type( gen ); + info.set_has_key(false); + return istr; + } + + std::string line; + while ( std::getline(istr,line) ) { + // + // search for event listing key before first event only. + // + if( line == info.IO_GenEvent_Key() ) { + info.set_io_type( gen ); + info.set_has_key(true); + return istr; + } else if( line == info.IO_Ascii_Key() ) { + info.set_io_type( ascii ); + info.set_has_key(true); + return istr; + } else if( line == info.IO_ExtendedAscii_Key() ) { + info.set_io_type( extascii ); + info.set_has_key(true); + return istr; + } else if( line == info.IO_Ascii_PDT_Key() ) { + info.set_io_type( ascii_pdt ); + info.set_has_key(true); + return istr; + } else if( line == info.IO_ExtendedAscii_PDT_Key() ) { + info.set_io_type( extascii_pdt ); + info.set_has_key(true); + return istr; + } + } + info.set_io_type( 0 ); + info.set_has_key(false); + return istr; +} + +std::istream & GenEvent::find_end_key( std::istream & istr, int & iotype ) +{ + iotype = 0; + // peek at the first character before proceeding + if( istr.peek()!='H' ) return istr; + // + // we only check the next line + std::string line; + std::getline(istr,line); + // + StreamInfo & info = get_stream_info(istr); + // + // check to see if this is an end key + if( line == info.IO_GenEvent_End() ) { + iotype = gen; + } else if( line == info.IO_Ascii_End() ) { + iotype = ascii; + } else if( line == info.IO_ExtendedAscii_End() ) { + iotype = extascii; + } else if( line == info.IO_Ascii_PDT_End() ) { + iotype = ascii_pdt; + } else if( line == info.IO_ExtendedAscii_PDT_End() ) { + iotype = extascii_pdt; + } + if( iotype != 0 && info.io_type() != iotype ) { + std::cerr << "GenEvent::find_end_key: iotype keys have changed" << std::endl; + } else { + return istr; + } + // + // if we get here, then something has gotten badly confused + std::cerr << "GenEvent::find_end_key: MALFORMED INPUT" << std::endl; + istr.clear(std::ios::badbit); + return istr; +} + +std::ostream & establish_output_stream_info( std::ostream & os ) +{ + StreamInfo & info = get_stream_info(os); + if ( !info.finished_first_event() ) { + // precision 16 (# digits following decimal point) is the minimum that + // will capture the full information stored in a double + os.precision(16); + // we use decimal to store integers, because it is smaller than hex! + os.setf(std::ios::dec,std::ios::basefield); + os.setf(std::ios::scientific,std::ios::floatfield); + } + return os; +} + +std::istream & establish_input_stream_info( std::istream & is ) +{ + StreamInfo & info = get_stream_info(is); + if ( !info.finished_first_event() ) { + // precision 16 (# digits following decimal point) is the minimum that + // will capture the full information stored in a double + is.precision(16); + // we use decimal to store integers, because it is smaller than hex! + is.setf(std::ios::dec,std::ios::basefield); + is.setf(std::ios::scientific,std::ios::floatfield); + } + return is; +} + + +// ------------------------- helper functions ---------------- + +namespace detail { + +// The functions defined here need to use get_stream_info + +std::istream & read_particle( std::istream & is, + TempParticleMap & particle_to_end_vertex, + GenParticle * p ) +{ + // get the next line + std::string line; + std::getline(is,line); + std::istringstream iline(line); + std::string firstc; + iline >> firstc; + if( firstc != "P" ) { + std::cerr << "StreamHelpers::detail::read_particle invalid line type: " + << firstc << std::endl; + std::cerr << "StreamHelpers::detail::read_particle setting badbit." + << std::endl; + is.clear(std::ios::badbit); + return is; + } + // + StreamInfo & info = get_stream_info(is); + //testHepMC.cc + // declare variables to be read in to, and read everything except flow + double px = 0., py = 0., pz = 0., e = 0., m = 0., theta = 0., phi = 0.; + int bar_code = 0, id = 0, status = 0, end_vtx_code = 0, flow_size = 0; + // check that the input stream is still OK after reading item + iline >> bar_code ; + if(!iline) { delete p; throw IO_Exception("read_particle input stream encounterd invalid data"); } + iline >> id ; + if(!iline) { delete p; throw IO_Exception("read_particle input stream encounterd invalid data"); } + iline >> px ; + if(!iline) { delete p; throw IO_Exception("read_particle input stream encounterd invalid data"); } + iline >> py ; + if(!iline) { delete p; throw IO_Exception("read_particle input stream encounterd invalid data"); } + iline >> pz ; + if(!iline) { delete p; throw IO_Exception("read_particle input stream encounterd invalid data"); } + iline >> e ; + if(!iline) { delete p; throw IO_Exception("read_particle input stream encounterd invalid data"); } + if( info.io_type() != ascii ) { + iline >> m ; + if(!iline) { delete p; throw IO_Exception("read_particle input stream encounterd invalid data"); } + } + iline >> status ; + if(!iline) { delete p; throw IO_Exception("read_particle input stream encounterd invalid data"); } + iline >> theta ; + if(!iline) { delete p; throw IO_Exception("read_particle input stream encounterd invalid data"); } + iline >> phi ; + if(!iline) { delete p; throw IO_Exception("read_particle input stream encounterd invalid data"); } + iline >> end_vtx_code ; + if(!iline) { delete p; throw IO_Exception("read_particle input stream encounterd invalid data"); } + iline >> flow_size; + if(!iline) { delete p; throw IO_Exception("read_particle input stream encounterd invalid data"); } + // + // read flow patterns if any exist + Flow flow; + int code_index, code; + for ( int i = 1; i <= flow_size; ++i ) { + iline >> code_index >> code; + if(!iline) { delete p; throw IO_Exception("read_particle input stream encounterd invalid data"); } + flow.set_icode( code_index,code); + } + p->set_momentum( FourVector(px,py,pz,e) ); + p->set_pdg_id( id ); + p->set_status( status ); + p->set_flow( flow ); + p->set_polarization( Polarization(theta,phi) ); + if( info.io_type() == ascii ) { + p->set_generated_mass( p->momentum().m() ); + } else { + p->set_generated_mass( m ); + } + p->suggest_barcode( bar_code ); + // + // all particles are connected to their end vertex separately + // after all particles and vertices have been created - so we keep + // a map of all particles that have end vertices + if ( end_vtx_code != 0 ) { + particle_to_end_vertex.addEndParticle(p,end_vtx_code); + } + return is; +} + +std::ostream & establish_output_stream_info( std::ostream & os ) +{ + StreamInfo & info = get_stream_info(os); + if ( !info.finished_first_event() ) { + // precision 16 (# digits following decimal point) is the minimum that + // will capture the full information stored in a double + os.precision(16); + // we use decimal to store integers, because it is smaller than hex! + os.setf(std::ios::dec,std::ios::basefield); + os.setf(std::ios::scientific,std::ios::floatfield); + } + return os; +} + +std::istream & establish_input_stream_info( std::istream & is ) +{ + StreamInfo & info = get_stream_info(is); + if ( !info.finished_first_event() ) { + // precision 16 (# digits following decimal point) is the minimum that + // will capture the full information stored in a double + is.precision(16); + // we use decimal to store integers, because it is smaller than hex! + is.setf(std::ios::dec,std::ios::basefield); + is.setf(std::ios::scientific,std::ios::floatfield); + } + return is; +} + +} // detail + +} // HepMC diff --git a/TEvtGen/HepMC/GenParticle.cc b/TEvtGen/HepMC/GenParticle.cc new file mode 100644 index 00000000000..eb9b8f0c90d --- /dev/null +++ b/TEvtGen/HepMC/GenParticle.cc @@ -0,0 +1,255 @@ +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, September 1999 +// Updated: 07.02.2000 no longer does particle point to ParticleData, +// but rather it uses an int id which can be looked up +// particle within an event coming in/out of a vertex +////////////////////////////////////////////////////////////////////////// +#include "HepMC/GenEvent.h" +#include "HepMC/GenVertex.h" +#include "HepMC/GenParticle.h" +#include // needed for formatted output + +namespace HepMC { + + GenParticle::GenParticle( void ) : + m_momentum(0), m_pdg_id(0), m_status(0), m_flow(this), + m_polarization(0), m_production_vertex(0), m_end_vertex(0), + m_barcode(0), m_generated_mass(0.) + {} + //{ + //s_counter++; + //} + + GenParticle::GenParticle( const FourVector& momentum, + int pdg_id, int status, + const Flow& itsflow, + const Polarization& polar ) : + m_momentum(momentum), m_pdg_id(pdg_id), m_status(status), m_flow(this), + m_polarization(polar), m_production_vertex(0), m_end_vertex(0), + m_barcode(0), m_generated_mass(momentum.m()) + { + // Establishing *this as the owner of m_flow is done above, + // then we set it equal to the other flow pattern (subtle) + set_flow(itsflow); + //s_counter++; + } + + GenParticle::GenParticle( const GenParticle& inparticle ) : + m_momentum( inparticle.momentum() ), + m_pdg_id( inparticle.pdg_id() ), + m_status( inparticle.status() ), + m_flow(inparticle.flow()), + m_polarization( inparticle.polarization() ), + m_production_vertex(0), + m_end_vertex(0), + m_barcode(0), + m_generated_mass( inparticle.generated_mass() ) + { + /// Shallow copy: does not copy the vertex pointers + /// (note - impossible to copy vertex pointers which having the vertex + /// and particles in/out point-back to one another -- unless you + /// copy the entire tree -- which we don't want to do) + set_production_vertex_( 0 ); + set_end_vertex_( 0 ); + suggest_barcode( inparticle.barcode() ); + //s_counter++; + } + + GenParticle::~GenParticle() { + if ( parent_event() ) parent_event()->remove_barcode(this); + //s_counter--; + } + + void GenParticle::swap( GenParticle & other) + { + // if a container has a swap method, use that for improved performance + m_momentum.swap( other.m_momentum ); + std::swap( m_pdg_id, other.m_pdg_id ); + std::swap( m_status, other.m_status ); + m_flow.swap( other.m_flow ); + m_polarization.swap( other.m_polarization ); + std::swap( m_production_vertex, other.m_production_vertex ); + std::swap( m_end_vertex, other.m_end_vertex ); + std::swap( m_barcode, other.m_barcode ); + std::swap( m_generated_mass, other.m_generated_mass ); + } + + GenParticle& GenParticle::operator=( const GenParticle& inparticle ) { + /// Shallow: does not copy the vertex pointers + /// (note - impossible to copy vertex pointers which having the vertex + /// and particles in/out point-back to one another -- unless you + /// copy the entire tree -- which we don't want to do) + + // best practices implementation + GenParticle tmp( inparticle ); + swap( tmp ); + return *this; + } + + bool GenParticle::operator==( const GenParticle& a ) const { + /// consistent with the definition of the copy constructor as a shallow + /// constructor,.. this operator does not test the vertex pointers. + /// Does not compare barcodes. + if ( a.momentum() != this->momentum() ) return false; + if ( a.generated_mass() != this->generated_mass() ) return false; + if ( a.pdg_id() != this->pdg_id() ) return false; + if ( a.status() != this->status() ) return false; + if ( a.m_flow != this->m_flow ) return false; + if ( a.polarization() != this->polarization() ) return false; + return true; + } + + bool GenParticle::operator!=( const GenParticle& a ) const { + return !( a == *this ); + } + + void GenParticle::print( std::ostream& ostr ) const { + /// Dump this particle's full info to ostr, where by default + /// particle.print(); will dump to cout. + ostr << "GenParticle: " + << barcode() << " ID:" << pdg_id() + << " (P,E)=" << momentum().px() << "," << momentum().py() + << "," << momentum().pz() << "," << momentum().e() + << " Stat:" << status(); + if ( production_vertex() && production_vertex()->barcode()!=0 ) { + ostr << " PV:" << production_vertex()->barcode(); + } else ostr << " PV:" << production_vertex(); + if ( end_vertex() && end_vertex()->barcode()!=0 ) { + ostr << " EV:" << end_vertex()->barcode(); + } else ostr << " EV:" << end_vertex(); + ostr << " Pol:" << polarization() << " F:" << m_flow << std::endl; + } + + GenEvent* GenParticle::parent_event() const { + if ( production_vertex() ) return production_vertex()->parent_event(); + if ( end_vertex() ) return end_vertex()->parent_event(); + return 0; + } + + void GenParticle::set_production_vertex_( GenVertex* prodvertex ) + { + GenEvent* its_orig_event = parent_event(); + m_production_vertex = prodvertex; + GenEvent* its_new_event = parent_event(); + // Next bit of logic ensures the barcode maps are kept up to date + // in the GenEvent containers. + if ( its_orig_event != its_new_event ) { + if ( its_new_event ) its_new_event->set_barcode( this, barcode() ); + if ( its_orig_event ) its_orig_event->remove_barcode( this ); + } + } + + void GenParticle::set_end_vertex_( GenVertex* decayvertex ) + { + GenEvent* its_orig_event = parent_event(); + m_end_vertex = decayvertex; + GenEvent* its_new_event = parent_event(); + if ( its_orig_event != its_new_event ) { + if ( its_new_event ) its_new_event->set_barcode( this, barcode() ); + if ( its_orig_event ) its_orig_event->remove_barcode( this ); + } + } + + bool GenParticle::suggest_barcode( int the_bar_code ) + { + /// allows a barcode to be suggested for this particle. + /// In general it is better to let the event pick the barcode for + /// you, which is automatic. + /// Returns TRUE if the suggested barcode has been accepted (i.e. the + /// suggested barcode has not already been used in the event, + /// and so it was used). + /// Returns FALSE if the suggested barcode was rejected, or if the + /// particle is not yet part of an event, such that it is not yet + /// possible to know if the suggested barcode will be accepted). + if ( the_bar_code <0 ) { + std::cerr << "GenParticle::suggest_barcode WARNING, particle bar " + << "\n codes MUST be positive integers. Negative " + << "\n integers are reserved for vertices only. Your " + << "\n suggestion has been rejected." << std::endl; + return false; + } + bool success = false; + if ( parent_event() ) { + success = parent_event()->set_barcode( this, the_bar_code ); + } else { set_barcode_( the_bar_code ); } + return success; + } + + ///////////// + // Static // + ///////////// + //unsigned int GenParticle::counter() { return s_counter; } + //unsigned int GenParticle::s_counter = 0U; + + ///////////// + // Friends // + ///////////// + + /// Dump this particle's full info to ostr + std::ostream& operator<<( std::ostream& ostr, const GenParticle& part ) { + // find the current stream state + std::ios_base::fmtflags orig = ostr.flags(); + std::streamsize prec = ostr.precision(); + ostr << " "; + ostr.width(9); + ostr << part.barcode(); + ostr.width(9); + ostr << part.pdg_id() << " "; + ostr.width(9); + ostr.precision(2); + ostr.setf(std::ios::scientific, std::ios::floatfield); + ostr.setf(std::ios_base::showpos); + ostr << part.momentum().px() << ","; + ostr.width(9); + ostr << part.momentum().py() << ","; + ostr.width(9); + ostr << part.momentum().pz() << ","; + ostr.width(9); + ostr << part.momentum().e() << " "; + ostr.setf(std::ios::fmtflags(0), std::ios::floatfield); + ostr.unsetf(std::ios_base::showpos); + if ( part.end_vertex() && part.end_vertex()->barcode()!=0 ) { + ostr.width(3); + ostr << part.status() << " "; + ostr.width(9); + ostr << part.end_vertex()->barcode(); + } else if ( !part.end_vertex() ) { + // There is no valid end_vertex + // For consistency across different compilers, do not print anything + ostr.width(3); + ostr << part.status(); + } else { + // In this case the end_vertex does not have a unique + // barcode assigned, so we choose instead to print its address + ostr.width(3); + ostr << part.status() << " "; + ostr.width(9); + ostr << (void*)part.end_vertex(); + } + // restore the stream state + ostr.flags(orig); + ostr.precision(prec); + return ostr; + } + + + double GenParticle::generated_mass() const { + return m_generated_mass; + } + + void GenParticle::set_generated_mass( const double & m ) { + m_generated_mass = m; + } + + /// scale the momentum vector and generated mass + /// this method is only for use by GenEvent + void GenParticle::convert_momentum( const double & f ) { + m_momentum = FourVector( f*m_momentum.px(), + f*m_momentum.py(), + f*m_momentum.pz(), + f*m_momentum.e() ); + if( m_generated_mass > 0. ) m_generated_mass = f*m_generated_mass; + } + +} // HepMC + diff --git a/TEvtGen/HepMC/GenParticle.h b/TEvtGen/HepMC/GenParticle.h new file mode 100644 index 00000000000..88048d3b1f4 --- /dev/null +++ b/TEvtGen/HepMC/GenParticle.h @@ -0,0 +1,270 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_GEN_PARTICLE_H +#define HEPMC_GEN_PARTICLE_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, September 1999, refer to: +// M. Dobbs and J.B. Hansen, "The HepMC C++ Monte Carlo Event Record for +// High Energy Physics", Computer Physics Communications (to be published). +// +// particle within an event coming in/out of a vertex +// particle is the basic building block or unit of the event record +////////////////////////////////////////////////////////////////////////// +// +// example: +// GenParticle* p = new GenParticle( FourVector(1,1,1,3), 11, 1 ); +// creates a particle with 4-vector (p,E)=1,1,1,3 - with pdg id 11 (electron) +// and give this particle status =1. +// +// the pointers to end/production vertices can only be set by the +// vertices themselves - thus to set the production vertex for a particle, +// you add the particle to that vertex with GenVertex::add_particle_out() +// +// We decide not to have a separate 4 vector for the momentum +// at decay time (which MC++ includes to allow dE/dX losses etc). +// If you want that, just add a decay vertex with the +// same particle (modified momentum) going out +// + +#include "HepMC/Flow.h" +#include "HepMC/Polarization.h" +#include "HepMC/SimpleVector.h" +#include "HepMC/IteratorRange.h" +#include +#ifdef _WIN32 +#define hepmc_uint64_t __int64 +#else +#include // for uint64_t +#define hepmc_uint64_t uint64_t +#endif + +namespace HepMC { + + class GenVertex; + class GenEvent; + + class GenParticleProductionRange; + class ConstGenParticleProductionRange; + class GenParticleEndRange; + class ConstGenParticleEndRange; + + //! The GenParticle class contains information about generated particles + + /// + /// \class GenParticle + /// HepMC::GenParticle + /// contains momentum, generated mass, particle ID, decay status, + /// flow, polarization, pointers to production and decay vertices + /// and a unique barcode identfier. + /// + class GenParticle { + + friend class GenVertex; // so vertex can set decay/production vertexes + friend class GenEvent; // so event can set the barCodes + /// print particle + friend std::ostream& operator<<( std::ostream&, const GenParticle& ); + + public: + /// default constructor + GenParticle(void); + /// constructor requires momentum and particle ID + GenParticle( const FourVector& momentum, int pdg_id, + int status = 0, const Flow& itsflow = Flow(), + const Polarization& polar = Polarization(0,0) ); + GenParticle( const GenParticle& inparticle ); //!< shallow copy. + virtual ~GenParticle(); + + void swap( GenParticle & other); //!< swap + GenParticle& operator=( const GenParticle& inparticle ); //!< shallow. + /// check for equality + bool operator==( const GenParticle& ) const; + /// check for inequality + bool operator!=( const GenParticle& ) const; + + /// dump this particle's full info to ostr + void print( std::ostream& ostr = std::cout ) const; + + operator HepMC::FourVector() const; //!< conversion operator + + //////////////////// + // access methods // + //////////////////// + + /// standard 4 momentum + const FourVector & momentum() const; + /// particle ID + int pdg_id() const; + /// HEPEVT decay status + int status() const; + /// particle flow + const Flow & flow() const; + /// particle flow index + int flow( int code_index ) const; + /// polarization information + const Polarization & polarization() const; + /// pointer to the production vertex + GenVertex* production_vertex() const; + /// pointer to the decay vertex + GenVertex* end_vertex() const; + /// pointer to the event that owns this particle + GenEvent* parent_event() const; + + /// Because of precision issues, the generated mass is not always the + /// same as the mass calculated from the momentum 4 vector. + /// If the generated mass has been set, then generated_mass() + /// returns that value. + /// If the generated mass has not been set, then generated_mass() + /// returns the mass calculated from the momentum 4 vector. + double generated_mass() const; //!< mass as generated + + /// generatedMass() is included for backwards compatibility with CLHEP HepMC + double generatedMass() const { return generated_mass(); } + + + /// + /// The barcode is the particle's reference number, every vertex in the + /// event has a unique barcode. Particle barcodes are positive numbers, + /// vertex barcodes are negative numbers. + /// + /// Please note that the barcodes are intended for internal use within + /// HepMC as a unique identifier for the particles and vertices. + /// Using the barcode to encode extra information is an abuse of + /// the barcode data member and causes confusion among users. + /// + int barcode() const; //!< particle barcode + + /// Convenience method. Returns true if status==1 + bool is_undecayed() const; + /// Convenience method. Returns true if status==2 + bool has_decayed() const; + /// Convenience method. Returns true if status==4 + /// Note that using status 4 for beam particles is a new convention which + /// may not have been implemented by the code originating this GenEvent. + bool is_beam() const; + + /// incoming particle range + GenParticleProductionRange particles_in( IteratorRange range = relatives ); + /// incoming particle range + ConstGenParticleProductionRange particles_in( IteratorRange range = relatives ) const; + /// outgoing particle range + GenParticleEndRange particles_out( IteratorRange range = relatives ); + /// outgoing particle range + ConstGenParticleEndRange particles_out( IteratorRange range = relatives ) const; + + ///////////////////// + // mutator methods // + ///////////////////// + + /// In general there is no reason to "suggest_barcode" + bool suggest_barcode( int the_bar_code ); + + void set_momentum( const FourVector& vec4 ); //!< set standard 4 momentum + void set_pdg_id( int id ); //!< set particle ID + void set_status( int status = 0 ); //!< set decay status + void set_flow( const Flow& f ); //!< set particle flow + void set_flow( int code_index, int code = 0 ); //!< set particle flow index + /// set polarization + void set_polarization( const Polarization& pol = Polarization(0,0) ); + /// If you do not call set_generated_mass(), then + /// generated_mass() will simply return the mass calculated from momentum() + void set_generated_mass( const double & m ); //!< define the actual generated mass + + /// setGeneratedMass() is included for backwards compatibility with CLHEP HepMC + void setGeneratedMass( const double & m ) + { return set_generated_mass(m); } + + protected: // for internal use only by friend GenVertex class + + //static unsigned int counter(); //!< temporary for debugging + + /// set production vertex - for internal use only + void set_production_vertex_( GenVertex* productionvertex = 0); + /// set decay vertex - for internal use only + void set_end_vertex_( GenVertex* decayvertex = 0 ); + void set_barcode_( int the_bar_code ); //!< for use by GenEvent only + + /// scale the momentum vector and generated mass + /// this method is only for use by GenEvent + void convert_momentum( const double& ); + + private: + FourVector m_momentum; // momentum vector + int m_pdg_id; // id according to PDG convention + int m_status; // As defined for HEPEVT + Flow m_flow; + Polarization m_polarization; + GenVertex* m_production_vertex; // null if vacuum or beam + GenVertex* m_end_vertex; // null if not-decayed + int m_barcode; // unique identifier in the event + double m_generated_mass; // mass of this particle when it was generated + + //static unsigned int s_counter; + }; + + ////////////// + // INLINES // + ////////////// + + inline GenParticle::operator HepMC::FourVector() const + { return m_momentum; } + + inline const FourVector & GenParticle::momentum() const + { return m_momentum; } + + inline int GenParticle::pdg_id() const { return m_pdg_id; } + + inline int GenParticle::status() const { return m_status; } + + inline GenVertex* GenParticle::production_vertex() const + { return m_production_vertex; } + + inline GenVertex* GenParticle::end_vertex() const { return m_end_vertex; } + + inline const Flow & GenParticle::flow() const { return m_flow; } + + inline int GenParticle::flow( int code_index ) const + { return m_flow.icode( code_index ); } + + inline const Polarization & GenParticle::polarization() const + { return m_polarization; } + + inline void GenParticle::set_momentum( const FourVector& vec4 ) + { m_momentum = vec4; } + + inline void GenParticle::set_pdg_id( int id ) { m_pdg_id = id; } + + inline void GenParticle::set_status( int st ) { m_status = st; } + + inline void GenParticle::set_flow( const Flow& f ) { m_flow = f; } + + inline void GenParticle::set_flow( int code_index, int code ) + { + if ( code == 0 ) { + m_flow.set_unique_icode( code_index ); + } else { + m_flow.set_icode( code_index, code ); + } + } + + inline void GenParticle::set_polarization( const Polarization& polar ) + { m_polarization = polar; } + + inline int GenParticle::barcode() const { return m_barcode; } + + inline void GenParticle::set_barcode_( int bc ) { m_barcode = bc; } + + inline bool GenParticle::is_undecayed() const { + return ( m_status==1 ) ? true : false; + } + inline bool GenParticle::has_decayed() const { + return ( m_status==2 ) ? true : false; + } + inline bool GenParticle::is_beam() const { + return ( m_status==4 ) ? true : false; + } + +} // HepMC + +#endif // HEPMC_GEN_PARTICLE_H +//-------------------------------------------------------------------------- + diff --git a/TEvtGen/HepMC/GenRanges.cc b/TEvtGen/HepMC/GenRanges.cc new file mode 100644 index 00000000000..4053d72c8ee --- /dev/null +++ b/TEvtGen/HepMC/GenRanges.cc @@ -0,0 +1,86 @@ +//-------------------------------------------------------------------------- +////////////////////////////////////////////////////////////////////////// +// garren@fnal.gov, March 2010 +// +////////////////////////////////////////////////////////////////////////// +//-------------------------------------------------------------------------- + +#include + +#include "HepMC/GenRanges.h" +#include "HepMC/GenEvent.h" +#include "HepMC/GenVertex.h" + +namespace HepMC { + +GenEventVertexRange GenEvent::vertex_range() +{ + return GenEventVertexRange(*this); +} + +ConstGenEventVertexRange GenEvent::vertex_range() const +{ + return ConstGenEventVertexRange(*this); +} + +GenEventParticleRange GenEvent::particle_range() +{ + return GenEventParticleRange(*this); +} + +ConstGenEventParticleRange GenEvent::particle_range() const +{ + return ConstGenEventParticleRange(*this); +} + +GenVertexParticleRange GenVertex::particles( IteratorRange range ) +{ + return GenVertexParticleRange(*this,range); +} + +GenParticleProductionRange GenVertex::particles_in( GenParticle& p, IteratorRange range ) +{ + return GenParticleProductionRange(p,range); +} + +ConstGenParticleProductionRange GenVertex:: particles_in( GenParticle const & p, IteratorRange range ) const +{ + return ConstGenParticleProductionRange(p,range); +} + +GenParticleEndRange GenVertex::particles_out( GenParticle& p, IteratorRange range ) +{ + return GenParticleEndRange(p,range); +} + +ConstGenParticleEndRange GenVertex::particles_out( GenParticle const & p, IteratorRange range ) const +{ + return ConstGenParticleEndRange(p,range); +} + +GenParticleProductionRange GenParticle::particles_in( IteratorRange range ) +{ + return GenParticleProductionRange(*this,range); +} + + +ConstGenParticleProductionRange GenParticle::particles_in( IteratorRange range ) const +{ + return ConstGenParticleProductionRange(*this,range); +} + + +GenParticleEndRange GenParticle::particles_out( IteratorRange range ) +{ + return GenParticleEndRange(*this,range); +} + + +ConstGenParticleEndRange GenParticle::particles_out( IteratorRange range ) const +{ + return ConstGenParticleEndRange(*this,range); +} + + + +} // HepMC diff --git a/TEvtGen/HepMC/GenRanges.h b/TEvtGen/HepMC/GenRanges.h new file mode 100644 index 00000000000..017674c3dbf --- /dev/null +++ b/TEvtGen/HepMC/GenRanges.h @@ -0,0 +1,328 @@ +#ifndef HEPMC_GEN_EVENT_ITERATORS_H +#define HEPMC_GEN_EVENT_ITERATORS_H + +//-------------------------------------------------------------------------- +////////////////////////////////////////////////////////////////////////// +// garren@fnal.gov, May 2009 +// +////////////////////////////////////////////////////////////////////////// +//-------------------------------------------------------------------------- + +#include + +#include "HepMC/GenEvent.h" +#include "HepMC/GenVertex.h" + +namespace HepMC { + +//! GenEventVertexRange acts like a collection of vertices + +/// +/// \class GenEventVertexRange +/// HepMC::GenEventVertexRange is used to mimic a collection of +/// vertices for ease of use - especially with utilities such as +/// the Boost foreach funtion +/// +class GenEventVertexRange { + +public: + + /// the constructor requires a GenEvent + GenEventVertexRange( GenEvent & e ) : m_event(e) {} + /// + GenEvent::vertex_iterator begin() { return m_event.vertices_begin(); } + GenEvent::vertex_iterator end() { return m_event.vertices_end(); } + +private: + /// Because the class contains a reference, assignments are not allowed. + /// However, we need the copy constructor for GenEvent::vertex_range(). + GenEventVertexRange& operator=( GenEventVertexRange & ); + +private: + GenEvent & m_event; + +}; + +//! ConstGenEventVertexRange acts like a collection of vertices + +/// +/// \class ConstGenEventVertexRange +/// HepMC::ConstGenEventVertexRange is used to mimic a collection of +/// vertices for ease of use - especially with utilities such as +/// the Boost foreach funtion +/// This is the const partner of GenEventVertexRange +/// +class ConstGenEventVertexRange { + +public: + + /// the constructor requires a const GenEvent + ConstGenEventVertexRange( GenEvent const & e ) : m_event(e) {} + /// + GenEvent::vertex_const_iterator begin() const { return m_event.vertices_begin(); } + GenEvent::vertex_const_iterator end() const { return m_event.vertices_end(); } + +private: + /// Because the class contains a reference, assignments are not allowed. + /// However, we need the copy constructor for GenEvent::vertex_range(). + ConstGenEventVertexRange& operator=( ConstGenEventVertexRange & ); + +private: + GenEvent const & m_event; + +}; + +//! GenEventParticleRange acts like a collection of particles + +/// +/// \class GenEventParticleRange +/// HepMC::GenEventParticleRange is used to mimic a collection of +/// particles for ease of use - especially with utilities such as +/// the Boost foreach funtion +/// +class GenEventParticleRange { + +public: + + /// the constructor requires a GenEvent + GenEventParticleRange( GenEvent & e ) : m_event(e) {} + /// + GenEvent::particle_iterator begin() { return m_event.particles_begin(); } + GenEvent::particle_iterator end() { return m_event.particles_end(); } + +private: + /// Because the class contains a reference, assignments are not allowed. + /// However, we need the copy constructor for GenEvent::particle_range(). + GenEventParticleRange& operator=( GenEventParticleRange & ); + +private: + GenEvent & m_event; + +}; + +//! ConstGenEventParticleRange acts like a collection of particles + +/// +/// \class ConstGenEventParticleRange +/// HepMC::ConstGenEventParticleRange is used to mimic a collection of +/// particles for ease of use - especially with utilities such as +/// the Boost foreach funtion +/// This is the const partner of GenEventParticleRange +/// +class ConstGenEventParticleRange { + +public: + + /// the constructor requires a const GenEvent + ConstGenEventParticleRange( GenEvent const & e ) : m_event(e) {} + /// + GenEvent::particle_const_iterator begin() const { return m_event.particles_begin(); } + GenEvent::particle_const_iterator end() const { return m_event.particles_end(); } + +private: + /// Because the class contains a reference, assignments are not allowed. + /// However, we need the copy constructor for GenEvent::particle_range(). + ConstGenEventParticleRange& operator=( ConstGenEventParticleRange & ); + +private: + GenEvent const & m_event; + +}; + +//! GenVertexParticleRange acts like a collection of particles + +/// +/// \class GenVertexParticleRange +/// HepMC::GenVertexParticleRange is used to mimic a collection of +/// particles for ease of use - especially with utilities such as +/// the Boost foreach funtion +/// +class GenVertexParticleRange { + +public: + + /// the constructor requires a GenVertex + GenVertexParticleRange( GenVertex & v, IteratorRange range = relatives ) + : m_vertex(v),m_range(range) {} + /// + GenVertex::particle_iterator begin() { return m_vertex.particles_begin(m_range); } + GenVertex::particle_iterator end() { return m_vertex.particles_end(m_range); } + +private: + /// Because the class contains a reference, assignments are not allowed. + /// However, we need the copy constructor for GenVertex::particles(). + GenVertexParticleRange& operator=( GenVertexParticleRange & ); + +private: + GenVertex & m_vertex; + IteratorRange m_range; + +}; + +//! GenParticleProductionRange acts like a collection of particles + +/// +/// \class GenParticleProductionRange +/// HepMC::GenParticleProductionRange is used to mimic a collection of +/// particles associated with the particle's production vertex for ease of use +/// Utilities such as the Boost foreach funtion will want to use this class. +/// +class GenParticleProductionRange { + +public: + + /// the constructor requires a GenParticle + GenParticleProductionRange( GenParticle const & p, IteratorRange range = relatives ) + : m_particle(p),m_range(range) {} + /// begin iterator throws an error if the particle production_vertex is undefined + GenVertex::particle_iterator begin(); + /// end iterator throws an error if the particle production_vertex is undefined + GenVertex::particle_iterator end(); + +private: + /// Because the class contains a reference, assignments are not allowed. + /// However, we need the copy constructor for GenVertex::particles_in(). + GenParticleProductionRange& operator=( GenParticleProductionRange & ); + +private: + GenParticle const & m_particle; + IteratorRange m_range; + +}; + +class ConstGenParticleProductionRange { + +public: + + /// the constructor requires a GenParticle + ConstGenParticleProductionRange( GenParticle const & p, IteratorRange range = relatives ) + : m_particle(p),m_range(range) {} + /// begin iterator throws an error if the particle production_vertex is undefined + GenVertex::particle_iterator begin(); + /// end iterator throws an error if the particle production_vertex is undefined + GenVertex::particle_iterator end(); + +private: + /// Because the class contains a reference, assignments are not allowed. + /// However, we need the copy constructor for GenVertex::particles_in(). + ConstGenParticleProductionRange& operator=( ConstGenParticleProductionRange & ); + +private: + GenParticle const & m_particle; + IteratorRange m_range; + +}; + +//! GenParticleEndRange acts like a collection of particles + +/// +/// \class GenParticleEndRange +/// HepMC::GenParticleEndRange is used to mimic a collection of +/// particles associated with the particle's end vertex for ease of use +/// Utilities such as the Boost foreach funtion will want to use this class. +/// +class GenParticleEndRange { + +public: + + /// the constructor requires a GenParticle + GenParticleEndRange( GenParticle const & p, IteratorRange range = relatives ) + : m_particle(p),m_range(range) {} + /// begin iterator throws an error if the particle end_vertex is undefined + GenVertex::particle_iterator begin(); + /// end iterator throws an error if the particle end_vertex is undefined + GenVertex::particle_iterator end(); + +private: + /// Because the class contains a reference, assignments are not allowed. + /// However, we need the copy constructor for GenVertex::particles_out(). + GenParticleEndRange& operator=( GenParticleEndRange & ); + +private: + GenParticle const & m_particle; + IteratorRange m_range; + +}; + +class ConstGenParticleEndRange { + +public: + + /// the constructor requires a GenParticle + ConstGenParticleEndRange( GenParticle const & p, IteratorRange range = relatives ) + : m_particle(p),m_range(range) {} + /// begin iterator throws an error if the particle end_vertex is undefined + GenVertex::particle_iterator begin(); + /// end iterator throws an error if the particle end_vertex is undefined + GenVertex::particle_iterator end(); + +private: + /// Because the class contains a reference, assignments are not allowed. + /// However, we need the copy constructor for GenVertex::particles_out(). + ConstGenParticleEndRange& operator=( ConstGenParticleEndRange & ); + +private: + GenParticle const & m_particle; + IteratorRange m_range; + +}; + + +inline GenVertex::particle_iterator GenParticleProductionRange::begin() +{ + if ( ! m_particle.production_vertex() ) + throw(std::range_error("GenParticleProductionRange: GenParticle has no production_vertex")); + return m_particle.production_vertex()->particles_begin(m_range); +} + +inline GenVertex::particle_iterator GenParticleProductionRange::end() +{ + if ( ! m_particle.production_vertex() ) + throw(std::range_error("GenParticleProductionRange: GenParticle has no production_vertex")); + return m_particle.production_vertex()->particles_end(m_range); +} + + +inline GenVertex::particle_iterator ConstGenParticleProductionRange::begin() +{ + if ( ! m_particle.production_vertex() ) + throw(std::range_error("ConstGenParticleProductionRange: GenParticle has no production_vertex")); + return m_particle.production_vertex()->particles_begin(m_range); +} + +inline GenVertex::particle_iterator ConstGenParticleProductionRange::end() +{ + if ( ! m_particle.production_vertex() ) + throw(std::range_error("ConstGenParticleProductionRange: GenParticle has no production_vertex")); + return m_particle.production_vertex()->particles_end(m_range); +} + +inline GenVertex::particle_iterator GenParticleEndRange::begin() +{ + if ( ! m_particle.end_vertex() ) + throw(std::range_error("GenParticleEndRange: GenParticle has no end_vertex")); + return m_particle.end_vertex()->particles_begin(m_range); +} +inline GenVertex::particle_iterator GenParticleEndRange::end() +{ + if ( ! m_particle.end_vertex() ) + throw(std::range_error("GenParticleEndRange: GenParticle has no end_vertex")); + return m_particle.end_vertex()->particles_end(m_range); +} + +inline GenVertex::particle_iterator ConstGenParticleEndRange::begin() +{ + if ( ! m_particle.end_vertex() ) + throw(std::range_error("ConstGenParticleEndRange: GenParticle has no end_vertex")); + return m_particle.end_vertex()->particles_begin(m_range); +} +inline GenVertex::particle_iterator ConstGenParticleEndRange::end() +{ + if ( ! m_particle.end_vertex() ) + throw(std::range_error("ConstGenParticleEndRange: GenParticle has no end_vertex")); + return m_particle.end_vertex()->particles_end(m_range); +} + +} // HepMC + +#endif // HEPMC_GEN_EVENT_ITERATORS_H diff --git a/TEvtGen/HepMC/GenVertex.cc b/TEvtGen/HepMC/GenVertex.cc new file mode 100644 index 00000000000..31f0c979aa0 --- /dev/null +++ b/TEvtGen/HepMC/GenVertex.cc @@ -0,0 +1,925 @@ +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, September 1999 +// GenVertex within an event +////////////////////////////////////////////////////////////////////////// + +#include "HepMC/GenParticle.h" +#include "HepMC/GenVertex.h" +#include "HepMC/GenEvent.h" +#include "HepMC/SearchVector.h" +#include // needed for formatted output + +namespace HepMC { + + GenVertex::GenVertex( const FourVector& position, + int id, const WeightContainer& weights ) + : m_position(position), m_id(id), m_weights(weights), m_event(0), + m_barcode(0) + {} + //{ + //s_counter++; + //} + + GenVertex::GenVertex( const GenVertex& invertex ) + : m_position( invertex.position() ), + m_particles_in(), + m_particles_out(), + m_id( invertex.id() ), + m_weights( invertex.weights() ), + m_event(0), + m_barcode(0) + { + /// Shallow copy: does not copy the FULL list of particle pointers. + /// Creates a copy of - invertex + /// - outgoing particles of invertex, but sets the + /// decay vertex of these particles to NULL + /// - all incoming particles which do not have a + /// creation vertex. + /// (i.e. it creates copies of all particles which it owns) + /// (note - impossible to copy the FULL list of particle pointers + /// while having the vertex + /// and particles in/out point-back to one another -- unless you + /// copy the entire tree -- which we don't want to do) + // + for ( particles_in_const_iterator + part1 = invertex.particles_in_const_begin(); + part1 != invertex.particles_in_const_end(); ++part1 ) { + if ( !(*part1)->production_vertex() ) { + GenParticle* pin = new GenParticle(**part1); + add_particle_in(pin); + } + } + for ( particles_out_const_iterator + part2 = invertex.particles_out_const_begin(); + part2 != invertex.particles_out_const_end(); part2++ ) { + GenParticle* pin = new GenParticle(**part2); + add_particle_out(pin); + } + suggest_barcode( invertex.barcode() ); + // + //s_counter++; + } + + GenVertex::~GenVertex() { + // + // need to delete any particles previously owned by this vertex + if ( parent_event() ) parent_event()->remove_barcode(this); + delete_adopted_particles(); + //s_counter--; + } + + void GenVertex::swap( GenVertex & other) + { + m_position.swap( other.m_position ); + m_particles_in.swap( other.m_particles_in ); + m_particles_out.swap( other.m_particles_out ); + std::swap( m_id, other.m_id ); + m_weights.swap( other.m_weights ); + std::swap( m_event, other.m_event ); + std::swap( m_barcode, other.m_barcode ); + } + + GenVertex& GenVertex::operator=( const GenVertex& invertex ) { + /// Shallow: does not copy the FULL list of particle pointers. + /// Creates a copy of - invertex + /// - outgoing particles of invertex, but sets the + /// decay vertex of these particles to NULL + /// - all incoming particles which do not have a + /// creation vertex. + /// - it does not alter *this's m_event (!) + /// (i.e. it creates copies of all particles which it owns) + /// (note - impossible to copy the FULL list of particle pointers + /// while having the vertex + /// and particles in/out point-back to one another -- unless you + /// copy the entire tree -- which we don't want to do) + /// + + // best practices implementation + GenVertex tmp( invertex ); + swap( tmp ); + return *this; + } + + bool GenVertex::operator==( const GenVertex& a ) const { + /// Returns true if the positions and the particles in the lists of a + /// and this are identical. Does not compare barcodes. + /// Note that it is impossible for two vertices to point to the same + /// particle's address, so we need to do more than just compare the + /// particle pointers + // + if ( a.position() != this->position() ) return false; + // if the size of the inlist differs, return false. + if ( a.particles_in_size() != this->particles_in_size() ) return false; + // if the size of the outlist differs, return false. + if ( a.particles_out_size() != this->particles_out_size() ) return false; + // loop over the inlist and ensure particles are identical + // (only do this if the lists aren't empty - we already know + // if one isn't, then other isn't either!) + if ( a.particles_in_const_begin() != a.particles_in_const_end() ) { + for ( GenVertex::particles_in_const_iterator + ia = a.particles_in_const_begin(), + ib = this->particles_in_const_begin(); + ia != a.particles_in_const_end(); ia++, ib++ ){ + if ( **ia != **ib ) return false; + } + } + // loop over the outlist and ensure particles are identical + // (only do this if the lists aren't empty - we already know + // if one isn't, then other isn't either!) + if ( a.particles_out_const_begin() != a.particles_out_const_end() ) { + for ( GenVertex::particles_out_const_iterator + ia = a.particles_out_const_begin(), + ib = this->particles_out_const_begin(); + ia != a.particles_out_const_end(); ia++, ib++ ){ + if ( **ia != **ib ) return false; + } + } + return true; + } + + bool GenVertex::operator!=( const GenVertex& a ) const { + // Returns true if the positions and lists of a and this are not equal. + return !( a == *this ); + } + + void GenVertex::print( std::ostream& ostr ) const { + // find the current stream state + std::ios_base::fmtflags orig = ostr.flags(); + std::streamsize prec = ostr.precision(); + if ( barcode()!=0 ) { + if ( position() != FourVector(0,0,0,0) ) { + ostr << "Vertex:"; + ostr.width(9); + ostr << barcode(); + ostr << " ID:"; + ostr.width(5); + ostr << id(); + ostr << " (X,cT)="; + ostr.width(9); + ostr.precision(2); + ostr.setf(std::ios::scientific, std::ios::floatfield); + ostr.setf(std::ios_base::showpos); + ostr << position().x() << ","; + ostr.width(9); + ostr << position().y() << ","; + ostr.width(9); + ostr << position().z() << ","; + ostr.width(9); + ostr << position().t(); + ostr.setf(std::ios::fmtflags(0), std::ios::floatfield); + ostr.unsetf(std::ios_base::showpos); + ostr << std::endl; + } else { + ostr << "GenVertex:"; + ostr.width(9); + ostr << barcode(); + ostr << " ID:"; + ostr.width(5); + ostr << id(); + ostr << " (X,cT):0"; + ostr << std::endl; + } + } else { + // If the vertex doesn't have a unique barcode assigned, then + // we print its memory address instead... so that the + // print out gives us a unique tag for the particle. + if ( position() != FourVector(0,0,0,0) ) { + ostr << "Vertex:"; + ostr.width(9); + ostr << (void*)this; + ostr << " ID:"; + ostr.width(5); + ostr << id(); + ostr << " (X,cT)="; + ostr.width(9); + ostr.precision(2); + ostr.setf(std::ios::scientific, std::ios::floatfield); + ostr.setf(std::ios_base::showpos); + ostr << position().x(); + ostr.width(9); + ostr << position().y(); + ostr.width(9); + ostr << position().z(); + ostr.width(9); + ostr << position().t(); + ostr.setf(std::ios::fmtflags(0), std::ios::floatfield); + ostr.unsetf(std::ios_base::showpos); + ostr << std::endl; + } else { + ostr << "GenVertex:"; + ostr.width(9); + ostr << (void*)this; + ostr << " ID:"; + ostr.width(5); + ostr << id(); + ostr << " (X,cT):0"; + ostr << std::endl; + } + } + + // print the weights if there are any + if ( ! weights().empty() ) { + ostr << " Wgts(" << weights().size() << ")="; + for ( WeightContainer::const_iterator wgt = weights().begin(); + wgt != weights().end(); wgt++ ) { ostr << *wgt << " "; } + ostr << std::endl; + } + // print out all the incoming, then outgoing particles + for ( particles_in_const_iterator part1 = particles_in_const_begin(); + part1 != particles_in_const_end(); part1++ ) { + if ( part1 == particles_in_const_begin() ) { + ostr << " I:"; + ostr.width(2); + ostr << m_particles_in.size(); + } else { ostr << " "; } + //(*part1)->print( ostr ); //uncomment for long debugging printout + ostr << **part1 << std::endl; + } + for ( particles_out_const_iterator part2 = particles_out_const_begin(); + part2 != particles_out_const_end(); part2++ ) { + if ( part2 == particles_out_const_begin() ) { + ostr << " O:"; + ostr.width(2); + ostr << m_particles_out.size(); + } else { ostr << " "; } + //(*part2)->print( ostr ); // uncomment for long debugging printout + ostr << **part2 << std::endl; + } + // restore the stream state + ostr.flags(orig); + ostr.precision(prec); + } + + double GenVertex::check_momentum_conservation() const { + /// finds the difference between the total momentum out and the total + /// momentum in vectors, and returns the magnitude of this vector + /// i.e. returns | vec{p_in} - vec{p_out} | + double sumpx = 0, sumpy = 0, sumpz = 0; + for ( particles_in_const_iterator part1 = particles_in_const_begin(); + part1 != particles_in_const_end(); part1++ ) { + sumpx += (*part1)->momentum().px(); + sumpy += (*part1)->momentum().py(); + sumpz += (*part1)->momentum().pz(); + } + for ( particles_out_const_iterator part2 = particles_out_const_begin(); + part2 != particles_out_const_end(); part2++ ) { + sumpx -= (*part2)->momentum().px(); + sumpy -= (*part2)->momentum().py(); + sumpz -= (*part2)->momentum().pz(); + } + return sqrt( sumpx*sumpx + sumpy*sumpy + sumpz*sumpz ); + } + + void GenVertex::add_particle_in( GenParticle* inparticle ) { + if ( !inparticle ) return; + // if inparticle previously had a decay vertex, remove it from that + // vertex's list + if ( inparticle->end_vertex() ) { + inparticle->end_vertex()->remove_particle_in( inparticle ); + } + m_particles_in.push_back( inparticle ); + inparticle->set_end_vertex_( this ); + } + + void GenVertex::add_particle_out( GenParticle* outparticle ) { + if ( !outparticle ) return; + // if outparticle previously had a production vertex, + // remove it from that vertex's list + if ( outparticle->production_vertex() ) { + outparticle->production_vertex()->remove_particle_out( outparticle ); + } + m_particles_out.push_back( outparticle ); + outparticle->set_production_vertex_( this ); + } + + GenParticle* GenVertex::remove_particle( GenParticle* particle ) { + /// this finds *particle in the in and/or out list and removes it from + /// these lists ... it DOES NOT DELETE THE PARTICLE or its relations. + /// you could delete the particle too as follows: + /// delete vtx->remove_particle( particle ); + /// or if the particle has an end vertex, you could: + /// delete vtx->remove_particle( particle )->end_vertex(); + /// which would delete the particle's end vertex, and thus would + /// also delete the particle, since the particle would be + /// owned by the end vertex. + if ( !particle ) return 0; + if ( particle->end_vertex() == this ) { + particle->set_end_vertex_( 0 ); + remove_particle_in(particle); + } + if ( particle->production_vertex() == this ) { + particle->set_production_vertex_(0); + remove_particle_out(particle); + } + return particle; + } + + void GenVertex::remove_particle_in( GenParticle* particle ) { + /// this finds *particle in m_particles_in and removes it from that list + if ( !particle ) return; + m_particles_in.erase( already_in_vector( &m_particles_in, particle ) ); + } + + void GenVertex::remove_particle_out( GenParticle* particle ) { + /// this finds *particle in m_particles_out and removes it from that list + if ( !particle ) return; + m_particles_out.erase( already_in_vector( &m_particles_out, particle ) ); + } + + void GenVertex::delete_adopted_particles() { + /// deletes all particles which this vertex owns + /// to be used by the vertex destructor and operator= + // + if ( m_particles_out.empty() && m_particles_in.empty() ) return; + // 1. delete all outgoing particles which don't have decay vertices. + // those that do become the responsibility of the decay vertex + // and have their productionvertex pointer set to NULL + for ( std::vector::iterator part1 = m_particles_out.begin(); + part1 != m_particles_out.end(); ) { + if ( !(*part1)->end_vertex() ) { + delete *(part1++); + } else { + (*part1)->set_production_vertex_(0); + ++part1; + } + } + m_particles_out.clear(); + // + // 2. delete all incoming particles which don't have production + // vertices. those that do become the responsibility of the + // production vertex and have their decayvertex pointer set to NULL + for ( std::vector::iterator part2 = m_particles_in.begin(); + part2 != m_particles_in.end(); ) { + if ( !(*part2)->production_vertex() ) { + delete *(part2++); + } else { + (*part2)->set_end_vertex_(0); + ++part2; + } + } + m_particles_in.clear(); + } + + bool GenVertex::suggest_barcode( int the_bar_code ) + { + /// allows a barcode to be suggested for this vertex. + /// In general it is better to let the event pick the barcode for + /// you, which is automatic. + /// Returns TRUE if the suggested barcode has been accepted (i.e. the + /// suggested barcode has not already been used in the event, + /// and so it was used). + /// Returns FALSE if the suggested barcode was rejected, or if the + /// vertex is not yet part of an event, such that it is not yet + /// possible to know if the suggested barcode will be accepted). + if ( the_bar_code >0 ) { + std::cerr << "GenVertex::suggest_barcode WARNING, vertex bar codes" + << "\n MUST be negative integers. Positive integers " + << "\n are reserved for particles only. Your suggestion " + << "\n has been rejected." << std::endl; + return false; + } + bool success = false; + if ( parent_event() ) { + success = parent_event()->set_barcode( this, the_bar_code ); + } else { set_barcode_( the_bar_code ); } + return success; + } + + void GenVertex::set_parent_event_( GenEvent* new_evt ) + { + GenEvent* orig_evt = m_event; + m_event = new_evt; + // + // every time a vertex's parent event changes, the map of barcodes + // in the new and old parent event needs to be modified to + // reflect this + if ( orig_evt != new_evt ) { + if (new_evt) new_evt->set_barcode( this, barcode() ); + if (orig_evt) orig_evt->remove_barcode( this ); + // we also need to loop over all the particles which are owned by + // this vertex, and remove their barcodes from the old event. + for ( particles_in_const_iterator part1=particles_in_const_begin(); + part1 != particles_in_const_end(); part1++ ) { + if ( !(*part1)->production_vertex() ) { + if ( orig_evt ) orig_evt->remove_barcode( *part1 ); + if ( new_evt ) new_evt->set_barcode( *part1, + (*part1)->barcode() ); + } + } + for ( particles_out_const_iterator + part2 = particles_out_const_begin(); + part2 != particles_out_const_end(); part2++ ) { + if ( orig_evt ) orig_evt->remove_barcode( *part2 ); + if ( new_evt ) new_evt->set_barcode( *part2, + (*part2)->barcode() ); + } + } + } + + void GenVertex::change_parent_event_( GenEvent* new_evt ) + { + // + // this method is for use with swap + // particles and vertices have already been exchanged, + // but the backpointer needs to be fixed + //GenEvent* orig_evt = m_event; + m_event = new_evt; + } + + ///////////// + // Static // + ///////////// + //unsigned int GenVertex::counter() { return s_counter; } + //unsigned int GenVertex::s_counter = 0; + + ///////////// + // Friends // + ///////////// + + /// send vertex information to ostr for printing + std::ostream& operator<<( std::ostream& ostr, const GenVertex& vtx ) { + if ( vtx.barcode()!=0 ) ostr << "BarCode " << vtx.barcode(); + else ostr << "Address " << &vtx; + ostr << " (X,cT)="; + if ( vtx.position() != FourVector(0,0,0,0)) { + ostr << vtx.position().x() << "," + << vtx.position().y() << "," + << vtx.position().z() << "," + << vtx.position().t(); + } else { ostr << 0; } + ostr << " #in:" << vtx.particles_in_size() + << " #out:" << vtx.particles_out_size(); + return ostr; + } + + ///////////////////////////// + // edge_iterator // (protected - for internal use only) + ///////////////////////////// + // If the user wants the functionality of the edge_iterator, he should + // use particle_iterator with IteratorRange = family, parents, or children + // + + GenVertex::edge_iterator::edge_iterator() : m_vertex(0), m_range(family), + m_is_inparticle_iter(false), m_is_past_end(true) + {} + + GenVertex::edge_iterator::edge_iterator( const GenVertex& vtx, + IteratorRange range ) : + m_vertex(&vtx), m_range(family) + { + // Note: (26.1.2000) the original version of edge_iterator inheritted + // from set::const_iterator() rather than using + // composition as it does now. + // The inheritted version suffered from a strange bug, which + // I have not fully understood --- it only occurred after many + // events were processed and only when I called the delete + // function on past events. I believe it had something to do with + // the past the end values, which are now robustly coded in this + // version as boolean members. + // + // default range is family, only other choices are children/parents + // descendants/ancestors not allowed & recasted ot children/parents + if ( range == descendants || range == children ) m_range = children; + if ( range == ancestors || range == parents ) m_range = parents; + // + if ( m_vertex->m_particles_in.empty() && + m_vertex->m_particles_out.empty() ) { + // Case: particles_in and particles_out is empty. + m_is_inparticle_iter = false; + m_is_past_end = true; + } else if ( m_range == parents && m_vertex->m_particles_in.empty() ){ + // Case: particles in is empty and parents is requested. + m_is_inparticle_iter = true; + m_is_past_end = true; + } else if ( m_range == children && m_vertex->m_particles_out.empty() ){ + // Case: particles out is empty and children is requested. + m_is_inparticle_iter = false; + m_is_past_end = true; + } else if ( m_range == children ) { + // Case: particles out is NOT empty, and children is requested + m_set_iter = m_vertex->m_particles_out.begin(); + m_is_inparticle_iter = false; + m_is_past_end = false; + } else if ( m_range == family && m_vertex->m_particles_in.empty() ) { + // Case: particles in is empty, particles out is NOT empty, + // and family is requested. Then skip ahead to partilces out. + m_set_iter = m_vertex->m_particles_out.begin(); + m_is_inparticle_iter = false; + m_is_past_end = false; + } else { + // Normal scenario: start with the first incoming particle + m_set_iter = m_vertex->m_particles_in.begin(); + m_is_inparticle_iter = true; + m_is_past_end = false; + } + } + + GenVertex::edge_iterator::edge_iterator( const edge_iterator& p ) { + *this = p; + } + + GenVertex::edge_iterator::~edge_iterator() {} + + GenVertex::edge_iterator& GenVertex::edge_iterator::operator=( + const edge_iterator& p ) { + m_vertex = p.m_vertex; + m_range = p.m_range; + m_set_iter = p.m_set_iter; + m_is_inparticle_iter = p.m_is_inparticle_iter; + m_is_past_end = p.m_is_past_end; + return *this; + } + + GenParticle* GenVertex::edge_iterator::operator*(void) const { + if ( !m_vertex || m_is_past_end ) return 0; + return *m_set_iter; + } + + GenVertex::edge_iterator& GenVertex::edge_iterator::operator++(void){ + // Pre-fix increment + // + // increment the set iterator (unless we're past the end value) + if ( m_is_past_end ) return *this; + ++m_set_iter; + // handle cases where m_set_iter points past the end + if ( m_range == family && m_is_inparticle_iter && + m_set_iter == m_vertex->m_particles_in.end() ) { + // at the end on in particle set, and range is family, so move to + // out particle set + m_set_iter = m_vertex->m_particles_out.begin(); + m_is_inparticle_iter = false; + } else if ( m_range == parents && + m_set_iter == m_vertex->m_particles_in.end() ) { + // at the end on in particle set, and range is parents only, so + // move into past the end state + m_is_past_end = true; + // might as well bail out now + return *this; + } + // are we iterating over input or output particles? + if( m_is_inparticle_iter ) { + // the following is not else if because we might have range=family + // with an empty particles_in set. + if ( m_set_iter == m_vertex->m_particles_in.end() ) { + //whenever out particles end is reached, go into past the end state + m_is_past_end = true; + } + } else { + // the following is not else if because we might have range=family + // with an empty particles_out set. + if ( m_set_iter == m_vertex->m_particles_out.end() ) { + //whenever out particles end is reached, go into past the end state + m_is_past_end = true; + } + } + return *this; + } + + GenVertex::edge_iterator GenVertex::edge_iterator::operator++(int){ + // Post-fix increment + edge_iterator returnvalue = *this; + ++*this; + return returnvalue; + } + + bool GenVertex::edge_iterator::is_parent() const { + if ( **this && (**this)->end_vertex() == m_vertex ) return true; + return false; + } + + bool GenVertex::edge_iterator::is_child() const { + if ( **this && (**this)->production_vertex() == m_vertex ) return true; + return false; + } + + int GenVertex::edges_size( IteratorRange range ) const { + if ( range == children ) return m_particles_out.size(); + if ( range == parents ) return m_particles_in.size(); + if ( range == family ) return m_particles_out.size() + + m_particles_in.size(); + return 0; + } + + ///////////////////// + // vertex_iterator // + ///////////////////// + + GenVertex::vertex_iterator::vertex_iterator() + : m_vertex(0), m_range(), m_visited_vertices(0), m_it_owns_set(0), + m_recursive_iterator(0) + {} + + GenVertex::vertex_iterator::vertex_iterator( GenVertex& vtx_root, + IteratorRange range ) + : m_vertex(&vtx_root), m_range(range) + { + // standard public constructor + // + m_visited_vertices = new std::set; + m_it_owns_set = 1; + m_visited_vertices->insert( m_vertex ); + m_recursive_iterator = 0; + m_edge = m_vertex->edges_begin( m_range ); + // advance to the first good return value + if ( !follow_edge_() && + m_edge != m_vertex->edges_end( m_range )) ++*this; + } + + GenVertex::vertex_iterator::vertex_iterator( GenVertex& vtx_root, + IteratorRange range, std::set& visited_vertices ) : + m_vertex(&vtx_root), m_range(range), + m_visited_vertices(&visited_vertices), m_it_owns_set(0), + m_recursive_iterator(0) + { + // This constuctor is only to be called internally by this class + // for use with its recursive member pointer (m_recursive_iterator). + // Note: we do not need to insert m_vertex_root in the vertex - that is + // the responsibility of this iterator's mother, which is normally + // done just before calling this protected constructor. + m_edge = m_vertex->edges_begin( m_range ); + // advance to the first good return value + if ( !follow_edge_() && + m_edge != m_vertex->edges_end( m_range )) ++*this; + } + + GenVertex::vertex_iterator::vertex_iterator( const vertex_iterator& v_iter) + : m_vertex(0), m_visited_vertices(0), m_it_owns_set(0), + m_recursive_iterator(0) + { + *this = v_iter; + } + + GenVertex::vertex_iterator::~vertex_iterator() { + if ( m_recursive_iterator ) delete m_recursive_iterator; + if ( m_it_owns_set ) delete m_visited_vertices; + } + + GenVertex::vertex_iterator& GenVertex::vertex_iterator::operator=( + const vertex_iterator& v_iter ) + { + // Note: when copying a vertex_iterator that is NOT the owner + // of its set container, the pointer to the set is copied. Beware! + // (see copy_with_own_set() if you want a different set pointed to) + // In practise the user never needs to worry + // since such iterators are only intended to be used internally. + // + // destruct data member pointers + if ( m_recursive_iterator ) delete m_recursive_iterator; + m_recursive_iterator = 0; + if ( m_it_owns_set ) delete m_visited_vertices; + m_visited_vertices = 0; + m_it_owns_set = 0; + // copy the target vertex_iterator to this iterator + m_vertex = v_iter.m_vertex; + m_range = v_iter.m_range; + if ( v_iter.m_it_owns_set ) { + // i.e. this vertex will own its set if v_iter points to any + // vertex set regardless of whether v_iter owns the set or not! + m_visited_vertices = + new std::set(*v_iter.m_visited_vertices); + m_it_owns_set = 1; + } else { + m_visited_vertices = v_iter.m_visited_vertices; + m_it_owns_set = 0; + } + // + // Note: m_vertex_root is already included in the set of + // tv_iter.m_visited_vertices, we do not need to insert it. + // + m_edge = v_iter.m_edge; + copy_recursive_iterator_( v_iter.m_recursive_iterator ); + return *this; + } + + GenVertex* GenVertex::vertex_iterator::operator*(void) const { + // de-reference operator + // + // if this iterator has an iterator_node, then we return the iterator + // node. + if ( m_recursive_iterator ) return **m_recursive_iterator; + // + // an iterator can only return its m_vertex -- any other vertex + // is returned by means of a recursive iterator_node + // (so this is the only place in the iterator code that a vertex + // is returned!) + if ( m_vertex ) return m_vertex; + return 0; + } + + GenVertex::vertex_iterator& GenVertex::vertex_iterator::operator++(void) { + // Pre-fix incremental operator + // + // check for "past the end condition" denoted by m_vertex=0 + if ( !m_vertex ) return *this; + // if at the last edge, move into the "past the end condition" + if ( m_edge == m_vertex->edges_end( m_range ) ) { + m_vertex = 0; + return *this; + } + // check to see if we need to create a new recursive iterator by + // following the current edge only if a recursive iterator doesn't + // already exist. If a new recursive_iterator is created, return it. + if ( follow_edge_() ) { + return *this; + } + // + // if a recursive iterator already exists, increment it, and return its + // value (unless the recursive iterator has null root_vertex [its + // root vertex is set to null if it has already returned its root] + // - in which case we delete it) + // and return the vertex pointed to by the edge. + if ( m_recursive_iterator ) { + ++(*m_recursive_iterator); + if ( **m_recursive_iterator ) { + return *this; + } else { + delete m_recursive_iterator; + m_recursive_iterator = 0; + } + } + // + // increment to the next particle edge + ++m_edge; + // if m_edge is at the end, then we have incremented through all + // edges, and it is time to return m_vertex, which we accomplish + // by returning *this + if ( m_edge == m_vertex->edges_end( m_range ) ) return *this; + // otherwise we follow the current edge by recursively ++ing. + return ++(*this); + } + + GenVertex::vertex_iterator GenVertex::vertex_iterator::operator++(int) { + // Post-fix increment + vertex_iterator returnvalue(*this); + ++(*this); + return returnvalue; + } + + void GenVertex::vertex_iterator::copy_with_own_set( + const vertex_iterator& v_iter, + std::set& visited_vertices ) { + /// intended for internal use only. (use with care!) + /// this is the same as the operator= method, but it allows the + /// user to specify which set container m_visited_vertices points to. + /// in all cases, this vertex will NOT own its set. + // + // destruct data member pointers + if ( m_recursive_iterator ) delete m_recursive_iterator; + m_recursive_iterator = 0; + if ( m_it_owns_set ) delete m_visited_vertices; + m_visited_vertices = 0; + m_it_owns_set = false; + // copy the target vertex_iterator to this iterator + m_vertex = v_iter.m_vertex; + m_range = v_iter.m_range; + m_visited_vertices = &visited_vertices; + m_it_owns_set = false; + m_edge = v_iter.m_edge; + copy_recursive_iterator_( v_iter.m_recursive_iterator ); + } + + GenVertex* GenVertex::vertex_iterator::follow_edge_() { + // follows the edge pointed to by m_edge by creating a + // recursive iterator for it. + // + // if a m_recursive_iterator already exists, + // this routine has nothing to do, + // if there's no m_vertex, there's no point following anything, + // also there's no point trying to follow a null edge. + if ( m_recursive_iterator || !m_vertex || !*m_edge ) return 0; + // + // if the range is parents, children, or family (i.e. <= family) + // then only the iterator which owns the set is allowed to create + // recursive iterators (i.e. recursivity is only allowed to go one + // layer deep) + if ( m_range <= family && m_it_owns_set == 0 ) return 0; + // + // M.Dobbs 2001-07-16 + // Take care of the very special-rare case where a particle might + // point to the same vertex for both production and end + if ( (*m_edge)->production_vertex() == + (*m_edge)->end_vertex() ) return 0; + // + // figure out which vertex m_edge is pointing to + GenVertex* vtx = ( m_edge.is_parent() ? + (*m_edge)->production_vertex() : + (*m_edge)->end_vertex() ); + // if the pointed to vertex doesn't exist or has already been visited, + // then return null + if ( !vtx || !(m_visited_vertices->insert(vtx).second) ) return 0; + // follow that edge by creating a recursive iterator + m_recursive_iterator = new vertex_iterator( *vtx, m_range, + *m_visited_vertices); + // and return the vertex pointed to by m_recursive_iterator + return **m_recursive_iterator; + } + + void GenVertex::vertex_iterator::copy_recursive_iterator_( + const vertex_iterator* recursive_v_iter ) { + // to properly copy the recursive iterator, we need to ensure + // the proper set container is transfered ... then do this + // operation .... you guessed it .... recursively! + // + if ( !recursive_v_iter ) return; + m_recursive_iterator = new vertex_iterator(); + m_recursive_iterator->m_vertex = recursive_v_iter->m_vertex; + m_recursive_iterator->m_range = recursive_v_iter->m_range; + m_recursive_iterator->m_visited_vertices = m_visited_vertices; + m_recursive_iterator->m_it_owns_set = 0; + m_recursive_iterator->m_edge = recursive_v_iter->m_edge; + m_recursive_iterator->copy_recursive_iterator_( + recursive_v_iter->m_recursive_iterator ); + } + + /////////////////////////////// + // particle_iterator // + /////////////////////////////// + + GenVertex::particle_iterator::particle_iterator() {} + + GenVertex::particle_iterator::particle_iterator( GenVertex& vertex_root, + IteratorRange range ) { + // General Purpose Constructor + // + if ( range <= family ) { + m_edge = GenVertex::edge_iterator( vertex_root, range ); + } else { + m_vertex_iterator = GenVertex::vertex_iterator(vertex_root, range); + m_edge = GenVertex::edge_iterator( **m_vertex_iterator, + m_vertex_iterator.range() ); + } + advance_to_first_(); + } + + GenVertex::particle_iterator::particle_iterator( + const particle_iterator& p_iter ){ + *this = p_iter; + } + + GenVertex::particle_iterator::~particle_iterator() {} + + GenVertex::particle_iterator& + GenVertex::particle_iterator::operator=( const particle_iterator& p_iter ) + { + m_vertex_iterator = p_iter.m_vertex_iterator; + m_edge = p_iter.m_edge; + return *this; + } + + GenParticle* GenVertex::particle_iterator::operator*(void) const { + return *m_edge; + } + + GenVertex::particle_iterator& + GenVertex::particle_iterator::operator++(void) { + //Pre-fix increment + // + if ( *m_edge ) { + ++m_edge; + } else if ( *m_vertex_iterator ) { // !*m_edge is implicit + // past end of edge, but still have more vertices to visit + // increment the vertex, checking that the result is valid + if ( !*(++m_vertex_iterator) ) return *this; + m_edge = GenVertex::edge_iterator( **m_vertex_iterator, + m_vertex_iterator.range() ); + } else { // !*m_edge and !*m_vertex_iterator are implicit + // past the end condition: do nothing + return *this; + } + advance_to_first_(); + return *this; + } + + GenVertex::particle_iterator GenVertex::particle_iterator::operator++(int){ + //Post-fix increment + particle_iterator returnvalue(*this); + ++(*this); + return returnvalue; + } + + GenParticle* GenVertex::particle_iterator::advance_to_first_() { + /// if the current edge is not a suitable return value ( because + /// it is a parent of the vertex root that itself belongs to a + /// different vertex ) it advances to the first suitable return value + if ( !*m_edge ) return *(++*this); + // if the range is relatives, we need to uniquely assign each particle + // to a single vertex so as to guarantee particles are returned + // exactly once. + if ( m_vertex_iterator.range() == relatives && + m_edge.is_parent() && + (*m_edge)->production_vertex() ) return *(++*this); + return *m_edge; + } + + /// scale the position vector + /// this method is only for use by GenEvent + /// convert_position assumes that 4th component of the position vector + /// is ctau rather than time and has units of length-time + void GenVertex::convert_position( const double& f ) { + m_position = FourVector( f*m_position.x(), + f*m_position.y(), + f*m_position.z(), + f*m_position.t() ); + } + +} // HepMC diff --git a/TEvtGen/HepMC/GenVertex.h b/TEvtGen/HepMC/GenVertex.h new file mode 100644 index 00000000000..dd0a646d4b8 --- /dev/null +++ b/TEvtGen/HepMC/GenVertex.h @@ -0,0 +1,542 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_GEN_VERTEX_H +#define HEPMC_GEN_VERTEX_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, September 1999, refer to: +// M. Dobbs and J.B. Hansen, "The HepMC C++ Monte Carlo Event Record for +// High Energy Physics", Computer Physics Communications (to be published). +// +// GenVertex within an event +// A vertex is indirectly (via particle "edges") linked to other +// vertices ("nodes") to form a composite "graph" +////////////////////////////////////////////////////////////////////////// + +// --> HANDLE COMPILER INCONSISTENCIES +// This pre-compiler directive is included (2002-01-16) to allow compatibility +// with several compilers. +// Mar 27, 2004: HepMC is now standard compliant only. +// I've removed forward_iterator, and it will no longer compile on gcc < 3. +#ifdef __SUNPRO_CC // Solaris CC 5.2 +#define NEED_SOLARIS_FRIEND_FEATURE +#endif // Platform + +#include "HepMC/WeightContainer.h" +#include "HepMC/SimpleVector.h" +#include "HepMC/IteratorRange.h" +#include +#include +#include +#include +#include +#include + +namespace HepMC { + + class GenVertexParticleRange; + class GenParticleProductionRange; + class ConstGenParticleProductionRange; + class GenParticleEndRange; + class ConstGenParticleEndRange; + + class GenParticle; + class GenEvent; + + //! GenVertex contains information about decay vertices. + + /// + /// \class GenVertex + /// HepMC::GenVertex contains the position in space and time of a decay. + /// It also contains lists of incoming and outgoing particles. + /// + class GenVertex { + + /// print vertex information + friend std::ostream& operator<<( std::ostream&, const GenVertex& ); + friend class GenEvent; + +#ifdef NEED_SOLARIS_FRIEND_FEATURE + // This bit of ugly code is only for CC-5.2 compiler. + // M.Dobbs 2002/02/19 + // It is not needed by linux gcc, nor Windows Visual C++. + public: + class vertex_iterator; + friend class vertex_iterator; + class particle_iterator; + friend class particle_iterator; +#endif // NEED_SOLARIS_FRIEND_FEATURE + + public: + /// default constructor + GenVertex( const FourVector& position =FourVector(0,0,0,0), + int id = 0, + const WeightContainer& weights = std::vector() ); + GenVertex( const GenVertex& invertex ); //!< shallow copy + virtual ~GenVertex(); + + void swap( GenVertex & other); //!< swap + GenVertex& operator= ( const GenVertex& invertex ); //!< shallow + bool operator==( const GenVertex& a ) const; //!< equality + bool operator!=( const GenVertex& a ) const; //!< inequality + void print( std::ostream& ostr = std::cout ) const; //!< print vertex information + + double check_momentum_conservation() const;//!< |Sum (three_mom_in-three_mom_out)| + + /// add incoming particle + void add_particle_in( GenParticle* inparticle ); + /// add outgoing particle + void add_particle_out( GenParticle* outparticle ); + /// remove_particle finds *particle in the in and/or out list and + /// removes it from these lists ... it DOES NOT DELETE THE PARTICLE + /// or its relations. You could delete the particle too as follows: + /// delete vtx->remove_particle( particle ); + GenParticle* remove_particle( GenParticle* particle ); //!< remove a particle + + operator HepMC::FourVector() const; //!< conversion operator + operator HepMC::ThreeVector() const; //!< conversion operator + + //////////////////// + // access methods // + //////////////////// + + /// pointer to the event that owns this vertex + GenEvent* parent_event() const; + /// vertex position + ThreeVector point3d() const; + /// vertex position and time + const FourVector & position() const; + /// set vertex position and time + void set_position( const FourVector& position = FourVector(0,0,0,0) ); + /// we don't define what you use the id for -- but we imagine, + /// for example it might code the meaning of the weights() + int id() const; //!< vertex ID + void set_id( int id ); //!< set vertex ID + + /// + /// The barcode is the vertex's reference number, every vertex in the + /// event has a unique barcode. Vertex barcodes are negative numbers, + /// particle barcodes are positive numbers. + /// + /// Please note that the barcodes are intended for internal use within + /// HepMC as a unique identifier for the particles and vertices. + /// Using the barcode to encode extra information is an abuse of + /// the barcode data member and causes confusion among users. + /// + int barcode() const; //!< unique identifier + + /// In general there is no reason to "suggest_barcode" + bool suggest_barcode( int the_bar_code ); + + /// direct access to the weights container is allowed. + WeightContainer& weights(); + /// const direct access to the weights container + const WeightContainer& weights() const; + + /// particle range + GenVertexParticleRange particles( IteratorRange range = relatives ); + /// incoming particle range + GenParticleProductionRange particles_in( GenParticle&, IteratorRange range = relatives ); + /// incoming particle range + ConstGenParticleProductionRange particles_in( GenParticle const &, IteratorRange range = relatives ) const; + /// outgoing particle range + GenParticleEndRange particles_out( GenParticle&, IteratorRange range = relatives ); + /// outgoing particle range + ConstGenParticleEndRange particles_out( GenParticle const &, IteratorRange range = relatives ) const; + + //////////////////// + // Iterators // users should use prefer to use particle_iterator + //////////////////// + + /// const iterator for incoming particles + typedef std::vector::const_iterator + particles_in_const_iterator; + /// const iterator for outgoing particles + typedef std::vector::const_iterator + particles_out_const_iterator; + /// begin iteration of incoming particles + particles_in_const_iterator particles_in_const_begin() const; + /// end iteration of incoming particles + particles_in_const_iterator particles_in_const_end() const; + /// begin iteration of outgoing particles + particles_out_const_iterator particles_out_const_begin() const; + /// end iteration of outgoing particles + particles_out_const_iterator particles_out_const_end() const; + /// number of incoming particles + int particles_in_size() const; + /// number of outgoing particles + int particles_out_size() const; + + protected: + //static unsigned int counter(); //!< temporary for debugging + + /// only the GenEvent (friend) is allowed to set the parent_event, + /// and barcode. It is done automatically anytime you add a + /// vertex to an event + void set_parent_event_( GenEvent* evt ); //!< set parent event + void set_barcode_( int the_bar_code ); //!< set identifier + void change_parent_event_( GenEvent* evt ); //!< for use with swap + + ///////////////////////////// + // edge_iterator // (protected - for internal use only) + ///////////////////////////// + // If the user wants the functionality of the edge_iterator, he should + // use particle_iterator with IteratorRange = family, parents, children + // + + //! edge iterator + + /// \class edge_iterator + /// iterate over the family of edges connected to m_vertex begins + /// with parents (incoming particles) then children (outgoing) + /// This is not a recursive iterator ... it is a building block + /// for the public iterators and is intended for internal use only. + /// The acceptable Iterator Ranges are: family, parents, children + class edge_iterator : + public std::iterator{ + public: + edge_iterator(); + /// used to set limits on the iteration + edge_iterator( const GenVertex& vtx, IteratorRange range =family ); + /// copy + edge_iterator( const edge_iterator& p ); + virtual ~edge_iterator(); + /// make a copy + edge_iterator& operator=( const edge_iterator& p ); + /// return a pointer to a particle + GenParticle* operator*(void) const; + /// Pre-fix increment + edge_iterator& operator++(void); // Pre-fix increment + /// Post-fix increment + edge_iterator operator++(int); // Post-fix increment + /// equality + bool operator==( const edge_iterator& a ) const; + /// inequality + bool operator!=( const edge_iterator& a ) const; + /// true if parent of root vtx + bool is_parent() const; + /// true if child of root vtx + bool is_child() const; + /// root vertex of this iteration + const GenVertex* vertex_root() const; + private: + /// Pre-fix increment -- is not allowed + edge_iterator& operator--(void); + /// Post-fix increment -- is not allowed + edge_iterator operator--(int); + private: + const GenVertex* m_vertex; + IteratorRange m_range; + std::vector::const_iterator m_set_iter; + bool m_is_inparticle_iter; + bool m_is_past_end; + }; + friend class edge_iterator; + /// size + int edges_size( IteratorRange range = family ) const; + /// begin range + edge_iterator edges_begin( IteratorRange range = family) const; + /// end range + edge_iterator edges_end( IteratorRange /* dummy_range */ ) const; + + public: + /////////////////////////////// + // vertex_iterator // + /////////////////////////////// + + //! vertex iterator + + /// \class vertex_iterator + /// Iterates over all vertices connected via a graph to this vertex. + /// this is made friend to that it can access protected edge + /// iterator the range can be IteratorRange= ( parents, children, + /// family, ancestors, descendants, relatives ) + /// example for range=descendants the iterator + /// will return all vertices + /// which are children (connected by an outgoing particle edge), + /// grandchildren, great-grandchildren, etc. of this vertex + /// In all cases the iterator always returns this vertex + /// (returned last). + /// The algorithm is accomplished by converting the graph to a tree + /// (by "chopping" the edges connecting to an already visited + /// vertex) and returning the vertices in POST ORDER traversal. + /// + class vertex_iterator : + public std::iterator{ + public: + vertex_iterator(); + /// used to set limits on the iteration + vertex_iterator( GenVertex& vtx_root, IteratorRange range ); + /// next constructor is intended for internal use only + vertex_iterator( GenVertex& vtx_root, IteratorRange range, + std::set& visited_vertices ); + /// copy + vertex_iterator( const vertex_iterator& v_iter ); + virtual ~vertex_iterator(); + /// make a copy + vertex_iterator& operator=( const vertex_iterator& ); + /// return a pointer to a vertex + GenVertex* operator*(void) const; + /// Pre-fix increment + vertex_iterator& operator++(void); //Pre-fix increment + /// Post-fix increment + vertex_iterator operator++(int); //Post-fix increment + /// equality + bool operator==( const vertex_iterator& ) const; + /// inequality + bool operator!=( const vertex_iterator& ) const; + /// vertex that this iterator begins from + GenVertex* vertex_root() const; + /// iterator range + IteratorRange range() const; + /// intended for internal use only. + void copy_with_own_set( const vertex_iterator& + v_iter, + std::set& + visited_vertices ); + + protected: // intended for internal use only + /// non-null if recursive iter. created + GenVertex* follow_edge_(); + /// copy recursive iterator + void copy_recursive_iterator_( const vertex_iterator* + recursive_v_iter ); + private: + /// Pre-fix increment -- is not allowed + vertex_iterator& operator--(void); + /// Post-fix increment -- is not allowed + vertex_iterator operator--(int); + + private: + GenVertex* m_vertex; // the vertex associated to this iter + IteratorRange m_range; + std::set* m_visited_vertices; + bool m_it_owns_set; // true if it is responsible for + // deleting the visited vertex set + edge_iterator m_edge; // particle edge pointing to return vtx + vertex_iterator* m_recursive_iterator; + }; + friend class vertex_iterator; + /// begin vertex range + vertex_iterator vertices_begin( IteratorRange range = relatives ); + /// end vertex range + vertex_iterator vertices_end( IteratorRange /* dummy_range */ ); + + public: + /////////////////////////////// + // particle_iterator // + /////////////////////////////// + + //! particle iterator + + /// \class particle_iterator + /// Iterates over all particles connected via a graph. + /// by iterating through all vertices in the m_range. For each + /// vertex it returns orphaned parent particles + /// (i.e. parents without production vertices) + /// then children ... in this way each particle is associated + /// to exactly one vertex and so it is returned exactly once. + /// Is made friend so that it can access protected edge iterator + class particle_iterator : + public std::iterator{ + public: + particle_iterator(); + /// used to set limits on the iteration + particle_iterator( GenVertex& vertex_root, IteratorRange range ); + /// copy + particle_iterator( const particle_iterator& ); + virtual ~particle_iterator(); + /// make a copy + particle_iterator& operator=( const particle_iterator& ); + /// return a pointer to a particle + GenParticle* operator*(void) const; + /// Pre-fix increment + particle_iterator& operator++(void); + /// Post-fix increment + particle_iterator operator++(int); + /// equality + bool operator==( const particle_iterator& ) const; + /// inequality + bool operator!=( const particle_iterator& ) const; + protected: + GenParticle* advance_to_first_(); //!< "first" particle + private: + vertex_iterator m_vertex_iterator; + edge_iterator m_edge; // points to the return + }; + friend class particle_iterator; + /// begin particle range + particle_iterator particles_begin( IteratorRange range + = relatives ); + /// end particle range + particle_iterator particles_end( IteratorRange + /* dummy_range */ ); + + //////////////////////////////////////////////// + protected: + /// for internal use only + void delete_adopted_particles(); + /// for internal use only - remove particle from incoming list + void remove_particle_in( GenParticle* ); + /// for internal use only - remove particle from outgoing list + void remove_particle_out( GenParticle* ); + /// scale the position vector + /// this method is only for use by GenEvent + void convert_position( const double& ); + + private: // GenVertex data members + FourVector m_position; //4-vec of vertex [mm] + std::vector m_particles_in; //all incoming particles + std::vector m_particles_out; //all outgoing particles + int m_id; + WeightContainer m_weights; // weights for this vtx + GenEvent* m_event; + int m_barcode; // unique identifier in the event + + //static unsigned int s_counter; + }; + + //////////////////////////// + // INLINES access methods // + //////////////////////////// + + inline GenVertex::operator HepMC::FourVector() const { return position(); } + + inline GenVertex::operator HepMC::ThreeVector() const { return point3d(); } + + inline const FourVector & GenVertex::position() const { return m_position; } + + inline GenEvent* GenVertex::parent_event() const { return m_event; } + + inline ThreeVector GenVertex::point3d() const { + return ThreeVector(m_position.x(),m_position.y(),m_position.z()); + } + + inline int GenVertex::id() const { return m_id; } + + inline int GenVertex::barcode() const { return m_barcode; } + inline void GenVertex::set_barcode_( int bc ) { m_barcode = bc; } + + inline WeightContainer& GenVertex::weights() { return m_weights; } + + inline const WeightContainer& GenVertex::weights() const + { return m_weights; } + + inline void GenVertex::set_position( const FourVector& pos ) { + m_position = pos; + } + + inline void GenVertex::set_id( int pid ) { m_id = pid; } + + ////////////// + // INLINES // + ////////////// + + inline GenVertex::particles_in_const_iterator + GenVertex::particles_in_const_begin() const { + return m_particles_in.begin(); + } + + inline GenVertex::particles_in_const_iterator + GenVertex::particles_in_const_end() const { + return m_particles_in.end(); + } + + inline GenVertex::particles_out_const_iterator + GenVertex::particles_out_const_begin() const { + return m_particles_out.begin(); + } + + inline GenVertex::particles_out_const_iterator + GenVertex::particles_out_const_end() const { + return m_particles_out.end(); + } + + inline int GenVertex::particles_in_size() const { + return m_particles_in.size(); + } + + inline int GenVertex::particles_out_size() const { + return m_particles_out.size(); + } + + inline bool GenVertex::edge_iterator::operator==( + const edge_iterator& a ) const { + return **this == *a; + } + + inline bool GenVertex::edge_iterator::operator!=( + const edge_iterator& a ) const { + return !(**this == *a); + } + + inline const GenVertex* GenVertex::edge_iterator::vertex_root() const { + return m_vertex; + } + + inline GenVertex::edge_iterator GenVertex::edges_begin( IteratorRange + range ) const { + return GenVertex::edge_iterator(*this, range); + } + + inline GenVertex::edge_iterator GenVertex::edges_end( IteratorRange + /* dummy_range */ ) const { + return GenVertex::edge_iterator(); + } + + inline bool GenVertex::vertex_iterator::operator==( + const vertex_iterator& a ) const { + return **this == *a; + } + + inline bool GenVertex::vertex_iterator::operator!=( + const vertex_iterator& a ) const { + return !(**this == *a); + } + + inline GenVertex* GenVertex::vertex_iterator::vertex_root() const { + return m_vertex; + } + + inline IteratorRange GenVertex::vertex_iterator::range() const { + return m_range; + } + + inline GenVertex::vertex_iterator GenVertex::vertices_begin( + IteratorRange range ){ + // this is not const because the it could return itself + return vertex_iterator( *this, range ); + } + + inline GenVertex::vertex_iterator GenVertex::vertices_end( + IteratorRange /* dummy_range */ ) { + return vertex_iterator(); + } + + inline bool GenVertex::particle_iterator::operator==( + const particle_iterator& a ) const { + return **this == *a; + } + + inline bool GenVertex::particle_iterator::operator!=( + const particle_iterator& a ) const { + return !(**this == *a); + } + + inline GenVertex::particle_iterator GenVertex::particles_begin( + IteratorRange range ) { + return particle_iterator( *this, range ); + } + + inline GenVertex::particle_iterator GenVertex::particles_end( + IteratorRange /* dummy_range */ ){ + return particle_iterator(); + } + +} // HepMC + +#endif // HEPMC_GEN_VERTEX_H +//-------------------------------------------------------------------------- + + + + diff --git a/TEvtGen/HepMC/HEPEVT_Wrapper.cc b/TEvtGen/HepMC/HEPEVT_Wrapper.cc new file mode 100644 index 00000000000..1f382a822ad --- /dev/null +++ b/TEvtGen/HepMC/HEPEVT_Wrapper.cc @@ -0,0 +1,228 @@ +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH June 30, 2000 +// Generic Wrapper for the fortran HEPEVT common block +// +// The static data member's initializations must be separate from .h file. +// +////////////////////////////////////////////////////////////////////////// + +#include "HepMC/HEPEVT_Wrapper.h" + +namespace HepMC { + + //////////////////////////////////////// + // static data member initializations // + //////////////////////////////////////// + + unsigned int HEPEVT_Wrapper::s_sizeof_int = 4; + + unsigned int HEPEVT_Wrapper::s_sizeof_real = sizeof(double); + + unsigned int HEPEVT_Wrapper::s_max_number_entries = 4000; + + /////////////////// + // Print Methods // + /////////////////// + + void HEPEVT_Wrapper::print_hepevt( std::ostream& ostr ) + { + /// dumps the content of this HEPEVT event to ostr (Width is 80) + ostr << "________________________________________" + << "________________________________________" << std::endl; + ostr << "***** HEPEVT Common Event#: " + << event_number() + << ", " << number_entries() << " particles (max " + << max_number_entries() << ") *****"; + if ( is_double_precision() ) { + ostr << " Double Precision" << std::endl; + } else { + ostr << " Single Precision" << std::endl; + } + ostr << sizeof_int() << "-byte integers, " + << sizeof_real() << "-byte floating point numbers, " + << max_number_entries() << "-allocated entries." + << std::endl; + print_legend(ostr); + ostr << "________________________________________" + << "________________________________________" << std::endl; + for ( int i=1; i <= number_entries(); ++i ) { + print_hepevt_particle( i, ostr ); + } + ostr << "________________________________________" + << "________________________________________" << std::endl; + } + + void HEPEVT_Wrapper::print_legend( std::ostream& ostr ) + { + char outline[81]; + sprintf( outline,"%4s %4s %4s %5s %10s, %9s, %9s, %9s, %10s", + "Indx","Stat","Par-","chil-", + "( P_x","P_y","P_z","Energy","M ) "); + ostr << outline << std::endl; + sprintf( outline,"%9s %4s %4s %10s, %9s, %9s, %9s) %9s", + "ID ","ents","dren", + "Prod ( X","Y","Z","cT", "[mm]"); + ostr << outline << std::endl; + } + + void HEPEVT_Wrapper::print_hepevt_particle( int i, std::ostream& ostr ) + { + /// dumps the content HEPEVT particle entry i (Width is 120) + /// here i is the C array index (i.e. it starts at 0 ... whereas the + /// fortran array index starts at 1) So if there's 100 particles, the + /// last valid index is 100-1=99 + char outline[81]; + sprintf( outline, + "%4d %+4d %4d %4d (%9.3g, %9.3g, %9.3g, %9.3g, %9.3g)" + ,i, status(i), first_parent(i), first_child(i), + px(i), py(i), pz(i), e(i), m(i) ); + ostr << outline << "\n"; + sprintf( outline,"%+9d %4d %4d (%9.3g, %9.3g, %9.3g, %9.3g)", + // old version was:" (%+9.2e, %+9.2e, %+9.2e, %+9.2e)" + id(i), last_parent(i), last_child(i), + x(i), y(i), z(i), t(i) ); + ostr << outline << std::endl; + } + + + bool HEPEVT_Wrapper::check_hepevt_consistency( std::ostream& os ) + { + /// This method inspects the HEPEVT common block and looks for + /// inconsistencies in the mother/daughter pointers + bool isConsistent=true; + char header[81]; + sprintf( header, + "\n\n\t**** WARNINGInconsistent HEPEVT input, Event %10d ****" + , HEPEVT_Wrapper::event_number() ); + + for ( int i = 1; i <= HEPEVT_Wrapper::number_entries(); ++i ) { + // 1. check its mothers + int moth1 = HEPEVT_Wrapper::first_parent( i ); + int moth2 = HEPEVT_Wrapper::last_parent( i ); + if ( moth2 last parent " << std::endl; + HEPEVT_Wrapper::print_hepevt_particle( i, os ); + } + for ( int m = moth1; m<=moth2 && m!=0; ++m ) { + if ( m>HEPEVT_Wrapper::number_entries() || m < 0 ) { + if ( isConsistent ) { + os << header << std::endl; + isConsistent = false; + print_legend(os); + } + os << "Inconsistent entry " << i + << " mother points out of range " << std::endl; + HEPEVT_Wrapper::print_hepevt_particle( i, os ); + } + int mChild1 = HEPEVT_Wrapper::first_child(m); + int mChild2 = HEPEVT_Wrapper::last_child(m); + // we don't consider null pointers as inconsistent + if ( mChild1==0 && mChild2==0 ) continue; + if ( imChild2 ) { + if ( isConsistent ) { + os << header << std::endl; + isConsistent = false; + print_legend(os); + } + os << "Inconsistent mother-daughter relationship between " + << i << " & " << m + << " (try !trust_mother)" << std::endl; + HEPEVT_Wrapper::print_hepevt_particle( i, os ); + HEPEVT_Wrapper::print_hepevt_particle( m, os ); + } + } + // 2. check its daughters + int dau1 = HEPEVT_Wrapper::first_child( i ); + int dau2 = HEPEVT_Wrapper::last_child( i ); + if ( dau2 last child " << std::endl; + HEPEVT_Wrapper::print_hepevt_particle( i, os ); + } + for ( int d = dau1; d<=dau2 && d!=0; ++d ) { + if ( d>HEPEVT_Wrapper::number_entries() || d < 0 ) { + if ( isConsistent ) { + os << header << std::endl; + isConsistent = false; + print_legend(os); + } + os << "Inconsistent entry " << i + << " child points out of range " << std::endl; + HEPEVT_Wrapper::print_hepevt_particle( i, os ); + } + int d_moth1 = HEPEVT_Wrapper::first_parent(d); + int d_moth2 = HEPEVT_Wrapper::last_parent(d); + // we don't consider null pointers as inconsistent + if ( d_moth1==0 && d_moth2==0 ) continue; + if ( id_moth2 ) { + if ( isConsistent ) { + os << header << std::endl; + isConsistent = false; + print_legend(os); + } + os << "Inconsistent mother-daughter relationship between " + << i << " & " << d + << " (try trust_mothers)"<< std::endl; + HEPEVT_Wrapper::print_hepevt_particle( i, os ); + HEPEVT_Wrapper::print_hepevt_particle( d, os ); + } + } + } + if (!isConsistent) { + os << "Above lists all the inconsistencies in the HEPEVT common " + << "\n block which has been provided as input to HepMC. " + << "\n HepMC WILL have trouble interpreting the mother-daughter" + << "\n relationships ... but all other information " + << "\n (4-vectors etc) will be correctly transferred." + << "\n In order for HepMC to be able to interpret the mother/" + << "\n daughter hierachy, it MUST be given consistent input." + << "\n This is one of the design criteria of HepMC: " + << "\n consistency is enforced by the code."; + os << "\nThere is a switch in IO_HEPEVT, set-able using " + << "\n IO_HEPEVT::set_trust_mothers_before_daughters( bool )" + << "\n which you may want to try."; + os << "\nNote: if HEPEVT common block has been filled by pythia" + << "\n pyhepc, then the switch MSTP(128)=2 should be used in" + << "\n pythia, which instructs pythia not to put multiple " + << "\n copies of resonances in the event record.\n"; + os << "To obtain a file summarizing the inconsistency, you should:" + << "\n\t ofstream myFile(\"myInconsistentEvent.txt\"); " + << "\n\t HEPEVT_Wrapper::check_hepevt_consistency(myFile); " + << "\n\t HEPEVT_Wrapper::print_hepevt(myFile); " + << "\n[now write the event to HepMC using something like" + << "\n\t\t myIO_HEPEVT->write_event(myEvent); ]" + << "\n\t myEvent->print( myFile ); " + << " // print event as HepMC sees it" + << "\n ------------------------- Thank-you. \n\n" << std::endl; + } + return isConsistent; + } + + void HEPEVT_Wrapper::zero_everything() + { + set_event_number( 0 ); + set_number_entries( 0 ); + for ( int i = 1; i<=max_number_entries(); ++i ) { + set_status( i, 0 ); + set_id( i, 0 ); + set_parents( i, 0, 0 ); + set_children( i, 0, 0 ); + set_momentum( i, 0, 0, 0, 0 ); + set_mass( i, 0 ); + set_position( i, 0, 0, 0, 0 ); + } + } + +} // HepMC + diff --git a/TEvtGen/HepMC/HEPEVT_Wrapper.h b/TEvtGen/HepMC/HEPEVT_Wrapper.h new file mode 100644 index 00000000000..cc56250dfe1 --- /dev/null +++ b/TEvtGen/HepMC/HEPEVT_Wrapper.h @@ -0,0 +1,567 @@ +//-------------------------------------------------------------------------- + +#ifndef HEPEVT_EntriesAllocation +#define HEPEVT_EntriesAllocation 10000 +#endif // HEPEVT_EntriesAllocation + +//-------------------------------------------------------------------------- +#ifndef HEPMC_HEPEVT_COMMON_H +#define HEPMC_HEPEVT_COMMON_H +////////////////////////////////////////////////////////////////////////// +// +// PARAMETER (NMXHEP=2000) +// COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), +// & JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) +/**********************************************************/ +/* D E S C R I P T I O N : */ +/*--------------------------------------------------------*/ +/* NEVHEP - event number (or some special meaning*/ +/* (see documentation for details) */ +/* NHEP - actual number of entries in current */ +/* event. */ +/* ISTHEP[IHEP] - status code for IHEP'th entry - see */ +/* documentation for details */ +/* IDHEP [IHEP] - IHEP'th particle identifier according*/ +/* to PDG. */ +/* JMOHEP[IHEP][0] - pointer to position of 1st mother */ +/* JMOHEP[IHEP][1] - pointer to position of 2nd mother */ +/* JDAHEP[IHEP][0] - pointer to position of 1st daughter */ +/* JDAHEP[IHEP][1] - pointer to position of 2nd daughter */ +/* PHEP [IHEP][0] - X momentum */ +/* PHEP [IHEP][1] - Y momentum */ +/* PHEP [IHEP][2] - Z momentum */ +/* PHEP [IHEP][3] - Energy */ +/* PHEP [IHEP][4] - Mass */ +/* VHEP [IHEP][0] - X vertex */ +/* VHEP [IHEP][1] - Y vertex */ +/* VHEP [IHEP][2] - Z vertex */ +/* VHEP [IHEP][3] - production time */ +/*========================================================*/ +// Remember, array(1) is the first entry in a fortran array, array[0] is the +// first entry in a C array. +// +// This interface to HEPEVT common block treats the block as +// an array of bytes --- the precision and number of entries +// is determined "on the fly" by the wrapper and used to decode +// each entry. +// +// HEPEVT_EntriesAllocation is the maximum size of the HEPEVT common block +// that can be interfaced. +// It is NOT the actual size of the HEPEVT common used in each +// individual application. The actual size can be changed on +// the fly using HEPEVT_Wrapper::set_max_number_entries(). +// Thus HEPEVT_EntriesAllocation should typically be set +// to the maximum possible number of entries --- 10000 is a good choice +// (and is the number used by ATLAS versions of Pythia). +// +// Note: a statement like *( (int*)&hepevt.data[0] ) +// takes the memory address of the first byte in HEPEVT, +// interprets it as an integer pointer, +// and dereferences the pointer. +// i.e. it returns an integer corresponding to nevhep +// + +#include + + const unsigned int hepevt_bytes_allocation = + sizeof(long int) * ( 2 + 6 * HEPEVT_EntriesAllocation ) + + sizeof(double) * ( 9 * HEPEVT_EntriesAllocation ); + + +#ifdef _WIN32 // Platform: Windows MS Visual C++ +struct HEPEVT_DEF{ + char data[hepevt_bytes_allocation]; + }; +extern "C" HEPEVT_DEF HEPEVT; +#define hepevt HEPEVT + +#else +extern "C" { + extern struct { + char data[hepevt_bytes_allocation]; + } hepevt_; +} +#define hepevt hepevt_ + +#endif // Platform + +#endif // HEPMC_HEPEVT_COMMON_H + +//-------------------------------------------------------------------------- +#ifndef HEPMC_HEPEVT_WRAPPER_H +#define HEPMC_HEPEVT_WRAPPER_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, April 24, 2000, refer to: +// M. Dobbs and J.B. Hansen, "The HepMC C++ Monte Carlo Event Record for +// High Energy Physics", Computer Physics Communications (to be published). +// +// Generic Wrapper for the fortran HEPEVT common block +// This class is intended for static use only - it makes no sense to +// instantiate it. +// Updated: June 30, 2000 (static initialization moved to separate .cxx file) +////////////////////////////////////////////////////////////////////////// +// +// The index refers to the fortran style index: +// i.e. index=1 refers to the first entry in the HEPEVT common block. +// all indices must be >0 +// number_entries --> integer between 0 and max_number_entries() giving total +// number of sequential particle indices +// first_parent/child --> index of first mother/child if there is one, +// zero otherwise +// last_parent/child --> if number children is >1, address of last parent/child +// if number of children is 1, same as first_parent/child +// if there are no children, returns zero. +// is_double_precision --> T or F depending if floating point variables +// are 8 or 4 bytes +// + +#include +#include // needed for formatted output using sprintf + +namespace HepMC { + + //! Generic Wrapper for the fortran HEPEVT common block + + /// \class HEPEVT_Wrapper + /// This class is intended for static use only - it makes no sense to + /// instantiate it. + /// + class HEPEVT_Wrapper { + public: + + /// write information from HEPEVT common block + static void print_hepevt( std::ostream& ostr = std::cout ); + /// write particle information to ostr + static void print_hepevt_particle( int index, + std::ostream& ostr = std::cout ); + static bool is_double_precision(); //!< True if common block uses double + + /// check for problems with HEPEVT common block + static bool check_hepevt_consistency( std::ostream& ostr = std::cout ); + + /// set all entries in HEPEVT to zero + static void zero_everything(); + + //////////////////// + // Access Methods // + //////////////////// + static int event_number(); //!< event number + static int number_entries(); //!< num entries in current evt + static int status( int index ); //!< status code + static int id( int index ); //!< PDG particle id + static int first_parent( int index ); //!< index of 1st mother + static int last_parent( int index ); //!< index of last mother + static int number_parents( int index ); //!< number of parents + static int first_child( int index ); //!< index of 1st daughter + static int last_child( int index ); //!< index of last daughter + static int number_children( int index ); //!< number of children + static double px( int index ); //!< X momentum + static double py( int index ); //!< Y momentum + static double pz( int index ); //!< Z momentum + static double e( int index ); //!< Energy + static double m( int index ); //!< generated mass + static double x( int index ); //!< X Production vertex + static double y( int index ); //!< Y Production vertex + static double z( int index ); //!< Z Production vertex + static double t( int index ); //!< production time + + //////////////////// + // Set Methods // + //////////////////// + + /// set event number + static void set_event_number( int evtno ); + /// set number of entries in HEPEVT + static void set_number_entries( int noentries ); + /// set particle status + static void set_status( int index, int status ); + /// set particle ID + static void set_id( int index, int id ); + /// define parents of a particle + static void set_parents( int index, int firstparent, int lastparent ); + /// define children of a particle + static void set_children( int index, int firstchild, int lastchild ); + /// set particle momentum + static void set_momentum( int index, double px, double py, + double pz, double e ); + /// set particle mass + static void set_mass( int index, double mass ); + /// set particle production vertex + static void set_position( int index, double x, double y, double z, + double t ); + ////////////////////// + // HEPEVT Floorplan // + ////////////////////// + static unsigned int sizeof_int(); //!< size of integer in bytes + static unsigned int sizeof_real(); //!< size of real in bytes + static int max_number_entries(); //!< size of common block + static void set_sizeof_int(unsigned int); //!< define size of integer + static void set_sizeof_real(unsigned int); //!< define size of real + static void set_max_number_entries(unsigned int); //!< define size of common block + + protected: + /// navigate a byte array + static double byte_num_to_double( unsigned int ); + /// navigate a byte array + static int byte_num_to_int( unsigned int ); + /// pretend common block is an array of bytes + static void write_byte_num( double, unsigned int ); + /// pretend common block is an array of bytes + static void write_byte_num( int, unsigned int ); + /// print output legend + static void print_legend( std::ostream& ostr = std::cout ); + + private: + static unsigned int s_sizeof_int; + static unsigned int s_sizeof_real; + static unsigned int s_max_number_entries; + + }; + + ////////////////////////////// + // HEPEVT Floorplan Inlines // + ////////////////////////////// + inline unsigned int HEPEVT_Wrapper::sizeof_int(){ return s_sizeof_int; } + + inline unsigned int HEPEVT_Wrapper::sizeof_real(){ return s_sizeof_real; } + + inline int HEPEVT_Wrapper::max_number_entries() + { return (int)s_max_number_entries; } + + inline void HEPEVT_Wrapper::set_sizeof_int( unsigned int size ) + { + if ( size != sizeof(short int) && size != sizeof(long int) && size != sizeof(int) ) { + std::cerr << "HepMC is not able to handle integers " + << " of size other than 2 or 4." + << " You requested: " << size << std::endl; + } + s_sizeof_int = size; + } + + inline void HEPEVT_Wrapper::set_sizeof_real( unsigned int size ) { + if ( size != sizeof(float) && size != sizeof(double) ) { + std::cerr << "HepMC is not able to handle floating point numbers" + << " of size other than 4 or 8." + << " You requested: " << size << std::endl; + } + s_sizeof_real = size; + } + + inline void HEPEVT_Wrapper::set_max_number_entries( unsigned int size ) { + s_max_number_entries = size; + } + + inline double HEPEVT_Wrapper::byte_num_to_double( unsigned int b ) { + if ( b >= hepevt_bytes_allocation ) std::cerr + << "HEPEVT_Wrapper: requested hepevt data exceeds allocation" + << std::endl; + if ( s_sizeof_real == sizeof(float) ) { + float* myfloat = (float*)&hepevt.data[b]; + return (double)(*myfloat); + } else if ( s_sizeof_real == sizeof(double) ) { + double* mydouble = (double*)&hepevt.data[b]; + return (*mydouble); + } else { + std::cerr + << "HEPEVT_Wrapper: illegal floating point number length." + << s_sizeof_real << std::endl; + } + return 0; + } + + inline int HEPEVT_Wrapper::byte_num_to_int( unsigned int b ) { + if ( b >= hepevt_bytes_allocation ) std::cerr + << "HEPEVT_Wrapper: requested hepevt data exceeds allocation" + << std::endl; + if ( s_sizeof_int == sizeof(short int) ) { + short int* myshortint = (short int*)&hepevt.data[b]; + return (int)(*myshortint); + } else if ( s_sizeof_int == sizeof(long int) ) { + long int* mylongint = (long int*)&hepevt.data[b]; + return (*mylongint); + // on some 64 bit machines, int, short, and long are all different + } else if ( s_sizeof_int == sizeof(int) ) { + int* myint = (int*)&hepevt.data[b]; + return (*myint); + } else { + std::cerr + << "HEPEVT_Wrapper: illegal integer number length." + << s_sizeof_int << std::endl; + } + return 0; + } + + inline void HEPEVT_Wrapper::write_byte_num( double in, unsigned int b ) { + if ( b >= hepevt_bytes_allocation ) std::cerr + << "HEPEVT_Wrapper: requested hepevt data exceeds allocation" + << std::endl; + if ( s_sizeof_real == sizeof(float) ) { + float* myfloat = (float*)&hepevt.data[b]; + (*myfloat) = (float)in; + } else if ( s_sizeof_real == sizeof(double) ) { + double* mydouble = (double*)&hepevt.data[b]; + (*mydouble) = (double)in; + } else { + std::cerr + << "HEPEVT_Wrapper: illegal floating point number length." + << s_sizeof_real << std::endl; + } + } + + inline void HEPEVT_Wrapper::write_byte_num( int in, unsigned int b ) { + if ( b >= hepevt_bytes_allocation ) std::cerr + << "HEPEVT_Wrapper: requested hepevt data exceeds allocation" + << std::endl; + if ( s_sizeof_int == sizeof(short int) ) { + short int* myshortint = (short int*)&hepevt.data[b]; + (*myshortint) = (short int)in; + } else if ( s_sizeof_int == sizeof(long int) ) { + long int* mylongint = (long int*)&hepevt.data[b]; + (*mylongint) = (int)in; + // on some 64 bit machines, int, short, and long are all different + } else if ( s_sizeof_int == sizeof(int) ) { + int* myint = (int*)&hepevt.data[b]; + (*myint) = (int)in; + } else { + std::cerr + << "HEPEVT_Wrapper: illegal integer number length." + << s_sizeof_int << std::endl; + } + } + + ////////////// + // INLINES // + ////////////// + + inline bool HEPEVT_Wrapper::is_double_precision() + { + // true if 8byte floating point numbers are used in the HepEVT common. + return ( sizeof(double) == sizeof_real() ); + } + + inline int HEPEVT_Wrapper::event_number() + { return byte_num_to_int(0); } + + inline int HEPEVT_Wrapper::number_entries() + { + int nhep = byte_num_to_int( 1*sizeof_int() ); + return ( nhep <= max_number_entries() ? + nhep : max_number_entries() ); + } + + inline int HEPEVT_Wrapper::status( int index ) + { return byte_num_to_int( (2+index-1) * sizeof_int() ); } + + inline int HEPEVT_Wrapper::id( int index ) + { + return byte_num_to_int( (2+max_number_entries()+index-1) + * sizeof_int() ); + } + + inline int HEPEVT_Wrapper::first_parent( int index ) + { + int parent = byte_num_to_int( (2+2*max_number_entries()+2*(index-1)) + * sizeof_int() ); + return ( parent > 0 && parent <= number_entries() ) ? + parent : 0; + } + + inline int HEPEVT_Wrapper::last_parent( int index ) + { + // Returns the Index of the LAST parent in the HEPEVT record + // for particle with Index index. + // If there is only one parent, the last parent is forced to + // be the same as the first parent. + // If there are no parents for this particle, both the first_parent + // and the last_parent with return 0. + // Error checking is done to ensure the parent is always + // within range ( 0 <= parent <= nhep ) + // + int firstparent = first_parent(index); + int parent = byte_num_to_int( (2+2*max_number_entries()+2*(index-1)+1) + * sizeof_int() ); + return ( parent > firstparent && parent <= number_entries() ) + ? parent : firstparent; + } + + inline int HEPEVT_Wrapper::number_parents( int index ) { + int firstparent = first_parent(index); + return ( firstparent>0 ) ? + ( 1+last_parent(index)-firstparent ) : 0; + } + + inline int HEPEVT_Wrapper::first_child( int index ) + { + int child = byte_num_to_int( (2+4*max_number_entries()+2*(index-1)) + * sizeof_int() ); + return ( child > 0 && child <= number_entries() ) ? + child : 0; + } + + inline int HEPEVT_Wrapper::last_child( int index ) + { + // Returns the Index of the LAST child in the HEPEVT record + // for particle with Index index. + // If there is only one child, the last child is forced to + // be the same as the first child. + // If there are no children for this particle, both the first_child + // and the last_child with return 0. + // Error checking is done to ensure the child is always + // within range ( 0 <= parent <= nhep ) + // + int firstchild = first_child(index); + int child = byte_num_to_int( (2+4*max_number_entries()+2*(index-1)+1) + * sizeof_int() ); + return ( child > firstchild && child <= number_entries() ) + ? child : firstchild; + } + + inline int HEPEVT_Wrapper::number_children( int index ) + { + int firstchild = first_child(index); + return ( firstchild>0 ) ? + ( 1+last_child(index)-firstchild ) : 0; + } + + inline double HEPEVT_Wrapper::px( int index ) + { + return byte_num_to_double( (2+6*max_number_entries())*sizeof_int() + + (5*(index-1)+0) *sizeof_real() ); + } + + inline double HEPEVT_Wrapper::py( int index ) + { + return byte_num_to_double( (2+6*max_number_entries())*sizeof_int() + + (5*(index-1)+1) *sizeof_real() ); + } + + + inline double HEPEVT_Wrapper::pz( int index ) + { + return byte_num_to_double( (2+6*max_number_entries())*sizeof_int() + + (5*(index-1)+2) *sizeof_real() ); + } + + inline double HEPEVT_Wrapper::e( int index ) + { + return byte_num_to_double( (2+6*max_number_entries())*sizeof_int() + + (5*(index-1)+3) *sizeof_real() ); + } + + inline double HEPEVT_Wrapper::m( int index ) + { + return byte_num_to_double( (2+6*max_number_entries())*sizeof_int() + + (5*(index-1)+4) *sizeof_real() ); + } + + inline double HEPEVT_Wrapper::x( int index ) + { + return byte_num_to_double( (2+6*max_number_entries())*sizeof_int() + + ( 5*max_number_entries() + + (4*(index-1)+0) ) *sizeof_real() ); + } + + inline double HEPEVT_Wrapper::y( int index ) + { + return byte_num_to_double( (2+6*max_number_entries())*sizeof_int() + + ( 5*max_number_entries() + + (4*(index-1)+1) ) *sizeof_real() ); + } + + inline double HEPEVT_Wrapper::z( int index ) + { + return byte_num_to_double( (2+6*max_number_entries())*sizeof_int() + + ( 5*max_number_entries() + + (4*(index-1)+2) ) *sizeof_real() ); + } + + inline double HEPEVT_Wrapper::t( int index ) + { + return byte_num_to_double( (2+6*max_number_entries())*sizeof_int() + + ( 5*max_number_entries() + + (4*(index-1)+3) ) *sizeof_real() ); + } + + inline void HEPEVT_Wrapper::set_event_number( int evtno ) + { write_byte_num( evtno, 0 ); } + + inline void HEPEVT_Wrapper::set_number_entries( int noentries ) + { write_byte_num( noentries, 1*sizeof_int() ); } + + inline void HEPEVT_Wrapper::set_status( int index, int status ) + { + if ( index <= 0 || index > max_number_entries() ) return; + write_byte_num( status, (2+index-1) * sizeof_int() ); + } + + inline void HEPEVT_Wrapper::set_id( int index, int id ) + { + if ( index <= 0 || index > max_number_entries() ) return; + write_byte_num( id, (2+max_number_entries()+index-1) *sizeof_int() ); + } + + inline void HEPEVT_Wrapper::set_parents( int index, int firstparent, + int lastparent ) + { + if ( index <= 0 || index > max_number_entries() ) return; + write_byte_num( firstparent, (2+2*max_number_entries()+2*(index-1)) + *sizeof_int() ); + write_byte_num( lastparent, (2+2*max_number_entries()+2*(index-1)+1) + * sizeof_int() ); + } + + inline void HEPEVT_Wrapper::set_children( int index, int firstchild, + int lastchild ) + { + if ( index <= 0 || index > max_number_entries() ) return; + write_byte_num( firstchild, (2+4*max_number_entries()+2*(index-1)) + *sizeof_int() ); + write_byte_num( lastchild, (2+4*max_number_entries()+2*(index-1)+1) + *sizeof_int() ); + } + + inline void HEPEVT_Wrapper::set_momentum( int index, double px, + double py, double pz, double e ) + { + if ( index <= 0 || index > max_number_entries() ) return; + write_byte_num( px, (2+6*max_number_entries()) *sizeof_int() + + (5*(index-1)+0) *sizeof_real() ); + write_byte_num( py, (2+6*max_number_entries())*sizeof_int() + + (5*(index-1)+1) *sizeof_real() ); + write_byte_num( pz, (2+6*max_number_entries())*sizeof_int() + + (5*(index-1)+2) *sizeof_real() ); + write_byte_num( e, (2+6*max_number_entries())*sizeof_int() + + (5*(index-1)+3) *sizeof_real() ); + } + + inline void HEPEVT_Wrapper::set_mass( int index, double mass ) + { + if ( index <= 0 || index > max_number_entries() ) return; + write_byte_num( mass, (2+6*max_number_entries())*sizeof_int() + + (5*(index-1)+4) *sizeof_real() ); + } + + inline void HEPEVT_Wrapper::set_position( int index, double x, double y, + double z, double t ) + { + if ( index <= 0 || index > max_number_entries() ) return; + write_byte_num( x, (2+6*max_number_entries())*sizeof_int() + + ( 5*max_number_entries() + + (4*(index-1)+0) ) *sizeof_real() ); + write_byte_num( y, (2+6*max_number_entries())*sizeof_int() + + ( 5*max_number_entries() + + (4*(index-1)+1) ) *sizeof_real() ); + write_byte_num( z, (2+6*max_number_entries())*sizeof_int() + + ( 5*max_number_entries() + + (4*(index-1)+2) ) *sizeof_real() ); + write_byte_num( t, (2+6*max_number_entries())*sizeof_int() + + ( 5*max_number_entries() + + (4*(index-1)+3) ) *sizeof_real() ); + } + +} // HepMC + +#endif // HEPMC_HEPEVT_WRAPPER_H +//-------------------------------------------------------------------------- + diff --git a/TEvtGen/HepMC/HeavyIon.cc b/TEvtGen/HepMC/HeavyIon.cc new file mode 100644 index 00000000000..fd2290c189e --- /dev/null +++ b/TEvtGen/HepMC/HeavyIon.cc @@ -0,0 +1,144 @@ +//-------------------------------------------------------------------------- +// +// HeavyIon.cc +// Author: Lynn Garren +// +// Implement operator >> and operator << +// +// ---------------------------------------------------------------------- + +#include +#include +#include +#include + +#include "HepMC/HeavyIon.h" +#include "HepMC/StreamHelpers.h" +#include "HepMC/IO_Exception.h" + +namespace HepMC { + +/// Write the contents of HeavyIon to an output stream. +/// GenEvent stores a pointer to a HeavyIon. +std::ostream & operator << (std::ostream & os, HeavyIon const * ion) +{ + if ( !os ) { + std::cerr << "HeavyIon output stream !os, " + << " setting badbit" << std::endl; + os.clear(std::ios::badbit); + return os; + } + os << 'H'; + // HeavyIon* is set to 0 by default + if ( !ion ) { + detail::output( os, 0 ); + detail::output( os, 0 ); + detail::output( os, 0 ); + detail::output( os, 0 ); + detail::output( os, 0 ); + detail::output( os, 0 ); + detail::output( os, 0 ); + detail::output( os, 0 ); + detail::output( os, 0 ); + detail::output( os, 0. ); + detail::output( os, 0. ); + detail::output( os, 0. ); + detail::output( os, 0. ); + detail::output( os,'\n'); + return os; + } + // + detail::output( os, ion->Ncoll_hard() ); + detail::output( os, ion->Npart_proj() ); + detail::output( os, ion->Npart_targ() ); + detail::output( os, ion->Ncoll() ); + detail::output( os, ion->spectator_neutrons() ); + detail::output( os, ion->spectator_protons() ); + detail::output( os, ion->N_Nwounded_collisions() ); + detail::output( os, ion->Nwounded_N_collisions() ); + detail::output( os, ion->Nwounded_Nwounded_collisions() ); + detail::output( os, ion->impact_parameter() ); + detail::output( os, ion->event_plane_angle() ); + detail::output( os, ion->eccentricity() ); + detail::output( os, ion->sigma_inel_NN() ); + detail::output( os,'\n'); + + return os; +} + +/// Read the contents of HeavyIon from an input stream. +/// GenEvent stores a pointer to a HeavyIon. +std::istream & operator >> (std::istream & is, HeavyIon * ion) +{ + // make sure the stream is valid + if ( !is ) { + std::cerr << "HeavyIon input stream setting badbit." << std::endl; + is.clear(std::ios::badbit); + return is; + } + // get the HeavyIon line + std::string line; + std::getline(is,line); + std::istringstream iline(line); + std::string firstc; + iline >> firstc; + // test to be sure the next entry is of type "H" + if( firstc != "H" ) { + std::cerr << "HeavyIon input stream invalid line type: " + << firstc << std::endl; + // The most likely problem is that we have found a HepMC block line + throw IO_Exception("HeavyIon input stream encounterd invalid data"); + } + // read values into temp variables, then create a new HeavyIon object + int nh =0, np =0, nt =0, nc =0, + neut = 0, prot = 0, nw =0, nwn =0, nwnw =0; + float impact = 0., plane = 0., xcen = 0., inel = 0.; + iline >> nh ; + if(!iline) throw IO_Exception("HeavyIon input stream encounterd invalid data"); + iline >> np ; + if(!iline) throw IO_Exception("HeavyIon input stream encounterd invalid data"); + iline >> nt ; + if(!iline) throw IO_Exception("HeavyIon input stream encounterd invalid data"); + iline >> nc ; + if(!iline) throw IO_Exception("HeavyIon input stream encounterd invalid data"); + iline >> neut ; + if(!iline) throw IO_Exception("HeavyIon input stream encounterd invalid data"); + iline >> prot; + if(!iline) throw IO_Exception("HeavyIon input stream encounterd invalid data"); + iline >> nw ; + if(!iline) throw IO_Exception("HeavyIon input stream encounterd invalid data"); + iline >> nwn ; + if(!iline) throw IO_Exception("HeavyIon input stream encounterd invalid data"); + iline >> nwnw ; + if(!iline) throw IO_Exception("HeavyIon input stream encounterd invalid data"); + iline >> impact ; + if(!iline) throw IO_Exception("HeavyIon input stream encounterd invalid data"); + iline >> plane ; + if(!iline) throw IO_Exception("HeavyIon input stream encounterd invalid data"); + iline >> xcen ; + if(!iline) throw IO_Exception("HeavyIon input stream encounterd invalid data"); + iline >> inel; + if(!iline) throw IO_Exception("HeavyIon input stream encounterd invalid data"); + if( nh == 0 ) { + return is; + } + + ion->set_Ncoll_hard(nh); + ion->set_Npart_proj(np); + ion->set_Npart_targ(nt); + ion->set_Ncoll(nc); + ion->set_spectator_neutrons(neut); + ion->set_spectator_protons(prot); + ion->set_N_Nwounded_collisions(nw); + ion->set_Nwounded_N_collisions(nwn); + ion->set_Nwounded_Nwounded_collisions(nwnw); + ion->set_impact_parameter(impact); + ion->set_event_plane_angle(plane); + ion->set_eccentricity(xcen); + ion->set_sigma_inel_NN(inel); + + return is; +} + + +} // HepMC diff --git a/TEvtGen/HepMC/HeavyIon.h b/TEvtGen/HepMC/HeavyIon.h new file mode 100644 index 00000000000..1665a05049c --- /dev/null +++ b/TEvtGen/HepMC/HeavyIon.h @@ -0,0 +1,280 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_HEAVY_ION_H +#define HEPMC_HEAVY_ION_H + +////////////////////////////////////////////////////////////////////////// +// garren@fnal.gov, February 2006 +// +// Additional information storage for Heavy Ion generators +////////////////////////////////////////////////////////////////////////// +// +// int Ncoll_hard // Number of hard scatterings +// int Npart_proj // Number of projectile participants +// int Npart_targ // Number of target participants +// int Ncoll // Number of NN (nucleon-nucleon) collisions +// int N_Nwounded_collisions // Number of N-Nwounded collisions +// int Nwounded_N_collisions // Number of Nwounded-N collisons +// int Nwounded_Nwounded_collisions // Number of Nwounded-Nwounded collisions +// int spectator_neutrons // Number of spectator neutrons +// int spectator_protons // Number of spectator protons +// float impact_parameter // Impact Parameter(fm) of collision +// float event_plane_angle // Azimuthal angle of event plane +// float eccentricity // eccentricity of participating nucleons +// in the transverse plane +// (as in phobos nucl-ex/0510031) +// float sigma_inel_NN // nucleon-nucleon inelastic +// (including diffractive) cross-section +// +////////////////////////////////////////////////////////////////////////// +// Feb. 17, 2006: adjust names according to suggestions from Heavy Ion users +// Feb. 7, 2006: first pass at making method names consistent with existing +// HepMC code +////////////////////////////////////////////////////////////////////////// + +namespace HepMC { + + +//! The HeavyIon class stores information about heavy ions + +/// +/// \class HeavyIon +/// HepMC::HeavyIon provides +/// additional information storage for Heavy Ion generators in GenEvent. +/// Creation and use of this information is optional. +/// +class HeavyIon { + +public: + // --- birth/death: + // + /// default constructor + HeavyIon() + : m_Ncoll_hard(0), + m_Npart_proj(0), + m_Npart_targ(0), + m_Ncoll(0), + m_spectator_neutrons(0), + m_spectator_protons(0), + m_N_Nwounded_collisions(0), + m_Nwounded_N_collisions(0), + m_Nwounded_Nwounded_collisions(0), + m_impact_parameter(0), + m_event_plane_angle(0), + m_eccentricity(0), + m_sigma_inel_NN(0) + {} + + /// The first 6 values must be provided. + HeavyIon( int nh, int np, int nt, int nc, int ns, int nsp, + int nnw=0, int nwn=0, int nwnw=0, + float im=0., float pl=0., float ec=0., float s=0. ); + + ~HeavyIon() {} + + // --- copying: + // + HeavyIon( HeavyIon const & orig ); //!< copy constructor + HeavyIon & operator = ( HeavyIon const & rhs ); //!< make a copy + void swap( HeavyIon & other ); //!< swap two HeavyIon objects + + // --- equivalence: + // + bool operator==( const HeavyIon& ) const; //!< check for equality + bool operator!=( const HeavyIon& ) const; //!< check for inequality + + // --- accessors: + /// Number of hard scatterings + int Ncoll_hard() const { return m_Ncoll_hard; } + /// Number of projectile participants + int Npart_proj() const { return m_Npart_proj; } + /// Number of target participants + int Npart_targ() const { return m_Npart_targ; } + /// Number of NN (nucleon-nucleon) collisions + int Ncoll() const { return m_Ncoll; } + /// Number of spectator neutrons + int spectator_neutrons() const { return m_spectator_neutrons; } + /// Number of spectator protons + int spectator_protons() const { return m_spectator_protons; } + /// Number of N-Nwounded collisions + int N_Nwounded_collisions() const { return m_N_Nwounded_collisions; } + /// Number of Nwounded-N collisons + int Nwounded_N_collisions() const { return m_Nwounded_N_collisions; } + /// Number of Nwounded-Nwounded collisions + int Nwounded_Nwounded_collisions() const { return m_Nwounded_Nwounded_collisions; } + /// Impact Parameter(in fm) of collision + float impact_parameter() const { return m_impact_parameter; } + /// Azimuthal angle of event plane + float event_plane_angle() const { return m_event_plane_angle; } + /// eccentricity of participating nucleons in the transverse plane + /// (as in phobos nucl-ex/0510031) + float eccentricity() const { return m_eccentricity; } + /// nucleon-nucleon inelastic (including diffractive) cross-section + float sigma_inel_NN() const { return m_sigma_inel_NN; } + + /// verify that the instance contains non-zero information + bool is_valid() const; + + // --- mutators: + /// set number of hard scatterings + void set_Ncoll_hard(const int &i) { m_Ncoll_hard=i; } + /// set number of projectile participants + void set_Npart_proj(const int &i) { m_Npart_proj=i; } + /// set number of target participants + void set_Npart_targ(const int &i) { m_Npart_targ=i; } + /// set number of NN (nucleon-nucleon) collisions + void set_Ncoll(const int &i) { m_Ncoll=i; } + /// set number of spectator neutrons + void set_spectator_neutrons(const int &i) { m_spectator_neutrons=i; } + /// set number of spectator protons + void set_spectator_protons(const int &i) { m_spectator_protons=i; } + /// set number of N-Nwounded collisions + void set_N_Nwounded_collisions(const int &i) { m_N_Nwounded_collisions=i; } + /// set number of Nwounded-N collisons + void set_Nwounded_N_collisions(const int &i) { m_Nwounded_N_collisions=i; } + /// set number of Nwounded-Nwounded collisions + void set_Nwounded_Nwounded_collisions(const int &i) + { m_Nwounded_Nwounded_collisions=i; } + /// set Impact Parameter in fm + void set_impact_parameter(const float &f) { m_impact_parameter=f; } + /// set azimuthal angle of event plane + void set_event_plane_angle(const float &f) { m_event_plane_angle=f; } + /// set eccentricity of participating nucleons in the transverse plane + void set_eccentricity(const float &f) { m_eccentricity=f; } + /// set nucleon-nucleon inelastic cross-section + void set_sigma_inel_NN(const float &f) { m_sigma_inel_NN=f; } + +private: // data members + int m_Ncoll_hard; + int m_Npart_proj; + int m_Npart_targ; + int m_Ncoll; + int m_spectator_neutrons; + int m_spectator_protons; + int m_N_Nwounded_collisions; + int m_Nwounded_N_collisions; + int m_Nwounded_Nwounded_collisions; + float m_impact_parameter; + float m_event_plane_angle; + float m_eccentricity; + float m_sigma_inel_NN; + +}; + +// Free Functions + +/// Write the contents of HeavyIon to an output stream. +std::ostream & operator << (std::ostream &, HeavyIon const *); +/// Read the contents of HeavyIon from an input stream. +std::istream & operator >> (std::istream &, HeavyIon *); + +// inline operators + /// Required members are + /// the number of hard scatterings, + /// the number of projectile participants. + /// the number of target participants. + /// the number of nucleon-nucleon collisions, + /// the number of spectator neutrons, and + /// the number of spectator protons. +inline HeavyIon::HeavyIon( int nh, int np, int nt, int nc, int ns, int nsp, + int nnw, int nwn, int nwnw, + float im, float pl, float ec, float s ) + : m_Ncoll_hard(nh), + m_Npart_proj(np), + m_Npart_targ(nt), + m_Ncoll(nc), + m_spectator_neutrons(ns), + m_spectator_protons(nsp), + m_N_Nwounded_collisions(nnw), + m_Nwounded_N_collisions(nwn), + m_Nwounded_Nwounded_collisions(nwnw), + m_impact_parameter(im), + m_event_plane_angle(pl), + m_eccentricity(ec), + m_sigma_inel_NN(s) + {} + +inline HeavyIon::HeavyIon( HeavyIon const & orig ) + : m_Ncoll_hard(orig.m_Ncoll_hard), + m_Npart_proj(orig.m_Npart_proj), + m_Npart_targ(orig.m_Npart_targ), + m_Ncoll(orig.m_Ncoll), + m_spectator_neutrons(orig.m_spectator_neutrons), + m_spectator_protons(orig.m_spectator_protons), + m_N_Nwounded_collisions(orig.m_N_Nwounded_collisions), + m_Nwounded_N_collisions(orig.m_Nwounded_N_collisions), + m_Nwounded_Nwounded_collisions(orig.m_Nwounded_Nwounded_collisions), + m_impact_parameter(orig.m_impact_parameter), + m_event_plane_angle(orig.m_event_plane_angle), + m_eccentricity(orig.m_eccentricity), + m_sigma_inel_NN(orig.m_sigma_inel_NN) + {} + +inline HeavyIon & HeavyIon::operator = ( HeavyIon const & rhs ) +{ + HeavyIon temp( rhs ); + swap( temp ); + return *this; +} + +inline void HeavyIon::swap( HeavyIon & other ) +{ + std::swap(m_Ncoll_hard, other.m_Ncoll_hard); + std::swap(m_Npart_proj, other.m_Npart_proj); + std::swap(m_Npart_targ, other.m_Npart_targ); + std::swap(m_Ncoll, other.m_Ncoll); + std::swap(m_N_Nwounded_collisions, other.m_N_Nwounded_collisions); + std::swap(m_Nwounded_N_collisions, other.m_Nwounded_N_collisions); + std::swap(m_Nwounded_Nwounded_collisions, other.m_Nwounded_Nwounded_collisions); + std::swap(m_spectator_neutrons, other.m_spectator_neutrons); + std::swap(m_spectator_protons, other.m_spectator_protons); + std::swap(m_impact_parameter, other.m_impact_parameter); + std::swap(m_event_plane_angle, other.m_event_plane_angle); + std::swap(m_eccentricity, other.m_eccentricity); + std::swap(m_sigma_inel_NN, other.m_sigma_inel_NN); +} + +inline bool HeavyIon::operator==( const HeavyIon& a ) const +{ + /// equality requires that each member match + return ( a.Ncoll_hard() == this->Ncoll_hard() + && a.Npart_proj() == this->Npart_proj() + && a.Npart_targ() == this->Npart_targ() + && a.Ncoll() == this->Ncoll() + && a.N_Nwounded_collisions() == this->N_Nwounded_collisions() + && a.Nwounded_N_collisions() == this->Nwounded_N_collisions() + && a.Nwounded_Nwounded_collisions() == this->Nwounded_Nwounded_collisions() + && a.spectator_neutrons() == this->spectator_neutrons() + && a.spectator_protons() == this->spectator_protons() + && a.impact_parameter() == this->impact_parameter() + && a.event_plane_angle() == this->event_plane_angle() + && a.eccentricity() == this->eccentricity() + && a.sigma_inel_NN() == this->sigma_inel_NN() ); +} + +inline bool HeavyIon::operator!=( const HeavyIon& a ) const +{ + /// any nonmatching member generates inequality + return !( a == *this ); +} + +inline bool HeavyIon::is_valid() const +{ + if( m_Ncoll_hard != 0 ) return true; + if( m_Npart_proj != 0 ) return true; + if( m_Npart_targ != 0 ) return true; + if( m_Ncoll != 0 ) return true; + if( m_spectator_neutrons != 0 ) return true; + if( m_spectator_protons != 0 ) return true; + if( m_N_Nwounded_collisions != 0 ) return true; + if( m_Nwounded_N_collisions != 0 ) return true; + if( m_Nwounded_Nwounded_collisions != 0 ) return true; + if( m_impact_parameter != 0 ) return true; + if( m_event_plane_angle != 0 ) return true; + if( m_eccentricity != 0 ) return true; + if( m_sigma_inel_NN != 0 ) return true; + return false; +} + +} // HepMC + +#endif // HEPMC_HEAVY_ION_H diff --git a/TEvtGen/HepMC/HepMCDefs.h b/TEvtGen/HepMC/HepMCDefs.h new file mode 100644 index 00000000000..6145570fbb4 --- /dev/null +++ b/TEvtGen/HepMC/HepMCDefs.h @@ -0,0 +1,68 @@ +#ifndef HEPMC_DEFS_H +#define HEPMC_DEFS_H +// ---------------------------------------------------------------------- +// +// HepMCDefs.h +// Author: Lynn Garren +// +// Define various useful macros +// Most allow users to check for various code features +// +// ---------------------------------------------------------------------- + +// the HeavyIon class is available in HepMC +#ifndef HEPMC_HAS_HEAVY_ION +#define HEPMC_HAS_HEAVY_ION +#endif + +// the IO_Ascii class is NOT available in HepMC +#ifndef HEPMC_IO_ASCII_REMOVED +#define HEPMC_IO_ASCII_REMOVED +#endif + +// the ParticleData class is NOT available in HepMC +#ifndef HEPMC_PARTICLE_DATA_REMOVED +#define HEPMC_PARTICLE_DATA_REMOVED +#endif + +// the IO_GenEvent class is available in HepMC +#ifndef HEPMC_HAS_IO_GENEVENT +#define HEPMC_HAS_IO_GENEVENT +#endif + +// the PdfInfo class is available in HepMC +#ifndef HEPMC_HAS_PDF_INFO +#define HEPMC_HAS_PDF_INFO +#endif + +// HepMC uses SimpleVector (FourVector) to store momentum and position +#ifndef HEPMC_HAS_SIMPLE_VECTOR +#define HEPMC_HAS_SIMPLE_VECTOR +#endif + +// units are defined in HepMC +#ifndef HEPMC_HAS_UNITS +#define HEPMC_HAS_UNITS +#endif + +// the GenCrossSection class is available in HepMC +#ifndef HEPMC_HAS_CROSS_SECTION +#define HEPMC_HAS_CROSS_SECTION +#endif + +// the iterator range classes are available in HepMC +#ifndef HEPMC_HAS_ITERATOR_RANGES +#define HEPMC_HAS_ITERATOR_RANGES +#endif + +// the HepMC::WeightContainer class allows named weights +#ifndef HEPMC_HAS_NAMED_WEIGHTS +#define HEPMC_HAS_NAMED_WEIGHTS +#endif + +// define the version of HepMC. +#ifndef HEPMC_VERSION +#define HEPMC_VERSION "2.06.08" +#endif + +#endif // HEPMC_DEFS_H diff --git a/TEvtGen/HepMC/HerwigWrapper.cc b/TEvtGen/HepMC/HerwigWrapper.cc new file mode 100644 index 00000000000..5fcdaf567ef --- /dev/null +++ b/TEvtGen/HepMC/HerwigWrapper.cc @@ -0,0 +1,40 @@ +//-------------------------------------------------------------------------- +// +// HerwigWrapper.cc +// Author: Lynn Garren +// +// ---------------------------------------------------------------------- + +#ifdef _WIN32 // Platform: Windows MS Visual C++ + +// Sorry, there is NO version currently available for Vusual C++. + +#else + +#include + +#include "HepMC/HerwigWrapper.h" +#include "HepMC/GenCrossSection.h" + +// declare the struct here to keep the shared library happy +struct hwgev hwevnt_; + +namespace HepMC { + +GenCrossSection getHerwigCrossSection(int ngen) { + + HepMC::GenCrossSection xsec; + // set cross section information and convert to pb (HepMC convention) + double xsecval = hwevnt.AVWGT * 1000.0; + // statistical error + // Herwig has a better calculation of the error, + // but that information does not appear to be saved anywhere + double xsecerr = xsecval / std::sqrt((double)ngen); + // set and return cross section information + xsec.set_cross_section(xsecval, xsecerr); + return xsec; +} + +} // HepMC + +#endif //Platform diff --git a/TEvtGen/HepMC/HerwigWrapper.h b/TEvtGen/HepMC/HerwigWrapper.h new file mode 100644 index 00000000000..d4d860db3a2 --- /dev/null +++ b/TEvtGen/HepMC/HerwigWrapper.h @@ -0,0 +1,166 @@ +//-------------------------------------------------------------------------- +#ifndef HERWIG_WRAPPER_H +#define HERWIG_WRAPPER_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, November 200July 2002 +// Wrapper for FORTRAN version of Herwig +// Wrapper written for Herwig 6.4 +////////////////////////////////////////////////////////////////////////// + +#include + +// This pre-compiler directive is included (2002-01-16) to allow compatibility +// with MS Visual C++, which interfaces to fortran in a different manner. +// For it to work you need to define the _WIN32 variable when compiling. +#ifdef _WIN32 // Platform: Windows MS Visual C++ + +// Sorry, there is NO version currently available for Vusual C++. + +#else // Generic version, tested on Linux ecgs/gcc + +//-------------------------------------------------------------------------- +// HERWIG Common Block Declarations + +// COMMON/HWPROC/EBEAM1,EBEAM2,PBEAM1,PBEAM2,IPROC,MAXEV +extern "C" { + extern struct { + double EBEAM1,EBEAM2,PBEAM1,PBEAM2; + int IPROC,MAXEV; + } hwproc_; +} +#define hwproc hwproc_ + +// COMMON/HWBEAM/IPART1,IPART2 +extern "C" { + extern struct { + int IPART1, IPART2; + } hwbeam_; +} +#define hwbeam hwbeam_ + +// CHARACTER*8 PART1,PART2 +// COMMON/HWBMCH/PART1,PART2 +extern "C" { + extern struct { + char PART1[8],PART2[8]; + } hwbmch_; +} +#define hwbmch hwbmch_ + +// COMMON/HWEVNT/AVWGT,EVWGT,GAMWT,TLOUT,WBIGST,WGTMAX,WGTSUM,WSQSUM, +// & IDHW(NMXHEP),IERROR,ISTAT,LWEVT,MAXER,MAXPR,NOWGT,NRN(2),NUMER, +// & NUMERU,NWGTS,GENSOF +const int herwig_hepevt_size = 4000; +extern "C" { + extern struct hwgev { + double AVWGT,EVWGT,GAMWT,TLOUT,WBIGST,WGTMAX,WGTSUM,WSQSUM; + int IDHW[herwig_hepevt_size],IERROR,ISTAT,LWEVT,MAXER,MAXPR; + int NOWGT,NRN[2],NUMER,NUMERU,NWGTS; + int GENSOF; //Beware! in F77 this is logical + } hwevnt_; +} +#define hwevnt hwevnt_ + +// C Basic parameters (and quantities derived from them) +// COMMON/HWPRAM/AFCH(16,2),ALPHEM,B1LIM,BETAF,BTCLM,CAFAC,CFFAC, +// & CLMAX,CLPOW,CLSMR(2),CSPEED,ENSOF,ETAMIX,F0MIX,F1MIX,F2MIX,GAMH, +// & GAMW,GAMZ,GAMZP,GEV2NB,H1MIX,PDIQK,PGSMX,PGSPL(4),PHIMIX,PIFAC, +// & PRSOF,PSPLT(2),PTRMS,PXRMS,QCDL3,QCDL5,QCDLAM,QDIQK,QFCH(16),QG, +// & QSPAC,QV,SCABI,SWEIN,TMTOP,VFCH(16,2),VCKM(3,3),VGCUT,VQCUT, +// & VPCUT,ZBINM,EFFMIN,OMHMIX,ET2MIX,PH3MIX,GCUTME, +// & IOPREM,IPRINT,ISPAC,LRSUD,LWSUD,MODPDF(2),NBTRY,NCOLO,NCTRY, +// & NDTRY,NETRY,NFLAV,NGSPL,NSTRU,NSTRY,NZBIN,IOP4JT(2),NPRFMT, +// & AZSOFT,AZSPIN,CLDIR(2),HARDME,NOSPAC,PRNDEC,PRVTX,SOFTME,ZPRIME, +// & PRNDEF,PRNTEX,PRNWEB + +extern "C" { + extern struct { + double AFCH[2][16],ALPHEM,B1LIM,BETAF,BTCLM,CAFAC,CFFAC, + CLMAX,CLPOW,CLSMR[2],CSPEED,ENSOF,ETAMIX,F0MIX,F1MIX,F2MIX,GAMH, + GAMW,GAMZ,GAMZP,GEV2NB,H1MIX,PDIQK,PGSMX,PGSPL[4],PHIMIX,PIFAC, + PRSOF,PSPLT[2],PTRMS,PXRMS,QCDL3,QCDL5,QCDLAM,QDIQK,QFCH[16],QG, + QSPAC,QV,SCABI,SWEIN,TMTOP,VFCH[2][16],VCKM[3][3],VGCUT,VQCUT, + VPCUT,ZBINM,EFFMIN,OMHMIX,ET2MIX,PH3MIX,GCUTME; + int IOPREM,IPRINT,ISPAC,LRSUD,LWSUD,MODPDF[2],NBTRY,NCOLO,NCTRY, + NDTRY,NETRY,NFLAV,NGSPL,NSTRU,NSTRY,NZBIN,IOP4JT[2],NPRFMT; + int AZSOFT,AZSPIN,CLDIR[2],HARDME,NOSPAC,PRNDEC,PRVTX,SOFTME, + ZPRIME,PRNDEF,PRNTEX,PRNWEB; //Beware! in F77 these are logical + } hwpram_; +} +#define hwpram hwpram_ + +//-------------------------------------------------------------------------- +// HERWIG routines declaration + +#define hwigin hwigin_ // initialise other common blocks +#define hwigup hwigup_ // initialise HepUP run common block +#define hwuinc hwuinc_ // compute parameter-dependent constants +#define hwusta hwusta_ // call hwusta to make any particle stable +#define hweini hweini_ // initialise elementary process +#define hwuine hwuine_ // initialise event +#define hwepro hwepro_ // generate HERWIG hard subprocess +#define hwupro hwupro_ // read USER hard subprocess from HepUP event common +#define hwbgen hwbgen_ // generate parton cascades +#define hwdhob hwdhob_ // do heavy object decays +#define hwcfor hwcfor_ // do cluster hadronization +#define hwcdec hwcdec_ // do cluster decay +#define hwdhad hwdhad_ // do unstable particle decays +#define hwdhvy hwdhvy_ // do heavy flavour decays +#define hwmevt hwmevt_ // add soft underlying event if needed +#define hwufne hwufne_ // event generation completed, wrap up event .... +#define hwefin hwefin_ // terminate elementary process + +#define hwudpr hwudpr_ // prints out particle/decay properties +#define hwuepr hwuepr_ // prints out event data +#define hwupup hwupup_ // prints out HepEUP user common block event data +#define hwegup hwegup_ // terminal calculations to replace HWEFIN for HepUP + extern "C" { + void hwigin(void); + void hwigup(void); + void hwuinc(void); + void hwusta(const char*,int); + void hweini(void); + void hwuine(void); + void hwepro(void); + void hwupro(void); + void hwbgen(void); + void hwdhob(void); + void hwcfor(void); + void hwcdec(void); + void hwdhad(void); + void hwdhvy(void); + void hwmevt(void); + void hwufne(void); + void hwefin(void); + void hwudpr(void); + void hwuepr(void); + void hwupup(void); + void hwegup(void); + } + +//-------------------------------------------------------------------------- +// HERWIG block data +// ( with gcc it works to initialize the block data by calling +// "hwudat();" at beginning. ) + +#define hwudat hwudat_ +extern "C" { + void hwudat(void); +} + + +#include "HepMC/GenCrossSection.h" + +namespace HepMC { + +/// calculate the Herwig cross section and statistical error +GenCrossSection getHerwigCrossSection(int ngen); + +} // HepMC + +#endif // Platform + +#endif // HERWIG_WRAPPER_H + +//-------------------------------------------------------------------------- diff --git a/TEvtGen/HepMC/IO_AsciiParticles.cc b/TEvtGen/HepMC/IO_AsciiParticles.cc new file mode 100644 index 00000000000..3ec2ed70afa --- /dev/null +++ b/TEvtGen/HepMC/IO_AsciiParticles.cc @@ -0,0 +1,222 @@ +//-------------------------------------------------------------------------- + +////////////////////////////////////////////////////////////////////////////// +// Mikhail.Kirsanov@Cern.CH, 2006 +// event input/output in ascii format for eye and machine reading +// +// for arguments mostly similar to IO_Ascii. Special value of +// argument filename in constructor: if it is "cout" the output is to std::cout +////////////////////////////////////////////////////////////////////////////// + +#include "HepMC/IO_AsciiParticles.h" +#include "HepMC/GenEvent.h" +#include "HepMC/Version.h" + +namespace HepMC { + + IO_AsciiParticles::IO_AsciiParticles( const char* filename, std::ios::openmode mode ) + : m_precision(2), + m_mode(mode), m_finished_first_event_io(0) + { + if(std::string(filename) == std::string("cout")) { + m_outstream = &(std::cout); + m_file = 0; + } else { + m_file = new std::fstream(filename, mode); + m_outstream = m_file; + if ( (m_mode&std::ios::out && m_mode&std::ios::in) || + (m_mode&std::ios::app && m_mode&std::ios::in) ) { + std::cerr << "IO_AsciiParticles::IO_AsciiParticles Error, open of file requested " + << "of input AND output type. Not allowed. Closing file." + << std::endl; + m_file->close(); + delete m_file; + return; + } + } + // precision 16 (# digits following decimal point) is the minimum that + // will capture the full information stored in a double + // with precision <= 2 the width of output will be < 80 characters + m_outstream->precision(m_precision); + // we use decimal to store integers, because it is smaller than hex! + m_outstream->setf(std::ios::dec,std::ios::basefield); + m_outstream->setf(std::ios::scientific,std::ios::floatfield); + } + + IO_AsciiParticles::~IO_AsciiParticles() { + if(m_file) { + m_file->close(); + delete m_file; + } + } + + void IO_AsciiParticles::print( std::ostream& ostr ) const { + ostr << "IO_AsciiParticles: formated ascii file IO for eye and machine reading.\n" + << "\tFile openmode: " << m_mode + << " file state: " << m_outstream->rdstate() + << " bad:" << (m_outstream->rdstate()&std::ios::badbit) + << " eof:" << (m_outstream->rdstate()&std::ios::eofbit) + << " fail:" << (m_outstream->rdstate()&std::ios::failbit) + << " good:" << (m_outstream->rdstate()&std::ios::goodbit) << std::endl; + } + + void IO_AsciiParticles::write_event( const GenEvent* evt ) { + // Writes evt to m_outstream. It does NOT delete the event after writing. + // + // check the state of m_outstream is good, and that it is in output mode + if ( !evt || !m_outstream ) return; + if ( !(m_mode&std::ios::out) ) { + std::cerr << "HepMC::IO_AsciiParticles::write_event " + << " attempt to write to input file." << std::endl; + return; + } + // + // write event listing key before first event only. + if ( !m_finished_first_event_io ) { + m_finished_first_event_io = 1; + *m_outstream << "0 Run HepMC::IO_AsciiParticles eye-readable events output" + << std::endl; + *m_outstream << "# HepMC::Version " << versionName() << std::endl; + *m_outstream << + " # stat pdg moth1 px py pz energy mass eta" + << std::endl; + } + // + // output the event data + std::vector random_states = evt->random_states(); + *m_outstream << evt->event_number() << " Event" << std::endl; +#if 0 + *m_outstream << " " << evt->event_scale(); + output( evt->alphaQCD() ); + output( evt->alphaQED() ); + output( evt->signal_process_id() ); + output( ( evt->signal_process_vertex() ? + evt->signal_process_vertex()->barcode() : 0 ) ); + output( evt->vertices_size() ); // total number of vertices. + output( (int)random_states.size() ); + for ( std::vector::iterator rs = random_states.begin(); + rs != random_states.end(); ++rs ) { + output( *rs ); + } + output( (int)evt->weights().size() ); + for ( WeightContainer::const_iterator w = evt->weights().begin(); + w != evt->weights().end(); ++w ) { + output( *w ); + } + output('\n'); +#endif + // + int nparticles=0, imoth=0, ip=0, istati; + double xmassi, etai; + *m_outstream << evt->particles_size() << " particles" << std::endl; + GenVertex* orig; + for(HepMC::GenEvent::particle_const_iterator part = evt->particles_begin(); + part != evt->particles_end(); ++part ) { + //if( (*part)->status() != 1 ) continue; + nparticles++; + ip++; + istati = (*part)->status(); + if( (*part)->end_vertex() && istati == 1) { + std::cout << "final particle with end vertex!" << std::endl; + istati = -100; + } + imoth=0; + orig = (*part)->production_vertex(); + if(orig) { + imoth = 0; + bool ifound=false; + for(HepMC::GenEvent::particle_const_iterator part1 = + evt->particles_begin(); + part1 != part; part1++ ) { + imoth++; + if( (*part1)->end_vertex() == orig ) { ifound = true; break; } + } + if(!ifound) imoth = 0; + } + + m_outstream->width(4); + *m_outstream << ip << " "; + + m_outstream->width(3); + *m_outstream << istati << " "; + + m_outstream->width(5); + *m_outstream << (*part)->pdg_id() << " "; + + m_outstream->width(3); + *m_outstream << imoth << " "; + + if((*part)->momentum().px() >= 0.) *m_outstream << " "; + *m_outstream << (*part)->momentum().px() << " "; + if((*part)->momentum().py() >= 0.) *m_outstream << " "; + *m_outstream << (*part)->momentum().py() << " "; + if((*part)->momentum().pz() >= 0.) *m_outstream << " "; + *m_outstream << (*part)->momentum().pz() << " " + << (*part)->momentum().e() << " "; + + xmassi = (*part)->generatedMass(); + if(fabs(xmassi) < 0.0001) xmassi =0.; + m_outstream->setf(std::ios::fixed); + m_outstream->precision(3); + m_outstream->width(8); + *m_outstream << xmassi << " "; + m_outstream->setf(std::ios::scientific,std::ios::floatfield); + m_outstream->precision(m_precision); + + m_outstream->setf(std::ios::fixed); + m_outstream->precision(3); + m_outstream->width(6); + etai = (*part)->momentum().eta(); + if(etai > 999.)etai = 999.; + if(etai < -999.)etai = -999.; + *m_outstream << etai << std::endl; + m_outstream->setf(std::ios::scientific,std::ios::floatfield); + m_outstream->precision(m_precision); + + } + } + + bool IO_AsciiParticles::fill_next_event( GenEvent* evt ){ + // + // + // test that evt pointer is not null + if ( !evt ) { + std::cerr + << "IO_AsciiParticles::fill_next_event error - passed null event." + << std::endl; + return false; + } + // check the state of m_outstream is good, and that it is in input mode + if ( !m_file ) + std::cerr << "HepMC::IO_AsciiParticles::fill_next_event " + << " no file for input" << std::endl; + if ( !(m_mode&std::ios::in) ) { + std::cerr << "HepMC::IO_AsciiParticles::fill_next_event " + << " attempt to read from output file" << std::endl; + return false; + } + std::cerr << "IO_AsciiParticles input is not yet implemented" << std::endl; + return false; + } + + void IO_AsciiParticles::write_comment( const std::string comment ) { + // check the state of *m_outstream is good, and that it is in output mode + if ( !m_outstream ) return; + if ( !(m_mode&std::ios::out) ) { + std::cerr << "HepMC::IO_AsciiParticles::write_particle_data_table " + << " attempt to write to input file." << std::endl; + return; + } + // write end of event listing key if events have already been written + write_end_listing(); + // insert the comment key before the comment + *m_outstream << "\n" << "HepMC::IO_AsciiParticles-COMMENT\n"; + *m_outstream << comment << std::endl; + } + + bool IO_AsciiParticles::write_end_listing() { + return false; + } + +} // HepMC + diff --git a/TEvtGen/HepMC/IO_AsciiParticles.h b/TEvtGen/HepMC/IO_AsciiParticles.h new file mode 100644 index 00000000000..a62e7f717c3 --- /dev/null +++ b/TEvtGen/HepMC/IO_AsciiParticles.h @@ -0,0 +1,103 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_IO_ASCIIPARTICLES_H +#define HEPMC_IO_ASCIIPARTICLES_H + +////////////////////////////////////////////////////////////////////////// +// Mikhail.Kirsanov@Cern.CH, 2006 +// event input/output in ascii format for eye and machine reading +////////////////////////////////////////////////////////////////////////// +// +// Strategy for reading or writing events as machine readable +// ascii to a file. When instantiating, the mode of file to be created +// must be specified. Options are: +// std::ios::in open file for input +// std::ios::out open file for output +// std::ios::trunc erase old file when opening (i.e. ios::out|ios::trunc +// removes oldfile, and creates a new one for output ) +// std::ios::app append output to end of file +// for the purposes of this class, simultaneous input and output mode +// ( std::ios::in | std::ios::out ) is not allowed. +// +// Event listings are preceded by the key: +// "HepMC::IO_AsciiParticles-START_EVENT_LISTING\n" +// and terminated by the key: +// "HepMC::IO_AsciiParticles-END_EVENT_LISTING\n" +// Comments are allowed. They need not be preceded by anything, though if +// a comment is written using write_comment( const string ) then it will be +// preceded by "HepMC::IO_AsciiParticles-COMMENT\n" +// Each event, vertex, particle, particle data is preceded by +// "E ","V ","P ","D " respectively. +// Comments may appear anywhere in the file -- so long as they do not contain +// any of the 4 start/stop keys. +// + +#include +#include +#include +#include +#include "HepMC/IO_BaseClass.h" + +namespace HepMC { + + class GenEvent; + class GenVertex; + class GenParticle; + + //! event input/output in ascii format for eye and machine reading + + /// + /// \class IO_AsciiParticles + /// Strategy for reading or writing events as machine readable + /// ascii to a file. When instantiating, the mode of file to be created + /// must be specified. + /// + class IO_AsciiParticles : public IO_BaseClass { + public: + /// constructor requiring a file name and std::ios mode + IO_AsciiParticles( const char* filename="IO_AsciiParticles.dat", + std::ios::openmode mode=std::ios::out ); + virtual ~IO_AsciiParticles(); + + /// write this event + void write_event( const GenEvent* evt ); + /// get the next event + bool fill_next_event( GenEvent* evt ); + /// insert a comment directly into the output file --- normally you + /// only want to do this at the beginning or end of the file. All + /// comments are preceded with "HepMC::IO_AsciiParticles-COMMENT\n" + void write_comment( const std::string comment ); + + /// set output precision + void setPrecision(int iprec); + + int rdstate() const; //!< check the state of the IO stream + void clear(); //!< clear the IO stream + + /// write to ostr + void print( std::ostream& ostr = std::cout ) const; + + protected: // for internal use only + /// write end tag + bool write_end_listing(); + private: // use of copy constructor is not allowed + IO_AsciiParticles( const IO_AsciiParticles& ) : IO_BaseClass() {} + private: // data members + int m_precision; + std::ios::openmode m_mode; + std::fstream* m_file; + std::ostream* m_outstream; + bool m_finished_first_event_io; + }; + + ////////////// + // Inlines // + ////////////// + + inline int IO_AsciiParticles::rdstate() const { return (int)m_file->rdstate(); } + inline void IO_AsciiParticles::clear() { m_file->clear(); } + inline void IO_AsciiParticles::setPrecision(int iprec) { m_precision=iprec; } + +} // HepMC + +#endif // HEPMC_IO_ASCIIPARTICLES_H +//-------------------------------------------------------------------------- diff --git a/TEvtGen/HepMC/IO_BaseClass.h b/TEvtGen/HepMC/IO_BaseClass.h new file mode 100644 index 00000000000..802ec228d67 --- /dev/null +++ b/TEvtGen/HepMC/IO_BaseClass.h @@ -0,0 +1,116 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_IO_BASECLASS_H +#define HEPMC_IO_BASECLASS_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, November 1999, refer to: +// M. Dobbs and J.B. Hansen, "The HepMC C++ Monte Carlo Event Record for +// High Energy Physics", Computer Physics Communications (to be published). +// +// event input/output base class +////////////////////////////////////////////////////////////////////////// +// +// class from which all input/output classes shall inherit from. +// i.e.: if you want to write events to hbook ntuples, +// then inherit from this class and re-define read_event() +// and write_event() +// +// (Possible extension: Could make this an input iterator) +// + +#include +#include "HepMC/GenEvent.h" + +namespace HepMC { + + //! all input/output classes inherit from IO_BaseClass + + /// + /// \class IO_BaseClass + /// If you want to write a new IO class, + /// then inherit from this class and re-define read_event() + /// and write_event() + /// + class IO_BaseClass { + public: + virtual ~IO_BaseClass() {} + + /// write this GenEvent + virtual void write_event( const GenEvent* ) =0; + /// fill this GenEvent + virtual bool fill_next_event( GenEvent* ) =0; + /// write output to ostr + virtual void print( std::ostream& ostr = std::cout ) const; + // + // the read_next_event() differs from + // the fill_***() methods in that it creates a new event + // before calling the corresponding fill_*** method + // (they are not intended to be over-ridden) + GenEvent* read_next_event(); //!< do not over-ride + // + // The overloaded stream operators >>,<< are identical to + // read_next_event and write_event methods respectively. + // (or read_particle_data_table and write_particle_data_table) + // the event argument for the overloaded stream operators is a pointer, + // which is passed by reference. + // i.e. GenEvent* evt; + // io >> evt; + // will give the expected result. + // (note: I don't see any reason to have separate const and non-const + // versions of operator<<, but the pedantic ansi standard insists + // on it) + /// the same as read_next_event + virtual GenEvent*& operator>>( GenEvent*& ); + /// the same as write_event + virtual const GenEvent*& operator<<( const GenEvent*& ); + /// the same as write_event + virtual GenEvent*& operator<<( GenEvent*& ); + }; + + ////////////// + // Inlines // + ////////////// + + inline GenEvent* IO_BaseClass::read_next_event() { + /// creates a new event and fills it by calling + /// the sister method read_next_event( GenEvent* ) + // + // 1. create an empty event container + GenEvent* evt = new GenEvent(); + // 2. fill the evt container - if the read is successful, return the + // pointer, otherwise return null and delete the evt + if ( fill_next_event( evt ) ) return evt; + // note: the below delete is only reached if read fails + // ... thus there is not much overhead in new then delete + // since this statement is rarely reached + delete evt; + return 0; + } + + inline void IO_BaseClass::print( std::ostream& ostr ) const { + ostr << "IO_BaseClass: abstract parent I/O class. " << std::endl; + } + + inline GenEvent*& IO_BaseClass::operator>>( GenEvent*& evt ){ + evt = read_next_event(); + return evt; + } + + inline const GenEvent*& IO_BaseClass::operator<<( + const GenEvent*& evt ) { + write_event( evt ); + return evt; + } + + inline GenEvent*& IO_BaseClass::operator<<( GenEvent*& evt ) { + write_event( evt ); + return evt; + } + +} // HepMC + +#endif // HEPMC_IO_BASECLASS_H +//-------------------------------------------------------------------------- + + + diff --git a/TEvtGen/HepMC/IO_Exception.h b/TEvtGen/HepMC/IO_Exception.h new file mode 100644 index 00000000000..1e2b510aabf --- /dev/null +++ b/TEvtGen/HepMC/IO_Exception.h @@ -0,0 +1,50 @@ +#ifndef HEPMC_IO_EXCEPTION_H +#define HEPMC_IO_EXCEPTION_H +// ---------------------------------------------------------------------- +// +// IO_Exception.h +// Author: Lynn Garren +// +// IO exception handling +// IO_GenEvent, etc. catch the throw and set data members with the error type and message +// Some of the messages are constructed with transient information +// (e.g., contents of a bad GenParticle) +// +// ---------------------------------------------------------------------- + + + +#include + +namespace HepMC { + +//! IO exception handling + +/// +/// \class IO_Exception +/// IO_GenEvent, etc. catch the throw and set data members with the error type and message +/// Some of the messages are constructed with transient information +/// (e.g., contents of a bad GenParticle) +class IO_Exception : public std::runtime_error { +public: + IO_Exception(const std::string & msg) + : std::runtime_error(msg) { } + + /// IO error types + enum ErrorType{ OK, + NullEvent, + WrongFileType, + MissingStartKey, + EndOfStream, + EndKeyMismatch, + MissingEndKey, + InvalidData, + InputAndOutput, + BadOutputStream, + BadInputStream }; + +}; + +} // namespace HepMC + +#endif // HEPMC_IO_EXCEPTION_H diff --git a/TEvtGen/HepMC/IO_GenEvent.cc b/TEvtGen/HepMC/IO_GenEvent.cc new file mode 100644 index 00000000000..6acae538f92 --- /dev/null +++ b/TEvtGen/HepMC/IO_GenEvent.cc @@ -0,0 +1,178 @@ +//-------------------------------------------------------------------------- + +////////////////////////////////////////////////////////////////////////// +// garren@fnal.gov, July 2006 +// event input/output in ascii format for machine reading +// IO_GenEvent format contains HeavyIon and PdfInfo classes +////////////////////////////////////////////////////////////////////////// + +#include "HepMC/IO_GenEvent.h" +#include "HepMC/IO_Exception.h" +#include "HepMC/GenEvent.h" +#include "HepMC/StreamHelpers.h" + +namespace HepMC { + + IO_GenEvent::IO_GenEvent( const std::string& filename, std::ios::openmode mode ) + : m_mode(mode), + m_file(filename.c_str(), mode), + m_ostr(0), + m_istr(0), + m_iostr(0), + m_have_file(false), + m_error_type(IO_Exception::OK), + m_error_message() + { + if ( (m_mode&std::ios::out && m_mode&std::ios::in) || + (m_mode&std::ios::app && m_mode&std::ios::in) ) { + m_error_type = IO_Exception::InputAndOutput; + m_error_message ="IO_GenEvent::IO_GenEvent Error, open of file requested of input AND output type. Not allowed. Closing file."; + std::cerr << m_error_message << std::endl; + m_file.close(); + return; + } + // now we set the streams + m_iostr = &m_file; + if ( m_mode&std::ios::in ) { + m_istr = &m_file; + m_ostr = NULL; + detail::establish_input_stream_info(m_file); + } + if ( m_mode&std::ios::out ) { + m_ostr = &m_file; + m_istr = NULL; + detail::establish_output_stream_info(m_file); + } + m_have_file = true; + } + + + IO_GenEvent::IO_GenEvent( std::istream & istr ) + : m_ostr(0), + m_istr(&istr), + m_iostr(&istr), + m_have_file(false), + m_error_type(IO_Exception::OK), + m_error_message() + { + detail::establish_input_stream_info( istr ); + } + + IO_GenEvent::IO_GenEvent( std::ostream & ostr ) + : m_ostr(&ostr), + m_istr(0), + m_iostr(&ostr), + m_have_file(false), + m_error_type(IO_Exception::OK), + m_error_message() + { + detail::establish_output_stream_info( ostr ); + } + + IO_GenEvent::~IO_GenEvent() { + if ( m_ostr != NULL ) { + write_HepMC_IO_block_end(*m_ostr); + } + if(m_have_file) m_file.close(); + } + + void IO_GenEvent::use_input_units( Units::MomentumUnit mom, + Units::LengthUnit len ) { + if( m_istr != NULL ) { + set_input_units( *m_istr, mom, len ); + } + } + + void IO_GenEvent::print( std::ostream& ostr ) const { + ostr << "IO_GenEvent: unformated ascii file IO for machine reading.\n"; + if(m_have_file) ostr << "\tFile openmode: " << m_mode ; + ostr << " stream state: " << m_ostr->rdstate() + << " bad:" << (m_ostr->rdstate()&std::ios::badbit) + << " eof:" << (m_ostr->rdstate()&std::ios::eofbit) + << " fail:" << (m_ostr->rdstate()&std::ios::failbit) + << " good:" << (m_ostr->rdstate()&std::ios::goodbit) << std::endl; + } + + void IO_GenEvent::precision( int size ) { + if( size > 16 ) { + std::cerr << "IO_GenEvent::precision Error, " + << "precision is greater than 16. " + << "Not allowed. Using default precision of 16." + << std::endl; + size = 16; + } + if(m_ostr) { + m_ostr->precision(size); + } + } + + bool IO_GenEvent::fill_next_event( GenEvent* evt ){ + // + // reset error type + m_error_type = IO_Exception::OK; + // + // test that evt pointer is not null + if ( !evt ) { + m_error_type = IO_Exception::NullEvent; + m_error_message = "IO_GenEvent::fill_next_event error - passed null event."; + std::cerr << m_error_message << std::endl; + return false; + } + // make sure the stream is good, and that it is in input mode + if ( !(*m_istr) ) return false; + if ( !m_istr ) { + m_error_type = IO_Exception::WrongFileType; + m_error_message = "HepMC::IO_GenEvent::fill_next_event attempt to read from output file."; + std::cerr << m_error_message << std::endl; + return false; + } + // use streaming input + try { + *m_istr >> *evt; + } + catch (IO_Exception& e) { + m_error_type = IO_Exception::InvalidData; + m_error_message = e.what(); + evt->clear(); + return false; + } + if( evt->is_valid() ) return true; + return false; + } + + void IO_GenEvent::write_event( const GenEvent* evt ) { + /// Writes evt to output stream. It does NOT delete the event after writing. + // + // make sure the state is good, and that it is in output mode + if ( !evt ) return; + if ( m_ostr == NULL ) { + m_error_type = IO_Exception::WrongFileType; + m_error_message = "HepMC::IO_GenEvent::write_event attempt to write to input file."; + std::cerr << m_error_message << std::endl; + return; + } + // + // write event listing key before first event only. + write_HepMC_IO_block_begin(*m_ostr); + // explicit cast is necessary + GenEvent e = *evt; + *m_ostr << e ; + } + + void IO_GenEvent::write_comment( const std::string comment ) { + // make sure the stream is good, and that it is in output mode + if ( !(*m_ostr) ) return; + if ( m_ostr == NULL ) { + m_error_type = IO_Exception::WrongFileType; + m_error_message = "HepMC::IO_GenEvent::write_event attempt to write to input file."; + std::cerr << m_error_message << std::endl; + return; + } + // write end of event listing key if events have already been written + write_HepMC_IO_block_end(*m_ostr); + // insert the comment key before the comment + *m_ostr << "\n" << "HepMC::IO_GenEvent-COMMENT\n"; + *m_ostr << comment << std::endl; + } + +} // HepMC diff --git a/TEvtGen/HepMC/IO_GenEvent.h b/TEvtGen/HepMC/IO_GenEvent.h new file mode 100644 index 00000000000..f2efa16391d --- /dev/null +++ b/TEvtGen/HepMC/IO_GenEvent.h @@ -0,0 +1,152 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_IO_GENEVENT_H +#define HEPMC_IO_GENEVENT_H + +////////////////////////////////////////////////////////////////////////// +// garren@fnal.gov, July 2007 +// with input from Gavin Salam, salam@lpthe.jussieu.fr +// +// event input/output in ascii format for machine reading +// This class persists all information found in a GenEvent +////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include "HepMC/IO_BaseClass.h" +#include "HepMC/IO_Exception.h" +#include "HepMC/Units.h" + +namespace HepMC { + +class GenEvent; +class GenVertex; +class GenParticle; +class HeavyIon; +class PdfInfo; + +//! IO_GenEvent also deals with HeavyIon and PdfInfo + +/// +/// \class IO_GenEvent +/// event input/output in ascii format for machine reading +/// extended format contains HeavyIon and PdfInfo classes +/// +/// Strategy for reading or writing events using iostreams +/// When instantiating with a file name, the mode of file to be created +/// must be specified. Options are: +/// std::ios::in open file for input +/// std::ios::out open file for output +/// std::ios::trunc erase old file when opening (i.e. ios::out|ios::trunc +/// removes oldfile, and creates a new one for output ) +/// std::ios::app append output to end of file +/// for the purposes of this class, simultaneous input and output mode +/// ( std::ios::in | std::ios::out ) is not allowed. +/// +/// Event listings are preceded by the key: +/// "HepMC::IO_GenEvent-START_EVENT_LISTING\n" +/// and terminated by the key: +/// "HepMC::IO_GenEvent-END_EVENT_LISTING\n" +/// GenParticle Data tables are preceded by the key: +/// "HepMC::IO_GenEvent-START_PARTICLE_DATA\n" +/// and terminated by the key: +/// "HepMC::IO_GenEvent-END_PARTICLE_DATA\n" +/// Comments are allowed. They need not be preceded by anything, though if +/// a comment is written using write_comment( const string ) then it will be +/// preceded by "HepMC::IO_GenEvent-COMMENT\n" +/// Each event, vertex, particle, particle data, heavy ion, or pdf info line +/// is preceded by "E ","V ","P ","D ","H ","F " respectively. +/// Comments may appear anywhere in the file -- so long as they do not contain +/// any of the start/stop keys. +/// +class IO_GenEvent : public IO_BaseClass { +public: + /// constructor requiring a file name and std::ios mode + IO_GenEvent( const std::string& filename="IO_GenEvent.dat", + std::ios::openmode mode=std::ios::out ); + /// constructor requiring an input stream + IO_GenEvent( std::istream & ); + /// constructor requiring an output stream + IO_GenEvent( std::ostream & ); + virtual ~IO_GenEvent(); + + /// write this event + void write_event( const GenEvent* evt ); + /// get the next event + bool fill_next_event( GenEvent* evt ); + /// insert a comment directly into the output file --- normally you + /// only want to do this at the beginning or end of the file. All + /// comments are preceded with "HepMC::IO_GenEvent-COMMENT\n" + void write_comment( const std::string comment ); + + int rdstate() const; //!< check the state of the IO stream + void clear(); //!< clear the IO stream + + /// write to ostr + void print( std::ostream& ostr = std::cout ) const; + + /// needed when reading a file without units if those units are + /// different than the declared default units + /// (e.g., the default units are MeV, but the file was written with GeV) + /// This method is not necessary if the units are written in the file + void use_input_units( Units::MomentumUnit, Units::LengthUnit ); + + /// set output precision + /// The default precision is 16. + void precision( int ); + + /// integer (enum) associated with read error + int error_type() const; + /// the read error message string + const std::string & error_message() const; + +private: // use of copy constructor is not allowed + IO_GenEvent( const IO_GenEvent& ) : IO_BaseClass() {} + +private: // data members + std::ios::openmode m_mode; + std::fstream m_file; + std::ostream * m_ostr; + std::istream * m_istr; + std::ios * m_iostr; + bool m_have_file; + IO_Exception::ErrorType m_error_type; + std::string m_error_message; + +}; + +////////////// +// Inlines // +////////////// + +inline int IO_GenEvent::rdstate() const { + int state; + if( m_istr ) { + state = (int)m_istr->rdstate(); + } else { + state = (int)m_ostr->rdstate(); + } + return state; +} + +inline void IO_GenEvent::clear() { + if( m_istr ) { + m_istr->clear(); + } else { + m_ostr->clear(); + } +} + +inline int IO_GenEvent::error_type() const { + return m_error_type; +} + +inline const std::string & IO_GenEvent::error_message() const { + return m_error_message; +} + +} // HepMC + +#endif // HEPMC_IO_GENEVENT_H +//-------------------------------------------------------------------------- diff --git a/TEvtGen/HepMC/IO_HEPEVT.cc b/TEvtGen/HepMC/IO_HEPEVT.cc new file mode 100644 index 00000000000..d5de1b57ebb --- /dev/null +++ b/TEvtGen/HepMC/IO_HEPEVT.cc @@ -0,0 +1,350 @@ +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, January 2000 +// HEPEVT IO class +////////////////////////////////////////////////////////////////////////// + +#include "HepMC/IO_HEPEVT.h" +#include "HepMC/GenEvent.h" +#include // needed for formatted output using sprintf + +namespace HepMC { + + IO_HEPEVT::IO_HEPEVT() : m_trust_mothers_before_daughters(1), + m_trust_both_mothers_and_daughters(0), + m_print_inconsistency_errors(1), + m_trust_beam_particles(true) + {} + + IO_HEPEVT::~IO_HEPEVT(){} + + void IO_HEPEVT::print( std::ostream& ostr ) const { + ostr << "IO_HEPEVT: reads an event from the FORTRAN HEPEVT " + << "common block. \n" + << " trust_mothers_before_daughters = " + << m_trust_mothers_before_daughters + << " trust_both_mothers_and_daughters = " + << m_trust_both_mothers_and_daughters + << ", print_inconsistency_errors = " + << m_print_inconsistency_errors << std::endl; + } + + bool IO_HEPEVT::fill_next_event( GenEvent* evt ) { + /// read one event from the HEPEVT common block and fill GenEvent + /// return T/F =success/failure + /// + /// For HEPEVT commons built with the luhepc routine of Pythia 5.7 + /// the children pointers are not always correct (i.e. there is + /// oftentimes an internal inconsistency between the parents and + /// children pointers). The parent pointers always seem to be correct. + /// Thus the switch trust_mothers_before_daughters=1 is appropriate for + /// pythia. NOTE: you should also set the switch MSTP(128) = 2 in + /// pythia (not the default!), so that pythia doesn't + /// store two copies of resonances in the event record. + /// The situation is opposite for the HEPEVT which comes from Isajet + /// via stdhep, so then use the switch trust_mothers_before_daughters=0 + // + // 1. test that evt pointer is not null and set event number + if ( !evt ) { + std::cerr + << "IO_HEPEVT::fill_next_event error - passed null event." + << std::endl; + return false; + } + evt->set_event_number( HEPEVT_Wrapper::event_number() ); + // + // 2. create a particle instance for each HEPEVT entry and fill a map + // create a vector which maps from the HEPEVT particle index to the + // GenParticle address + // (+1 in size accounts for hepevt_particle[0] which is unfilled) + std::vector hepevt_particle( + HEPEVT_Wrapper::number_entries()+1 ); + hepevt_particle[0] = 0; + for ( int i1 = 1; i1 <= HEPEVT_Wrapper::number_entries(); ++i1 ) { + hepevt_particle[i1] = build_particle(i1); + } + std::set new_vertices; + // + // Here we assume that the first two particles in the list + // are the incoming beam particles. + if( trust_beam_particles() ) { + evt->set_beam_particles( hepevt_particle[1], hepevt_particle[2] ); + } + // + // 3.+4. loop over HEPEVT particles AGAIN, this time creating vertices + for ( int i = 1; i <= HEPEVT_Wrapper::number_entries(); ++i ) { + // We go through and build EITHER the production or decay + // vertex for each entry in hepevt, depending on the switch + // m_trust_mothers_before_daughters (new 2001-02-28) + // Note: since the HEPEVT pointers are bi-directional, it is + /// sufficient to do one or the other. + // + // 3. Build the production_vertex (if necessary) + if ( m_trust_mothers_before_daughters || + m_trust_both_mothers_and_daughters ) { + build_production_vertex( i, hepevt_particle, evt ); + } + // + // 4. Build the end_vertex (if necessary) + // Identical steps as for production vertex + if ( !m_trust_mothers_before_daughters || + m_trust_both_mothers_and_daughters ) { + build_end_vertex( i, hepevt_particle, evt ); + } + } + // 5. 01.02.2000 + // handle the case of particles in HEPEVT which come from nowhere - + // i.e. particles without mothers or daughters. + // These particles need to be attached to a vertex, or else they + // will never become part of the event. check for this situation + for ( int i3 = 1; i3 <= HEPEVT_Wrapper::number_entries(); ++i3 ) { + if ( !hepevt_particle[i3]->end_vertex() && + !hepevt_particle[i3]->production_vertex() ) { + GenVertex* prod_vtx = new GenVertex(); + prod_vtx->add_particle_out( hepevt_particle[i3] ); + evt->add_vertex( prod_vtx ); + } + } + return true; + } + + void IO_HEPEVT::write_event( const GenEvent* evt ) { + /// This writes an event out to the HEPEVT common block. The daughters + /// field is NOT filled, because it is possible to contruct graphs + /// for which the mothers and daughters cannot both be make sequential. + /// This is consistent with how pythia fills HEPEVT (daughters are not + /// necessarily filled properly) and how IO_HEPEVT reads HEPEVT. + // + if ( !evt ) return; + // + // map all particles onto a unique index + std::vector index_to_particle( + HEPEVT_Wrapper::max_number_entries()+1 ); + index_to_particle[0]=0; + std::map particle_to_index; + int particle_counter=0; + for ( GenEvent::vertex_const_iterator v = evt->vertices_begin(); + v != evt->vertices_end(); ++v ) { + // all "mothers" or particles_in are kept adjacent in the list + // so that the mother indices in hepevt can be filled properly + for ( GenVertex::particles_in_const_iterator p1 + = (*v)->particles_in_const_begin(); + p1 != (*v)->particles_in_const_end(); ++p1 ) { + ++particle_counter; + if ( particle_counter > + HEPEVT_Wrapper::max_number_entries() ) break; + index_to_particle[particle_counter] = *p1; + particle_to_index[*p1] = particle_counter; + } + // daughters are entered only if they aren't a mother of + // another vtx + for ( GenVertex::particles_out_const_iterator p2 + = (*v)->particles_out_const_begin(); + p2 != (*v)->particles_out_const_end(); ++p2 ) { + if ( !(*p2)->end_vertex() ) { + ++particle_counter; + if ( particle_counter > + HEPEVT_Wrapper::max_number_entries() ) { + break; + } + index_to_particle[particle_counter] = *p2; + particle_to_index[*p2] = particle_counter; + } + } + } + if ( particle_counter > HEPEVT_Wrapper::max_number_entries() ) { + particle_counter = HEPEVT_Wrapper::max_number_entries(); + } + // + // fill the HEPEVT event record + HEPEVT_Wrapper::set_event_number( evt->event_number() ); + HEPEVT_Wrapper::set_number_entries( particle_counter ); + for ( int i = 1; i <= particle_counter; ++i ) { + HEPEVT_Wrapper::set_status( i, index_to_particle[i]->status() ); + HEPEVT_Wrapper::set_id( i, index_to_particle[i]->pdg_id() ); + FourVector m = index_to_particle[i]->momentum(); + HEPEVT_Wrapper::set_momentum( i, m.px(), m.py(), m.pz(), m.e() ); + HEPEVT_Wrapper::set_mass( i, index_to_particle[i]->generatedMass() ); + // there should ALWAYS be particles in any vertex, but some generators + // are making non-kosher HepMC events + if ( index_to_particle[i]->production_vertex() && + index_to_particle[i]->production_vertex()->particles_in_size()) { + FourVector p = index_to_particle[i]-> + production_vertex()->position(); + HEPEVT_Wrapper::set_position( i, p.x(), p.y(), p.z(), p.t() ); + int num_mothers = index_to_particle[i]->production_vertex()-> + particles_in_size(); + int first_mother = find_in_map( particle_to_index, + *(index_to_particle[i]-> + production_vertex()-> + particles_in_const_begin())); + int last_mother = first_mother + num_mothers - 1; + if ( first_mother == 0 ) last_mother = 0; + HEPEVT_Wrapper::set_parents( i, first_mother, last_mother ); + } else { + HEPEVT_Wrapper::set_position( i, 0, 0, 0, 0 ); + HEPEVT_Wrapper::set_parents( i, 0, 0 ); + } + HEPEVT_Wrapper::set_children( i, 0, 0 ); + } + } + + void IO_HEPEVT::build_production_vertex(int i, + std::vector& + hepevt_particle, + GenEvent* evt ) { + /// + /// for particle in HEPEVT with index i, build a production vertex + /// if appropriate, and add that vertex to the event + GenParticle* p = hepevt_particle[i]; + // a. search to see if a production vertex already exists + int mother = HEPEVT_Wrapper::first_parent(i); + GenVertex* prod_vtx = p->production_vertex(); + while ( !prod_vtx && mother > 0 ) { + prod_vtx = hepevt_particle[mother]->end_vertex(); + if ( prod_vtx ) prod_vtx->add_particle_out( p ); + // increment mother for next iteration + if ( ++mother > HEPEVT_Wrapper::last_parent(i) ) mother = 0; + } + // b. if no suitable production vertex exists - and the particle + // has atleast one mother or position information to store - + // make one + FourVector prod_pos( HEPEVT_Wrapper::x(i), HEPEVT_Wrapper::y(i), + HEPEVT_Wrapper::z(i), HEPEVT_Wrapper::t(i) + ); + if ( !prod_vtx && (HEPEVT_Wrapper::number_parents(i)>0 + || prod_pos!=FourVector(0,0,0,0)) ) + { + prod_vtx = new GenVertex(); + prod_vtx->add_particle_out( p ); + evt->add_vertex( prod_vtx ); + } + // c. if prod_vtx doesn't already have position specified, fill it + if ( prod_vtx && prod_vtx->position()==FourVector(0,0,0,0) ) { + prod_vtx->set_position( prod_pos ); + } + // d. loop over mothers to make sure their end_vertices are + // consistent + mother = HEPEVT_Wrapper::first_parent(i); + while ( prod_vtx && mother > 0 ) { + if ( !hepevt_particle[mother]->end_vertex() ) { + // if end vertex of the mother isn't specified, do it now + prod_vtx->add_particle_in( hepevt_particle[mother] ); + } else if (hepevt_particle[mother]->end_vertex() != prod_vtx ) { + // problem scenario --- the mother already has a decay + // vertex which differs from the daughter's produciton + // vertex. This means there is internal + // inconsistency in the HEPEVT event record. Print an + // error + // Note: we could provide a fix by joining the two + // vertices with a dummy particle if the problem + // arrises often with any particular generator. + if ( m_print_inconsistency_errors ) std::cerr + << "HepMC::IO_HEPEVT: inconsistent mother/daugher " + << "information in HEPEVT event " + << HEPEVT_Wrapper::event_number() + << ". \n I recommend you try " + << "inspecting the event first with " + << "\n\tHEPEVT_Wrapper::check_hepevt_consistency()" + << "\n This warning can be turned off with the " + << "IO_HEPEVT::print_inconsistency_errors switch." + << std::endl; + } + if ( ++mother > HEPEVT_Wrapper::last_parent(i) ) mother = 0; + } + } + + void IO_HEPEVT::build_end_vertex + ( int i, std::vector& hepevt_particle, GenEvent* evt ) + { + /// + /// for particle in HEPEVT with index i, build an end vertex + /// if appropriate, and add that vertex to the event + // Identical steps as for build_production_vertex + GenParticle* p = hepevt_particle[i]; + // a. + int daughter = HEPEVT_Wrapper::first_child(i); + GenVertex* end_vtx = p->end_vertex(); + while ( !end_vtx && daughter > 0 ) { + end_vtx = hepevt_particle[daughter]->production_vertex(); + if ( end_vtx ) end_vtx->add_particle_in( p ); + if ( ++daughter > HEPEVT_Wrapper::last_child(i) ) daughter = 0; + } + // b. (different from 3c. because HEPEVT particle can not know its + // decay position ) + if ( !end_vtx && HEPEVT_Wrapper::number_children(i)>0 ) { + end_vtx = new GenVertex(); + end_vtx->add_particle_in( p ); + evt->add_vertex( end_vtx ); + } + // c+d. loop over daughters to make sure their production vertices + // point back to the current vertex. + // We get the vertex position from the daughter as well. + daughter = HEPEVT_Wrapper::first_child(i); + while ( end_vtx && daughter > 0 ) { + if ( !hepevt_particle[daughter]->production_vertex() ) { + // if end vertex of the mother isn't specified, do it now + end_vtx->add_particle_out( hepevt_particle[daughter] ); + // + // 2001-03-29 M.Dobbs, fill vertex the position. + if ( end_vtx->position()==FourVector(0,0,0,0) ) { + FourVector prod_pos( HEPEVT_Wrapper::x(daughter), + HEPEVT_Wrapper::y(daughter), + HEPEVT_Wrapper::z(daughter), + HEPEVT_Wrapper::t(daughter) + ); + if ( prod_pos != FourVector(0,0,0,0) ) { + end_vtx->set_position( prod_pos ); + } + } + } else if (hepevt_particle[daughter]->production_vertex() + != end_vtx){ + // problem scenario --- the daughter already has a prod + // vertex which differs from the mother's end + // vertex. This means there is internal + // inconsistency in the HEPEVT event record. Print an + // error + if ( m_print_inconsistency_errors ) std::cerr + << "HepMC::IO_HEPEVT: inconsistent mother/daugher " + << "information in HEPEVT event " + << HEPEVT_Wrapper::event_number() + << ". \n I recommend you try " + << "inspecting the event first with " + << "\n\tHEPEVT_Wrapper::check_hepevt_consistency()" + << "\n This warning can be turned off with the " + << "IO_HEPEVT::print_inconsistency_errors switch." + << std::endl; + } + if ( ++daughter > HEPEVT_Wrapper::last_child(i) ) daughter = 0; + } + if ( !p->end_vertex() && !p->production_vertex() ) { + // Added 2001-11-04, to try and handle Isajet problems. + build_production_vertex( i, hepevt_particle, evt ); + } + } + + GenParticle* IO_HEPEVT::build_particle( int index ) { + /// Builds a particle object corresponding to index in HEPEVT + // + GenParticle* p + = new GenParticle( FourVector( HEPEVT_Wrapper::px(index), + HEPEVT_Wrapper::py(index), + HEPEVT_Wrapper::pz(index), + HEPEVT_Wrapper::e(index) ), + HEPEVT_Wrapper::id(index), + HEPEVT_Wrapper::status(index) ); + p->setGeneratedMass( HEPEVT_Wrapper::m(index) ); + p->suggest_barcode( index ); + return p; + } + + int IO_HEPEVT::find_in_map( const std::map& m, + GenParticle* p) const { + std::map::const_iterator iter = m.find(p); + if ( iter == m.end() ) return 0; + return iter->second; + } + +} // HepMC + + + diff --git a/TEvtGen/HepMC/IO_HEPEVT.h b/TEvtGen/HepMC/IO_HEPEVT.h new file mode 100644 index 00000000000..cdb36e83f27 --- /dev/null +++ b/TEvtGen/HepMC/IO_HEPEVT.h @@ -0,0 +1,141 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_IO_HEPEVT_H +#define HEPMC_IO_HEPEVT_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, January 2000, refer to: +// M. Dobbs and J.B. Hansen, "The HepMC C++ Monte Carlo Event Record for +// High Energy Physics", Computer Physics Communications (to be published). +// +// HEPEVT IO class +////////////////////////////////////////////////////////////////////////// +// +// Important note: This class uses HepMC::HEPEVT_Wrapper which is an +// interface to the fortran77 HEPEVT common block. +// The precision and number of entries in the F77 common +// block can be specified. See HepMC/HEPEVT_Wrapper.h. +// You will very likely have to specify these values for your +// application. +// +// + +#include +#include +#include "HepMC/IO_BaseClass.h" +#include "HepMC/HEPEVT_Wrapper.h" + +namespace HepMC { + + class GenEvent; + class GenVertex; + class GenParticle; + + //! HEPEVT IO class + + /// + /// \class IO_HEPEVT + /// IO class for reading the standard HEPEVT common block. + /// + class IO_HEPEVT : public IO_BaseClass { + public: + IO_HEPEVT(); + virtual ~IO_HEPEVT(); + bool fill_next_event( GenEvent* ); + void write_event( const GenEvent* ); + void print( std::ostream& ostr = std::cout ) const; + + // see comments below for these switches. + /// default is false + bool trust_both_mothers_and_daughters() const; + /// default is true + bool trust_mothers_before_daughters() const; + /// default is true + bool print_inconsistency_errors() const; + /// default is true + bool trust_beam_particles() const; + /// define mother daughter trust rules + void set_trust_mothers_before_daughters( bool b = true ); + /// define mother daughter trust rules + void set_trust_both_mothers_and_daughters( bool b = false ); + /// Since HEPEVT has bi-directional pointers, it is possible that + /// the mother/daughter pointers are inconsistent (though physically + /// speaking this should never happen). In practise it happens often. + /// When a conflict occurs (i.e. when mother/daughter pointers are in + /// disagreement, where an empty (0) pointer is not considered a + /// disagreement) an error is printed. These errors can be turned off + /// with: myio_hepevt.set_print_inconsistency_errors(0); + /// but it is STRONGLY recommended that you print the HEPEVT + /// common and understand the inconsistency BEFORE you turn off the + /// errors. The messages are there for a reason [remember, there is + /// no message printed when the information is missing, ... only when + /// is it inconsistent. User beware.] + /// You can inspect the HEPEVT common block for inconsistencies with + /// HEPEVT_Wrapper::check_hepevt_consistency() + /// + /// There is a switch controlling whether the mother pointers or + /// the daughters are to be trusted. + /// For example, in Pythia the mother information is always correctly + /// included, but the daughter information is often left unfilled: in + /// this case we want to trust the mother pointers and not necessarily + /// the daughters. [THIS IS THE DEFAULT]. Unfortunately the reverse + /// happens for the stdhep(2001) translation of Isajet, so we need + /// an option to toggle the choices. + void set_print_inconsistency_errors( bool b = true ); + /// declare whether or not beam particles exist + void set_trust_beam_particles( bool b = true ); + + protected: // for internal use only + /// create a GenParticle + GenParticle* build_particle( int index ); + /// create a production vertex + void build_production_vertex( + int i,std::vector& hepevt_particle, GenEvent* evt ); + /// create an end vertex + void build_end_vertex( + int i, std::vector& hepevt_particle, GenEvent* evt ); + /// find this particle in the particle map + int find_in_map( + const std::map& m, GenParticle* p) const; + + private: // use of copy constructor is not allowed + IO_HEPEVT( const IO_HEPEVT& ) : IO_BaseClass() {} + + private: // data members + + bool m_trust_mothers_before_daughters; + bool m_trust_both_mothers_and_daughters; + bool m_print_inconsistency_errors; + bool m_trust_beam_particles; + }; + + //////////////////////////// + // INLINES access methods // + //////////////////////////// + inline bool IO_HEPEVT::trust_both_mothers_and_daughters() const + { return m_trust_both_mothers_and_daughters; } + + inline bool IO_HEPEVT::trust_mothers_before_daughters() const + { return m_trust_mothers_before_daughters; } + + inline bool IO_HEPEVT::print_inconsistency_errors() const + { return m_print_inconsistency_errors; } + + inline void IO_HEPEVT::set_trust_both_mothers_and_daughters( bool b ) + { m_trust_both_mothers_and_daughters = b; } + + inline void IO_HEPEVT::set_trust_mothers_before_daughters( bool b ) + { m_trust_mothers_before_daughters = b; } + + inline void IO_HEPEVT::set_print_inconsistency_errors( bool b ) + { m_print_inconsistency_errors = b; } + + inline bool IO_HEPEVT::trust_beam_particles() const + { return m_trust_beam_particles; } + + inline void IO_HEPEVT::set_trust_beam_particles( bool b ) + { m_trust_beam_particles = b; } + +} // HepMC + +#endif // HEPMC_IO_HEPEVT_H +//-------------------------------------------------------------------------- diff --git a/TEvtGen/HepMC/IO_HERWIG.cc b/TEvtGen/HepMC/IO_HERWIG.cc new file mode 100644 index 00000000000..e2f0d8eb065 --- /dev/null +++ b/TEvtGen/HepMC/IO_HERWIG.cc @@ -0,0 +1,823 @@ +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, October 2002 +// Herwig 6.400 IO class +////////////////////////////////////////////////////////////////////////// + +#include "HepMC/IO_HERWIG.h" +#include "HepMC/GenEvent.h" +#include // needed for formatted output using sprintf + +namespace HepMC { + + IO_HERWIG::IO_HERWIG() : m_trust_mothers_before_daughters(false), + m_trust_both_mothers_and_daughters(true), + m_print_inconsistency_errors(true), + m_no_gaps_in_barcodes(true), + m_herwig_to_pdg_id(100,0) + { + // These arrays are copied from Lynn Garren's stdhep 5.01-5.06. + // see http://cepa.fnal.gov/psm/stdhep/ + // Translation from HERWIG particle ID's to PDG particle ID's. + m_herwig_to_pdg_id[1] =1; + m_herwig_to_pdg_id[2] =2; + m_herwig_to_pdg_id[3] =3; + m_herwig_to_pdg_id[4] =4; + m_herwig_to_pdg_id[5] =5; + m_herwig_to_pdg_id[6] =6; + m_herwig_to_pdg_id[7] =7; + m_herwig_to_pdg_id[8] =8; + + m_herwig_to_pdg_id[11] =11; + m_herwig_to_pdg_id[12] =12; + m_herwig_to_pdg_id[13] =13; + m_herwig_to_pdg_id[14] =14; + m_herwig_to_pdg_id[15] =15; + m_herwig_to_pdg_id[16] =16; + + m_herwig_to_pdg_id[21] =21; + m_herwig_to_pdg_id[22] =22; + m_herwig_to_pdg_id[23] =23; + m_herwig_to_pdg_id[24] =24; + m_herwig_to_pdg_id[25] =25; + m_herwig_to_pdg_id[26] =51; // <-- H_L0 (redundant with h0(25)) + + m_herwig_to_pdg_id[32] =32; + m_herwig_to_pdg_id[35] =35; + m_herwig_to_pdg_id[36] =36; + m_herwig_to_pdg_id[37] =37; + m_herwig_to_pdg_id[39] =39; + + m_herwig_to_pdg_id[40] =40; //Charybdis Black Hole + + m_herwig_to_pdg_id[81] =81; + m_herwig_to_pdg_id[82] =82; + m_herwig_to_pdg_id[83] =83; + m_herwig_to_pdg_id[84] =84; + m_herwig_to_pdg_id[85] =85; + m_herwig_to_pdg_id[86] =86; + m_herwig_to_pdg_id[87] =87; + m_herwig_to_pdg_id[88] =88; + m_herwig_to_pdg_id[89] =89; + m_herwig_to_pdg_id[90] =90; + + m_herwig_to_pdg_id[91] =91; + m_herwig_to_pdg_id[92] =92; + m_herwig_to_pdg_id[93] =93; + m_herwig_to_pdg_id[94] =94; + m_herwig_to_pdg_id[95] =95; + m_herwig_to_pdg_id[96] =96; + m_herwig_to_pdg_id[97] =97; + m_herwig_to_pdg_id[98] =9920022; // <-- remnant photon + m_herwig_to_pdg_id[99] =9922212; // <-- remnant nucleon + + // These particle ID's have no antiparticle, so aren't allowed. + m_no_antiparticles.insert(-21); + m_no_antiparticles.insert(-22); + m_no_antiparticles.insert(-23); + m_no_antiparticles.insert(-25); + m_no_antiparticles.insert(-51); + m_no_antiparticles.insert(-35); + m_no_antiparticles.insert(-36); + } + + IO_HERWIG::~IO_HERWIG(){} + + void IO_HERWIG::print( std::ostream& ostr ) const { + ostr << "IO_HERWIG: reads an event from the FORTRAN Herwig HEPEVT " + << "common block. \n" + << " trust_mothers_before_daughters = " + << m_trust_mothers_before_daughters + << " trust_both_mothers_and_daughters = " + << m_trust_both_mothers_and_daughters + << " print_inconsistency_errors = " + << m_print_inconsistency_errors << std::endl; + } + + bool IO_HERWIG::fill_next_event( GenEvent* evt ) { + /// read one event from the Herwig HEPEVT common block and fill GenEvent + /// return T/F =success/failure + // + // 0. Test that evt pointer is not null and set event number + if ( !evt ) { + std::cerr + << "IO_HERWIG::fill_next_event error - passed null event." + << std::endl; + return false; + } + + // 1. First we have to fix the HEPEVT input, which is all mucked up for + // herwig. + repair_hepevt(); + + evt->set_event_number( HEPEVT_Wrapper::event_number() ); + // Herwig units are GeV and mm + // It would be nice to set the units right here, + // but this could cause problems with existing code that + // might convert GeV to MeV without calling the appropriate HepMC method + + // + // 2. create a particle instance for each HEPEVT entry and fill a map + // create a vector which maps from the HEPEVT particle index to the + // GenParticle address + // (+1 in size accounts for hepevt_particle[0] which is unfilled) + std::vector hepevt_particle( + HEPEVT_Wrapper::number_entries()+1 ); + hepevt_particle[0] = 0; + for ( int i1 = 1; i1 <= HEPEVT_Wrapper::number_entries(); ++i1 ) { + hepevt_particle[i1] = build_particle(i1); + } + std::set new_vertices; + // + // Here we assume that the first two particles in the list + // are the incoming beam particles. + // Best make sure this is done before any rearranging... + evt->set_beam_particles( hepevt_particle[1], hepevt_particle[2] ); + // + // 3. We need to take special care with the hard process + // vertex. The problem we are trying to avoid is when the + // partons entering the hard process also have daughters from + // the parton shower. When this happens, each one can get its + // own decay vertex, making it difficult to join them + // later. We handle it by joining them together first, then + // the other daughters get added on later. + // Find the partons entering the hard vertex (status codes 121, 122). + int index_121 = 0; + int index_122 = 0; + for ( int i = 1; i <=HEPEVT_Wrapper::number_entries(); i++ ) { + if ( HEPEVT_Wrapper::status(i)==121 ) index_121=i; + if ( HEPEVT_Wrapper::status(i)==122 ) index_122=i; + if ( index_121!=0 && index_122!=0 ) break; + } + if ( index_121 && index_122 ) { + GenVertex* hard_vtx = new GenVertex(); + hard_vtx->add_particle_in( hepevt_particle[index_121] ); + hard_vtx->add_particle_in( hepevt_particle[index_122] ); + // evt->add_vertex( hard_vtx ); // not necessary, its done in + // set_signal_process_vertex + //BPK - Atlas -> index_hard retained if it is a boson + int index_hard = 0; + for ( int i = 1; i <=HEPEVT_Wrapper::number_entries(); i++ ) { + if ( HEPEVT_Wrapper::status(i)==120 ) index_hard=i; + if ( index_hard!=0 ) break; + } + + if ( index_hard!=0) { + hard_vtx->add_particle_out( hepevt_particle[index_hard] ); + GenVertex* hard_vtx2 = new GenVertex(); + hard_vtx2->add_particle_in( hepevt_particle[index_hard] ); + for ( int i = 1; i <= HEPEVT_Wrapper::number_entries(); ++i ) { + if ( HEPEVT_Wrapper::first_parent(i)==index_hard ) { + hard_vtx2->add_particle_out( hepevt_particle[i] ); + } + } + evt->set_signal_process_vertex( hard_vtx ); + evt->set_signal_process_vertex( hard_vtx2 ); + } + else { + evt->set_signal_process_vertex( hard_vtx ); + } + //BPK - Atlas -< + } + // + // 4. loop over HEPEVT particles AGAIN, this time creating vertices + for ( int i = 1; i <= HEPEVT_Wrapper::number_entries(); ++i ) { + // We go through and build EITHER the production or decay + // vertex for each entry in hepevt, depending on the switch + // m_trust_mothers_before_daughters (new 2001-02-28) + // Note: since the HEPEVT pointers are bi-directional, it is + /// sufficient to do one or the other. + // + // 3. Build the production_vertex (if necessary) + if ( m_trust_mothers_before_daughters || + m_trust_both_mothers_and_daughters ) { + build_production_vertex( i, hepevt_particle, evt ); + } + // + // 4. Build the end_vertex (if necessary) + // Identical steps as for production vertex + if ( !m_trust_mothers_before_daughters || + m_trust_both_mothers_and_daughters ) { + build_end_vertex( i, hepevt_particle, evt ); + } + } + // 5. 01.02.2000 + // handle the case of particles in HEPEVT which come from nowhere - + // i.e. particles without mothers or daughters. + // These particles need to be attached to a vertex, or else they + // will never become part of the event. check for this situation. + for ( int i3 = 1; i3 <= HEPEVT_Wrapper::number_entries(); ++i3 ) { + // Herwig also has some non-physical entries in HEPEVT + // like CMS, HARD, and CONE. These are flagged by + // repair_hepevt by making their status and id zero. We + // delete those particles here. + if ( hepevt_particle[i3] && !hepevt_particle[i3]->parent_event() + && !hepevt_particle[i3]->pdg_id() + && !hepevt_particle[i3]->status() ) { + //std::cout << "IO_HERWIG::fill_next_event is deleting null " + // << "particle" << std::endl; + //hepevt_particle[i3]->print(); + delete hepevt_particle[i3]; + } else if ( hepevt_particle[i3] && + !hepevt_particle[i3]->end_vertex() && + !hepevt_particle[i3]->production_vertex() ) { + GenVertex* prod_vtx = new GenVertex(); + prod_vtx->add_particle_out( hepevt_particle[i3] ); + evt->add_vertex( prod_vtx ); + } + } + return true; + } + + void IO_HERWIG::build_production_vertex(int i, + std::vector& + hepevt_particle, + GenEvent* evt ) { + /// + /// for particle in HEPEVT with index i, build a production vertex + /// if appropriate, and add that vertex to the event + GenParticle* p = hepevt_particle[i]; + // a. search to see if a production vertex already exists + int mother = HEPEVT_Wrapper::first_parent(i); + GenVertex* prod_vtx = p->production_vertex(); + while ( !prod_vtx && mother > 0 ) { + prod_vtx = hepevt_particle[mother]->end_vertex(); + if ( prod_vtx ) prod_vtx->add_particle_out( p ); + // increment mother for next iteration + if ( ++mother > HEPEVT_Wrapper::last_parent(i) ) mother = 0; + } + // b. if no suitable production vertex exists - and the particle + // has atleast one mother or position information to store - + // make one + FourVector prod_pos( HEPEVT_Wrapper::x(i), HEPEVT_Wrapper::y(i), + HEPEVT_Wrapper::z(i), HEPEVT_Wrapper::t(i) + ); + if ( !prod_vtx && (HEPEVT_Wrapper::number_parents(i)>0 + || prod_pos!=FourVector(0,0,0,0)) ) + { + prod_vtx = new GenVertex(); + prod_vtx->add_particle_out( p ); + evt->add_vertex( prod_vtx ); + } + // c. if prod_vtx doesn't already have position specified, fill it + if ( prod_vtx && prod_vtx->position()==FourVector(0,0,0,0) ) { + prod_vtx->set_position( prod_pos ); + } + // d. loop over mothers to make sure their end_vertices are + // consistent + mother = HEPEVT_Wrapper::first_parent(i); + while ( prod_vtx && mother > 0 ) { + if ( !hepevt_particle[mother]->end_vertex() ) { + // if end vertex of the mother isn't specified, do it now + prod_vtx->add_particle_in( hepevt_particle[mother] ); + } else if (hepevt_particle[mother]->end_vertex() != prod_vtx ) { + // problem scenario --- the mother already has a decay + // vertex which differs from the daughter's produciton + // vertex. This means there is internal + // inconsistency in the HEPEVT event record. Print an + // error + // Note: we could provide a fix by joining the two + // vertices with a dummy particle if the problem + // arrises often with any particular generator. + if ( m_print_inconsistency_errors ) { + std::cerr + << "HepMC::IO_HERWIG: inconsistent mother/daugher " + << "information in HEPEVT event " + << HEPEVT_Wrapper::event_number() + << ". \n I recommend you try " + << "inspecting the event first with " + << "\n\tHEPEVT_Wrapper::check_hepevt_consistency()" + << "\n This warning can be turned off with the " + << "IO_HERWIG::print_inconsistency_errors switch." + << std::endl; + hepevt_particle[mother]->print(std::cerr); + std::cerr + << "problem vertices are: (prod_vtx, mother)" << std::endl; + if ( prod_vtx ) prod_vtx->print(std::cerr); + hepevt_particle[mother]->end_vertex()->print(std::cerr); + } + } + if ( ++mother > HEPEVT_Wrapper::last_parent(i) ) mother = 0; + } + } + + void IO_HERWIG::build_end_vertex + ( int i, std::vector& hepevt_particle, GenEvent* evt ) + { + /// + /// for particle in HEPEVT with index i, build an end vertex + /// if appropriate, and add that vertex to the event + // Identical steps as for build_production_vertex + GenParticle* p = hepevt_particle[i]; + // a. + int daughter = HEPEVT_Wrapper::first_child(i); + GenVertex* end_vtx = p->end_vertex(); + while ( !end_vtx && daughter > 0 ) { + end_vtx = hepevt_particle[daughter]->production_vertex(); + if ( end_vtx ) end_vtx->add_particle_in( p ); + if ( ++daughter > HEPEVT_Wrapper::last_child(i) ) daughter = 0; + } + // b. (different from 3c. because HEPEVT particle can not know its + // decay position ) + if ( !end_vtx && HEPEVT_Wrapper::number_children(i)>0 ) { + end_vtx = new GenVertex(); + end_vtx->add_particle_in( p ); + evt->add_vertex( end_vtx ); + } + // c+d. loop over daughters to make sure their production vertices + // point back to the current vertex. + // We get the vertex position from the daughter as well. + daughter = HEPEVT_Wrapper::first_child(i); + while ( end_vtx && daughter > 0 ) { + if ( !hepevt_particle[daughter]->production_vertex() ) { + // if end vertex of the mother isn't specified, do it now + end_vtx->add_particle_out( hepevt_particle[daughter] ); + // + // 2001-03-29 M.Dobbs, fill vertex the position. + if ( end_vtx->position()==FourVector(0,0,0,0) ) { + FourVector prod_pos( HEPEVT_Wrapper::x(daughter), + HEPEVT_Wrapper::y(daughter), + HEPEVT_Wrapper::z(daughter), + HEPEVT_Wrapper::t(daughter) + ); + if ( prod_pos != FourVector(0,0,0,0) ) { + end_vtx->set_position( prod_pos ); + } + } + } else if (hepevt_particle[daughter]->production_vertex() + != end_vtx){ + // problem scenario --- the daughter already has a prod + // vertex which differs from the mother's end + // vertex. This means there is internal + // inconsistency in the HEPEVT event record. Print an + // error + if ( m_print_inconsistency_errors ) std::cerr + << "HepMC::IO_HERWIG: inconsistent mother/daugher " + << "information in HEPEVT event " + << HEPEVT_Wrapper::event_number() + << ". \n I recommend you try " + << "inspecting the event first with " + << "\n\tHEPEVT_Wrapper::check_hepevt_consistency()" + << "\n This warning can be turned off with the " + << "IO_HERWIG::print_inconsistency_errors switch." + << std::endl; + } + if ( ++daughter > HEPEVT_Wrapper::last_child(i) ) daughter = 0; + } + if ( !p->end_vertex() && !p->production_vertex() ) { + // Added 2001-11-04, to try and handle Isajet problems. + build_production_vertex( i, hepevt_particle, evt ); + } + } + + GenParticle* IO_HERWIG::build_particle( int index ) { + /// Builds a particle object corresponding to index in HEPEVT + // + GenParticle* p + = new GenParticle( FourVector( HEPEVT_Wrapper::px(index), + HEPEVT_Wrapper::py(index), + HEPEVT_Wrapper::pz(index), + HEPEVT_Wrapper::e(index) ), + HEPEVT_Wrapper::id(index), + HEPEVT_Wrapper::status(index) ); + p->setGeneratedMass( HEPEVT_Wrapper::m(index) ); + p->suggest_barcode( index ); + return p; + } + + int IO_HERWIG::find_in_map( const std::map& m, + GenParticle* p) const { + std::map::const_iterator iter = m.find(p); + if ( iter == m.end() ) return 0; + return iter->second; + } + + void IO_HERWIG::repair_hepevt() const { + /// This routine takes the HEPEVT common block as used in HERWIG, + /// and converts it into the HEPEVT common block in the standard format + /// + /// This means it: + /// - removes the color structure, which herwig overloads + /// into the mother/daughter fields + /// - zeros extra entries for hard subprocess, etc. + /// + /// + /// Special HERWIG status codes + /// 101,102 colliding beam particles + /// 103 beam-beam collision CMS vector + /// 120 hard subprocess CMS vector + /// 121,122 hard subprocess colliding partons + /// 123-129 hard subprocess outgoing particles + /// 141-149 (ID=94) mirror image of hard subrpocess particles + /// 100 (ID=0 cone) + /// + /// Special HERWIG particle id's + /// 91 clusters + /// 94 jets + /// 0 others with no pdg code + + // Make sure hepvt isn't empty. + if ( HEPEVT_Wrapper::number_entries() <= 0 ) return; + + // Find the index of the beam-beam collision and of the hard subprocess + // Later we will assume that + // 101 ---> 121 \. + // X Hard subprocess + // 102 ---> 122 / + // + int index_collision = 0; + int index_hard = 0; + int index_101 = 0; + int index_102 = 0; + int index_121 = 0; + int index_122 = 0; + + for ( int i = 1; i <=HEPEVT_Wrapper::number_entries(); i++ ) { + if ( HEPEVT_Wrapper::status(i)==101 ) index_101=i; + if ( HEPEVT_Wrapper::status(i)==102 ) index_102=i; + if ( HEPEVT_Wrapper::status(i)==103 ) index_collision=i; + if ( HEPEVT_Wrapper::status(i)==120 ) index_hard=i; + if ( HEPEVT_Wrapper::status(i)==121 ) index_121=i; + if ( HEPEVT_Wrapper::status(i)==122 ) index_122=i; + if ( index_collision!=0 && index_hard!=0 && index_101!=0 && + index_102!=0 && index_121!=0 && index_122!=0 ) break; + } + + // The mother daughter information for the hard subprocess entry (120) + // IS correct, whereas the information for the particles participating + // in the hard subprocess contains instead the color flow relationships + // Transfer the hard subprocess info onto the other particles + // in the hard subprocess. + // + // We cannot specify daughters of the incoming hard process particles + // because they have some daughters (their showered versions) which + // are not adjacent in the particle record, so we cannot properly + // set the daughter indices in hepevt. + // + if (index_121) HEPEVT_Wrapper::set_parents(index_121, index_101, 0 ); + if (index_121) HEPEVT_Wrapper::set_children( index_121, 0, 0 ); + if (index_122) HEPEVT_Wrapper::set_parents(index_122, index_102, 0 ); + if (index_122) HEPEVT_Wrapper::set_children( index_122, 0, 0 ); + + for ( int i = HEPEVT_Wrapper::first_child(index_hard); + i <= HEPEVT_Wrapper::last_child(index_hard); i++ ) { + //BPK - Atlas -> + if (index_hard && HEPEVT_Wrapper::id(index_hard) == 0 ) { + HEPEVT_Wrapper::set_parents( + i, HEPEVT_Wrapper::first_parent(index_hard), + HEPEVT_Wrapper::last_parent(index_hard) ); + //BPK -> inconsistency in HWHGUP, desc from hard vert should point to it. + } else if ( HEPEVT_Wrapper::first_parent(i)!=index_hard) { + HEPEVT_Wrapper::set_parents(i,index_hard,HEPEVT_Wrapper::last_parent(i) ); + } + //BPK - Atlas -< + + // When the direct descendants of the hard process are hadrons, + // then the 2nd child contains color flow information, and so + // we zero it. + // However, if the direct descendant is status=195, then it is + // a non-hadron, and so the 2nd child does contain real mother + // daughter relationships. ( particularly relevant for H->WW, + // April 18, 2003 ) + // BPK - part of the inconsistency in HWHGUP problem + if ( HEPEVT_Wrapper::status(i) != 195 && HEPEVT_Wrapper::status(i) != 155 ) { + HEPEVT_Wrapper::set_children(i,HEPEVT_Wrapper::first_child(i),0); + } + } + + // now zero the collision and hard entries. + //BPK - Atlas -> + if (index_hard && HEPEVT_Wrapper::id(index_hard) == 0 ) zero_hepevt_entry(index_hard); + if (index_hard && HEPEVT_Wrapper::id(index_collision) == 0 ) zero_hepevt_entry(index_collision); + //BPK - Atlas -< + + // Loop over the particles individually and handle oddities + for ( int i=1; i <=HEPEVT_Wrapper::number_entries(); i++ ) { + + // ----------- Fix ID codes ---------- + // particles with ID=94 are mirror images of their mothers: + if ( HEPEVT_Wrapper::id(i)==94 ) { + HEPEVT_Wrapper::set_id( + i, HEPEVT_Wrapper::id( HEPEVT_Wrapper::first_parent(i) ) ); + } + + // ----------- fix STATUS codes ------ + // status=100 particles are "cones" which carry only color info + // throw them away + if ( HEPEVT_Wrapper::status(i)==100 ) zero_hepevt_entry(i); + + + // NOTE: status 101,102 particles are the beam particles. + // status 121,129 particles are the hard subprocess particles + // we choose to allow the herwig particles to have herwig + // specific codes, and so we don't bother to change these + // to status =3. + + + + + // ----------- fix some MOTHER/DAUGHTER relationships + // Whenever the mother points to the hard process, it is referring + // to a color flow, so we zero it. + if ( HEPEVT_Wrapper::last_parent(i)==index_hard ) { + HEPEVT_Wrapper::set_parents( + i, HEPEVT_Wrapper::first_parent(i), 0 ); + } + + // It makes no sense to have a mother that is younger than you are! + + if ( HEPEVT_Wrapper::first_parent(i) >= i ) { + HEPEVT_Wrapper::set_parents( i, 0, 0 ); + } + if ( HEPEVT_Wrapper::last_parent(i) >= i ) { + HEPEVT_Wrapper::set_parents( + i, HEPEVT_Wrapper::first_parent(i), 0 ); + } + + // Whenever the second mother/daughter has a lower index than the + // first, it means the second mother/daughter contains color + // info. Purge it. + if ( HEPEVT_Wrapper::last_parent(i) <= + HEPEVT_Wrapper::first_parent(i) ) { + HEPEVT_Wrapper::set_parents( + i, HEPEVT_Wrapper::first_parent(i), 0 ); + } + + if ( HEPEVT_Wrapper::last_child(i) <= + HEPEVT_Wrapper::first_child(i) ) { + HEPEVT_Wrapper::set_children( + i, HEPEVT_Wrapper::first_child(i), 0 ); + } + + // The mothers & daughters of a soft centre of mass (stat=170) seem + // to be correct, but they are out of sequence. The information is + // elsewhere in the event record, so zero it. + // + if ( HEPEVT_Wrapper::status(i) == 170 ) { + HEPEVT_Wrapper::set_parents( i, 0, 0 ); + HEPEVT_Wrapper::set_children( i, 0, 0 ); + } + + // Recognise clusters. + // Case 1: cluster has particle parents. + // Clusters normally DO point to its two + // correct mothers, but those 2 mothers are rarely adjacent in the + // event record ... so the mother information might say something + // like 123,48 where index123 and index48 really are the correct + // mothers... however the hepevt standard states that the mother + // pointers should give the index range. So we would have to + // reorder the event record and add entries if we wanted to use + // it. Instead we just zero the mothers, since all of that + // information is contained in the daughter information of the + // mothers. + // Case 2: cluster has a soft process centre of mass (stat=170) + // as parent. This is ok, keep it. + // + // Note if we were going directly to HepMC, then we could + // use this information properly! + + if ( HEPEVT_Wrapper::id(i)==91 ) { + // if the cluster comes from a SOFT (id=0,stat=170) + if ( HEPEVT_Wrapper::status(HEPEVT_Wrapper::first_parent(i)) + == 170 ) { + ; // In this case the mothers are ok + } else { + HEPEVT_Wrapper::set_parents( i, 0, 0 ); + } + } + } + + // ---------- Loop over the particles individually and look + // for mother/daughter inconsistencies. + // We consider a mother daughter relationship to be valid + // ONLy when the mother points to the daughter AND the + // daughter points back (true valid bidirectional + // pointers) OR when a one thing points to the other, but + // the other points to zero. If this isn't true, we zero + // the offending relationship. + + for ( int i=1; i <=HEPEVT_Wrapper::number_entries(); i++ ) { + // loop over parents + int ifirst = HEPEVT_Wrapper::first_parent(i); + int ilast = HEPEVT_Wrapper::last_parent(i); + if ( ilast == 0 ) ilast = HEPEVT_Wrapper::first_parent(i); + bool first_is_acceptable = true; + bool last_is_acceptable = true; + // check for out of range. + if ( ifirst>=i || ifirst<0 ) first_is_acceptable = false; + if ( ilast>=i || ilast=i ) {;} + else if ( HEPEVT_Wrapper::first_child(j) ==0 && + HEPEVT_Wrapper::last_child(j) ==0 ) {;} + + // Error Condition: + // modified by MADobbs@lbl.gov April 21, 2003 + // we distinguish between the first parent and all parents + // being incorrect + else if (j==ifirst) { first_is_acceptable = false; break; } + else { last_is_acceptable = false; break; } + } + } + // if any one of the mothers gave a bad outcome, zero all mothers + //BPK - Atlas -> + // do not disconnect photons (most probably from photos) + if ( HEPEVT_Wrapper::id(i) == 22 && HEPEVT_Wrapper::status(i) == 1 ) + { first_is_acceptable = true; } + //BPK - Atlas -< + if ( !first_is_acceptable ) { + HEPEVT_Wrapper::set_parents( i, 0, 0 ); + } else if ( !last_is_acceptable ) { + HEPEVT_Wrapper::set_parents(i,HEPEVT_Wrapper::first_parent(i),0); + } + } + // Note: it's important to finish the mother loop, before + // starting the daughter loop ... since many mother relations + // will be zero'd which will validate the daughters.... i.e., + // we want relationships like: + // IHEP ID IDPDG IST MO1 MO2 DA1 DA2 + // 27 TQRK 6 3 26 26 30 30 + // 30 TQRK 6 155 26 11 31 32 + // to come out right. + + for ( int i=1; i <=HEPEVT_Wrapper::number_entries(); i++ ) { + // loop over daughters + int ifirst = HEPEVT_Wrapper::first_child(i); + int ilast = HEPEVT_Wrapper::last_child(i); + if ( ilast==0 ) ilast = HEPEVT_Wrapper::first_child(i); + bool is_acceptable = true; + // check for out of range. + if ( ifirst<=i || ifirst<0 ) is_acceptable = false; + if ( ilast<=i || ilast=i ) {;} + else if ( HEPEVT_Wrapper::first_parent(j) ==0 && + HEPEVT_Wrapper::last_parent(j) ==0 ) {;} + else { is_acceptable = false; } // error condition + } + } + // if any one of the children gave a bad outcome, zero all children + if ( !is_acceptable ) HEPEVT_Wrapper::set_children( i, 0, 0 ); + } + + // fixme + + for ( int i=1; i <=HEPEVT_Wrapper::number_entries(); i++ ) { + HEPEVT_Wrapper::set_id( + i, translate_herwig_to_pdg_id(HEPEVT_Wrapper::id(i)) ); + } + + + if ( m_no_gaps_in_barcodes ) remove_gaps_in_hepevt(); + } + + void IO_HERWIG::remove_gaps_in_hepevt() const { + /// in this scenario, we do not allow there to be zero-ed + /// entries in the HEPEVT common block, and so be reshuffle + /// the common block, removing the zeero-ed entries as we + /// go and making sure we keep the mother/daughter + /// relationships appropriate + std::vector mymap(HEPEVT_Wrapper::number_entries()+1,0); + int ilast = 0; + for ( int i=1; i <=HEPEVT_Wrapper::number_entries(); i++ ) { + if (HEPEVT_Wrapper::status(i)==0 && HEPEVT_Wrapper::id(i)==0) { + // we remove all entries for which stat=0, id=0 + mymap[i]=0; + } else { + ilast += 1; + if ( ilast != i ) { + HEPEVT_Wrapper::set_status(ilast, + HEPEVT_Wrapper::status(i) ); + HEPEVT_Wrapper::set_id(ilast, HEPEVT_Wrapper::id(i) ); + HEPEVT_Wrapper::set_parents( + ilast, + HEPEVT_Wrapper::first_parent(i), + HEPEVT_Wrapper::last_parent(i) ); + HEPEVT_Wrapper::set_children( + ilast, + HEPEVT_Wrapper::first_child(i), + HEPEVT_Wrapper::last_child(i) ); + HEPEVT_Wrapper::set_momentum( + ilast, + HEPEVT_Wrapper::px(i), HEPEVT_Wrapper::py(i), + HEPEVT_Wrapper::pz(i), HEPEVT_Wrapper::e(i) ); + HEPEVT_Wrapper::set_mass(ilast, HEPEVT_Wrapper::m(i) ); + HEPEVT_Wrapper::set_position( + ilast, HEPEVT_Wrapper::x(i),HEPEVT_Wrapper::y(i), + HEPEVT_Wrapper::z(i),HEPEVT_Wrapper::t(i) ); + } + mymap[i]=ilast; + } + } + + // M. Dobbs (from Borut) - April 26, to fix tauolo/herwig past + // the end problem with daughter pointers: + // HEPEVT_Wrapper::set_number_entries( ilast ); + + // Finally we need to re-map the mother/daughter pointers. + for ( int i=1; i <=ilast; i++ ) { + + HEPEVT_Wrapper::set_parents( + i, + mymap[HEPEVT_Wrapper::first_parent(i)], + mymap[HEPEVT_Wrapper::last_parent(i)] ); + HEPEVT_Wrapper::set_children( + i, + mymap[HEPEVT_Wrapper::first_child(i)], + mymap[HEPEVT_Wrapper::last_child(i)] ); + } + // M. Dobbs (from Borut, part B) - April 26, to fix tauolo/herwig past + // the end problem with daughter pointers: + HEPEVT_Wrapper::set_number_entries( ilast ); + } + + void IO_HERWIG::zero_hepevt_entry( int i ) const { + if ( i <=0 || i > HepMC::HEPEVT_Wrapper::max_number_entries() ) return; + HEPEVT_Wrapper::set_status( i, 0 ); + HEPEVT_Wrapper::set_id( i, 0 ); + HEPEVT_Wrapper::set_parents( i, 0, 0 ); + HEPEVT_Wrapper::set_children( i, 0, 0 ); + HEPEVT_Wrapper::set_momentum( i, 0, 0, 0, 0 ); + HEPEVT_Wrapper::set_mass( i, 0 ); + HEPEVT_Wrapper::set_position( i, 0, 0, 0, 0 ); + } + + int IO_HERWIG::translate_herwig_to_pdg_id( int id ) const { + /// This routine is copied from Lynn Garren's stdhep 5.01. + /// see http:///cepa.fnal.gov/psm/stdhep/ + + // example -9922212 + int hwtran = id; // -9922212 + int ida = abs(id); // 9922212 + int j1 = ida%10; // 2 + int i1 = (ida/10)%10; // 1 + int i2 = (ida/100)%10; // 2 + int i3 = (ida/1000)%10; // 2 + //int i4 =(ida/10000)%10; // 2 + //int i5 =(ida/100000)%10; // 9 + //int k99 = (ida/100000)%100; // 9 + int ksusy = (ida/1000000)%10; // 0 + //int ku = (ida/10000000)%10; // 0 + int kqn = (ida/1000000000)%10; // 0 + + if ( kqn==1 ) { + // ions not recognized + hwtran=0; + if ( m_print_inconsistency_errors ) { + std::cerr << "IO_HERWIG::translate_herwig_to_pdg_id " << id + << "nonallowed ion" << std::endl; + } + } + else if (ida < 100) { + // Higgs, etc. + hwtran = m_herwig_to_pdg_id[ida]; + if ( id < 0 ) hwtran *= -1; + // check for illegal antiparticles + if ( id < 0 ) { + if ( hwtran>=-99 && hwtran<=-81) hwtran=0; + if ( m_no_antiparticles.count(hwtran) ) hwtran=0; + } + } + else if ( ksusy==1 || ksusy==2 ) { ; } + // SUSY + else if ( i1!=0 && i3!=0 && j1==2 ) {;} + // spin 1/2 baryons + else if ( i1!=0 && i3!=0 && j1==4 ) {;} + // spin 3/2 baryons + else if ( i1!=0 && i2!=0 && i3==0 ) { + // mesons + // check for illegal antiparticles + if ( i1==i2 && id<0) hwtran=0; + } + else if ( i2!=0 && i3!=0 && i1==0 ) {;} + // diquarks + else { + // undefined + hwtran=0; + } + + // check for illegal anti KS, KL + if ( id==-130 || id==-310 ) hwtran=0; + + if ( hwtran==0 && ida!=0 && m_print_inconsistency_errors ) { + std::cerr + << "IO_HERWIG::translate_herwig_to_pdg_id HERWIG particle " + << id << " translates to zero." << std::endl; + } + + return hwtran; + } + +} // HepMC + + + + diff --git a/TEvtGen/HepMC/IO_HERWIG.h b/TEvtGen/HepMC/IO_HERWIG.h new file mode 100644 index 00000000000..8bfcc75417a --- /dev/null +++ b/TEvtGen/HepMC/IO_HERWIG.h @@ -0,0 +1,160 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_IO_HERWIG_H +#define HEPMC_IO_HERWIG_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, October 2002, refer to: +// M. Dobbs and J.B. Hansen, "The HepMC C++ Monte Carlo Event Record for +// High Energy Physics", Computer Physics Communications (to be published). +// +// IO class for reading the (non-standard) HEPEVT common block from +// the Herwig monte carlo program. +// Notes: +// - The HERWIG HEPEVT common block is non-standard, primarily because it +// contains some color flow information. When you call IO_HERWIG, the +// HEPEVT common block is transformed to the standard. THIS CHANGES THE +// CONTENT of HEPEVT!. +// - The HERWIG HEPEVT common block has some EXTRA non-physical ENTRIES +// (such as CMS frame, HARD subprocess, and CONE). +// These are removed by IO_HERWIG. Thus the HepMC event will APPEAR +// to have fewer particles in it that herwig did. +// There is a switch m_no_gaps_in_barcodes. For +// true - then the extra particles are removed from HEPEVT, with +// the result that the HepMC barcodes will be sequential, with +// no gaps. +// false - the barcodes will correspond directly to the HEPEVT index, but +// there will be gaps ... ie some barcodes will be unassigned. +// this switch requested by I Hinchliffe, October 31, 2002 +// - some of the Herwig GLUON SPLITTING products are not properly documented +// in hepevt. I was unable to repair this in a simple and robust way. +// Therefore some of the gluon splitting products will be orphans +// in the HepMC output. +// - Herwig uses HEPEVT_Wrapper::set_max_number_entries(4000); +// HEPEVT_Wrapper::set_sizeof_real(8); +// which are the defaults for HEPEVT_Wrapper. +////////////////////////////////////////////////////////////////////////// +// + +#include +#include +#include "HepMC/IO_BaseClass.h" +#include "HepMC/HEPEVT_Wrapper.h" + +namespace HepMC { + + class GenEvent; + class GenVertex; + class GenParticle; + + //! IO_HERWIG is used to get Herwig information + + /// + /// \class IO_HERWIG + /// IO class for reading the HEPEVT common block from + /// the Herwig monte carlo program. + /// + class IO_HERWIG : public IO_BaseClass { + public: + IO_HERWIG(); + virtual ~IO_HERWIG(); + /// get the next event + bool fill_next_event( GenEvent* ); + /// write to ostr + void print( std::ostream& ostr = std::cout ) const; + /// this information is dubious + double interfaces_to_version_number() const {return 6.400;} + + // see comments below for these switches. + /// default is true + bool print_inconsistency_errors() const; + /// decide whether or not to print inconsistency errors + void set_print_inconsistency_errors( bool b = true ); + + /// ask how to deal with extra non-physical pseudo particles + bool no_gaps_in_barcodes() const + { return m_no_gaps_in_barcodes; } + /// The HERWIG HEPEVT common block has some EXTRA non-physical ENTRIES + /// (such as CMS frame, HARD subprocess, and CONE). + /// These are removed by IO_HERWIG. Thus the HepMC event will APPEAR + /// to have fewer particles in it that herwig did. + /// There is a switch m_no_gaps_in_barcodes. For + /// true - then the extra particles are removed from HEPEVT, with + /// the result that the HepMC barcodes will be sequential, with + /// no gaps. + /// false - the barcodes will correspond directly to the HEPEVT index, but + /// there will be gaps ... ie some barcodes will be unassigned. + /// this switch requested by I Hinchliffe, October 31, 2002 + void set_no_gaps_in_barcodes( bool a ) + { m_no_gaps_in_barcodes=a; } + + protected: // for internal use only + /// default is true + bool trust_both_mothers_and_daughters() const; + /// default is false + bool trust_mothers_before_daughters() const; + /// define mother daughter trust rules + void set_trust_mothers_before_daughters( bool b = true ); + /// define mother daughter trust rules + void set_trust_both_mothers_and_daughters( bool b = false ); + + /// make a particle + GenParticle* build_particle( int index ); + /// make a production vertex + void build_production_vertex( + int i,std::vector& hepevt_particle, GenEvent* evt ); + /// make a decay vertex + void build_end_vertex( + int i, std::vector& hepevt_particle, GenEvent* evt ); + /// find this particle in the map + int find_in_map( + const std::map& m, GenParticle* p) const; + + /// make the HERWIG HEPEVT common block look like the standard + void repair_hepevt() const; + /// deal with artifacts of repairing HEPEVT + void remove_gaps_in_hepevt() const; + /// zero out a HEPEVT pseudo particle + void zero_hepevt_entry( int i ) const; + /// translate particle ID + int translate_herwig_to_pdg_id( int i ) const; + + private: // following are not implemented for Herwig + virtual void write_event( const GenEvent* ){} + + private: // use of copy constructor is not allowed + IO_HERWIG( const IO_HERWIG& ) : IO_BaseClass() {} + + private: // data members + bool m_trust_mothers_before_daughters; + bool m_trust_both_mothers_and_daughters; + bool m_print_inconsistency_errors; + bool m_no_gaps_in_barcodes; + std::vector m_herwig_to_pdg_id; + std::set m_no_antiparticles; + }; + + //////////////////////////// + // INLINES access methods // + //////////////////////////// + inline bool IO_HERWIG::trust_both_mothers_and_daughters() const + { return m_trust_both_mothers_and_daughters; } + + inline bool IO_HERWIG::trust_mothers_before_daughters() const + { return m_trust_mothers_before_daughters; } + + inline bool IO_HERWIG::print_inconsistency_errors() const + { return m_print_inconsistency_errors; } + + inline void IO_HERWIG::set_trust_both_mothers_and_daughters( bool b ) + { m_trust_both_mothers_and_daughters = b; } + + inline void IO_HERWIG::set_trust_mothers_before_daughters( bool b ) + { m_trust_mothers_before_daughters = b; } + + inline void IO_HERWIG::set_print_inconsistency_errors( bool b ) + { m_print_inconsistency_errors = b; } + +} // HepMC + +#endif // HEPMC_IO_HERWIG_H +//-------------------------------------------------------------------------- diff --git a/TEvtGen/HepMC/IteratorRange.h b/TEvtGen/HepMC/IteratorRange.h new file mode 100644 index 00000000000..ece3536050c --- /dev/null +++ b/TEvtGen/HepMC/IteratorRange.h @@ -0,0 +1,22 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_ITERATOR_RANGE_H +#define HEPMC_ITERATOR_RANGE_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, September 1999, refer to: +// M. Dobbs and J.B. Hansen, "The HepMC C++ Monte Carlo Event Record for +// High Energy Physics", Computer Physics Communications (to be published). +// +// Iterator ranges used by GenVertex +////////////////////////////////////////////////////////////////////////// + + +namespace HepMC { + + /// type of iteration + enum IteratorRange { parents, children, family, + ancestors, descendants, relatives }; +} // HepMC + +#endif // HEPMC_ITERATOR_RANGE_H +//-------------------------------------------------------------------------- diff --git a/TEvtGen/HepMC/PdfInfo.cc b/TEvtGen/HepMC/PdfInfo.cc new file mode 100644 index 00000000000..1dc2bc1af6d --- /dev/null +++ b/TEvtGen/HepMC/PdfInfo.cc @@ -0,0 +1,121 @@ +//-------------------------------------------------------------------------- +// +// PdfInfo.cc +// Author: Lynn Garren +// +// Implement operator >> and operator << +// +// ---------------------------------------------------------------------- + +#include +#include +#include +#include + +#include "HepMC/PdfInfo.h" +#include "HepMC/StreamHelpers.h" +#include "HepMC/IO_Exception.h" + +namespace HepMC { + +std::ostream & operator << ( std::ostream & os, PdfInfo const * pdf) +{ + if ( !os ) { + std::cerr << "operator << for PdfInfo: !os, " + << " setting badbit" << std::endl; + os.clear(std::ios::badbit); + return os; + } + os << 'F'; + // PdfInfo* is set to 0 by default + if ( !pdf ) { + detail::output( os, 0 ); + detail::output( os, 0 ); + detail::output( os, 0. ); + detail::output( os, 0. ); + detail::output( os, 0. ); + detail::output( os, 0. ); + detail::output( os, 0. ); + detail::output( os, 0 ); + detail::output( os, 0 ); + detail::output( os,'\n'); + return os; + } + // + detail::output( os, pdf->id1() ); + detail::output( os, pdf->id2() ); + detail::output( os, pdf->x1() ); + detail::output( os, pdf->x2() ); + detail::output( os, pdf->scalePDF() ); + detail::output( os, pdf->pdf1() ); + detail::output( os, pdf->pdf2() ); + detail::output( os, pdf->pdf_id1() ); + detail::output( os, pdf->pdf_id2() ); + detail::output( os,'\n'); + + return os; +} + +std::istream & operator >> (std::istream & is, PdfInfo * pdf) +{ + // make sure the stream is valid + if ( !is ) { + std::cerr << "PdfInfo input stream setting badbit." << std::endl; + is.clear(std::ios::badbit); + return is; + } + // + // get the PdfInfo line + std::string line; + std::getline(is,line); + std::istringstream iline(line); + std::string firstc; + iline >> firstc; + // test to be sure the next entry is of type "F" then ignore it + if ( firstc != "F" ) { + std::cerr << "PdfInfo input stream invalid line type: " + << firstc << std::endl; + // this is non-recoverable, so throw here + throw IO_Exception("PdfInfo input stream encounterd invalid data"); + } + // read values into temp variables, then create a new PdfInfo object + int id1 =0, id2 =0, pdf_id1=0, pdf_id2=0; + double x1 = 0., x2 = 0., scale = 0., pdf1 = 0., pdf2 = 0.; + iline >> id1 ; + if(!iline) throw IO_Exception("PdfInfo input stream encounterd invalid data"); + // check now for empty PdfInfo line + if( id1 == 0 ) return is; + // continue reading + iline >> id2 ; + if(!iline) throw IO_Exception("PdfInfo input stream encounterd invalid data"); + iline >> x1 ; + if(!iline) throw IO_Exception("PdfInfo input stream encounterd invalid data"); + iline >> x2 ; + if(!iline) throw IO_Exception("PdfInfo input stream encounterd invalid data"); + iline >> scale ; + if(!iline) throw IO_Exception("PdfInfo input stream encounterd invalid data"); + iline >> pdf1 ; + if(!iline) throw IO_Exception("PdfInfo input stream encounterd invalid data"); + iline >> pdf2; + if(!iline) throw IO_Exception("PdfInfo input stream encounterd invalid data"); + // check to see if we are at the end of the line + if( !iline.eof() ) { + iline >> pdf_id1 ; + if(!iline) throw IO_Exception("PdfInfo input stream encounterd invalid data"); + iline >> pdf_id2; + if(!iline) throw IO_Exception("PdfInfo input stream encounterd invalid data"); + } + pdf->set_id1( id1 ); + pdf->set_id2( id2 ); + pdf->set_pdf_id1( pdf_id1 ); + pdf->set_pdf_id2( pdf_id2 ); + pdf->set_x1( x1 ); + pdf->set_x2( x2 ); + pdf->set_scalePDF( scale ); + pdf->set_pdf1( pdf1 ); + pdf->set_pdf2( pdf2 ); + + return is; +} + +} // HepMC diff --git a/TEvtGen/HepMC/PdfInfo.h b/TEvtGen/HepMC/PdfInfo.h new file mode 100644 index 00000000000..a554c22f3e6 --- /dev/null +++ b/TEvtGen/HepMC/PdfInfo.h @@ -0,0 +1,218 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_PDF_INFO_H +#define HEPMC_PDF_INFO_H + +////////////////////////////////////////////////////////////////////////// +// garren@fnal.gov, July 2006 +// +// Additional PDF information +////////////////////////////////////////////////////////////////////////// + +namespace HepMC { + +//! The PdfInfo class stores PDF information + +/// +/// \class PdfInfo +/// HepMC::PdfInfo stores additional PDF information for a GenEvent. +/// Creation and use of this information is optional. +/// +/// - int id1; // flavour code of first parton +/// - int id2; // flavour code of second parton +/// - int pdf_id1; // LHAPDF set id of first parton (zero by default) +/// - int pdf_id2; // LHAPDF set id of second parton (zero by default) +/// - double x1; // fraction of beam momentum carried by first parton ("beam side") +/// - double x2; // fraction of beam momentum carried by second parton ("target side") +/// - double scalePDF; // Q-scale used in evaluation of PDF's (in GeV) +/// - double pdf1; // PDF (id1, x1, Q) +/// - double pdf2; // PDF (id2, x2, Q) +/// +/// Input parton flavour codes id1 & id2 are expected to obey the +/// PDG code conventions, especially g = 21. +/// +/// The contents of pdf1 and pdf2 are expected to be x*f(x). +/// The LHAPDF set ids are the entries in the first column of +/// http:///projects.hepforge.org/lhapdf/PDFsets.index +/// +class PdfInfo { + +public: + // --- birth/death: + // + /// default constructor + PdfInfo() + : m_id1(0), + m_id2(0), + m_pdf_id1(0), + m_pdf_id2(0), + m_x1(0), + m_x2(0), + m_scalePDF(0), + m_pdf1(0), + m_pdf2(0) + {} + + /// all values EXCEPT pdf_id1 and pdf_id2 must be provided + PdfInfo( int i1, int i2, double x1, double x2, + double q, double p1, double p2, + int pdf_id1 = 0, int pdf_id2 = 0 ); + + ~PdfInfo() {} + + // --- copying: + // + PdfInfo( PdfInfo const & orig ); //!< copy constructor + PdfInfo & operator = ( PdfInfo const & rhs ); //!< make a copy + void swap( PdfInfo & other ); //!< swap two PdfInfo objects + + // --- equivalence: + // + bool operator==( const PdfInfo& ) const; //!< check for equality + bool operator!=( const PdfInfo& ) const; //!< check for inequality + + // --- accessors: + /// flavour code of first parton + int id1() const { return m_id1; } + /// flavour code of second parton + int id2() const { return m_id2; } + /// LHAPDF set id of first parton + int pdf_id1() const { return m_pdf_id1; } + /// LHAPDF set id of second parton + int pdf_id2() const { return m_pdf_id2; } + /// fraction of beam momentum carried by first parton ("beam side") + double x1() const { return m_x1; } + /// fraction of beam momentum carried by second parton ("target side") + double x2() const { return m_x2; } + /// Q-scale used in evaluation of PDF's (in GeV) + double scalePDF() const { return m_scalePDF; } + /// PDF (id1, x1, Q) - x*f(x) + double pdf1() const { return m_pdf1; } + /// PDF (id2, x2, Q) - x*f(x) + double pdf2() const { return m_pdf2; } + + /// verify that the instance contains non-zero information + bool is_valid() const; + + // --- mutators: + /// set flavour code of first parton + void set_id1(const int &i) { m_id1=i; } + /// set flavour code of second parton + void set_id2(const int &i) { m_id2=i; } + /// set LHAPDF set id of first parton + void set_pdf_id1(const int &i) { m_pdf_id1=i; } + /// set LHAPDF set id of second parton + void set_pdf_id2(const int &i) { m_pdf_id2=i; } + /// set fraction of beam momentum carried by first parton ("beam side") + void set_x1(const double &f) { m_x1=f; } + /// set fraction of beam momentum carried by second parton ("target side") + void set_x2(const double &f) { m_x2=f; } + /// set Q-scale used in evaluation of PDF's (in GeV) + void set_scalePDF(const double &f) { m_scalePDF=f; } + /// set x*f(x) of first parton + void set_pdf1(const double &f) { m_pdf1=f; } + /// set x*f(x) of second parton + void set_pdf2(const double &f) { m_pdf2=f; } + +private: // data members + int m_id1; + int m_id2; + int m_pdf_id1; + int m_pdf_id2; + double m_x1; + double m_x2; + double m_scalePDF; + double m_pdf1; + double m_pdf2; + +}; + +// Free Functions + +// IO +std::ostream & operator << (std::ostream &, PdfInfo const *); +std::istream & operator >> (std::istream &, PdfInfo *); + +// inline operators +inline PdfInfo::PdfInfo( int i1, int i2, double xin1, double xin2, + double q, double p1, double p2, + int pid1, int pid2 ) + : m_id1(i1), + m_id2(i2), + m_pdf_id1(pid1), + m_pdf_id2(pid2), + m_x1(xin1), + m_x2(xin2), + m_scalePDF(q), + m_pdf1(p1), + m_pdf2(p2) + {} + +inline PdfInfo::PdfInfo( PdfInfo const & orig ) + : m_id1(orig.m_id1), + m_id2(orig.m_id2), + m_pdf_id1(orig.m_pdf_id1), + m_pdf_id2(orig.m_pdf_id2), + m_x1(orig.m_x1), + m_x2(orig.m_x2), + m_scalePDF(orig.m_scalePDF), + m_pdf1(orig.m_pdf1), + m_pdf2(orig.m_pdf2) + {} + +inline PdfInfo & PdfInfo::operator = ( PdfInfo const & rhs ) +{ + PdfInfo temp( rhs ); + swap( temp ); + return *this; +} + +inline void PdfInfo::swap( PdfInfo & other ) +{ + std::swap(m_id1, other.m_id1); + std::swap(m_id2, other.m_id2); + std::swap(m_pdf_id1, other.m_pdf_id1); + std::swap(m_pdf_id2, other.m_pdf_id2); + std::swap(m_x1, other.m_x1); + std::swap(m_x2, other.m_x2); + std::swap(m_scalePDF, other.m_scalePDF); + std::swap(m_pdf1, other.m_pdf1); + std::swap(m_pdf2, other.m_pdf2); +} + +inline bool PdfInfo::operator==( const PdfInfo& a ) const +{ + /// equality requires that each member match + return ( a.id1() == this->id1() + && a.id2() == this->id2() + && a.pdf_id1() == this->pdf_id1() + && a.pdf_id2() == this->pdf_id2() + && a.x1() == this->x1() + && a.x2() == this->x2() + && a.scalePDF() == this->scalePDF() + && a.pdf1() == this->pdf1() + && a.pdf2() == this->pdf2() ); +} + +inline bool PdfInfo::operator!=( const PdfInfo& a ) const +{ + /// any nonmatching member generates inequality + return !( a == *this ); +} + +inline bool PdfInfo::is_valid() const +{ + if( m_id1 != 0 ) return true; + if( m_id2 != 0 ) return true; + if( m_pdf_id1 != 0 ) return true; + if( m_pdf_id2 != 0 ) return true; + if( m_x1 != 0 ) return true; + if( m_x2 != 0 ) return true; + if( m_scalePDF != 0 ) return true; + if( m_pdf1 != 0 ) return true; + if( m_pdf2 != 0 ) return true; + return false; +} + +} // HepMC + +#endif // HEPMC_PDF_INFO_H diff --git a/TEvtGen/HepMC/Polarization.cc b/TEvtGen/HepMC/Polarization.cc new file mode 100644 index 00000000000..3f337053bbd --- /dev/null +++ b/TEvtGen/HepMC/Polarization.cc @@ -0,0 +1,136 @@ +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, September 1999 +// +// Polarization object for a particle. All angles are in radians. +////////////////////////////////////////////////////////////////////////// + +#include "HepMC/Polarization.h" + +namespace HepMC { + + Polarization::Polarization( ) + : m_theta( 0. ), + m_phi( 0. ), + m_defined( false ) + { } + + Polarization::Polarization( double theta, double phi ) + : m_theta( valid_theta(theta) ), + m_phi ( valid_phi(phi) ), + m_defined( true ) + { } + + Polarization::Polarization( const Polarization& inpolar ) + : m_theta( valid_theta( inpolar.theta() ) ), + m_phi ( valid_phi( inpolar.phi() ) ), + m_defined( inpolar.is_defined() ) + { } + + Polarization::Polarization( const ThreeVector& vec3in ) + : m_theta( valid_theta( vec3in.theta() ) ), + m_phi ( valid_phi( vec3in.phi() ) ), + m_defined( true ) + { } + + void Polarization::swap( Polarization & other) + { + std::swap( m_theta, other.m_theta ); + std::swap( m_phi, other.m_phi ); + std::swap( m_defined, other.m_defined ); + } + + Polarization& Polarization::operator=( const Polarization& inpolar ) { + /// best practices implementation + Polarization tmp( inpolar ); + swap( tmp ); + return *this; + } + + void Polarization::print( std::ostream& ostr ) const { + ostr << "Polarization: " << *this << std::endl; + } + + //////////////////// + // access methods // + //////////////////// + + ThreeVector Polarization::normal3d() const { + // unit Hep3Vector for easy manipulation + ThreeVector outvec(0,0,1); // makes unit vector along Z + outvec.setTheta( theta() ); // sets phi keeping mag and theta constant + outvec.setPhi( phi() ); // sets theta keeping mag and phi constant + return outvec; + } + + double Polarization::set_theta( double theta ) { + /// Theta is restricted to be between 0 --> pi + /// if an out of range value is given, it is translated to this range. + return m_theta = valid_theta( theta ); + } + + double Polarization::set_phi( double phi ) { + /// Phi is restricted to be between 0 --> 2pi + /// if an out of range value is given, it is translated to this range. + return m_phi = valid_phi( phi ); + } + + bool Polarization::is_defined( ) const { + return m_defined; + } + + void Polarization::set_undefined() { + m_defined = false; + m_theta = 0.; + m_phi = 0.; + } + + void Polarization::set_theta_phi( double theta, double phi ) { + set_theta( theta ); + set_phi( phi ) ; + m_defined = true; + } + + ThreeVector Polarization::set_normal3d( const ThreeVector& vec3in ) { + set_theta( vec3in.theta() ); + set_phi( vec3in.phi() ); + m_defined = true; + return vec3in; + } + + ///////////////////// + // private methods // + ///////////////////// + + double Polarization::valid_theta( double theta ) { + // this is just absolute value. + theta = ( theta>0 ? theta : -theta ); + // translate to 0 < theta < 2pi + theta = ( theta/(2*HepMC_pi) - int(theta/(2*HepMC_pi)) ) + * 2*HepMC_pi; + // now translate to 0 < theta < pi + if ( theta > HepMC_pi ) theta = 2*HepMC_pi - theta; + return theta; + } + + double Polarization::valid_phi( double phi ) { + // + // translate to -2pi < phi < 2pi + phi = ( phi/(2*HepMC_pi) - int(phi/(2*HepMC_pi)) ) * 2*HepMC_pi; + // translates to 0 < phi < 2pi + if ( phi < 0 ) phi = 2*HepMC_pi + phi; + return phi; + } + + ///////////// + // Friends // + ///////////// + + /// write theta and phi to the output stream + std::ostream& operator<<( std::ostream& ostr, const Polarization& polar ) { + return ostr << "(" << polar.theta() + << "," << polar.phi() << ")"; + } + +} // HepMC + + diff --git a/TEvtGen/HepMC/Polarization.h b/TEvtGen/HepMC/Polarization.h new file mode 100644 index 00000000000..cc483beca32 --- /dev/null +++ b/TEvtGen/HepMC/Polarization.h @@ -0,0 +1,112 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_POLARIZATION_H +#define HEPMC_POLARIZATION_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, September 1999, refer to: +// M. Dobbs and J.B. Hansen, "The HepMC C++ Monte Carlo Event Record for +// High Energy Physics", Computer Physics Communications (to be published). +// +// Polarization object for a particle. All angles are in radians. +////////////////////////////////////////////////////////////////////////// + +#include "HepMC/SimpleVector.h" +#include +#include + +namespace HepMC { + + static const double HepMC_pi = 3.14159265358979323846; // copy of pi from CLHEP + + //! The Polarization class stores theta and phi for a GenParticle + + /// + /// \class Polarization + /// HepMC::Polarization stores a particle's theta and phi in radians. + /// Use of this information is optional. + /// By default, the polarization is set to zero. + /// + class Polarization { + + /// print polarization information + friend std::ostream& operator<<( std::ostream&, const Polarization& ); + + public: + /// default constructor + Polarization( ); + /// constructor requiring at least one value + Polarization( double theta, double phi = 0 ); + /// construct from another polarization object + Polarization( const Polarization& inpolar ); + /// construct using the polar and azimuthal angles from a ThreeVector + Polarization( const ThreeVector& vec3in ); + virtual ~Polarization() {} + + /// swap + void swap( Polarization & other); + /// make a copy + Polarization& operator=( const Polarization& inpolar ); + /// equality requires that theta and phi are equal + bool operator==( const Polarization& ) const; + /// inequality results if either theta or phi differ + bool operator!=( const Polarization& ) const; + + /// print theta and phi + void print( std::ostream& ostr = std::cout ) const; + + //////////////////// + // access methods // + //////////////////// + double theta() const; //!< returns polar angle in radians + double phi() const; //!< returns azimuthal angle in radians + ThreeVector normal3d() const; //!< unit 3 vector for easy manipulation + bool is_defined() const; //!< returns true if the Polarization has been defined + + /// set polar angle in radians + double set_theta( double theta ); + /// set azimuthal angle in radians + double set_phi( double phi ); + /// set both polar and azimuthal angles in radians + void set_theta_phi( double theta, double phi ); + /// sets polarization according to direction of 3 vec + ThreeVector set_normal3d( const ThreeVector& vec3in ); + /// declares the Polarization as undefined and zeros the values + void set_undefined(); + + private: + /// private method to return a polar angle in the correct range + double valid_theta( double theta ); + /// private method to return an azimuthal angle in the correct range + double valid_phi( double phi ); + + private: + double m_theta; //polar angle of polarization in radians 0< theta theta() && a.phi() == this->phi() && a.is_defined() == this->is_defined() ); + } + + inline bool Polarization::operator!=(const Polarization& a ) const + { + return !( a == *this ); + } + +} // HepMC + +#endif // HEPMC_POLARIZATION_H +//-------------------------------------------------------------------------- diff --git a/TEvtGen/HepMC/PythiaWrapper.h b/TEvtGen/HepMC/PythiaWrapper.h new file mode 100644 index 00000000000..ad361bc33ad --- /dev/null +++ b/TEvtGen/HepMC/PythiaWrapper.h @@ -0,0 +1,47 @@ +//-------------------------------------------------------------------------- +#ifndef PYTHIA_WRAPPER_H +#define PYTHIA_WRAPPER_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, November 2000 +// Just a link to whichever pythia version is current. +////////////////////////////////////////////////////////////////////////// + +// This pre-compiler directive is included (2002-01-16) to allow compatibility +// with MS Visual C++, which interfaces to fortran in a different manner. +// For it to work you need to define the _WIN32 variable when compiling. +#ifdef _WIN32 // Platform: Windows MS Visual C++ +#include "HepMC/PythiaWrapper6_4_WIN32.h" + +#else // Generic version, tested on Linux ecgs/gcc +#include "HepMC/PythiaWrapper6_4.h" + +#endif // Platform + +#include + +#include "HepMC/GenCrossSection.h" + +namespace HepMC { + +/// calculate the Pythia cross section and statistical error +inline GenCrossSection getPythiaCrossSection() { + + GenCrossSection xsec; + // xsec(0,2) contains the sum of differential cross sections in mb + // ngen(0,2) contains the combined number of generated events + // convert to pb (HepMC convention) + double xsecval = pyint5.xsec[2][0] * 1.0e9; + // statistical error + double xsecerr = xsecval / std::sqrt( (double)pyint5.ngen[2][0] ); + // set and return cross section information + xsec.set_cross_section(xsecval, xsecerr); + return xsec; +} + + + +} // HepMC + +#endif // PYTHIA_WRAPPER_H +//-------------------------------------------------------------------------- diff --git a/TEvtGen/HepMC/PythiaWrapper6_4.h b/TEvtGen/HepMC/PythiaWrapper6_4.h new file mode 100644 index 00000000000..228c1cf1dfe --- /dev/null +++ b/TEvtGen/HepMC/PythiaWrapper6_4.h @@ -0,0 +1,281 @@ +//-------------------------------------------------------------------------- +#ifndef PYTHIA_WRAPPER_6_H +#define PYTHIA_WRAPPER_6_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, November 2000 +// Version 6.200 update October 2001 +// Wrapper for FORTRAN version of Pythia +// This wrapper is NOT intended as a part of HepMC - it is only supplied +// for your convenience. +////////////////////////////////////////////////////////////////////////// +// +// A simple example of calling Pythia from C++ using this header file is +// given in test/test_PythiaWrapper.cxx +// +// Note the pyhepc routine is used by Pythia to fill +// the HEPEVT common block uses double precision and 4000 entries. +// + +#include +#include + +//-------------------------------------------------------------------------- +// Initialization routine + + +extern "C" { + void initpydata(void); +} +#define initpydata initpydata_ + +//-------------------------------------------------------------------------- +// PYTHIA Common Block Declarations + +const int pyjets_maxn =4000; +extern "C" { + extern struct { + int n, npad, k[5][pyjets_maxn]; + double p[5][pyjets_maxn], v[5][pyjets_maxn]; + } pyjets_; +} +#define pyjets pyjets_ + +extern "C" { + extern struct { + int mstu[200]; + double paru[200]; + int mstj[200]; + double parj[200]; + } pydat1_; +} +#define pydat1 pydat1_ + +extern "C" { + extern struct { + int kchg[4][500]; + double pmas[4][500], parf[2000], vckm[4][4]; + } pydat2_; +} +#define pydat2 pydat2_ + +extern "C" { + extern struct { + int mdcy[3][500], mdme[2][8000]; + double brat[8000]; + int kfdp[5][8000]; + } pydat3_; +} +#define pydat3 pydat3_ + +extern "C" { + extern struct { + int mrpy[6]; + double rrpy[100]; + } pydatr_; +} +#define pydatr pydatr_ + +extern "C" { + extern struct { + int msel, mselpd, msub[500], kfin[81][2]; + double ckin[200]; + } pysubs_; +} +#define pysubs pysubs_ + +extern "C" { + extern struct { + int mstp[200]; + double parp[200]; + int msti[200]; + double pari[200]; + } pypars_; +} +#define pypars pypars_ + +extern "C" { + extern struct { + int mint[400]; + double vint[400]; + } pyint1_; +} +#define pyint1 pyint1_ + +extern "C" { + extern struct { + int iset[500], kfpr[2][500]; + double coef[20][500]; + int icol[2][4][40]; + } pyint2_; +} +#define pyint2 pyint2_ + +extern "C" { + extern struct pin3 { + double xsfx[81][2]; // Fortran is xsfx(2,-40:40) + int isig[3][1000]; + double sigh[1000]; + } pyint3_; +} +#define pyint3 pyint3_ + +extern "C" { + extern struct { + int mwid[500]; + double wids[5][500]; + } pyint4_; +} +#define pyint4 pyint4_ + +extern "C" { + extern struct pin5 { + int ngenpd, ngen[3][501]; // Fortran is ngen(0:500,3) + double xsec[3][501]; // Fortran is xsec(0:500,3) + } pyint5_; +} +#define pyint5 pyint5_ + +extern "C" { + extern struct pin7 { + double sigt[6][7][7]; // Fortran is sigt(0:6,0:6,0:5) + } pyint7_; +} +#define pyint7 pyint7_ + +extern "C" { + extern struct pin8 { + double xpvmd[13]; // Fortran is xpvmd(-6:6) + double xpanl[13]; // Fortran is xpanl(-6:6) + double xpanh[13]; // Fortran is xpanh(-6:6) + double xpbeh[13]; // Fortran is xpbeh(-6:6) + double xpdir[13]; // Fortran is xpdir(-6:6) + } pyint8_; +} +#define pyint8 pyint8_ + +extern "C" { + extern struct pin9 { + double vxpvmd[13]; // Fortran is vxpvmd(-6:6) + double vxpanl[13]; // Fortran is vxpanl(-6:6) + double vxpanh[13]; // Fortran is vxpanh(-6:6) + double vxpdgm[13]; // Fortran is vxpdgm(-6:6) + } pyint9_; +} +#define pyint9 pyint9_ + +extern "C" { + extern struct pssm { + int imss[100]; // Fortran is imss(0:99) + double rmss[100]; // Fortran is rmss(0:99) + } pyssm_; +} +#define pyssm pyssm_ + +extern "C" { + extern struct { + double zmix[4][4]; + double umix[2][2]; + double vmix[2][2]; + double smz[4]; + double smw[2]; + double sfmix[4][16]; + double zmixi[4][4]; + double umixi[2][2]; + double vmixi[2][2]; + } pyssmt_; +} +#define pyssmt pyssmt_ + +extern "C" { + extern struct { + double rvlam[3][3][3]; + double rvlamp[3][3][3]; + double rvlamb[3][3][3]; + } pymsrv_; +} +#define pymsrv pymsrv_ + +extern "C" { + extern struct prvnv { + double ab[2][16][2]; + double rms[4]; // Fortran is rms(0:3) + double res[5][6]; + int idr; + int idr2; + double dcmass; + int kfr[3]; + } pyrvnv_; +} +#define pyrvnv pyrvnv_ + +extern "C" { + extern struct prvpm { + double rm[4]; // Fortran is rm(0:3) + double a[2]; + double b[2]; + double resm[2]; + double resw[2]; + bool mflag; + } pyrvpm_; +} +#define pyrvpm pyrvpm_ + +extern "C" { + extern struct { + double xxm[20]; + } pyints_; +} +#define pyints pyints_ + +extern "C" { + extern struct { + double x1; + } pyg2dx_; +} +#define pyg2dx pyg2dx_ + +//-------------------------------------------------------------------------- +// PYTHIA routines declaration + +#define pyhepc pyhepc_ +#define pyinit pyinit_ +#define pylist pylist_ +#define pystat pystat_ +#define pyevnt pyevnt_ +#define upinit upinit_ +#define upevnt upevnt_ + extern "C" { + void pyhepc(int*); + void pyinit(const char*,const char*,const char*,double*,int,int,int); + void pylist(int*); + void pystat(int*); + void pyevnt(); + void upinit(); + void upevnt(); + } + +// define methods to hide the subtle syntax necessary to call fortran from C++ +inline void call_pyhepc( int mode ){ pyhepc( &mode ); } +inline void call_pyinit( const char* frame, const char* beam, const char* target, + double win ) +{ pyinit( frame,beam,target,&win,strlen(frame),strlen(beam),strlen(target) ); } +inline void call_pylist( int mode ){ pylist( &mode ); } +inline void call_pystat( int mode ){ pystat( &mode ); } +inline void call_pyevnt(){ pyevnt(); } + + +//-------------------------------------------------------------------------- +// PYTHIA block data +// ( with gcc it works to initialize the block data by calling +// "pydata();" at beginning, but this fails for f77, so the fortran routine +// initpydata.f is supplied ... call it instead for platform independent +// behaviour ) + +#define pydata pydata_ +extern "C" { + void pydata(void); +} + +#endif // PYTHIA_WRAPPER_6_H +//-------------------------------------------------------------------------- diff --git a/TEvtGen/HepMC/PythiaWrapper6_4_WIN32.h b/TEvtGen/HepMC/PythiaWrapper6_4_WIN32.h new file mode 100644 index 00000000000..7269897913a --- /dev/null +++ b/TEvtGen/HepMC/PythiaWrapper6_4_WIN32.h @@ -0,0 +1,164 @@ +//-------------------------------------------------------------------------- +#ifdef _WIN32 // This version is for Windows MS Visual C++ only. +#ifndef PYTHIA_WRAPPER_6_H +#define PYTHIA_WRAPPER_6_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, November 2000 +// Version 6.200 update October 2001 +// Wrapper for FORTRAN version of Pythia +// The _WIN32 version is provided by Witold Pokorski +// , 2002-01-22, and is the version +// which should be used when compiling on Windows MS Visual C++. +// This wrapper is NOT intended as a part of HepMC - it is only supplied +// for your convenience. +////////////////////////////////////////////////////////////////////////// +// +// A simple example of calling Pythia from C++ using this header file is +// given in test/test_PythiaWrapper.cxx +// +// Note the pyhepc routine is used by Pythia to fill +// the HEPEVT common block uses double precision and 4000 entries. +// + +#include +#include + +//-------------------------------------------------------------------------- +// Initialization routine + + +extern "C" { + void INITPYDATA(void); +} +#define initpydata INITPYDATA + + +//-------------------------------------------------------------------------- +// PYTHIA Common Block Declarations + +const int pyjets_maxn =4000; +struct PYJETS_DEF { + int n, npad, k[5][pyjets_maxn]; + double p[5][pyjets_maxn], v[5][pyjets_maxn]; +}; + +struct PYDAT1_DEF{ + int mstu[200]; + double paru[200]; + int mstj[200]; + double parj[200]; +}; + +struct PYDAT2_DEF{ + int kchg[4][500]; + double pmas[4][500], parf[2000], vckm[4][4]; +}; + +struct PYDAT3_DEF{ + int mdcy[3][500], mdme[2][8000]; + double brat[8000]; + int kfdp[5][8000]; +}; + +struct PYDATR_DEF{ + int mrpy[6]; + double rrpy[100]; + }; + +struct PYSUBS_DEF{ + int msel, mselpd, msub[500], kfin[81][2]; + double ckin[200]; +}; + +struct PYPARS_DEF{ + int mstp[200]; + double parp[200]; + int msti[200]; + double pari[200]; +}; + +struct PYINT1_DEF{ + int mint[400]; + double vint[400]; +}; + +struct PYINT2_DEF{ + int iset[500], kfpr[2][500]; + double coef[20][500]; + int icol[2][4][40]; // was [320] was [40][4][2] +}; + +struct PYINT5_DEF{ + int ngenpd, ngen[3][501]; + double xsec[3][501]; +}; + + +extern "C" PYSUBS_DEF PYSUBS; +extern "C" PYJETS_DEF PYJETS; +extern "C" PYDAT1_DEF PYDAT1; +extern "C" PYDAT2_DEF PYDAT2; +extern "C" PYPARS_DEF PYPARS; +extern "C" PYDATR_DEF PYDATR; +extern "C" PYDAT3_DEF PYDAT3; +extern "C" PYINT1_DEF PYINT1; +extern "C" PYINT2_DEF PYINT2; +extern "C" PYINT5_DEF PYINT5; + + +#define pysubs PYSUBS +#define pyjets PYJETS +#define pydat1 PYDAT1 +#define pydat2 PYDAT2 +#define pypars PYPARS +#define pydatr PYDATR +#define pydat3 PYDAT3 +#define pyint1 PYINT1 +#define pyint2 PYINT2 +#define pyint5 PYINT5 + + + +//-------------------------------------------------------------------------- +// PYTHIA routines declaration + + +extern "C" { + void __stdcall PYHEPC(int*); + void __stdcall PYINIT(const char*,int,const char*,int,const char*,int,double*); + void __stdcall PYLIST(int*); + void __stdcall PYSTAT(int*); + void __stdcall PYEVNT(); + void __stdcall UPINIT(); + void __stdcall UPEVNT(); +} + +//-------------------------------------------------------------------------- +// PYTHIA block data +// ( with gcc it works to initialize the block data by calling +// "pydata();" at beginning, but this fails for f77, so the fortran routine +// initpydata.f is supplied ... call it instead for platform independent +// behaviour ) + + +extern "C" { + void __stdcall PYDATA(void); +} + +inline void call_pyhepc( int mode ){ PYHEPC( &mode ); } +inline void call_pyinit( const char* frame, const char* beam, const char* target, + double win ) +{ PYINIT( frame,strlen(frame),beam,strlen(beam),target,strlen(target),&win); } +inline void call_pylist( int mode ){ PYLIST( &mode ); } +inline void call_pystat( int mode ){ PYSTAT( &mode ); } +inline void call_pyevnt(){ PYEVNT(); } +inline void call_upinit(){ UPINIT(); } +inline void call_upevnt(){ UPEVNT(); } + + + + +#endif // PYTHIA_WRAPPER_6_H +#endif // _WIN32 +//-------------------------------------------------------------------------- diff --git a/TEvtGen/HepMC/SearchVector.cc b/TEvtGen/HepMC/SearchVector.cc new file mode 100644 index 00000000000..0dd7af7175a --- /dev/null +++ b/TEvtGen/HepMC/SearchVector.cc @@ -0,0 +1,29 @@ +////////////////////////////////////////////////////////////////////////// +// Author: Lynn Garren +// search vectors for a GenParicle* instance +////////////////////////////////////////////////////////////////////////// + +#include "HepMC/SearchVector.h" + +namespace HepMC { + + +bool not_in_vector( std::vector* v, GenParticle* p ) +{ + if( already_in_vector(v,p) == v->end() ) return true; + return false; +} + +/// returns true if GenParticle is in the vector +std::vector::iterator already_in_vector( std::vector* v, GenParticle* p ) +{ + // if the vectors are mostly large, the search should be coded differently + std::vector::iterator it; + for( it = v->begin(); it != v->end(); ++it ) { + // bail as soon as we find a match + if( (*it) == p ) return it; + } + return v->end(); +} + +} // HepMC diff --git a/TEvtGen/HepMC/SearchVector.h b/TEvtGen/HepMC/SearchVector.h new file mode 100644 index 00000000000..4be1e3fa3f9 --- /dev/null +++ b/TEvtGen/HepMC/SearchVector.h @@ -0,0 +1,25 @@ +#ifndef SearchVector_h +#define SearchVector_h +// ---------------------------------------------------------------------- +// +// SearchVector.h +// Author: Lynn Garren +// +// Utilities to search std::vector a GenParticle instance +// ---------------------------------------------------------------------- + +#include "HepMC/GenVertex.h" +#include "HepMC/GenParticle.h" + +namespace HepMC { + +/// returns true if it cannot find GenParticle* in the vector +bool not_in_vector( std::vector*, GenParticle* ); + +/// Returns the index of a GenParticle* within a vector. +/// Returns -1 if GenParticle* is not in the vector. +std::vector::iterator already_in_vector( std::vector*, GenParticle* ); + +} // HepMC + +#endif // SearchVector_h diff --git a/TEvtGen/HepMC/SimpleVector.h b/TEvtGen/HepMC/SimpleVector.h new file mode 100644 index 00000000000..1f5beaab1f0 --- /dev/null +++ b/TEvtGen/HepMC/SimpleVector.h @@ -0,0 +1,193 @@ +////////////////////////////////////////////////////////////////////////// +// SimpleVector.h +////////////////////////////////////////////////////////////////////////// +#ifndef HEPMC_SIMPLEVECTOR_H +#define HEPMC_SIMPLEVECTOR_H + +////////////////////////////////////////////////////////////////////////// +// garren@fnal.gov, July 2006 +// +// This header provides a place to hold the doubles which are part of one of +// three types of physics vectors: +// momentum 4 vector +// position or displacement 4 vector +// position or displacement 3 vector +// +// For compatibility with existing code, +// the basic expected geometrical access methods are povided +// Also, both FourVector and ThreeVector have a templated constructor that will +// take another vector (HepLorentzVector, GenVector, ...) +// --> this vector must have the following methods: x(), y(), z() +// --> FourVector also requires the t() method +// +////////////////////////////////////////////////////////////////////////// + + +#include "HepMC/enable_if.h" +#include "HepMC/is_arithmetic.h" + + +namespace HepMC { + +//! FourVector is a simple representation of a physics 4 vector + +/// +/// \class FourVector +/// For compatibility with existing code, +/// the basic expected geometrical access methods are povided. +/// Also, there is a templated constructor that will +/// take another vector (HepLorentzVector, GenVector, ...) +/// which must have the following methods: x(), y(), z(), t(). +/// +class FourVector { + +public: + + /// constructor requiring at least x, y, and z + FourVector( double xin, double yin, double zin, double tin=0) + : m_x(xin), m_y(yin), m_z(zin), m_t(tin) {} + + /// constructor requiring only t + FourVector(double tin) + : m_x(0), m_y(0), m_z(0), m_t(tin) {} + + FourVector() + : m_x(0), m_y(0), m_z(0), m_t(0) {} + + /// templated constructor + /// this is used ONLY if T is not arithmetic + template + FourVector( const T& v, + typename detail::disable_if< detail::is_arithmetic::value, void >::type * = 0 ) + : m_x(v.x()), m_y(v.y()), m_z(v.z()), m_t(v.t()) {} + + /// copy constructor + FourVector(const FourVector & v) + : m_x(v.x()), m_y(v.y()), m_z(v.z()), m_t(v.t()) {} + + void swap( FourVector & other ); //!< swap + + double px() const { return m_x; } //!< return px + double py() const { return m_y; } //!< return py + double pz() const { return m_z; } //!< return pz + double e() const { return m_t; } //!< return E + + double x() const { return m_x; } //!< return x + double y() const { return m_y; } //!< return y + double z() const { return m_z; } //!< return z + double t() const { return m_t; } //!< return t + + double m2() const; //!< Invariant mass squared. + double m() const; //!< Invariant mass. If m2() is negative then -sqrt(-m2()) is returned. + + double perp2() const; //!< Transverse component of the spatial vector squared. + double perp() const; //!< Transverse component of the spatial vector (R in cylindrical system). + + // Get spatial vector components in spherical coordinate system. + double theta() const; //!< The polar angle. + double phi() const; //!< The azimuth angle. + double rho() const; //!< spatial vector component magnitude + + FourVector & operator = (const FourVector &); //!< make a copy + + bool operator == (const FourVector &) const; //!< equality + bool operator != (const FourVector &) const; //!< inequality + + double pseudoRapidity() const; //!< Returns the pseudo-rapidity, i.e. -ln(tan(theta/2)) + double eta() const; //!< Pseudorapidity (of the space part) + + /// set x, y, z, and t + void set (double x, double y, double z, double t); + + void setX(double xin) { m_x=xin; } //!< set x + void setY(double yin) { m_y=yin; } //!< set y + void setZ(double zin) { m_z=zin; } //!< set z + void setT(double tin) { m_t=tin; } //!< set t + + void setPx(double xin) { m_x=xin; } //!< set px + void setPy(double yin) { m_y=yin; } //!< set py + void setPz(double zin) { m_z=zin; } //!< set pz + void setE(double tin) { m_t=tin; } //!< set E + +private: + + double m_x; + double m_y; + double m_z; + double m_t; + +}; + +//! ThreeVector is a simple representation of a position or displacement 3 vector + +/// +/// \class ThreeVector +/// For compatibility with existing code, +/// the basic expected geometrical access methods are povided. +/// Also, there is a templated constructor that will +/// take another vector (HepLorentzVector, GenVector, ...) +/// which must have the following methods: x(), y(), z(). +/// +class ThreeVector { + +public: + + /// construct using x, y, and z (only x is required) + ThreeVector( double xin, double yin =0, double zin =0 ) + : m_x(xin), m_y(yin), m_z(zin) {} + + ThreeVector( ) + : m_x(0), m_y(0), m_z(0) {} + + /// templated constructor + /// this is used ONLY if T is not arithmetic + template + ThreeVector( const T& v, + typename detail::disable_if< detail::is_arithmetic::value, void >::type * = 0 ) + : m_x(v.x()), m_y(v.y()), m_z(v.z()) {} + + /// copy constructor + ThreeVector(const ThreeVector & v) + : m_x(v.x()), m_y(v.y()), m_z(v.z()) {} + + void swap( ThreeVector & other ); //!< swap + + double x() const { return m_x; } //!< return x + double y() const { return m_y; } //!< return y + double z() const { return m_z; } //!< return z + + void setX(double xin) { m_x=xin; } //!< set x + void setY(double yin) { m_y=yin; } //!< set y + void setZ(double zin) { m_z=zin; } //!< set z + void set( double x, double y, double z); //!< set x, y, and z + + double phi() const; //!< The azimuth angle. + double theta() const; //!< The polar angle. + double r() const; //!< The magnitude + + void setPhi(double); //!< Set phi keeping magnitude and theta constant (BaBar). + void setTheta(double); //!< Set theta keeping magnitude and phi constant (BaBar). + + double perp2() const; //!< The transverse component squared (rho^2 in cylindrical coordinate system). + double perp() const; //!< The transverse component (rho in cylindrical coordinate system). + + ThreeVector & operator = (const ThreeVector &); //!< make a copy + + bool operator == (const ThreeVector &) const; //!< equality + bool operator != (const ThreeVector &) const; //!< inequality + +private: + + double m_x; + double m_y; + double m_z; + +}; + + +} // HepMC + +#include "HepMC/SimpleVector.icc" + +#endif // HEPMC_SIMPLEVECTOR_H + diff --git a/TEvtGen/HepMC/SimpleVector.icc b/TEvtGen/HepMC/SimpleVector.icc new file mode 100644 index 00000000000..dbbcd01eb41 --- /dev/null +++ b/TEvtGen/HepMC/SimpleVector.icc @@ -0,0 +1,148 @@ +////////////////////////////////////////////////////////////////////////// +// SimpleVector.icc +////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////// +// garren@fnal.gov, July 2006 +// +// +////////////////////////////////////////////////////////////////////////// + +#include +#include // for swap + +namespace HepMC { + +////////////////////////////////////////////////////////////////////////// +// FourVector inline methods +////////////////////////////////////////////////////////////////////////// + +inline void FourVector::swap( FourVector & other ) { + std::swap( m_x, other.m_x ); + std::swap( m_y, other.m_y ); + std::swap( m_z, other.m_z ); + std::swap( m_t, other.m_t ); +} + +inline FourVector & FourVector::operator=(const FourVector & v) { + m_x = v.x(); + m_y = v.y(); + m_z = v.z(); + m_t = v.t(); + return *this; +} + +inline void FourVector::set(double xin, double yin, double zin, double tin) { + m_x = xin; + m_y = yin; + m_z = zin; + m_t = tin; +} + +inline double FourVector::m2() const { + return m_t*m_t - (m_x*m_x + m_y*m_y + m_z*m_z); +} + +inline double FourVector::m() const { + double mm = m2(); + return mm < 0.0 ? -std::sqrt(-mm) : std::sqrt(mm); +} + +inline double FourVector::perp2() const { return m_x*m_x + m_y*m_y; } + +inline double FourVector::perp() const { return std::sqrt(perp2()); } + +inline double FourVector::theta() const { + return m_x == 0.0 && m_y == 0.0 && m_z == 0.0 ? 0.0 : std::atan2(perp(),m_z); +} + +inline double FourVector::phi() const { + return m_x == 0.0 && m_y == 0.0 ? 0.0 : std::atan2(m_y,m_x); +} + +inline double FourVector::rho() const { +return std::sqrt( m_x*m_x + m_y*m_y + m_z*m_z ); +} + +inline bool FourVector::operator == (const FourVector & v) const { + return (v.x()==x() && v.y()==y() && v.z()==z() && v.t()==t()) ? true : false; +} + +inline bool FourVector::operator != (const FourVector & v) const { + return (v.x()!=x() || v.y()!=y() || v.z()!=z() || v.t()!=t()) ? true : false; +} + +inline double FourVector::pseudoRapidity() const { + double m1 = std::sqrt( m_x*m_x + m_y*m_y + m_z*m_z ); + if ( m1== 0 ) return 0.0; + if ( m1== z() ) return 1.0E72; + if ( m1== -z() ) return -1.0E72; + return 0.5*log( (m1+z())/(m1-z()) ); +} + +inline double FourVector::eta() const { return pseudoRapidity();} + + +////////////////////////////////////////////////////////////////////////// +// ThreeVector inline methods +////////////////////////////////////////////////////////////////////////// + +inline void ThreeVector::swap( ThreeVector & other ) { + std::swap( m_x, other.m_x ); + std::swap( m_y, other.m_y ); + std::swap( m_z, other.m_z ); +} + +inline double ThreeVector::theta() const { + return m_x == 0.0 && m_y == 0.0 && m_z == 0.0 ? 0.0 : std::atan2(perp(),m_z); +} + +inline double ThreeVector::phi() const { + return m_x == 0.0 && m_y == 0.0 ? 0.0 : std::atan2(m_y,m_x); +} + +inline double ThreeVector::r() const { +return std::sqrt( m_x*m_x + m_y*m_y + m_z*m_z ); +} + +inline void ThreeVector::set(double xin, double yin, double zin) { + m_x = xin; + m_y = yin; + m_z = zin; +} + +inline void ThreeVector::setPhi(double ph) { + double xy = perp(); + setX(xy*std::cos(ph)); + setY(xy*std::sin(ph)); +} + +inline void ThreeVector::setTheta(double th) { + double ma = r(); + double ph = phi(); + setX(ma*std::sin(th)*std::cos(ph)); + setY(ma*std::sin(th)*std::sin(ph)); + setZ(ma*std::cos(th)); +} + +inline double ThreeVector::perp2() const { return m_x*m_x + m_y*m_y; } + +inline double ThreeVector::perp() const { return std::sqrt(perp2()); } + +inline ThreeVector & ThreeVector::operator = (const ThreeVector & p) { + m_x = p.x(); + m_y = p.y(); + m_z = p.z(); + return *this; +} + + +inline bool ThreeVector::operator == (const ThreeVector& v) const { + return (v.x()==x() && v.y()==y() && v.z()==z()) ? true : false; +} + +inline bool ThreeVector::operator != (const ThreeVector& v) const { + return (v.x()!=x() || v.y()!=y() || v.z()!=z()) ? true : false; +} + +} // HepMC diff --git a/TEvtGen/HepMC/StreamHelpers.cc b/TEvtGen/HepMC/StreamHelpers.cc new file mode 100644 index 00000000000..8a56089223d --- /dev/null +++ b/TEvtGen/HepMC/StreamHelpers.cc @@ -0,0 +1,123 @@ +//-------------------------------------------------------------------------- +// +// GenEventStreamIO.cc +// Author: Lynn Garren +// +// helper functions used by streaming IO +// +// ---------------------------------------------------------------------- + +#include +#include +#include + +#include "HepMC/GenVertex.h" +#include "HepMC/GenParticle.h" +#include "HepMC/StreamHelpers.h" +#include "HepMC/IO_Exception.h" + +namespace HepMC { + +namespace detail { + +std::istream & read_vertex( std::istream & is, + TempParticleMap & particle_to_end_vertex, + GenVertex * v ) +{ + // + // make sure the stream is valid + if ( !is ) { + std::cerr << "StreamHelpers::detail::read_vertex setting badbit." << std::endl; + is.clear(std::ios::badbit); + return is; + } + // + // get the vertex line + std::string line; + std::getline(is,line); + std::istringstream iline(line); + std::string firstc; + iline >> firstc; + // + // test to be sure the next entry is of type "V" + if ( firstc != "V" ) { + std::cerr << "StreamHelpers::detail::read_vertex invalid line type: " + << firstc << std::endl; + std::cerr << "StreamHelpers::detail::read_vertex setting badbit." << std::endl; + is.clear(std::ios::badbit); + return is; + } + // read values into temp variables, then create a new GenVertex object + int identifier =0, id =0, num_orphans_in =0, + num_particles_out = 0, weights_size = 0; + double x = 0., y = 0., z = 0., t = 0.; + iline >> identifier ; + if(!iline) { throw IO_Exception("read_vertex input stream encounterd invalid data"); } + iline >> id ; + if(!iline) { throw IO_Exception("read_vertex input stream encounterd invalid data"); } + iline >> x ; + if(!iline) { throw IO_Exception("read_vertex input stream encounterd invalid data"); } + iline >> y ; + if(!iline) { throw IO_Exception("read_vertex input stream encounterd invalid data"); } + iline >> z ; + if(!iline) { throw IO_Exception("read_vertex input stream encounterd invalid data"); } + iline >> t; + if(!iline) { throw IO_Exception("read_vertex input stream encounterd invalid data"); } + iline >> num_orphans_in ; + if(!iline) { throw IO_Exception("read_vertex input stream encounterd invalid data"); } + iline >> num_particles_out ; + if(!iline) { throw IO_Exception("read_vertex input stream encounterd invalid data"); } + iline >> weights_size; + if(!iline) { throw IO_Exception("read_vertex input stream encounterd invalid data"); } + WeightContainer weights(weights_size); + for ( int i1 = 0; i1 < weights_size; ++i1 ) { + iline >> weights[i1]; + if(!iline) { throw IO_Exception("read_vertex input stream encounterd invalid data"); } + } + v->set_position( FourVector(x,y,z,t) ); + v->set_id( id ); + v->weights() = weights; + v->suggest_barcode( identifier ); + // + // read and create the associated particles. outgoing particles are + // added to their production vertices immediately, while incoming + // particles are added to a map and handled later. + for ( int i2 = 1; i2 <= num_orphans_in; ++i2 ) { + GenParticle* p1 = new GenParticle( ); + detail::read_particle(is,particle_to_end_vertex,p1); + } + for ( int i3 = 1; i3 <= num_particles_out; ++i3 ) { + GenParticle* p2 = new GenParticle( ); + detail::read_particle(is,particle_to_end_vertex,p2); + v->add_particle_out( p2 ); + } + + return is; +} + +std::istream & find_event_end( std::istream & is ) { + // since there is no end of event flag, + // read one line at time until we find the next event + // or the end of event block + // don't throw until we find the end of the event + std::string line, firstc; + while ( is ) { + is >> firstc; + if( firstc=="E" ) { // next event + is.unget(); + throw IO_Exception("input stream encountered invalid data"); + return is; + } else if( firstc.size() > 1 ) { // no more events in this block + throw IO_Exception("input stream encountered invalid data, now at end of event block"); + return is; + } + std::getline(is,line); + } + // the stream is bad + throw IO_Exception("input stream encountered invalid data, stream is now corrupt"); + return is; +} + +} // detail + +} // HepMC diff --git a/TEvtGen/HepMC/StreamHelpers.h b/TEvtGen/HepMC/StreamHelpers.h new file mode 100644 index 00000000000..cfb5eb0817d --- /dev/null +++ b/TEvtGen/HepMC/StreamHelpers.h @@ -0,0 +1,102 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_STREAM_HELPERS_H +#define HEPMC_STREAM_HELPERS_H + +////////////////////////////////////////////////////////////////////////// +// garren@fnal.gov, March 2009 +// +// This header contains helper functions used by streaming IO +////////////////////////////////////////////////////////////////////////// + +#include +#include + +#include "HepMC/GenEvent.h" +#include "HepMC/TempParticleMap.h" + +namespace HepMC { + +namespace detail { + +/// used by IO_GenEvent constructor +std::ostream & establish_output_stream_info( std::ostream & ); +/// used by IO_GenEvent constructor +std::istream & establish_input_stream_info( std::istream & ); + +/// get a GenVertex from ASCII input +/// TempParticleMap is used to track the associations of particles with vertices +std::istream & read_vertex( std::istream &, TempParticleMap &, GenVertex * ); + +/// get a GenParticle from ASCII input +/// TempParticleMap is used to track the associations of particles with vertices +std::istream & read_particle( std::istream&, TempParticleMap &, GenParticle * ); + +/// write a double - for internal use by streaming IO +inline std::ostream & output( std::ostream & os, const double& d ) { + if( os ) { + if ( d == 0. ) { + os << ' ' << (int)0; + } else { + os << ' ' << d; + } + } + return os; +} + +/// write a float - for internal use by streaming IO +inline std::ostream & output( std::ostream & os, const float& d ) { + if( os ) { + if ( d == 0. ) { + os << ' ' << (int)0; + } else { + os << ' ' << d; + } + } + return os; +} + +/// write an int - for internal use by streaming IO +inline std::ostream & output( std::ostream & os, const int& i ) { + if( os ) { + if ( i == 0. ) { + os << ' ' << (int)0; + } else { + os << ' ' << i; + } + } + return os; +} + +/// write a long - for internal use by streaming IO +inline std::ostream & output( std::ostream & os, const long& i ) { + if( os ) { + if ( i == 0. ) { + os << ' ' << (int)0; + } else { + os << ' ' << i; + } + } + return os; +} + +/// write a single char - for internal use by streaming IO +inline std::ostream & output( std::ostream & os, const char& c ) { + if( os ) { + if ( c ) { + os << c; + } else { + os << ' ' ; + } + } + return os; +} + +/// used to read to the end of a bad event +std::istream & find_event_end( std::istream & ); + +} // detail + +} // HepMC + +#endif // HEPMC_STREAM_HELPERS_H +//-------------------------------------------------------------------------- diff --git a/TEvtGen/HepMC/StreamInfo.cc b/TEvtGen/HepMC/StreamInfo.cc new file mode 100644 index 00000000000..2077578aa4f --- /dev/null +++ b/TEvtGen/HepMC/StreamInfo.cc @@ -0,0 +1,59 @@ +//-------------------------------------------------------------------------- +// +// StreamInfo.cc +// Author: Lynn Garren +// +// ---------------------------------------------------------------------- + +#include +#include "HepMC/StreamInfo.h" + +namespace HepMC { + +StreamInfo::StreamInfo( ) +: m_finished_first_event_io(false), + m_io_genevent_start("HepMC::IO_GenEvent-START_EVENT_LISTING"), + m_io_ascii_start("HepMC::IO_Ascii-START_EVENT_LISTING"), + m_io_extendedascii_start("HepMC::IO_ExtendedAscii-START_EVENT_LISTING"), + m_io_genevent_end("HepMC::IO_GenEvent-END_EVENT_LISTING"), + m_io_ascii_end("HepMC::IO_Ascii-END_EVENT_LISTING"), + m_io_extendedascii_end("HepMC::IO_ExtendedAscii-END_EVENT_LISTING"), + m_io_ascii_pdt_start("HepMC::IO_Ascii-START_PARTICLE_DATA"), + m_io_extendedascii_pdt_start("HepMC::IO_ExtendedAscii-START_PARTICLE_DATA"), + m_io_ascii_pdt_end("HepMC::IO_Ascii-END_PARTICLE_DATA"), + m_io_extendedascii_pdt_end("HepMC::IO_ExtendedAscii-END_PARTICLE_DATA"), + m_io_type(0), + m_has_key(true), + m_io_momentum_unit(Units::default_momentum_unit()), + m_io_position_unit(Units::default_length_unit()), + m_stream_id(m_stream_counter), + m_reading_event_header(false) +{ + ++m_stream_counter; +} + +/// static counter +unsigned int StreamInfo::m_stream_counter = 0; + +void StreamInfo::use_input_units( Units::MomentumUnit mom, Units::LengthUnit len ) { + m_io_momentum_unit = mom; + m_io_position_unit = len; +} + +void StreamInfo::set_io_type( int io ) { + m_io_type = io; +} + +void StreamInfo::set_has_key( bool io ) { + m_has_key = io; +} + +bool StreamInfo::reading_event_header() { + return m_reading_event_header; +} + +void StreamInfo::set_reading_event_header(bool tf) { + m_reading_event_header = tf; +} + +} // HepMC diff --git a/TEvtGen/HepMC/StreamInfo.h b/TEvtGen/HepMC/StreamInfo.h new file mode 100644 index 00000000000..518b8b2b19c --- /dev/null +++ b/TEvtGen/HepMC/StreamInfo.h @@ -0,0 +1,128 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_STREAM_INFO_H +#define HEPMC_STREAM_INFO_H + +////////////////////////////////////////////////////////////////////////// +// garren@fnal.gov, March 2009 +// +// This class contains the extra information needed when using streaming IO +////////////////////////////////////////////////////////////////////////// + +#include +#include "HepMC/Units.h" + +namespace HepMC { + +/// The known_io enum is used to track which type of input is being read +enum known_io { gen=1, ascii, extascii, ascii_pdt, extascii_pdt }; + +//! StreamInfo contains extra information needed when using streaming IO. + +/// +/// \class StreamInfo +/// This class contains the extra information needed when using streaming IO +/// to process HepMC GenEvents +/// +class StreamInfo { +public: + /// default constructor + StreamInfo( ); + /// destructor + ~StreamInfo() {} + + /// IO_GenEvent begin event block key + std::string IO_GenEvent_Key() const { return m_io_genevent_start; } + /// IO_GenEvent end event block key + std::string IO_GenEvent_End() const { return m_io_genevent_end; } + + /// IO_Ascii begin event block key + /// IO_Ascii has been removed, but we want to be able to read + /// existing files written by IO_Ascii + std::string IO_Ascii_Key() const { return m_io_ascii_start; } + /// IO_Ascii end event block key + std::string IO_Ascii_End() const { return m_io_ascii_end; } + /// IO_Ascii begin particle data block key + std::string IO_Ascii_PDT_Key() const { return m_io_ascii_pdt_start; } + /// IO_Ascii end particle data block key + std::string IO_Ascii_PDT_End() const { return m_io_ascii_pdt_end; } + + /// IO_ExtendedAscii begin event block key + /// IO_ExtendedAscii has been removed, but we want to be able to read + /// existing files written by IO_ExtendedAscii + std::string IO_ExtendedAscii_Key() const { return m_io_extendedascii_start; } + /// IO_ExtendedAscii end event block key + std::string IO_ExtendedAscii_End() const { return m_io_extendedascii_end; } + /// IO_ExtendedAscii begin particle data block key + std::string IO_ExtendedAscii_PDT_Key() const { return m_io_extendedascii_pdt_start; } + /// IO_ExtendedAscii end particle data block key + std::string IO_ExtendedAscii_PDT_End() const { return m_io_extendedascii_pdt_end; } + + /// get IO type + int io_type() const { return m_io_type; } + /// set IO type + void set_io_type( int ); + + /// true if the stream has a file type key + /// has_key is true by default + bool has_key() const { return m_has_key; } + /// set to false if the stream does not have a file type key + void set_has_key( bool ); + + /// get the I/O momentum units + Units::MomentumUnit io_momentum_unit() const { return m_io_momentum_unit; } + /// get the I/O length units + Units::LengthUnit io_position_unit() const { return m_io_position_unit; } + + /// get the I/O stream id + /// This is used for sanity checking. + int stream_id() const { return m_stream_id; } + + /// Special information is processed the first time we use the IO + bool finished_first_event() const { return m_finished_first_event_io; } + /// Special information is processed the first time we use the IO + void set_finished_first_event( bool b ) { m_finished_first_event_io = b; } + + /// needed when reading a file without units if those units are + /// different than the declared default units + /// (e.g., the default units are MeV, but the file was written with GeV) + /// This method is not necessary if the units are written in the file + void use_input_units( Units::MomentumUnit, Units::LengthUnit ); + + /// reading_event_header will return true when streaming input is + /// processing the GenEvent header information + bool reading_event_header(); + /// set the reading_event_header flag + void set_reading_event_header(bool); + +private: // data members + bool m_finished_first_event_io; + // GenEvent I/O method keys + std::string m_io_genevent_start; + std::string m_io_ascii_start; + std::string m_io_extendedascii_start; + std::string m_io_genevent_end; + std::string m_io_ascii_end; + std::string m_io_extendedascii_end; + // particle data I/O method keys + std::string m_io_ascii_pdt_start; + std::string m_io_extendedascii_pdt_start; + std::string m_io_ascii_pdt_end; + std::string m_io_extendedascii_pdt_end; + // io information + int m_io_type; + bool m_has_key; + // default io units - used only when reading a file with no units + Units::MomentumUnit m_io_momentum_unit; + Units::LengthUnit m_io_position_unit; + // used to keep identify the I/O stream + unsigned int m_stream_id; + static unsigned int m_stream_counter; + // used to keep track when reading event + bool m_reading_event_header; + +}; + +} // HepMC + +#endif // HEPMC_STREAM_INFO_H +//-------------------------------------------------------------------------- diff --git a/TEvtGen/HepMC/TempParticleMap.h b/TEvtGen/HepMC/TempParticleMap.h new file mode 100644 index 00000000000..180e0062140 --- /dev/null +++ b/TEvtGen/HepMC/TempParticleMap.h @@ -0,0 +1,67 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_TempParticleMap_H +#define HEPMC_TempParticleMap_H + +////////////////////////////////////////////////////////////////////////// +// garren@fnal.gov, October 2007 +// +// Used by IO classes +////////////////////////////////////////////////////////////////////////// + +#include + +namespace HepMC { + + class GenParticle; + + //! TempParticleMap is a temporary GenParticle* container used during input. + + /// + /// \class TempParticleMap + /// Used by IO classes for recoverable particle ordering. + /// Map GenParticle* against both outgoing vertex and particle order. + /// + class TempParticleMap { + public: + typedef std::map TempMap; + typedef std::map TempOrderMap; + typedef TempMap::iterator TempMapIterator; + typedef TempOrderMap::iterator orderIterator; + + TempParticleMap() + : m_particle_to_end_vertex(), m_particle_order() {} + + ~TempParticleMap() {} + + TempMapIterator begin() { return m_particle_to_end_vertex.begin(); } + TempMapIterator end() { return m_particle_to_end_vertex.end(); } + orderIterator order_begin() { return m_particle_order.begin(); } + orderIterator order_end() { return m_particle_order.end(); } + + int end_vertex( GenParticle* ); + + void addEndParticle( GenParticle*, int& ); + + private: + TempMap m_particle_to_end_vertex; + TempOrderMap m_particle_order; + }; + + inline int TempParticleMap::end_vertex( GenParticle* p ) + { + //return m_particle_to_end_vertex[p]->second; + TempMapIterator it = m_particle_to_end_vertex.find(p); + if( it == end() ) return 0; + return m_particle_to_end_vertex[p]; + } + + inline void TempParticleMap::addEndParticle( GenParticle* p, int& end_vtx_code ) + { + m_particle_order[p->barcode()] = p; + m_particle_to_end_vertex[p] = end_vtx_code; + } + +} // HepMC + +#endif // HEPMC_TempParticleMap_H +//-------------------------------------------------------------------------- diff --git a/TEvtGen/HepMC/Units.cc b/TEvtGen/HepMC/Units.cc new file mode 100644 index 00000000000..d00111504a6 --- /dev/null +++ b/TEvtGen/HepMC/Units.cc @@ -0,0 +1,66 @@ +//-------------------------------------------------------------------------- +// Units.cc +// Author: A. Buckley, D. Grellscheid +// +// units used by a GenEvent +// The default units are set here at compile time. +//-------------------------------------------------------------------------- + +#include "HepMC/Units.h" + +namespace HepMC { + + namespace Units { + + // helper functions + std::string name(MomentumUnit m) { + switch (m) { + case MEV : return "MEV"; + case GEV : return "GEV"; + default : return "badValue"; + } + } + + std::string name(LengthUnit l) { + switch (l) { + case MM : return "MM"; + case CM : return "CM"; + default : return "badValue"; + } + } + + double conversion_factor(MomentumUnit from, MomentumUnit to) + { + if ( from == to ) + return 1.0; + else if ( from == MEV && to == GEV ) + return 0.001; + else + return 1000.0; + } + + double conversion_factor(LengthUnit from, LengthUnit to) + { + if ( from == to ) + return 1.0; + else if ( from == MM && to == CM ) + return 0.1; + else + return 10.0; + } + + // if this function fails to compile, rerun configure using --with-length_units + LengthUnit default_length_unit() { + //return @HEPMC_DEFAULT_LEN_UNIT@ ; + return MM ; + } + + // if this function fails to compile, rerun configure using --with-momentum_units + MomentumUnit default_momentum_unit() { + //return @HEPMC_DEFAULT_MOM_UNIT@ ; + return MEV ; + } + + } // Units + +} // HepMC diff --git a/TEvtGen/HepMC/Units.h b/TEvtGen/HepMC/Units.h new file mode 100644 index 00000000000..1d42655a3be --- /dev/null +++ b/TEvtGen/HepMC/Units.h @@ -0,0 +1,42 @@ +#ifndef HEPMC_UNITS_H +#define HEPMC_UNITS_H + +//-------------------------------------------------------------------------- +// Units.h +// Author: A. Buckley, D. Grellscheid +// +// units used by a GenEvent +// The default units are set by a configure switch at compile time in Units.cc. +//-------------------------------------------------------------------------- + +#include +#include + +namespace HepMC { + + /// + /// \namespace Units + /// Allow units to be specified within HepMC. + /// The default units are set at compile time. + /// + namespace Units { + + // Convention: if both types are passed, MomentumUnit always goes first. + enum MomentumUnit { MEV, GEV }; //!< momentum units + enum LengthUnit { MM, CM }; //!< position units + + LengthUnit default_length_unit(); //!< default unit is defined by configure + MomentumUnit default_momentum_unit(); //!< default unit is defined by configure + + // helper functions + std::string name( MomentumUnit ); //!< convert enum to string + std::string name( LengthUnit ); //!< convert enum to string + + /// scaling factor relative to MeV + double conversion_factor( MomentumUnit from, MomentumUnit to ); + double conversion_factor( LengthUnit from, LengthUnit to ); + + } // Units +} // HepMC + +#endif // HEPMC_UNITS_H diff --git a/TEvtGen/HepMC/Version.h b/TEvtGen/HepMC/Version.h new file mode 100644 index 00000000000..9ca0ad7ba56 --- /dev/null +++ b/TEvtGen/HepMC/Version.h @@ -0,0 +1,40 @@ +#ifndef HEPMC_VERSION_H +#define HEPMC_VERSION_H +// ---------------------------------------------------------------------- +// +// Version.h +// Author: Lynn Garren +// +// for now, these are free functions +// +// ---------------------------------------------------------------------- + +#include +#include +#include "HepMC/HepMCDefs.h" + +namespace HepMC { + +void version( std::ostream & os = std::cout ); //!< print HepMC version +void writeVersion( std::ostream & os ); //!< write HepMC version to os +std::string versionName( ); //!< return HepMC version + +inline std::string versionName( ) +{ + return HEPMC_VERSION; +} + +inline void version( std::ostream & os ) +{ + os << " --------------- HepMC Version " << versionName() + << " --------------- " << std::endl; +} + +inline void writeVersion( std::ostream & os ) +{ + os << " HepMC Version: " << versionName() << std::endl; +} + +} // HepMC + +#endif // HEPMC_VERSION_H diff --git a/TEvtGen/HepMC/WeightContainer.cc b/TEvtGen/HepMC/WeightContainer.cc new file mode 100644 index 00000000000..d32bad93bb7 --- /dev/null +++ b/TEvtGen/HepMC/WeightContainer.cc @@ -0,0 +1,139 @@ +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, November 2000, refer to: +// M. Dobbs and J.B. Hansen, "The HepMC C++ Monte Carlo Event Record for +// High Energy Physics", Computer Physics Communications (to be published). +// +// Container for the Weights associated with an event or vertex. +// Basically just an interface to STL vector with extra map-like attributes +////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include +#include +#include + +#include "HepMC/WeightContainer.h" + +namespace HepMC { + +WeightContainer::WeightContainer( size_type n, double value ) + : m_weights(n,value), m_names() +{ set_default_names(n); } + +WeightContainer::WeightContainer( const std::vector& wgts ) + : m_weights(wgts), m_names() +{ set_default_names(size()); } + +void WeightContainer::set_default_names( size_type n ) +{ + // internal program used by the constructors + std::ostringstream name; + for ( size_type count = 0; countsecond == vit ) { + m_names.erase(m->first); + continue; + } + } + m_weights.pop_back(); +} + +double& WeightContainer::operator[]( const std::string& s ) +{ + const_map_iterator m = m_names.find(s); + if( m != m_names.end() ) { + return m_weights[m->second]; + } + // doesn't exist - have to create it + size_type count = m_weights.size(); + m_weights.push_back(0); + m_names[s] = count; + return m_weights.back(); +} + + +const double& WeightContainer::operator[]( const std::string& s ) const +{ + const_map_iterator m = m_names.find(s); + if( m != m_names.end() ) { + return m_weights[m->second]; + } + // doesn't exist and we cannot create it + // note that std::map does not support this (const) operator + // throw an appropriate error, we choose the error thrown by std::vector + throw std::out_of_range("const WeightContainer::operator[] ERROR: string "+s+" not found in WeightContainer" ); +} + +bool WeightContainer::operator==( const WeightContainer & other ) const +{ + if( size() != other.size() ) { return false; } + if( m_names != other.m_names ) { return false; } + if( m_weights != other.m_weights ) { return false; } + return true; +} + +bool WeightContainer::operator!=( const WeightContainer & other ) const +{ + return !(*this == other ); +} + +bool WeightContainer::has_key( const std::string& s ) const +{ + // look up the name in the map + return m_names.find(s) != m_names.end(); +} + +void WeightContainer::print( std::ostream& ostr ) const +{ + // print a name, weight pair + for ( const_map_iterator m = map_begin(); m != map_end(); ++m ) + { + ostr << "(" << m->first << "," << m_weights[m->second] << ") "; + } + ostr << std::endl; +} + +void WeightContainer::write( std::ostream& ostr ) const +{ + size_type count = 0; + for ( const_iterator w = begin(); w != end(); ++w ) + { + std::string name; + for ( const_map_iterator m = map_begin(); m != map_end(); ++m ) + { + if( m->second == count ) name = m->first; + } + ostr << "Weight " << std::setw(4) << count + << " with name " << std::setw(10) << name + << " is " << *w << std::endl; + ++count; + } +} + +} // HepMC + diff --git a/TEvtGen/HepMC/WeightContainer.h b/TEvtGen/HepMC/WeightContainer.h new file mode 100644 index 00000000000..980f75b3b7f --- /dev/null +++ b/TEvtGen/HepMC/WeightContainer.h @@ -0,0 +1,225 @@ +//-------------------------------------------------------------------------- +#ifndef HEPMC_WEIGHT_CONTAINER_H +#define HEPMC_WEIGHT_CONTAINER_H + +////////////////////////////////////////////////////////////////////////// +// Matt.Dobbs@Cern.CH, November 2000, refer to: +// M. Dobbs and J.B. Hansen, "The HepMC C++ Monte Carlo Event Record for +// High Energy Physics", Computer Physics Communications (to be published). +// +// Container for the Weights associated with an event or vertex. +// +// This implementation adds a map-like interface in addition to the +// vector-like interface. +////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include + +namespace HepMC { + + //! Container for the Weights associated with an event or vertex. + + /// + /// \class WeightContainer + /// This class has both map-like and vector-like functionality. + /// Named weights are now supported. + class WeightContainer { + friend class GenEvent; + + public: + /// defining the size type used by vector and map + typedef std::size_t size_type; + /// iterator for the weight container + typedef std::vector::iterator iterator; + /// const iterator for the weight container + typedef std::vector::const_iterator const_iterator; + + /// default constructor + explicit WeightContainer( size_type n = 0, double value = 0. ); + /// construct from a vector of weights + WeightContainer( const std::vector& weights ); + /// copy + WeightContainer( const WeightContainer& in ); + ~WeightContainer(); + + /// swap + void swap( WeightContainer & other); + /// copy assignment + WeightContainer& operator=( const WeightContainer& ); + /// alternate assignment using a vector of doubles + WeightContainer& operator=( const std::vector& in ); + + /// print weights + void print( std::ostream& ostr = std::cout ) const; + /// write weights in a readable table + void write( std::ostream& ostr = std::cout ) const; + + /// size of weight container + size_type size() const; + /// return true if weight container is empty + bool empty() const; + /// push onto weight container + void push_back( const double& ); + /// pop from weight container + void pop_back(); + /// clear the weight container + void clear(); + + /// check to see if a name exists in the map + bool has_key( const std::string& s ) const; + + /// access the weight container + double& operator[]( size_type n ); // unchecked access + /// access the weight container + const double& operator[]( size_type n ) const; + /// access the weight container + double& operator[]( const std::string& s ); // unchecked access + /// access the weight container + const double& operator[]( const std::string& s ) const; + + /// equality + bool operator==( const WeightContainer & ) const; + /// inequality + bool operator!=( const WeightContainer & ) const; + + /// returns the first element + double& front(); + /// returns the first element + const double& front() const; + /// returns the last element + double& back(); + /// returns the last element + const double& back() const; + + /// begining of the weight container + iterator begin(); + /// end of the weight container + iterator end(); + /// begining of the weight container + const_iterator begin() const; + /// end of the weight container + const_iterator end() const; + + private: + // for internal use only + + /// maplike iterator for the weight container + /// for internal use only + typedef std::map::iterator map_iterator; + /// const iterator for the weight container + /// for internal use only + typedef std::map::const_iterator const_map_iterator; + /// begining of the weight container + /// for internal use only + map_iterator map_begin(); + /// end of the weight container + /// for internal use only + map_iterator map_end(); + /// begining of the weight container + /// for internal use only + const_map_iterator map_begin() const; + /// end of the weight container + /// for internal use only + const_map_iterator map_end() const; + + /// used by the constructors to set initial names + /// for internal use only + void set_default_names( size_type n ); + + private: + std::vector m_weights; + std::map m_names; + }; + + /////////////////////////// + // INLINES // + /////////////////////////// + + inline WeightContainer::WeightContainer( const WeightContainer& in ) + : m_weights(in.m_weights), m_names(in.m_names) + {} + + inline WeightContainer::~WeightContainer() {} + + inline void WeightContainer::swap( WeightContainer & other) + { + m_weights.swap( other.m_weights ); + m_names.swap( other.m_names ); + } + + inline WeightContainer& WeightContainer::operator= + ( const WeightContainer& in ) { + /// best practices implementation + WeightContainer tmp( in ); + swap( tmp ); + return *this; + } + + inline WeightContainer& WeightContainer::operator= + ( const std::vector& in ) { + /// best practices implementation + WeightContainer tmp( in ); + swap( tmp ); + return *this; + } + + inline WeightContainer::size_type WeightContainer::size() const { return m_weights.size(); } + + inline bool WeightContainer::empty() const { return m_weights.empty(); } + + inline void WeightContainer::clear() + { + m_weights.clear(); + m_names.clear(); + } + + inline double& WeightContainer::operator[]( size_type n ) + { return m_weights[n]; } + + inline const double& WeightContainer::operator[]( size_type n ) const + { return m_weights[n]; } + + inline double& WeightContainer::front() { return m_weights.front(); } + + inline const double& WeightContainer::front() const + { return m_weights.front(); } + + inline double& WeightContainer::back() { return m_weights.back(); } + + inline const double& WeightContainer::back() const + { return m_weights.back(); } + + inline WeightContainer::iterator WeightContainer::begin() + { return m_weights.begin(); } + + inline WeightContainer::iterator WeightContainer::end() + { return m_weights.end(); } + + inline WeightContainer::const_iterator WeightContainer::begin() const + { return m_weights.begin(); } + + inline WeightContainer::const_iterator WeightContainer::end() const + { return m_weights.end(); } + + inline WeightContainer::map_iterator WeightContainer::map_begin() + { return m_names.begin(); } + + inline WeightContainer::map_iterator WeightContainer::map_end() + { return m_names.end(); } + + inline WeightContainer::const_map_iterator WeightContainer::map_begin() const + { return m_names.begin(); } + + inline WeightContainer::const_map_iterator WeightContainer::map_end() const + { return m_names.end(); } + +} // HepMC + +#endif // HEPMC_WEIGHT_CONTAINER_H +//-------------------------------------------------------------------------- + + + diff --git a/TEvtGen/HepMC/enable_if.h b/TEvtGen/HepMC/enable_if.h new file mode 100644 index 00000000000..1c64790d5c4 --- /dev/null +++ b/TEvtGen/HepMC/enable_if.h @@ -0,0 +1,50 @@ +#ifndef ENABLE_IF_H +#define ENABLE_IF_H +// author: Walter Brown + +// ---------------------------------------------------------------------- +// prolog + +namespace HepMC { +namespace detail { + + +// ---------------------------------------------------------------------- +// enable_if<> + +/// internal - used to decide if a class is arithmetic +template< bool, class > +struct enable_if +{ }; + +/// internal - use if class T is arithmetic +template< class T > +struct enable_if +{ + typedef T type; //!< check type of class T +}; + + +// ---------------------------------------------------------------------- +// disable_if<> + +/// internal - used by SimpleVector to decide if a class is arithmetic +template< bool, class > +struct disable_if +{ }; + +/// internal - used by SimpleVector to decide if a class is arithmetic +template< class T > +struct disable_if +{ + typedef T type; //!< check type of class T +}; + + +// ---------------------------------------------------------------------- +// epilog + +} // namespace detail +} // namespace HepMC + +#endif // ENABLE_IF_H diff --git a/TEvtGen/HepMC/filterEvent.cc b/TEvtGen/HepMC/filterEvent.cc new file mode 100644 index 00000000000..60d20ae0af1 --- /dev/null +++ b/TEvtGen/HepMC/filterEvent.cc @@ -0,0 +1,82 @@ +// from Andy Buckley + +#include "HepMC/GenEvent.h" + + void filterEvent(HepMC::GenEvent* ge) { + // We treat beam particles a bit specially + const std::pair beams = ge->beam_particles(); + + // Make list of non-physical particle entries + std::vector unphys_particles; + for (HepMC::GenEvent::particle_const_iterator pi = ge->particles_begin(); + pi != ge->particles_end(); ++pi) { + // Beam particles might not have status = 4, but we want them anyway + if (beams.first == *pi || beams.second == *pi) continue; + // Filter by status + const int status = (*pi)->status(); + if (status != 1 && status != 2 && status != 4) { + unphys_particles.push_back(*pi); + } + } + + // Remove each unphysical particle from the list + while (unphys_particles.size()) { + HepMC::GenParticle* gp = unphys_particles.back(); + + // Get start and end vertices + HepMC::GenVertex* vstart = gp->production_vertex(); + HepMC::GenVertex* vend = gp->end_vertex(); + + if (vend == vstart) { + // Deal with loops + vstart->remove_particle(gp); + } else { + + // Connect decay particles from end vertex to start vertex + /// @todo Have to build a list, since the GV::add_particle_out method modifies the end vertex! + if (vend && vend->particles_out_size()) { + std::vector end_particles; + for (HepMC::GenVertex::particles_out_const_iterator gpe = vend->particles_out_const_begin(); + gpe != vend->particles_out_const_end(); ++gpe) { + end_particles.push_back(*gpe); + } + // Reset production vertices of child particles to bypass unphysical particle + for (std::vector::const_iterator gpe = end_particles.begin(); + gpe != end_particles.end(); ++gpe) { + //std::cout << vstart << ", " << vend << std::endl; + if (vstart) vstart->add_particle_out(*gpe); + } + } else { + // If null end_vertex... stable unphysical particle? + } + + // Delete unphysical particle and its orphaned end vertex + delete vend; + if (vstart) { + delete vstart->remove_particle(gp); + }// else { + /// @todo Why does this cause an error? + // delete gp; + //} + } + + // Remove deleted particle from list + unphys_particles.pop_back(); + //std::cout << unphys_particles.size() << std::endl; + } + + // Delete any orphaned vertices + std::vector orphaned_vtxs; + for (HepMC::GenEvent::vertex_const_iterator vi = ge->vertices_begin(); + vi != ge->vertices_end(); ++vi) { + if ((*vi)->particles_in_size() == 0 && (*vi)->particles_out_size() == 0) { + orphaned_vtxs.push_back(*vi); + } + } + while (orphaned_vtxs.size()) { + delete orphaned_vtxs.back(); + orphaned_vtxs.pop_back(); + } + } + + diff --git a/TEvtGen/HepMC/is_arithmetic.h b/TEvtGen/HepMC/is_arithmetic.h new file mode 100644 index 00000000000..ff2d0daeb51 --- /dev/null +++ b/TEvtGen/HepMC/is_arithmetic.h @@ -0,0 +1,94 @@ +#ifndef IS_ARITHMETIC +#define IS_ARITHMETIC +// author: Walter Brown + +// ---------------------------------------------------------------------- +// prolog + +namespace HepMC { + +/// +/// \namespace detail +/// internal namespace +/// +namespace detail { + + +// ---------------------------------------------------------------------- +// is_arithmetic<> + +/// undefined and therefore non-arithmetic +template< class T > + struct is_arithmetic +{ + static bool const value = false; +}; + +/// character is arithmetic +template<> + struct is_arithmetic +{ static bool const value = true; }; + +/// unsigned character is arithmetic +template<> + struct is_arithmetic +{ static bool const value = true; }; + +/// signed character is arithmetic +template<> + struct is_arithmetic +{ static bool const value = true; }; + +/// short is arithmetic +template<> + struct is_arithmetic +{ static bool const value = true; }; + +/// unsigned short is arithmetic +template<> + struct is_arithmetic +{ static bool const value = true; }; + +/// int is arithmetic +template<> + struct is_arithmetic +{ static bool const value = true; }; + +/// unsigned int is arithmetic +template<> + struct is_arithmetic +{ static bool const value = true; }; + +/// long is arithmetic +template<> + struct is_arithmetic +{ static bool const value = true; }; + +/// unsigned long is arithmetic +template<> + struct is_arithmetic +{ static bool const value = true; }; + +/// float is arithmetic +template<> + struct is_arithmetic +{ static bool const value = true; }; + +/// double is arithmetic +template<> + struct is_arithmetic +{ static bool const value = true; }; + +/// long double is arithmetic +template<> + struct is_arithmetic +{ static bool const value = true; }; + + +// ---------------------------------------------------------------------- +// epilog + +} // namespace detail +} // namespace HepMC + +#endif // IS_ARITHMETIC diff --git a/TEvtGen/PHOTOS/CMakeLists.txt b/TEvtGen/PHOTOS/CMakeLists.txt deleted file mode 100644 index cb49e203dc5..00000000000 --- a/TEvtGen/PHOTOS/CMakeLists.txt +++ /dev/null @@ -1,25 +0,0 @@ -# -*- 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 deleted file mode 100644 index d339d46f7a7..00000000000 --- a/TEvtGen/PHOTOS/CMake_libPHOTOS.txt +++ /dev/null @@ -1,59 +0,0 @@ -# -*- 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 deleted file mode 100644 index bb917cae425..00000000000 --- a/TEvtGen/PHOTOS/module.mk +++ /dev/null @@ -1,545 +0,0 @@ -#************************************************************************** -#**** 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 deleted file mode 100644 index 9eaaa7381be..00000000000 --- a/TEvtGen/PHOTOS/phcork.F +++ /dev/null @@ -1,199 +0,0 @@ - - - - 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 deleted file mode 100644 index 7cdb11ab47c..00000000000 --- a/TEvtGen/PHOTOS/phint.F +++ /dev/null @@ -1,103 +0,0 @@ - - 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 deleted file mode 100644 index c2cd49d2138..00000000000 --- a/TEvtGen/PHOTOS/phint1.F +++ /dev/null @@ -1,67 +0,0 @@ - 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 deleted file mode 100644 index 2e2da71d0d5..00000000000 --- a/TEvtGen/PHOTOS/phlupa.F +++ /dev/null @@ -1,59 +0,0 @@ - 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 deleted file mode 100644 index 072b36e1126..00000000000 --- a/TEvtGen/PHOTOS/phoan1.F +++ /dev/null @@ -1,29 +0,0 @@ - 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 deleted file mode 100644 index d997e11abec..00000000000 --- a/TEvtGen/PHOTOS/phoan2.F +++ /dev/null @@ -1,28 +0,0 @@ - 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 deleted file mode 100644 index 7bcdca0bfb1..00000000000 --- a/TEvtGen/PHOTOS/phobo3.F +++ /dev/null @@ -1,25 +0,0 @@ - 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 deleted file mode 100644 index 2ce1ed8e3de..00000000000 --- a/TEvtGen/PHOTOS/phobos.F +++ /dev/null @@ -1,79 +0,0 @@ - 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 deleted file mode 100644 index ce6d603b1b8..00000000000 --- a/TEvtGen/PHOTOS/phocha.F +++ /dev/null @@ -1,61 +0,0 @@ - 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 deleted file mode 100644 index 0cfdabc7958..00000000000 --- a/TEvtGen/PHOTOS/phochk.F +++ /dev/null @@ -1,106 +0,0 @@ - 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 deleted file mode 100644 index d0385d48165..00000000000 --- a/TEvtGen/PHOTOS/phocin.F +++ /dev/null @@ -1,95 +0,0 @@ - SUBROUTINE PHOCIN(ISEEDF,ISEEDS) -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 ISEEDF, ISEEDS - 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 -C ISEED(1)=1802 -C ISEED(2)=9373 -C updated on 23.08.2012 to introduce proper random number sequence - ISEED(1)=ISEEDF - ISEED(2)=ISEEDS -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 deleted file mode 100644 index da51db71a03..00000000000 --- a/TEvtGen/PHOTOS/phocor.F +++ /dev/null @@ -1,65 +0,0 @@ - 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 deleted file mode 100644 index 500c8636f49..00000000000 --- a/TEvtGen/PHOTOS/phodo.F +++ /dev/null @@ -1,181 +0,0 @@ - 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 deleted file mode 100644 index 98b26147059..00000000000 --- a/TEvtGen/PHOTOS/phoene.F +++ /dev/null @@ -1,85 +0,0 @@ - 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 deleted file mode 100644 index b74f83c086a..00000000000 --- a/TEvtGen/PHOTOS/phoerr.F +++ /dev/null @@ -1,116 +0,0 @@ - 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 deleted file mode 100644 index de114d9938c..00000000000 --- a/TEvtGen/PHOTOS/phofac.F +++ /dev/null @@ -1,53 +0,0 @@ - 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 deleted file mode 100644 index 7e07b1b0705..00000000000 --- a/TEvtGen/PHOTOS/phoin.F +++ /dev/null @@ -1,123 +0,0 @@ - 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 deleted file mode 100644 index bcdfa14eece..00000000000 --- a/TEvtGen/PHOTOS/phoinf.F +++ /dev/null @@ -1,98 +0,0 @@ - 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 deleted file mode 100644 index fef1fb89eff..00000000000 --- a/TEvtGen/PHOTOS/phoini.F +++ /dev/null @@ -1,130 +0,0 @@ -*///////////////////////////////////////////////////////////////////////////////////// -*// // -*// !!!!!!! 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(ISEEDF,ISEEDS) - -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 ISEEDF, ISEEDS - 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(ISEEDF,ISEEDS) -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 deleted file mode 100644 index bb66fb93076..00000000000 --- a/TEvtGen/PHOTOS/phomak.F +++ /dev/null @@ -1,58 +0,0 @@ - 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 deleted file mode 100644 index 849ab4861d0..00000000000 --- a/TEvtGen/PHOTOS/phooma.F +++ /dev/null @@ -1,49 +0,0 @@ - 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 deleted file mode 100644 index 99151893a6d..00000000000 --- a/TEvtGen/PHOTOS/phoout.F +++ /dev/null @@ -1,79 +0,0 @@ - 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 deleted file mode 100644 index 022e5df4c00..00000000000 --- a/TEvtGen/PHOTOS/phopre.F +++ /dev/null @@ -1,173 +0,0 @@ - - - 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 deleted file mode 100644 index fce63604533..00000000000 --- a/TEvtGen/PHOTOS/phoran.F +++ /dev/null @@ -1,41 +0,0 @@ - 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 deleted file mode 100644 index dab17cf7d37..00000000000 --- a/TEvtGen/PHOTOS/phorep.F +++ /dev/null @@ -1,56 +0,0 @@ - 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 deleted file mode 100644 index 199429753c1..00000000000 --- a/TEvtGen/PHOTOS/phorin.F +++ /dev/null @@ -1,59 +0,0 @@ - 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 deleted file mode 100644 index a216372f961..00000000000 --- a/TEvtGen/PHOTOS/phoro2.F +++ /dev/null @@ -1,25 +0,0 @@ - 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 deleted file mode 100644 index aac7ca744c1..00000000000 --- a/TEvtGen/PHOTOS/phoro3.F +++ /dev/null @@ -1,25 +0,0 @@ - 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 deleted file mode 100644 index c55f709c480..00000000000 --- a/TEvtGen/PHOTOS/phospi.F +++ /dev/null @@ -1,42 +0,0 @@ - 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 deleted file mode 100644 index 8b3b43e95a4..00000000000 --- a/TEvtGen/PHOTOS/photos.F +++ /dev/null @@ -1,22 +0,0 @@ - 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 deleted file mode 100644 index ee4ebb623e1..00000000000 --- a/TEvtGen/PHOTOS/photos_get.F +++ /dev/null @@ -1,62 +0,0 @@ - - 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 deleted file mode 100644 index 2c2077bf37a..00000000000 --- a/TEvtGen/PHOTOS/photos_make.F +++ /dev/null @@ -1,166 +0,0 @@ - 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 deleted file mode 100644 index 431e5eb32d2..00000000000 --- a/TEvtGen/PHOTOS/photos_set.F +++ /dev/null @@ -1,63 +0,0 @@ - - - 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 deleted file mode 100644 index 8a2f806d21b..00000000000 --- a/TEvtGen/PHOTOS/photri.F +++ /dev/null @@ -1,28 +0,0 @@ - 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 deleted file mode 100644 index 8bb9229a8b8..00000000000 --- a/TEvtGen/PHOTOS/photwo.F +++ /dev/null @@ -1,59 +0,0 @@ - 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 deleted file mode 100644 index e6bc108b238..00000000000 --- a/TEvtGen/PHOTOS/phtype.F +++ /dev/null @@ -1,56 +0,0 @@ - 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/Log.cxx b/TEvtGen/Photos/Log.cxx new file mode 100644 index 00000000000..d13f75f70bb --- /dev/null +++ b/TEvtGen/Photos/Log.cxx @@ -0,0 +1,338 @@ +#include +#include "Log.h" +using std::streambuf; +using std::stringstream; +using std::ostream; +using std::cout; +using std::cerr; +using std::endl; + +namespace Photospp +{ + +void (*PHOERR)(int,const char*,double) = Log::PHOERR; +void (*PHOREP)() = Log::PHOREP; + +list *Log::PointerList = NULL; + +streambuf *Log::bCout=cout.rdbuf(),*Log::bCerr=cerr.rdbuf(); +ostream *Log::out=&cout; +stringstream Log::buf; +int Log::warnLimit=100; +int Log::decays[4] = {0}; +int Log::dCount =0,Log::dRangeS =65535,Log::dRangeE =65534; +int Log::faCount=0,Log::faRangeS=65535,Log::faRangeE=65534; +int Log::iCount =0,Log::wCount =0,Log::eCount =0,Log::asCount=0, Log::asFailedCount=0; +bool Log::iAction=1,Log::wAction=1,Log::eAction=1,Log::asAction=1,Log::rAction=1; + +void Log::AddDecay(int type) +{ + decays[type]++; +} + +ostream& Log::Debug(unsigned short int code, bool count) +{ + if(count) ++dCount; + if(code>=dRangeS && code<=dRangeE ) return *out<<"DEBUG("<0 && wCount>=warnLimit) + { + if(wAction) + { + *out<<"WARNING from PHOTOS:"<faRangeE) exit(-1); +} + +void Log::RedirectOutput(void (*func)(), ostream& where) +{ + + if(!rAction) { func(); return; } + cout.rdbuf(where.rdbuf()); + cerr.rdbuf(where.rdbuf()); + where<dRangeE) *out<<"(OFF)"; + *out<<"\t\t"<0 && wCount>warnLimit) *out<<"(SUPP.)"; else *out<<"(OFF)"; + *out<<"\t\t"<0) *out<<" Asserts:\t\t\t"<=2)) return; + if ((IMES == 10) && (phosta_.status[IMES-i]>=2)) return; + SDATA=DATA; + // int PHLUN=(int)pholun_.phlun; + bool IFSTOP=phosta_.ifstop; + FILE *PHLUN = stdout; + int furthA=0; + fprintf(PHLUN,"%s\n",star80); + fprintf(PHLUN,"*\n"); //9120 + // GOTO (10,20,30,40,50,60,70,80,90,100),IMES + + switch(IMES){ + case 1: + fprintf(PHLUN,"* %s: Too many charged Particles, NCHARG = %6i\n", TEXT,(int)SDATA); //I6 + furthA= 110; + break; + case 2: + fprintf(PHLUN,"* %s: Too much Bremsstrahlung required, PRSOFT = %15.6f\n", TEXT,SDATA);//F15.6 + furthA= 110; + break; + case 3: + fprintf(PHLUN,"* %s: Combined Weight is exceeding 1., Weight = %15.6f\n", TEXT,SDATA); //F15.6 + furthA= 110; + break; + case 4: + fprintf(PHLUN,"* %s: Error in Rescaling charged and neutral Vectors\n", TEXT); + furthA= 110; + break; + case 5: + fprintf(PHLUN,"* %s: Non matching charged Particle Pointer, NCHARG = %5i\n", TEXT,(int)SDATA); //I5 + furthA= 110; + break; + case 6: + fprintf(PHLUN,"* %s: Do you really work with a Particle of Spin: %4.1f\n", TEXT,SDATA); //F4.1 + furthA= 130; + break; + case 7: + fprintf(PHLUN,"* %s: Stack Length exceeded, NSTACK = %5i\n", TEXT,(int)(SDATA));//I5 + furthA= 110; + break; + case 8: + fprintf(PHLUN,"* %s: Random Number Generator Seed(1) out of Range: %8i\n", TEXT,(int)SDATA);//I8 + furthA= 110; + break; + case 9: + fprintf(PHLUN,"* %s: Random Number Generator Seed(2) out of Range: %8i\n", TEXT,(int)SDATA);//I8 + furthA= 110; + break; + case 10: + fprintf(PHLUN,"* %s: Available Phase Space below Cut-off: %15.6f GeV/c^2\n", TEXT,SDATA);//F15.6 + furthA= 130; + break; + default: + fprintf(PHLUN,"* Funny Error Message: %4i ! What to do ?\n", IMES);//I4 + furthA= 120; + break; + } + + switch(furthA){ + case 110: + fprintf(PHLUN,"* Fatal Error Message, I stop this Run !\n"); + fprintf(PHLUN,"*\n"); //9120 + fprintf(PHLUN,"%s\n",star80); + if (IFSTOP){ + exit(0); + } + else{ + fprintf(PHLUN,"*\n"); //9120 + fprintf(PHLUN,"%s\n",star80); + break; + } + case 120: + IERROR=IERROR+1; + if (IERROR>=10){ + fprintf(PHLUN,"* 10 Error Messages generated, I stop this Run !\n"); + fprintf(PHLUN,"*\n");//9120 + fprintf(PHLUN,"%s\n",star80); + if (IFSTOP){ + exit(0); + } + else{ + fprintf(PHLUN,"*\n"); //9120 + fprintf(PHLUN,"%s\n",star80); + break; + } + } + case 130: + fprintf(PHLUN,"*\n"); //9120 + fprintf(PHLUN,"%s\n",star80); + break; + } + return; + + + //9120 FORMAT(1H ,'*',T81,'*') + // 9140 FORMAT(1H ,'* Fatal Error Message, I stop this Run !',T81,'*') + // 9150 FORMAT(1H ,'* 10 Error Messages generated, I stop this Run !',T81, + // &'*') +} + + +//---------------------------------------------------------------------- +// +// PHOTOS: PHOton radiation in decays run summary REPort +// +// Purpose: Inform user about success and/or restrictions of PHOTOS +// encountered during execution. +// +// Input Parameters: Common /PHOSTA/ +// +// Output Parameters: None +// +// Author(s): B. van Eijk Created at: 10/01/92 +// Last Update: 18/06/13 +// +//---------------------------------------------------------------------- +void Log::PHOREP(){ + static int PHOMES=10; + int I; + bool ERROR=false; + // int PHLUN=(int)pholun_.phlun; + char star80[81]= "********************************************************************************"; + char X26[27] = " "; + char EQ25[26]= "========================="; + char X30[31] = " "; + char X22[23] = " "; + char X23[24 ]= " "; + char X16[17] = " "; + FILE *PHLUN = stdout; + fprintf(PHLUN," \n"); + fprintf(PHLUN,"%s\n",star80); + fprintf(PHLUN,"*\n"); + fprintf(PHLUN,"* %s %s\n",X26,EQ25); + fprintf(PHLUN,"* %s PHOTOS Run Summary\n",X30); + fprintf(PHLUN,"* %s %s\n",X26,EQ25); + fprintf(PHLUN,"*\n"); + for(I=1;I<=PHOMES;I++){ + + if (phosta_.status[I-1] == 0) break; + if ((I == 6)|| (I == 10)){ + fprintf(PHLUN,"* %s Warning # %2i occured %6i times\n",X22, I,phosta_.status[I-1]); // I2 I6 + } + else{ + ERROR=true; + fprintf(PHLUN,"* %s Error # %2i occured %6i times\n",X23, I,phosta_.status[I-1]);// I2 I6 + } + } + + if (!ERROR) fprintf(PHLUN,"* %s PHOTOS Execution has successfully terminated\n",X16); + fprintf(PHLUN,"*\n"); + fprintf(PHLUN,"%s\n",star80); + return; + +// 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,'*') +} + + + + + +} // namespace Photospp diff --git a/TEvtGen/Photos/Log.h b/TEvtGen/Photos/Log.h new file mode 100644 index 00000000000..d935a91eda0 --- /dev/null +++ b/TEvtGen/Photos/Log.h @@ -0,0 +1,245 @@ +#ifndef __PHOTOS_LOG_CLASS_HEADER__ +#define __PHOTOS_LOG_CLASS_HEADER__ + +/** + * This file contains class for logging and filtering output. + * This header file also includes a debug macro which + * tracks any possible memory leaks within the program. + * + * @author Tomasz Przedzinski + * @date 14 November 2009 + */ + +#include +#include +#include +#include +#include +#include "Photos.h" +// TEMPORARY +#include "f_Init.h" + +using std::stringstream; +using std::string; +using std::streambuf; +using std::ostream; +using std::list; +using std::cout; +using std::endl; + +namespace Photospp +{ + +extern void (*PHOERR)(int,const char*,double); +extern void (*PHOREP)(); + +class Log +{ +public: + /** Shows the summary of all messages. */ + static void Summary(); + + /** Shows the summary at the end of the program. */ + static void SummaryAtExit() { atexit(Summary); } + + /** Adds the decay to the counter. The type is: + 0 - gun, 1 - no mothers & grandmothers, 2 - no mothers, 3 - ok. */ + static void AddDecay(int type); + + /** Four logging entries. Usage: + Log::Info()<<"Logging some info: "<<8<<" > "<<7.9< *PointerList; +public: +#ifdef _LOG_DEBUG_MODE_ + static void NewPointer(unsigned long address, unsigned long size, const char *file, unsigned long line) + { + if(!PointerList) + { + PointerList = new list(); + atexit(PrintAllocatedPointers); + } + Pointer *info = new Pointer(); + info->address = address; + info->size = size; + info->line = line; + strncpy(info->file, file, 63); + PointerList->push_front(info); + } + static void DeletePointer(unsigned long address) + { + if(!PointerList) return; + for(list::iterator i = PointerList->begin(); i!=PointerList->end(); i++) + { + if((*i)->address == address) + { + PointerList->remove((*i)); + break; + } + } + } + static bool PointerCompare(Pointer *one, Pointer *two) + { + int eq = strcmp(one->file,two->file); + if(eq<0) return true; + else if(eq>0) return false; + return (one->line <= two->line); + } + static void PrintAllocatedPointers() + { + if(!PointerList) return; + int pointers=0,buf=0; + unsigned long total=0; + char *lastS=" "; + unsigned int lastL=0; + if(PointerList->size()==0) + { + cout<<"----------------------------UNFREED MEMORY POINTERS----------------------------\n"; + cout<<" ... NONE ...\n"; + cout<<"-------------------------------------------------------------------------------\n"; + return; + } + PointerList->sort(PointerCompare); + cout<<"---------------------------UNFREED MEMORY POINTERS---------------------------\n"; + for(list::iterator i = PointerList->begin(); i!=PointerList->end(); i++) + { + total+=(*i)->size; + ++pointers; + if(strcmp(lastS,(*i)->file)==0) + { + if(lastL==(*i)->line) + { + printf("%56s%10lub (%lu)\n"," ",(*i)->size,(*i)->address); + continue; + } + } + lastS=(*i)->file; + lastL=(*i)->line; + printf("%s%n:",(*i)->file,&buf); + printf("%-*lu%10lub (%lu)\n",55-buf,(*i)->line,(*i)->size,(*i)->address); + } + cout< +#include +#include "PhotosBranch.h" +#include "PhotosParticle.h" +#include "PH_HEPEVT_Interface.h" +#include "Log.h" +using namespace std; + +namespace Photospp +{ + +vector PH_HEPEVT_Interface::m_particle_list; +int PH_HEPEVT_Interface::ME_channel=0; +int PH_HEPEVT_Interface::decay_idx=0; + +void PH_HEPEVT_Interface::clear(){ + + m_particle_list.clear(); + + hep.nevhep=0; + hep.nhep=0; + + + /** for(int i=0; i < NMXHEP; i++){ + + hep.isthep[i]=0; + hep.idhep[i]=0; + + for(int j=0; j<2; j++){ + hep.jmohep[i][j]=0; + hep.jdahep[i][j]=0; + } + + for(int j=0; j<5; j++) + hep.phep[i][j]=0; + + for(int j=0; j<4; j++) + hep.vhep[i][j]=0; + + ph_phoqed_.qedrad[i]=0; + + }**/ +} + +void PH_HEPEVT_Interface::add_particle(int i,PhotosParticle * particle, + int first_mother, int last_mother, + int first_daughter, int last_daughter){ + + if(i>0) + i--; //account for fortran indicies begining at 1 + else + Log::Warning()<<"Index given to PH_HEPEVT_Interface::add_particle " + <<"is too low (it must be > 0)."<getStatus(); + hep.idhep[i]=particle->getPdgID(); + + hep.jmohep[i][0]=first_mother; + hep.jmohep[i][1]=last_mother; + + hep.jdahep[i][0]=first_daughter; + hep.jdahep[i][1]=last_daughter; + + hep.phep[i][0]=particle->getPx(); + hep.phep[i][1]=particle->getPy(); + hep.phep[i][2]=particle->getPz(); + hep.phep[i][3]=particle->getE(); + + // if massFrom4Vector=true (default) - get sqrt(e^2-p^2) + // otherwise - get mass from event record + if(!Photos::massFrom4Vector) hep.phep[i][4]=particle->getMass(); + else hep.phep[i][4]=particle->getVirtuality(); + + int pdgid = abs(particle->getPdgID()); + + // if 'forceMass' for this PDGID was used - overwrite mass + if(Photos::forceMassList) + { + for(unsigned int j=0;jsize();j++) + { + if(pdgid == abs(Photos::forceMassList->at(j)->first)) + { + double mass = Photos::forceMassList->at(j)->second; + + // when 'forceMass' is used the mass provided is larger than 0.0 + // when 'forceMassFromEventRecord' is used mass is -1.0 + // in this case - get mass from event record + if(mass<0.0) mass = particle->getMass(); + hep.phep[i][4] = mass; + } + } + } + + hep.vhep[i][0]=0; + hep.vhep[i][1]=0; + hep.vhep[i][2]=0; + hep.vhep[i][3]=0; + + hep.qedrad[i]=1; + +} + +int PH_HEPEVT_Interface::set(PhotosBranch *branch) +{ + PH_HEPEVT_Interface::clear(); + int idx=1; + + //get mothers + vector mothers = branch->getMothers(); + int nmothers=mothers.size(); + + //check if mid-particle exist + decay_idx=0; + PhotosParticle *decay_particle = branch->getDecayingParticle(); + if(decay_particle) decay_idx=nmothers+1; + + //get daughters + vector daughters = branch->getDaughters(); + int ndaughters=daughters.size(); + + for(int i=0;i0); + + std::vector photon_list; // list of added photons + // which need kinematical treatment + // in special case + + // we decipher daughters_start from last entry + // that is last daughter in ph_hepevt_ + // another option of this functionality may be + // hep.jdahep[ hep.jmohep[hep.nhep-1][0]-1][0]; + // Update daughters_start if there are two mothers + // NOTE: daughters_start is index for C++ arrays, while hep.jmohep + // contains indices for Fortran arrays. + if(hep.jmohep[hep.nhep-1][1]>0) + daughters_start = hep.jmohep[hep.nhep-1][1]; + + index = particle_count; + + // Add extra photons + for(;photons>0; photons--, index++){ + + if(hep.idhep[index]!=PhotosParticle::GAMMA) + Log::Fatal("PH_HEPEVT_Interface::get(): Extra particle added to the PH_HEPEVT common block in not a photon!",6); + + //create a new particle + PhotosParticle * new_photon; + new_photon = m_particle_list.at(0)->createNewParticle(hep.idhep[index], + hep.isthep[index], + hep.phep[index][4], + hep.phep[index][0], + hep.phep[index][1], + hep.phep[index][2], + hep.phep[index][3]); + + //add into the event record + //get mother particle of photon + PhotosParticle * mother = m_particle_list.at(hep.jmohep[index][0]-1); + mother->addDaughter(new_photon); + + //add to list of photons + photon_list.push_back(new_photon); + } + + // Before we update particles, we check for special cases + // At this step, particles are yet unmodified + // but photons are already in the event record + bool special=false; + PhotosParticle *p1 = NULL; + PhotosParticle *p2 = NULL; + + if( isPhotonCreated ) + { + std::vector daughters; + + // in the following we create list of daughters, + // later we calculate bool special which is true only if all + // daughters self-decay + // at peresent warning for mixed self-decay and not self decay + // daughters is not printed. + + for(int i=daughters_start;igetStatus()==1) + { + special = false; + break; + } + + // NOTE: We can use 'getDaughters' here, because vertices + // of daughters are not being modified by Photos right now + // (so there will be no caching) + std::vector daughters2 = daughters[i]->getDaughters(); + + if(daughters2.size()!=1 || + daughters2[0]->getPdgID() != daughters[i]->getPdgID() ) + { + special = false; + break; + } + } + + if( special ) + { + double px1=0.0, py1=0.0, pz1=0.0, e1=0.0; + double px2=0.0, py2=0.0, pz2=0.0, e2=0.0; + + // get sum of 4-momenta of unmodified particles + for(unsigned int i=0;igetPdgID()==22) continue; + + px1+=daughters[i]->getPx(); + py1+=daughters[i]->getPy(); + pz1+=daughters[i]->getPz(); + e1 +=daughters[i]->getE(); + } + + // get sum of 4-momenta of particles in self-decay vertices + for(unsigned int i=0;igetPdgID()==22) continue; + + // since 'allDaughtersSelfDecay()' is true + // each of these particles has exactly one daughter + px2 += daughters[i]->getDaughters().at(0)->getPx(); + py2 += daughters[i]->getDaughters().at(0)->getPy(); + pz2 += daughters[i]->getDaughters().at(0)->getPz(); + e2 += daughters[i]->getDaughters().at(0)->getE(); + } + + //cout<<"ORIG: "<createNewParticle(0,-1,0.0,px1,py1,pz1,e1); + p2 = m_particle_list.at(0)->createNewParticle(0,-2,0.0,px2,py2,pz2,e2); + + // Finaly, boost photons to appropriate frame + for(unsigned int i=0;icreateNewParticle( 22, 1, + 0.0, + photon_list[i]->getPx(), + photon_list[i]->getPy(), + photon_list[i]->getPz(), + photon_list[i]->getE() ); + + boosted->boostToRestFrame(p1); + boosted->boostFromRestFrame(p2); + + photon_list[i]->createSelfDecayVertex(boosted); + + delete boosted; + } + + Log::Warning()<<"Hidden interaction, all daughters self decay." + <<"Potentially over simplified solution applied."<getPdgID()) + Log::Fatal("PH_HEPEVT_Interface::get(): Something is wrong with the PH_HEPEVT common block",5); + + // If photons were added - for each daughter create a history entry + if(isPhotonCreated && Photos::isCreateHistoryEntries) + { + particle->createHistoryEntry(); + } + + //check to see if this particle's 4-momentum has been modified + bool update=false; + + // don't update particle if difference lower than THRESHOLD * particle energy (default threshold = 10e-8) + double threshold = NO_BOOST_THRESHOLD*hep.phep[index][3]; + if( fabs(hep.phep[index][0]-particle->getPx()) > threshold || + fabs(hep.phep[index][1]-particle->getPy()) > threshold || + fabs(hep.phep[index][2]-particle->getPz()) > threshold || + fabs(hep.phep[index][3]-particle->getE()) > threshold ) update=true; + + if(update) + { + + //modify this particle's momentum and it's daughters momentum + //Steps 1., 2. and 3. must be executed in order. + + //1. boost the particles daughters into it's (old) rest frame + particle->boostDaughtersToRestFrame(particle); + + //2. change this particles 4 momentum + particle->setPx(hep.phep[index][0]); + particle->setPy(hep.phep[index][1]); + particle->setPz(hep.phep[index][2]); + particle->setE(hep.phep[index][3]); + + //3. boost the particles daughters back into the lab frame + particle->boostDaughtersFromRestFrame(particle); + + if(special && particle->getDaughters().size()>0){ + + // Algorithm for special case: + // a. get self-daughter of 'particle' + PhotosParticle *particled = particle->getDaughters().at(0); + + // b. boost 'particled' daughters to rest frame + particled->boostDaughtersToRestFrame(particled); + + // c. copy four momentum of 'particle' into four momentum of + // its self-daughter 'particled' + + particled->setPx( particle->getPx() ); + particled->setPy( particle->getPy() ); + particled->setPz( particle->getPz() ); + particled->setE ( particle->getE() ); + + // d. boost self daughter to rest-frame of + // boost self daughter from rest-frame of + + particled->boostToRestFrame(p1); + particled->boostFromRestFrame(p2); + + // e. boost the 'particled' daughters back into the lab frame + particled->boostDaughtersFromRestFrame(particled); + } + + } + } + + // cleanup + if(p1) delete p1; + if(p2) delete p2; +} + +void PH_HEPEVT_Interface::prepare() +{ + check_ME_channel(); +} + +void PH_HEPEVT_Interface::complete() +{ + +} + +void PH_HEPEVT_Interface::check_ME_channel() +{ + ME_channel=0; + +// Check mothers: + + if(decay_idx==2) return; // Only one mother present + if(hep.idhep[0]*hep.idhep[1]>0) return; // Mothers have same sign + + Log::Debug(900)<<"ME_channel: Mothers PDG: "<6 && mother1<11) || mother1>16 ) return; + if( mother2<1 || (mother2>6 && mother2<11) || mother2>16 ) return; + +//Check daughters + + // Z: check for pairs 11 -11 ; 13 -13 ; 15 -15 + // ------------------------------------------- + int firstPDG =0; + int secondPDG=0; + for(int i=firstDaughter; i0) secondPDG=0; + break; + } + } + } + + if( ME_channel==0 && firstPDG!=0 && secondPDG!=0 && + firstPDG==-secondPDG ) ME_channel=1; + + // W: check for pairs 11 -12; -11 12; 13 -14; -13 14; 15 -16; -15 16 + // ----------------------------------------------------------------- + firstPDG =0; + secondPDG=0; + for(int i=firstDaughter; i=11 && pdg<=16) + { + if(firstPDG==0) firstPDG=hep.idhep[i]; + else + { + secondPDG=hep.idhep[i]; + // Just in case two pairs are genereted - verify that we have a pair with oposite signs + if(firstPDG*secondPDG>0) secondPDG=0; + break; + } + } + } + + firstPDG =abs(firstPDG); + secondPDG=abs(secondPDG); + + if( ME_channel==0 && firstPDG!=0 && secondPDG!=0 && + ( ( firstPDG==11 && secondPDG==12 ) || (firstPDG == 12 && secondPDG == 11) || + ( firstPDG==13 && secondPDG==14 ) || (firstPDG == 14 && secondPDG == 13) || + ( firstPDG==15 && secondPDG==16 ) || (firstPDG == 16 && secondPDG == 15) + ) + ) ME_channel=2; + + Log::Debug(901)<<"ME_channel: Found ME_channel: "<0 && decay_idx) + { + int pdg=hep.idhep[decay_idx-1]; + + if(ME_channel==1 && !(pdg==22 || pdg==23) ) ME_channel=0; //gamma/Z + if(ME_channel==2 && !(pdg==24 || pdg==-24)) ME_channel=0; //W+/W- + + if(ME_channel==0) + Log::Debug(901,false)<<" but set to 0: wrong intermediate particle: "< +#include "PhotosBranch.h" +#include "PhotosParticle.h" +#include "f_Init.h" + +namespace Photospp +{ + // const static int NMXHEP = 10000; at present NMXHEP is defined in f_Init.h +const static double NO_BOOST_THRESHOLD=1.0e-8; + +class PH_HEPEVT_Interface +{ +public: + /** Convert PhotosBranch to HEPEVT */ + static int set(PhotosBranch* branch); + + /** Update event record with data from HEPEVT */ + static void get(); + + /** Prepare particles for processing */ + static void prepare(); + + /** Check channel for complete matrix element calculation */ + static void check_ME_channel(); + + /** Finalize processing */ + static void complete(); + + /** Clear HEPEVT */ + static void clear(); +public: + /** Index of decaying particle*/ + static int decay_idx; + /** Number of channel to be used - flag for fortran routines */ + static int ME_channel; +private: + /** Add single particle to HEPEVT */ + static void add_particle(int i, PhotosParticle * particle, + int first_mother, int last_mother, + int first_daughter, int last_daughter); + + /** List of particles added to HEPEVT */ + static std::vector m_particle_list; +}; + +} // namespace Photospp +#endif diff --git a/TEvtGen/Photos/Photos.cxx b/TEvtGen/Photos/Photos.cxx new file mode 100644 index 00000000000..a9659dffb25 --- /dev/null +++ b/TEvtGen/Photos/Photos.cxx @@ -0,0 +1,452 @@ +#include +#include +#include + +#include "PhotosRandom.h" +#include "PhotosEvent.h" +#include "Photos.h" +#include "Log.h" + + +using std::vector; +using std::cout; +using std::endl; +using std::ios_base; + +namespace Photospp +{ + +Photos Photos::_instance; + +vector* > *Photos::supBremList = 0; +vector* > *Photos::forceBremList = 0; +vector* > *Photos::forceMassList = 0; +vector *Photos::ignoreStatusCodeList = 0; +bool Photos::isSuppressed=false; +bool Photos::massFrom4Vector=true; +double Photos::momentum_conservation_threshold = 0.1; +bool Photos::meCorrectionWtForZ=false; +bool Photos::meCorrectionWtForW=false; +bool Photos::meCorrectionWtForScalar=false; +bool Photos::isCreateHistoryEntries=false; +int Photos::historyEntriesStatus = 3; +double (*Photos::randomDouble)() = PhotosRandom::randomReal; + +Photos::Photos() +{ + setAlphaQED (0.00729735039); + setInfraredCutOff (0.01); + setInterference (true); + setDoubleBrem (true); + setQuatroBrem (false); + setTopProcessRadiation(true); + setCorrectionWtForW (true); + + // setExponentiation(true) moved to initialize() due to communication + // problems with Fortran under MacOS. + phokey_.iexp = 1; +} + +void Photos::initialize() +{ +// Should return if already initialized? + +/******************************************************************************* + All the following parameter setters can be called after PHOINI. + Initialization of kinematic correction against rounding errors. + The set values will be used later if called with zero. + Default parameter is 1 (no correction) optionally 2, 3, 4 + In case of exponentiation new version 5 is needed in most cases. + Definition given here will be thus overwritten in such a case + below in routine PHOCIN +*******************************************************************************/ + if(!phokey_.iexp) initializeKinematicCorrections(1); + else setExponentiation(true); + +// Initialize status counter for warning messages + for(int i=0;i<10;i++) phosta_.status[i]=0; +// elementary security level, should remain 1 but we may want to have a method to change. + phosta_.ifstop=1; + + pholun_.phlun=6; // Logical output unit for printing error messages + +// Further initialization done automatically +// see places with - VARIANT A - VARIANT B - all over to switch between options + +#ifndef VARIANTB +//----------- SLOWER VARIANT A, but stable ------------------ +//--- it is limiting choice for small XPHCUT in fixed orer +//--- modes of operation + +// Best choice is if FINT=2**N where N+1 is maximal number +// of charged daughters +// see report on overweihted events + if(phokey_.interf) maxWtInterference(2.0); + else maxWtInterference(1.0); +#else + +//----------- FASTER VARIANT B ------------------ +//-- it is good for tests of fixed order and small XPHCUT +//-- but is less promising for more complex cases of interference +//-- sometimes fails because of that + + if(phokey_.interf) maxWtInterference(1.8); + else maxWtInterference(0.0); +#endif +//------------END VARIANTS A B ----------------------- + +//------------------------------------------------------------------------------ +// Print PHOTOS header +//------------------------------------------------------------------------------ + int coutPrec = cout.precision(6); + ios_base::fmtflags flags = cout.setf(ios_base::floatfield); + cout< gamma e+ e- ... + // Previously initialization in Fortran IPHEKL(i) routine and used in PHOCHK + // i=1 was emission allowed, i=2 was blocked 0 was when the option was used. + // now in IPHEKL_setPi0KLnoEmmision we have only 1 to allow emissions + // and 2 to block. + // Can be overriden by using 'Photos::IPHEKL_setPi0KLnoEmmision(0)' + // method several times use Photos::forceBremForDecay() and can be + // over-ruled in part. + + Photos::IPHEKL_setPi0KLnoEmission(2); // Blocks emission in pi0 and in Kl to gamma e+ e- if parameter is !1 (enables otherwise) + Photos::IPHQRK_setQarknoEmission (1,0);// Blocks emission from quarks if buf=1 (default); enables if buf=2 + // option 2 is not realistic and for tests only + +// Initialize Marsaglia and Zaman random number generator + PhotosRandom::initialize(); +} +void Photos::iniInfo() +{ +// prints infomation like Photos::initialize; may be called after reinitializations. + +/******************************************************************************* + Once parameter setters are called after PHOINI one may want to know and write + into output info including all reinitializations. +*******************************************************************************/ + + +//------------------------------------------------------------------------------ +// Print PHOTOS header again +//------------------------------------------------------------------------------ + int coutPrec = cout.precision(6); + ios_base::fmtflags flags = cout.setf(ios_base::floatfield); + cout< particles = p->getDecayTree(); + vector branches = PhotosBranch::createBranches(particles); + for(int i=0;i<(int)branches.size();i++) branches.at(i)->process(); +} + +void Photos::suppressBremForDecay(int count, int motherID, ... ) +{ + va_list arg; + va_start(arg, motherID); + vector *v = new vector(); + v->push_back(motherID); + for(int i = 0;ipush_back(va_arg(arg,int)); + } + va_end(arg); + v->push_back(0); + if(!supBremList) supBremList = new vector< vector* >(); + supBremList->push_back(v); +} + +void Photos::suppressBremForBranch(int count, int motherID, ... ) +{ + va_list arg; + va_start(arg, motherID); + vector *v = new vector(); + v->push_back(motherID); + for(int i = 0;ipush_back(va_arg(arg,int)); + } + va_end(arg); + v->push_back(1); + if(!supBremList) supBremList = new vector< vector* >(); + supBremList->push_back(v); +} + +void Photos::forceBremForDecay(int count, int motherID, ... ) +{ + va_list arg; + va_start(arg, motherID); + vector *v = new vector(); + v->push_back(motherID); + for(int i = 0;ipush_back(va_arg(arg,int)); + } + va_end(arg); + v->push_back(0); + if(!forceBremList) forceBremList = new vector< vector* >(); + forceBremList->push_back(v); +} + +void Photos::forceBremForBranch(int count, int motherID, ... ) +{ + va_list arg; + va_start(arg, motherID); + vector *v = new vector(); + v->push_back(motherID); + for(int i = 0;ipush_back(va_arg(arg,int)); + } + va_end(arg); + v->push_back(1); + if(!forceBremList) forceBremList = new vector< vector* >(); + forceBremList->push_back(v); +} + + // Previously this functionality was encoded in FORTRAN routine + // PHOCHK which was having some other functionality as well +void Photos::IPHEKL_setPi0KLnoEmission(int m) +{ + if(m==1) + { + cout << "MODOP=1 -- enables emission in pi0 to gamma e+e- : TEST " << endl ; + cout << "MODOP=1 -- enables emission in Kl to gamma e+e- : TEST " << endl ; + Photos::forceBremForDecay(0,111); + Photos::forceBremForDecay(3, 130,22,11,-11); + Photos::forceBremForDecay(3,-130,22,11,-11); + } + else if(m!=1) + { + cout << "MODOP=2 -- blocks emission in Kl to gamma e+e-: DEFAULT" << endl ; + cout << "MODOP=2 -- blocks emission in pi0 to gamma e+e-: DEFAULT" << endl ; + Photos::suppressBremForDecay(0,111); + Photos::suppressBremForDecay(3, 130,22,11,-11); + Photos::suppressBremForDecay(3,-130,22,11,-11); + } +} + + // Previously this functionality was encoded in FORTRAN routine + // PHOCHK which was having some other functionality as well +bool Photos::IPHQRK_setQarknoEmission(int MODCOR, int PDGID) +{ + static int IPHQRK_MODOP=-1; + if(IPHQRK_MODOP==-1 && MODCOR==0){ + cout << "stop from IPHQRK_setQarknoEmission lack of initialization" << endl ; + exit(0); + } + else if (MODCOR != 0){ + IPHQRK_MODOP = MODCOR; + if(MODCOR ==1) cout << " IPHQRK_setQarknoEmission MODOP=1 -- blocks emission from light quarks: DEFAULT" << endl ; + if(MODCOR !=1) cout << " IPHQRK_setQarknoEmission MODOP=2 -- emission from light quarks allowed: TEST " << endl ; + } + if(IPHQRK_MODOP!=1) return true; + + return PDGID>9; +} + +void Photos::createHistoryEntries(bool flag, int status) +{ + if(status<3) + { + Log::Warning()<<"Photos::createHistoryEntries: status must be >=3"<=3"<(); + + // Do not add duplicate entries to the list + for(unsigned int i=0;isize();i++) + if( status==ignoreStatusCodeList->at(i) ) return; + + ignoreStatusCodeList->push_back(status); +} + +void Photos::deIgnoreParticlesOfStatus(int status) +{ + if(!ignoreStatusCodeList) return; + + for(unsigned int i=0;isize();i++) + { + if( status==ignoreStatusCodeList->at(i) ) + { + ignoreStatusCodeList->erase(ignoreStatusCodeList->begin()+i); + return; + } + } +} + +bool Photos::isStatusCodeIgnored(int status) +{ + if(!ignoreStatusCodeList) return false; + + for(unsigned int i=0;isize();i++) + if( status==ignoreStatusCodeList->at(i) ) return true; + + return false; +} + +void Photos::setRandomGenerator( double (*gen)() ) +{ + if(gen==NULL) randomDouble = PhotosRandom::randomReal; + else randomDouble = gen; +} + +void Photos::setExponentiation(bool expo) +{ + phokey_.iexp = (int) expo; + if(expo) + { + setDoubleBrem(false); + setQuatroBrem(false); + setInfraredCutOff(0.0000001); + initializeKinematicCorrections(5); + phokey_.expeps=0.0001; + } +} + +void Photos::setMeCorrectionWtForW(bool corr) +{ + meCorrectionWtForW=corr; +} + +void Photos::setMeCorrectionWtForZ(bool corr) +{ + meCorrectionWtForZ=corr; +} +void Photos::setMeCorrectionWtForScalar(bool corr) +{ + meCorrectionWtForScalar=corr; +} + +void Photos::setStopAtCriticalError(bool stop) +{ + phosta_.ifstop=(int)stop; + if(!stop) + { + Log::Info()<<"PHOTOS production mode. Elementary test of data flow from event record disabled. "<* >(); + forceMassList->push_back( new pair(pdgid, -1.0) ); +} + +void Photos::forceMass(int pdgid, double mass) +{ + if(mass<0.0) + { + Log::Warning()<<"Photos::forceMass: Mass must be > 0.0"<* >(); + forceMassList->push_back( new pair(pdgid, mass) ); +} + +} // namespace Photospp diff --git a/TEvtGen/Photos/Photos.h b/TEvtGen/Photos/Photos.h new file mode 100644 index 00000000000..cf97ea8703a --- /dev/null +++ b/TEvtGen/Photos/Photos.h @@ -0,0 +1,217 @@ +#ifndef _Photos_h_included_ +#define _Photos_h_included_ + +/** + * @class Photos + * + * @brief Controls the configuration and initialization of Photos. + * + * This is the main configuration class for Photos C++ Interface. + * It is also used for invoking methods for processing single particle or branch. + * + * @author Nadia Davidson + * @date 16th June 2008 + * + */ +#include +#include +#include "PhotosParticle.h" +#include "PhotosRandom.h" +#include "f_Init.h" +// WARNING: VARIANT B of phase space generation was not tested in C++ for all +// options of the program initialization.. +//#define VARIANTB true +using std::vector; +using std::pair; + +namespace Photospp +{ + +class PhotosParticle; + +class Photos +{ +public: + static const int VER_MAJOR=3, VER_MINOR=54; + static const int DAT_DAY =2, DAT_MONTH=12,DAT_YEAR=13; +public: + + /** Initalize Photos with the parameters previously set via the + setter methods */ + static void initialize(); + + /** Prints info on Photos initialization (reinitialization) + status */ + static void iniInfo(); + + /** Process decay of single particle */ + static void processParticle(PhotosParticle *p); + /** Process decay of whole decay branch starting from given particle */ + static void processBranch(PhotosParticle *p); + + /** Suppress processing of a single decay */ + static void suppressBremForDecay (int count, int motherID, ... ); + /** Suppress processing of whole decay branch */ + static void suppressBremForBranch(int count, int motherID, ... ); + + /** Suppress all processing. Only forced decays will be processed. */ + static void suppressAll() { isSuppressed=true; } + + /** Force processing of a single decay */ + static void forceBremForDecay (int count, int motherID, ... ); + + /** Force processing of a whole decay branch */ + static void forceBremForBranch(int count, int motherID, ... ); + + /** Block emissions id decays pi0 and K_L -> gamma e+ e- + 1 = no suppression + 2 (default) = suppressed emissions in K_L -> gamma e+ e- ... and all pi0 decays */ + static void IPHEKL_setPi0KLnoEmission(int m); + + static bool IPHQRK_setQarknoEmission(int MODCOR, int PDGID); + + /** If event record allows it, create history entries of particles + before Photos processing */ + static void createHistoryEntries(bool flag, int status); + + /** Ignore particles with given status code */ + static void ignoreParticlesOfStatus(int status); + + /** Remove 'status' from the list of ignored status codes */ + static void deIgnoreParticlesOfStatus(int status); + + /** Returns 'true' if status code is ignored */ + static bool isStatusCodeIgnored(int status); +public: + /** Substitute build-in generator with external one */ + static void setRandomGenerator( double (*gen)() ); + + /** Seed for RANMAR used by fortran part of the Photos */ + static void setSeed(int iseed1, int iseed2) { PhotosRandom::setSeed(iseed1,iseed2); } + + /** Maximum interference weight */ + static void maxWtInterference(double interference) { phokey_.fint=interference; } + + /** Minimal energy (in units of decaying particle mass) for photons to be explicitly generated */ + static void setInfraredCutOff(double cut_off) { phocop_.xphcut=cut_off; } + + /** Coupling constant alpha QED */ + static void setAlphaQED(double alpha) { phocop_.alpha=alpha; } + + /** Key for interference, matrix element weight */ + static void setInterference(bool interference) { phokey_.interf=(int)interference; } + + /** Set double bremsstrahlung generation */ + static void setDoubleBrem(bool doub) { phokey_.isec=(int)doub; } + + /** Set bremsstrahlung generation up to multiplicity of 4 */ + static void setQuatroBrem(bool quatroBrem) { phokey_.itre=(int)quatroBrem; } + + /* Key for partial effects of matrix element (in leptonic W decays) */ + static void setCorrectionWtForW(bool corr) { phokey_.ifw=(int)corr; } + + /** Set exponentiation mode */ + static void setExponentiation(bool expo); + + /** Switch for complete effects of matrix element (in scalar to 2 scalars decays) */ + static void setMeCorrectionWtForScalar(bool corr); + + /** Switch for complete effects of matrix element (in leptonic W decays) */ + static void setMeCorrectionWtForW(bool corr); + + /** Switch for complete effects of matrix element (in leptonic Z decays) */ + static void setMeCorrectionWtForZ(bool corr); + + /** Set photon emission in top pair production in quark (gluon) pair annihilation */ + static void setTopProcessRadiation(bool top) { phokey_.iftop=(int)top; } + + /* Set if PHOTOS should stop at critical error. True by default. + WARNING: These stops are an essential source of debugging information flow + from event record to PHOTOS algorithm. Never switch it off! The only exception: + you have checked your set-up including particular physics initialization + with the substantially large sample and you submit large production. */ + static void setStopAtCriticalError(bool stop); + + /** Initialize kinematic corrections */ + static void initializeKinematicCorrections(int flag) { PHCORK(flag); } + + /** Force mass value to be sqrt(e^2-p^2) for all particle momenta + taken from event record. May be important for numerical stability. + May lead to faulty results due to rounding errors for + hiper-relativistic electron, for example. */ + static void forceMassFrom4Vector(bool flag) { massFrom4Vector=flag; } + + /** When particles with PDGID and -PDGID will be processed by Photos, + their mass value will be taken from event record instead of being + calculated from 4-vector. + + This works only if 'forceMassFrom4Vector' is set to 'true' (default) + This routine may be executed several times with different PDGID values. */ + static void forceMassFromEventRecord(int pdgid); + + /** When particles with PDGID and -PDGID will be processed by Photos, + their mass value will be given by user instead of being calculated + from 4-vector. + + This works only if 'forceMassFrom4Vector' is set to 'true' (default) + This routine may be executed several times with different PDGID values. */ + static void forceMass(int pdgid, double mass); + + /** set energy momentum conservation threshold */ + static void setMomentumConservationThreshold(double threshold){momentum_conservation_threshold=threshold; } + +public: + /** Is in suppressed mode */ + static bool isSuppressed; + + /** Is mass from 4-vector or from event record */ + static bool massFrom4Vector; + + /** List of suppressed decays */ + static vector* > *supBremList; + + /** List of forced decays */ + static vector* > *forceBremList; + + /** List of forced mass values */ + static vector* > *forceMassList; + + /** List of ignored status codes */ + static vector *ignoreStatusCodeList; + + /** Threshold for momentum conservation check */ + static double momentum_conservation_threshold; + + /** Flag for complete effects of matrix element (in scalars decays) */ + static bool meCorrectionWtForScalar; + + /** Flag for complete effects of matrix element (in leptonic Z decays) */ + static bool meCorrectionWtForZ; + + /** Flag for complete effects of matrix element (in leptonic W decays) */ + static bool meCorrectionWtForW; + + /** Flag for creating historic entries */ + static bool isCreateHistoryEntries; + + /** Status of history entries */ + static int historyEntriesStatus; + + /** Pointer to random generator function */ + static double (*randomDouble)(); +public: + /** Get instance of Photos */ + Photos& getInstance() { return _instance; } +private: + /* Singleton: only one instance allowed. + Constructor sets default values of PHOTOS parameters */ + Photos(); + ~Photos() {} + Photos(const Photos&); + Photos& operator=(const Photos&); + static Photos _instance; +}; + +} // namespace Photospp +#endif + diff --git a/TEvtGen/Photos/PhotosBranch.cxx b/TEvtGen/Photos/PhotosBranch.cxx new file mode 100644 index 00000000000..8263b58dfac --- /dev/null +++ b/TEvtGen/Photos/PhotosBranch.cxx @@ -0,0 +1,267 @@ +#include +#include +#include "PH_HEPEVT_Interface.h" +#include "PhotosParticle.h" +#include "PhotosBranch.h" +#include "Photos.h" +#include "Log.h" +using std::vector; +using std::list; +using std::endl; + +namespace Photospp +{ + +PhotosBranch::PhotosBranch(PhotosParticle* p) +{ + daughters = p->getDaughters(); + + //Suppress if somehow got stable particle + if(daughters.size()==0) + { + Log::Debug(1)<<"Stable particle."<getMothers().size()==1) + { + // Regular case - one mother + Log::Debug(1)<<"Regular case."<findProductionMothers(); + } + else + { + // Advanced case - branch with multiple mothers - no mid-particle + Log::Debug(1)<<"Advanced case."<getMothers(); + } + + //-------------------------------------------------- + // Finalize suppression/forcing checks + // NOTE: if user forces decay of specific particle, + // this overrides any suppresion + //-------------------------------------------------- + + forcing = checkForcingLevel(); + if(!forcing) suppression = checkSuppressionLevel(); + else suppression = 0; + + // Even if forced or passed suppression check, we still have to check few things + if(!suppression) + { + // Check momentum conservation + suppression=!checkMomentumConservation(); + if(suppression) Log::Warning()<<"Branching ignored due to 4-momentum non conservation"<getBarcode() : ( (mothers.size()) ? mothers.at(0)->getBarcode() : -1) )< get = getParticles(); + for(int i=0;i<(int)get.size();i++) cout<<"ID: "<getPdgID()<<" ("<getBarcode()<<"), "; cout< PhotosBranch::getParticles() +{ + vector ret = mothers; + if(particle) ret.push_back(particle); + ret.insert(ret.end(),daughters.begin(),daughters.end()); + return ret; +} + +bool PhotosBranch::checkMomentumConservation() +{ + if(particle) return particle->checkMomentumConservation(); + if(mothers.size()>0) return mothers.at(0)->checkMomentumConservation(); + return true; +} + +vector PhotosBranch::createBranches(vector particles) +{ + Log::Debug(700)<<"PhotosBranch::createBranches - filtering started"< list(particles.begin(),particles.end()); + vector branches; + + // First - add all forced decays + if(Photos::forceBremList) + { + std::list::iterator it; + for(it=list.begin();it!=list.end();it++) + { + PhotosBranch *branch = new PhotosBranch(*it); + int forcing = branch->getForcingStatus(); + if(forcing) + { + Log::Debug(701)<<" Forced: "<<(*it)->getPdgID()<<" (barcode: "<<(*it)->getBarcode()<<") with forcing status= "<getDecayingParticle(); + if(!p) + { + if(branch->getMothers().size()>0) p = branch->getMothers().at(0); + else continue; + } + vector tree = p->getDecayTree(); + //Add branches for all particles from the list - max O(n*m) + std::list::iterator it2; + for(it2=list.begin();it2!=list.end();it2++) + { + for(int i=0;i<(int)tree.size();i++) + { + if(tree.at(i)->getBarcode()==(*it2)->getBarcode()) + { + PhotosBranch *b = new PhotosBranch(*it2); + branches.push_back(b); + // If we were to delete our next particle in line + if(it==it2) --it; + it2 = list.erase(it2); + --it2; + break; + } + } + } + } + } + else delete branch; + } + } + // Quit if we're suppressing everything + if(Photos::isSuppressed) return branches; + // Now - check if remaining decays are suppressed + while(!list.empty()) + { + PhotosParticle *particle = list.front(); + list.pop_front(); + if(!particle) continue; + + PhotosBranch *branch = new PhotosBranch(particle); + int suppression = branch->getSuppressionStatus(); + if(!suppression) branches.push_back(branch); + else + { + Log::Debug(702)<<" Suppressed: "<getPdgID()<<" (barcode: "<getBarcode()<<") with suppression status= "<getDecayingParticle(); + if(!p) + { + if(branch->getMothers().size()>0) p = branch->getMothers().at(0); + else continue; + } + vector tree = p->getDecayTree(); + //Remove all particles from the list - max O(n*m) + std::list::iterator it; + for(it=list.begin();it!=list.end();it++) + { + for(int i=0;i<(int)tree.size();i++) + { + if(tree.at(i)->getBarcode()==(*it)->getBarcode()) + { + it = list.erase(it); + --it; + break; + } + } + } + } + delete branch; + continue; + } + + //In case we don't have mid-particle erase rest of the mothers from list + if(!branch->getDecayingParticle()) + { + vector mothers = branch->getMothers(); + for(int i=0;i<(int)mothers.size();i++) + { + PhotosParticle *m = mothers.at(i); + if(m->getBarcode()==particle->getBarcode()) continue; + std::list::iterator it; + for(it=list.begin();it!=list.end();it++) + if(m->getBarcode()==(*it)->getBarcode()) + { + it = list.erase(it); + break; + } + } + } + } + return branches; +} + +int PhotosBranch::checkList(bool forceOrSuppress) +{ + vector< vector* > *list = (forceOrSuppress) ? Photos::forceBremList : Photos::supBremList; + if(!list) return 0; + + // Can't check without pdgid + int motherID; + if(particle) motherID = particle->getPdgID(); + else + { + if(mothers.size()==0) return 0; + motherID = mothers.at(0)->getPdgID(); + } + + // Create list of daughters + vector dID; + for(int j=0;j<(int)daughters.size();j++) dID.push_back(daughters[j]->getPdgID()); + + vector< vector *> &patternList = *list; + + // Check if the mother and list of daughters matches any of the declared patterns + for(int j=0; j<(int)patternList.size();j++) + { + // Skip patterns that don't have our mother + if(motherID!=(*patternList[j])[0]) continue; + + // Compare decay daughters with pattern - max O(n*m) + vector &pattern = *patternList[j]; + bool fullMatch=true; + for(int k = 1; k<(int)pattern.size()-1; k++) + { + bool oneMatch=false; + for(int l=0;l<(int)dID.size(); l++) + if(pattern[k]==dID[l]) { oneMatch=true; break; } + if(!oneMatch) { fullMatch=false; break; } + } + // Check if the matching pattern is set for consecutive suppression + /* + Currently minimal matching is used. + If e.g. 25 -> -15 is suppressed, then 25 -> 15,-15 and 25 -> 15,-15,22 etc. is suppressed too + For exact matching (then suppress 25 -> 15,-15 ; 25 -> 15,-15,22 etc. must be done separately) uncoment line ...: + */ + // if(pattern.size()<=2 || (fullMatch && dID.size()==pattern.size()-2) ) + // ...and comment out line: + if(pattern.size()<=2 || fullMatch) + return (pattern.back()==1) ? 2 : 1; + } + return 0; +} + +} // namespace Photospp diff --git a/TEvtGen/Photos/PhotosBranch.h b/TEvtGen/Photos/PhotosBranch.h new file mode 100644 index 00000000000..f467659b649 --- /dev/null +++ b/TEvtGen/Photos/PhotosBranch.h @@ -0,0 +1,79 @@ +#ifndef _PhotosBranch_h_included_ +#define _PhotosBranch_h_included_ + +/** + * @class PhotosBranch + * + * @brief Single branching point + * + * Contains information about daughters and mothers of a single branch. + * Each branch will be converted to HEPEVT and processed by photos. + * + * @author Tomasz Przedzinski + * @date 8 July 2010 + */ + +#include +#include "PhotosParticle.h" +using std::vector; + +namespace Photospp +{ + +class PhotosBranch +{ +public: + /** Create branch out of decaying particle */ + PhotosBranch(PhotosParticle* p); + + /** Return decaying particle. NULL if branching does not have mid-particle */ + PhotosParticle* getDecayingParticle() { return particle; } + + /** Get list of mothers */ + vector getMothers() { return mothers; } + + /** Get list of daughters */ + vector getDaughters() { return daughters; } + + /** Get list of all particles used by branch */ + vector getParticles(); + + /** Check if branch is suppressed */ + int getSuppressionStatus() { return suppression; } + + /** Check if branch is forced */ + int getForcingStatus() { return forcing; } + + /** Checks momentum conservation of decaying particle. + If it does not exist, checks momentum of first mother passed to photos */ + bool checkMomentumConservation(); + + /** Process single branch */ + void process(); + + /** Create branches from particles list */ + static vector createBranches(vector particles); +private: + /** Checks if branching is suppressed by PHOTOS. */ + int checkSuppressionLevel() { return checkList(false); } + + /** Checks if branching is forced by PHOTOS. */ + int checkForcingLevel() { return checkList(true); } + + /** Algorithm used for suppression/forcing check */ + int checkList(bool forceOrSuppress); +private: + /** State of branching suppression*/ + int suppression; + /** State of branching forcing*/ + int forcing; + /** Decaying particle */ + PhotosParticle *particle; + /** List of mothers */ + vector mothers; + /** List of daughters */ + vector daughters; +}; + +} // namespace Photospp +#endif diff --git a/TEvtGen/Photos/PhotosDebugRandom.cxx b/TEvtGen/Photos/PhotosDebugRandom.cxx new file mode 100644 index 00000000000..4f99fda0b66 --- /dev/null +++ b/TEvtGen/Photos/PhotosDebugRandom.cxx @@ -0,0 +1,67 @@ +#include +#include "PhotosDebugRandom.h" +#include "Log.h" +using std::ios_base; + +namespace Photospp +{ + +int PhotosDebugRandom::i97_saved = 0; +int PhotosDebugRandom::j97_saved = 0; +double PhotosDebugRandom::uran_saved[97] = { 0 }; +double PhotosDebugRandom::cran_saved = 0; + +void PhotosDebugRandom::saveState() +{ + i97_saved=i97; + j97_saved=j97; + cran_saved=cran; + + for(int i=0;i<97;i++) uran_saved[i]=uran[i]; +} + +void PhotosDebugRandom::restoreState() +{ + i97=i97_saved; + j97=j97_saved; + cran=cran_saved; + + for(int i=0;i<97;i++) uran[i]=uran_saved[i]; +} + +void PhotosDebugRandom::setState(int i, int j, double c, double list[97]) +{ + i97=i; + j97=j; + cran=c; + for(int i=0;i<97;i++) uran[i]=list[i]; +} + +void PhotosDebugRandom::setSaveState(int i, int j, double c, double list[97]) +{ + i97_saved=i; + j97_saved=j; + cran_saved=c; + for(int i=0;i<97;i++) uran_saved[i]=list[i]; +} + +void PhotosDebugRandom::print() +{ + int coutPrec = cout.precision(18); + ios_base::fmtflags flags = cout.setf(ios_base::floatfield); + + Log::RedirectOutput(Log::Info()); + + cout<<"double uran_state[97] = { "; + for(int i=0;i<96;i++) cout< +#include "PhotosParticle.h" +#include "PhotosBranch.h" +#include "PhotosEvent.h" +#include "Log.h" +using std::vector; + +namespace Photospp +{ + +PhotosEvent::~PhotosEvent() +{ + while(m_branch_points.size()!=0) + { + PhotosBranch *temp = m_branch_points.back(); + m_branch_points.pop_back(); + delete temp; + } +} + +void PhotosEvent::process() +{ + //print(); + vector particles = filterParticles( getParticleList() ); + m_branch_points = PhotosBranch::createBranches(particles); + + for(int i=0;i<(int)m_branch_points.size();i++) + m_branch_points.at(i)->process(); + //print(); +} + +vector PhotosEvent::filterParticles(vector particles) +{ + vector filtered; + for(int i=0;i<(int)particles.size();i++) + { + PhotosParticle *p = particles.at(i); + if(!p) continue; + + //check that the particle decays + if(p->getStatus()==PhotosParticle::STABLE) continue; + + //check for self decays + vector daughters = p->getDaughters(); + int j=0; + for(j=0;j<(int)daughters.size();j++) + if(daughters.at(j)->getPdgID()==p->getPdgID()) break; + if(j!=(int)daughters.size()) continue; + + Log::Debug(2)<<"Passed particle filter"< +#include "PhotosBranch.h" +#include "PhotosParticle.h" +using std::vector; + +namespace Photospp +{ + +class PhotosEvent +{ +public: + virtual ~PhotosEvent(); + + /** Get an unfiltered list of particles from the event record */ + virtual vector getParticleList() = 0; + + /** Print informations about the event */ + virtual void print() = 0; + + /** Process event */ + void process(); +private: + /** Filter suppressed and invalid particles. */ + vector filterParticles(vector particles); + + /** branch points which should be given to PHOTOS */ + vector m_branch_points; +}; + +} // namespace Photospp +#endif diff --git a/TEvtGen/Photos/PhotosHEPEVTEvent.cxx b/TEvtGen/Photos/PhotosHEPEVTEvent.cxx new file mode 100644 index 00000000000..c7556c7f07c --- /dev/null +++ b/TEvtGen/Photos/PhotosHEPEVTEvent.cxx @@ -0,0 +1,144 @@ +#include "PhotosHEPEVTEvent.h" +#include "Log.h" + +const static int fortranNMXHEP = 10000; + +/** Definition of the HEPEVT common block it can be adapted to user env of F77*/ +struct HEPEVT +{ + int nevhep; + int nhep; + int isthep[fortranNMXHEP]; + int idhep[fortranNMXHEP]; + int jmohep[fortranNMXHEP][2]; + int jdahep[fortranNMXHEP][2]; + double phep[fortranNMXHEP][5]; + double vhep[fortranNMXHEP][4]; + // NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO), + // JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO) + // int qedrad[NMXHEP] was an add up + // for HEPEVT in F77 times. Separate common PH_PHOQED + // also phoif_.chkif[NMXPHO] was add up for PHOEVT + // now it is pho.qedrad +} hepevt_; + +struct PHOQED +{ + int qedrad[fortranNMXHEP]; // Photos flag +} phoqed_; + +namespace Photospp +{ + +PhotosHEPEVTEvent::~PhotosHEPEVTEvent() +{ + for(unsigned int i=0;isetEvent(this); + + p->setBarcode(particle_list.size()); + particle_list.push_back(p); +} + +PhotosHEPEVTParticle *PhotosHEPEVTEvent::getParticle(int i) +{ + if( i<0 || i>=(int)particle_list.size() ) return NULL; + return particle_list[i]; +} + +void PhotosHEPEVTEvent::setParticle(int i, PhotosHEPEVTParticle *p) +{ + if( i<0 || i>=(int)particle_list.size() ) return; + particle_list[i] = p; +} + +int PhotosHEPEVTEvent::getParticleCount() +{ + return particle_list.size(); +} + +std::vector PhotosHEPEVTEvent::getParticleList() +{ + std::vector ret; + + for(unsigned int i=0;iprint(); +} + +void PhotosHEPEVTEvent::clear() +{ + for(unsigned int i=0;iaddParticle(p); + } +} + +void PhotosHEPEVTEvent::write_event_to_HEPEVT(PhotosHEPEVTEvent *evt) +// vertex info is needed, for photons it should be as of other sisters +// taken at read_event_from_HEPEVT +// need to be fixed later. + +{ + if(evt==NULL) return; + + hepevt_.nhep = evt->getParticleCount(); + + for(int i=0; igetParticle(i); + + hepevt_.idhep [i] =p->getPdgID(); + hepevt_.isthep[i] =p->getStatus(); + hepevt_.phep [i][0]=p->getPx(); + hepevt_.phep [i][1]=p->getPy(); + hepevt_.phep [i][2]=p->getPz(); + hepevt_.phep [i][3]=p->getE(); + hepevt_.phep [i][4]=p->getMass(); + hepevt_.jmohep[i][0]=p->getFirstMotherIndex() +1; + hepevt_.jmohep[i][1]=p->getSecondMotherIndex() +1; + hepevt_.jdahep[i][0]=p->getDaughterRangeStart()+1; + hepevt_.jdahep[i][1]=p->getDaughterRangeEnd() +1; + hepevt_.vhep [i][0]=0.0; + hepevt_.vhep [i][1]=0.0; + hepevt_.vhep [i][2]=0.0; + hepevt_.vhep [i][3]=0.0; + } +} + +} // namespace Photospp diff --git a/TEvtGen/Photos/PhotosHEPEVTEvent.h b/TEvtGen/Photos/PhotosHEPEVTEvent.h new file mode 100644 index 00000000000..1802c9da292 --- /dev/null +++ b/TEvtGen/Photos/PhotosHEPEVTEvent.h @@ -0,0 +1,74 @@ +#ifndef _PhotosHEPEVTEvent_h_included_ +#define _PhotosHEPEVTEvent_h_included_ + +/** + * @class PhotosHEPEVTParticle + * + * @brief Single particle of HEPEVT event record + * + * This class implements the virtual methods of + * PhotosEvent. In this way it provides an + * interface between the generic PhotosEvent class + * and information stored in HEPEVT event record. + * + * @author Tomasz Przedzinski + * @date 24 November 2011 + */ + +#include +#include "f_Init.h" +#include "PhotosEvent.h" +#include "PhotosParticle.h" +#include "PhotosHEPEVTParticle.h" + +namespace Photospp +{ + +class PhotosHEPEVTParticle; + +class PhotosHEPEVTEvent : public PhotosEvent { + + public: + + /** Default destructor */ + ~PhotosHEPEVTEvent(); + + /** Default constructor */ + PhotosHEPEVTEvent(); + + /** Add particle at the end of event record */ + void addParticle(PhotosHEPEVTParticle *p); + + /** Get particle at index 'i' */ + PhotosHEPEVTParticle *getParticle(int i); + + /** Set particle at index 'i' */ + void setParticle(int i, PhotosHEPEVTParticle *p); + + /** Get higher-most index of the particles in event (nhep) */ + int getParticleCount(); + + /** Get an unfiltered list of particles from the event record */ + std::vector getParticleList(); + + /** Print out list of particles in the event */ + void print(); + + /** Remove all particles from the event */ + void clear(); + + /** Fill PhotosHEPEVTEvent from HEPEVT common block */ + static void read_event_from_HEPEVT(PhotosHEPEVTEvent *evt); + + /** Write to HEPEVT common block content of PhotosHEPEVTEvent */ + static void write_event_to_HEPEVT(PhotosHEPEVTEvent *evt); + + private: + + /** List of all particles */ + std::vector particle_list; +}; + +} // namespace Photospp +#endif + diff --git a/TEvtGen/Photos/PhotosHEPEVTParticle.cxx b/TEvtGen/Photos/PhotosHEPEVTParticle.cxx new file mode 100644 index 00000000000..16273590bb1 --- /dev/null +++ b/TEvtGen/Photos/PhotosHEPEVTParticle.cxx @@ -0,0 +1,420 @@ +#include "PhotosHEPEVTParticle.h" +#include "Log.h" + +namespace Photospp +{ + +PhotosHEPEVTParticle::~PhotosHEPEVTParticle() +{ + // Cleanup particles that do not belong to event + for(unsigned int i=0;im_barcode<0) + delete cache[i]; +} + +PhotosHEPEVTParticle::PhotosHEPEVTParticle(int pdgid, int status, double px, double py, double pz, double e, double m, int ms, int me, int ds, int de){ + m_px = px; + m_py = py; + m_pz = pz; + m_e = e; + m_generated_mass = m; + + m_pdgid = pdgid; + m_status = status; + + m_first_mother = ms; + m_second_mother = me; + m_daughter_start = ds; + m_daughter_end = de; + + m_barcode = -1; + m_event = NULL; +} + +/** Add a new daughter to this particle */ +void PhotosHEPEVTParticle::addDaughter(PhotosParticle* daughter) +{ + if(!m_event) Log::Fatal("PhotosHEPEVTParticle::addDaughter - particle not in event record"); + + std::vector mothers = daughter->getMothers(); + + mothers.push_back( (PhotosParticle*)this ); + + daughter->setMothers(mothers); + + int bc = daughter->getBarcode(); + + if(m_daughter_end < 0) + { + m_daughter_start = bc; + m_daughter_end = bc; + } + // if it's in the middle of the event record + else if(m_daughter_end != bc-1) + { + PhotosHEPEVTParticle *newPart = m_event->getParticle(bc); + + // Move all particles one spot down the list, to make place for new particle + for(int i=bc-1;i>m_daughter_end;i--) + { + PhotosHEPEVTParticle *move = m_event->getParticle(i); + move->setBarcode(i+1); + m_event->setParticle(i+1,move); + } + + m_daughter_end++; + newPart->setBarcode(m_daughter_end); + m_event->setParticle(m_daughter_end,newPart); + + // Now: correct all pointers before new particle + for(int i=0;igetParticle(i); + int m = check->getDaughterRangeEnd(); + if(m!=-1 && m>m_daughter_end) + { + check->setDaughterRangeEnd(m+1); + check->setDaughterRangeStart(check->getDaughterRangeStart()+1); + } + } + } + else m_daughter_end = bc; +} + +void PhotosHEPEVTParticle::setMothers(vector mothers){ + + // If this particle has not yet been added to the event record + // then add it to the mothers' event record + if(m_barcode<0 && mothers.size()>0) + { + PhotosHEPEVTEvent *evt = ((PhotosHEPEVTParticle*)mothers[0])->m_event; + evt->addParticle(this); + } + + if(mothers.size()>2) Log::Fatal("PhotosHEPEVTParticle::setMothers: HEPEVT does not allow more than two mothers!"); + + if(mothers.size()>0) m_first_mother = mothers[0]->getBarcode(); + if(mothers.size()>1) m_second_mother = mothers[1]->getBarcode(); +} + +void PhotosHEPEVTParticle::setDaughters(vector daughters){ + + // This particle must be inside some event record to be able to add daughters + if(m_event==NULL) Log::Fatal("PhotosHEPEVTParticle::setDaughters: particle not inside event record."); + + int beg = 65535, end = -1; + + for(unsigned int i=0;igetBarcode(); + if(bc<0) Log::Fatal("PhotosHEPEVTParticle::setDaughters: all daughters has to be in event record first"); + if(bcend) end = bc; + } + if(end == -1) beg = -1; + + m_daughter_start = beg; + m_daughter_end = end; +} + +std::vector PhotosHEPEVTParticle::getMothers(){ + + std::vector mothers; + + PhotosParticle *p1 = NULL; + PhotosParticle *p2 = NULL; + + // 21.XI.2013: Some generators set same mother ID in both indices if there is only one mother + if(m_first_mother == m_second_mother) m_second_mother = -1; + + if(m_first_mother>=0) p1 = m_event->getParticle(m_first_mother); + if(m_second_mother>=0) p2 = m_event->getParticle(m_second_mother); + + if(p1) mothers.push_back(p1); + if(p2) mothers.push_back(p2); + + return mothers; +} + +// WARNING: this method also corrects daughter indices +// if such were not defined +std::vector PhotosHEPEVTParticle::getDaughters(){ + + std::vector daughters; + + if(!m_event) return daughters; + + // Check if m_daughter_start and m_daughter_end are set + // If not - try to get list of daughters from event + if(m_daughter_end<0) + { + int min_d=65535, max_d=-1; + for(int i=0;igetParticleCount();i++) + { + if(m_event->getParticle(i)->isDaughterOf(this)) + { + if(imax_d) max_d = i; + } + } + if(max_d>=0) + { + m_daughter_start = min_d; + m_daughter_end = max_d; + m_status = 2; + } + } + + // If m_daughter_end is still not set - there are no daughters + // Otherwsie - get daughters + if(m_daughter_end>=0) + { + for(int i=m_daughter_start;i<=m_daughter_end;i++) + { + PhotosParticle *p = m_event->getParticle(i); + if(p==NULL) + { + Log::Warning()<<"PhotosHEPEVTParticle::getDaughters(): No particle with index "< PhotosHEPEVTParticle::getAllDecayProducts() +{ + std::vector list; + + if(!hasDaughters()) // if this particle has no daughters + return list; + + std::vector daughters = getDaughters(); + + // copy daughters to list of all decay products + list.insert(list.end(),daughters.begin(),daughters.end()); + + // Now, get all daughters recursively, without duplicates. + // That is, for each daughter: + // 1) get list of her daughters + // 2) for each particle on this list: + // a) check if it is already on the list + // b) if it's not, add her to the end of the list + for(unsigned int i=0;i daughters2 = list[i]->getDaughters(); + + if(!list[i]->hasDaughters()) continue; + for(unsigned int j=0;jgetBarcode() == list[k]->getBarcode() ) + { + add=false; + break; + } + + if(add) list.push_back(daughters2[j]); + } + } + + return list; +} + +bool PhotosHEPEVTParticle::checkMomentumConservation(){ + + if(!m_event) return true; + if(m_daughter_end < 0) return true; + + PhotosHEPEVTParticle *buf = m_event->getParticle(m_daughter_start); + + int first_mother_idx = buf->getFirstMotherIndex(); + int second_mother_idx = buf->getSecondMotherIndex(); + + double px =0.0, py =0.0, pz =0.0, e =0.0; + double px2=0.0, py2=0.0, pz2=0.0, e2=0.0; + + for(int i=m_daughter_start;i<=m_daughter_end;i++) + { + buf = m_event->getParticle(i); + px += buf->getPx(); + py += buf->getPy(); + pz += buf->getPz(); + e += buf->getE (); + } + + if(first_mother_idx>=0) + { + buf = m_event->getParticle(first_mother_idx); + px2 += buf->getPx(); + py2 += buf->getPy(); + pz2 += buf->getPz(); + e2 += buf->getE(); + } + + if(second_mother_idx>=0) + { + buf = m_event->getParticle(second_mother_idx); + px2 += buf->getPx(); + py2 += buf->getPy(); + pz2 += buf->getPz(); + e2 += buf->getE(); + } + // 3-momentum // test HepMC style + double dp = sqrt( (px-px2)*(px-px2) + (py-py2)*(py-py2) + (pz-pz2)*(pz-pz2) ); + // virtuality test as well. + double m1 = sqrt( fabs( e*e - px*px - py*py - pz*pz ) ); + double m2 = sqrt( fabs( e2*e2 - px2*px2 - py2*py2 - pz2*pz2 ) ); + + if( fabs(m1-m2) > 0.0001 || dp > 0.0001*(e+e2)) + { + Log::RedirectOutput( Log::Warning()<<"Momentum not conserved in vertex: " ); + if(first_mother_idx >=0) m_event->getParticle(first_mother_idx) ->print(); + if(second_mother_idx>=0) m_event->getParticle(second_mother_idx)->print(); + cout<<" TO: "<getParticle(i)->print(); + Log::RevertOutput(); + return false; + } + + return true; +} + +PhotosHEPEVTParticle * PhotosHEPEVTParticle::createNewParticle( + int pdg_id, int status, double mass, + double px, double py, double pz, double e){ + + // New particles created using this method are added to cache + // They will be deleted when this particle will be deleted + + cache.push_back(new PhotosHEPEVTParticle(pdg_id,status,px,py,pz,e,mass,-1,-1,-1,-1)); + return cache.back(); +} + +void PhotosHEPEVTParticle::createHistoryEntry() +{ + Log::Warning()<<"PhotosParticle::createHistoryEntry() not implemented for HEPEVT."<getBarcode(); + if(bc==m_first_mother || bc==m_second_mother) return true; + + return false; +} + +bool PhotosHEPEVTParticle::isMotherOf (PhotosHEPEVTParticle *p) +{ + int bc = p->getBarcode(); + if(bc>=m_daughter_start && bc<=m_daughter_end) return true; + + return false; +} + +void PhotosHEPEVTParticle::print(){ + char buf[256]; + sprintf(buf,"P: (%2i) %6i %2i | %11.4e %11.4e %11.4e %11.4e | %11.4e | M: %2i %2i | D: %2i %2i\n", + m_barcode, m_pdgid, m_status, m_px, m_py, m_pz, m_e, m_generated_mass, + m_first_mother, m_second_mother, m_daughter_start, m_daughter_end); + + cout< +#include +#include +#include + +#include "Photos.h" +#include "PhotosParticle.h" +#include "PhotosHEPEVTEvent.h" + +namespace Photospp +{ + +class PhotosHEPEVTEvent; + +class PhotosHEPEVTParticle: public PhotosParticle { + + public: + /** Default destructor */ + ~PhotosHEPEVTParticle(); + + /** Default constructor */ + PhotosHEPEVTParticle(int pdgid, int status, double px, double py, double pz, double e, double m, int ms, int me, int ds, int de); + + /** Add a new daughter to this particle */ + void addDaughter(PhotosParticle* daughter); + + /** Set the mothers of this particle via a vector of PhotosParticle*/ + void setMothers(std::vector mothers); + + /** Set the daughters of this particle via a vector of PhotosParticle*/ + void setDaughters(std::vector daughters); + + /** Returns the mothers of this particle via a vector of PhotosParticle */ + std::vector getMothers(); + + /** Returns the daughters of this particle via a vector of PhotosParticle */ + std::vector getDaughters(); + + /** Returns all particles in the decay tree of this particle + via a vector of PhotosParticle */ + std::vector getAllDecayProducts(); + + /** Check that the 4 momentum in conserved in the decay of this particle */ + bool checkMomentumConservation(); + + /** Creates a new particle of type PhotosHEPEVTParticle, with the given + properties. The new particle bares no relations to this + particle, but `this particle' provides only a way of creating an instance of + this derived class. eg. createNewParticle() is used inside + filhep_() so that a PhotosHEPEVTParticle can be created without + the method having explicit knowledge of the PhotosHEPEVTParticle + class */ + PhotosHEPEVTParticle * createNewParticle(int pdg_id, int status, double mass, + double px, double py, + double pz, double e); + + /** Creating history entries not implemented in HEPEVT */ + void createHistoryEntry(); + + /** Create a self-decay vertex for this particle + with 'out' being the outgoing particle in new vertex */ + void createSelfDecayVertex(PhotosParticle *out); + + /** Check if particle 'p' is daughter of this particle */ + bool isDaughterOf(PhotosHEPEVTParticle *p); + + /** Check if particle 'p' is mother of this particle */ + bool isMotherOf (PhotosHEPEVTParticle *p); + + /** Print information on this particle into standard output */ + void print(); + + /** Set the PDG ID code of this particle */ + void setPdgID(int pdg_id); + + /** Set the status of this particle */ + void setStatus(int statu); + + /** Set the mass of this particle */ + void setMass(double mass); + + /** Get the PDG ID code of this particle */ + int getPdgID(); + + /** Get the status of this particle */ + int getStatus(); + + /** Get the mass stored (i.e. not calculated from four vector) at generation step */ + double getMass(); + + /** Returns the px component of the four vector*/ + double getPx(); + + /** Returns the py component of the four vector */ + double getPy(); + + /** Returns the pz component of the four vector */ + double getPz(); + + /** Returns the energy component of the four vector */ + double getE(); + + /** Set the px component of the four vector */ + void setPx( double px ); + + /** Set the px component of the four vector */ + void setPy( double py ); + + /** Set the pz component of the four vector */ + void setPz( double pz ); + + /** Set the energy component of the four vector */ + void setE( double e ); + + /** Get the barcode (position in list) of this particle */ + int getBarcode(); + + /** Set barcode (position in list) of this particle */ + void setBarcode(int barcode); + + /** Set event of this particle */ + void setEvent(PhotosHEPEVTEvent *event); + + /** Get index of first mother */ + int getFirstMotherIndex(); + + /** Get index of second mother */ + int getSecondMotherIndex(); + + /** Get index of first daughter */ + int getDaughterRangeStart(); + + /** Get index of last daughter */ + int getDaughterRangeEnd(); + +private: + + /** Set index of first daughter */ + void setDaughterRangeStart(int i) { m_daughter_start=i; } + + /** Set index of last daughter */ + void setDaughterRangeEnd(int i) { m_daughter_end =i; } + + /** Event from which this particle is taken */ + PhotosHEPEVTEvent *m_event; + + /** Position in the event record */ + int m_barcode; + + /** Indexes of mothers (-1 if do not have mothers) */ + int m_first_mother, m_second_mother; + + /** Range of indexes of daughters (-1 if do not have daughters) */ + int m_daughter_start, m_daughter_end; + + /** PDG ID */ + int m_pdgid; + + /** Status (stable, decayed) */ + int m_status; + + /** Momentum */ + double m_px, m_py, m_pz, m_e; + + /** Mass saved at generation step */ + double m_generated_mass; + + /** List of created particles - if they are not in the event, they + will be deleted when no longer needed */ + vector cache; +}; + +} // namespace Photospp +#endif + diff --git a/TEvtGen/Photos/PhotosHepMCEvent.cxx b/TEvtGen/Photos/PhotosHepMCEvent.cxx new file mode 100644 index 00000000000..b89bb5194d4 --- /dev/null +++ b/TEvtGen/Photos/PhotosHepMCEvent.cxx @@ -0,0 +1,47 @@ +#include +#include "PhotosHepMCParticle.h" +#include "PhotosHepMCEvent.h" +#include "Log.h" +using namespace std; + +namespace Photospp +{ + +PhotosHepMCEvent::PhotosHepMCEvent(HepMC::GenEvent * event) +{ + m_event=event; + HepMC::GenEvent::particle_const_iterator part_itr = m_event->particles_begin(); + for( ; part_itr!=m_event->particles_end(); part_itr++) + { + PhotosParticle *particle = new PhotosHepMCParticle(*part_itr); + particles.push_back(particle); + } +} + +PhotosHepMCEvent::~PhotosHepMCEvent() +{ + while(particles.size()) + { + PhotosParticle *p = particles.back(); + particles.pop_back(); + if(p) delete p; + } +} + +HepMC::GenEvent * PhotosHepMCEvent::getEvent() +{ + return m_event; +} + +void PhotosHepMCEvent::print() +{ + if(!m_event) return; + m_event->print(); +} + +vector PhotosHepMCEvent::getParticleList() +{ + return particles; +} + +} // namespace Photospp diff --git a/TEvtGen/Photos/PhotosHepMCEvent.h b/TEvtGen/Photos/PhotosHepMCEvent.h new file mode 100644 index 00000000000..a74ad061971 --- /dev/null +++ b/TEvtGen/Photos/PhotosHepMCEvent.h @@ -0,0 +1,53 @@ +#ifndef _PhotosHepMCEvent_h_included_ +#define _PhotosHepMCEvent_h_included_ + +/** + * @class PhotosHepMCEvent + * + * @brief Interface to HepMC::GenEvent objects + * + * This class implements the virtual methods of + * PhotosEvent. In this way it provides an + * interface between the generic PhotosEvent class + * and a HepMC::GenEvent object. + * + * @author Nadia Davidson + * @date 17 June 2008 + * + * This code is licensed under GNU General Public Licence. + * For more informations, see: http://www.gnu.org/licenses/ + */ + +#include +#include "HepMC/GenEvent.h" +#include "PhotosEvent.h" +#include "PhotosParticle.h" + +namespace Photospp +{ + +class PhotosHepMCEvent : public PhotosEvent +{ +public: + ~PhotosHepMCEvent(); + + /** Constructor which keeps a pointer to the HepMC::GenEvent*/ + PhotosHepMCEvent(HepMC::GenEvent * event); + + /** Returns the HepMC::GenEvent */ + HepMC::GenEvent * getEvent(); + + /** Returns the list of particles */ + std::vector getParticleList(); + + /** Prints event summary */ + void print(); +private: + /** The event */ + HepMC::GenEvent * m_event; + /** Particle list */ + std::vector particles; +}; + +} // namespace Photospp +#endif diff --git a/TEvtGen/Photos/PhotosHepMCParticle.cxx b/TEvtGen/Photos/PhotosHepMCParticle.cxx new file mode 100644 index 00000000000..aceb29c0843 --- /dev/null +++ b/TEvtGen/Photos/PhotosHepMCParticle.cxx @@ -0,0 +1,409 @@ +#include "HepMC/GenEvent.h" +#include "PhotosHepMCParticle.h" +#include "Log.h" +#include "Photos.h" + +namespace Photospp +{ + +PhotosHepMCParticle::PhotosHepMCParticle(){ + m_particle = new HepMC::GenParticle(); +} + +PhotosHepMCParticle::PhotosHepMCParticle(int pdg_id, int status, double mass){ + m_particle = new HepMC::GenParticle(); + m_particle->set_pdg_id(pdg_id); + m_particle->set_status(status); + m_particle->set_generated_mass(mass); +} + +PhotosHepMCParticle::PhotosHepMCParticle(HepMC::GenParticle * particle){ + m_particle = particle; +} + +PhotosHepMCParticle::~PhotosHepMCParticle(){ + clear(m_mothers); + clear(m_daughters); + // clear(m_created_particles); + + // Delete HepMC particle if it's not attached to any vertex + if( m_particle && + !m_particle->production_vertex() && + !m_particle->end_vertex()) delete m_particle; +} + + +//delete the TauolaHepMCParticle objects +void PhotosHepMCParticle::clear(std::vector v){ + while(v.size()!=0){ + PhotosParticle * temp = v.back(); + v.pop_back(); + delete temp; + } +} + +HepMC::GenParticle * PhotosHepMCParticle::getHepMC(){ + return m_particle; +} + +void PhotosHepMCParticle::setMothers(vector mothers){ + + /******** Deal with mothers ***********/ + + clear(m_mothers); + + //If there are mothers + if(mothers.size()>0){ + + HepMC::GenParticle * part; + part=dynamic_cast(mothers.at(0))->getHepMC(); + + //Use end vertex of first mother as production vertex for particle + HepMC::GenVertex * production_vertex = part->end_vertex(); + HepMC::GenVertex * orig_production_vertex = production_vertex; + + if(!production_vertex){ //if it does not exist create it + production_vertex = new HepMC::GenVertex(); + part->parent_event()->add_vertex(production_vertex); + } + + //Loop over all mothers to check that the end points to the right place + vector::iterator mother_itr; + for(mother_itr = mothers.begin(); mother_itr != mothers.end(); + mother_itr++){ + + HepMC::GenParticle * moth; + moth = dynamic_cast(*mother_itr)->getHepMC(); + + if(moth->end_vertex()!=orig_production_vertex) + Log::Fatal("PhotosHepMCParticle::setMothers(): Mother production_vertices point to difference places. Can not override. Please delete vertices first.",1); + else + production_vertex->add_particle_in(moth); + + //update status info + if(moth->status()==PhotosParticle::STABLE) + moth->set_status(PhotosParticle::DECAYED); + } + production_vertex->add_particle_out(m_particle); + } +} + + + +void PhotosHepMCParticle::addDaughter(PhotosParticle* daughter){ + + //add to this classes internal list as well. + m_daughters.push_back(daughter); + + //this assumes there is already an end vertex for the particle + + if(!m_particle->end_vertex()) + Log::Fatal("PhotosHepMCParticle::addDaughter(): This method assumes an end_vertex exists. Maybe you really want to use setDaughters.",2); + + HepMC::GenParticle * daugh = (dynamic_cast(daughter))->getHepMC(); + m_particle->end_vertex()->add_particle_out(daugh); + +} + +void PhotosHepMCParticle::setDaughters(vector daughters){ + + if(!m_particle->parent_event()) + Log::Fatal("PhotosHepMCParticle::setDaughters(): New particle needs the event set before it's daughters can be added",3); + + clear(m_daughters); + + //If there are daughters + if(daughters.size()>0){ + + //Use production vertex of first daughter as end vertex for particle + HepMC::GenParticle * first_daughter; + first_daughter = (dynamic_cast(daughters.at(0)))->getHepMC(); + + HepMC::GenVertex * end_vertex; + end_vertex=first_daughter->production_vertex(); + HepMC::GenVertex * orig_end_vertex = end_vertex; + + if(!end_vertex){ //if it does not exist create it + end_vertex = new HepMC::GenVertex(); + m_particle->parent_event()->add_vertex(end_vertex); + } + + //Loop over all daughters to check that the end points to the right place + vector::iterator daughter_itr; + for(daughter_itr = daughters.begin(); daughter_itr != daughters.end(); + daughter_itr++){ + + HepMC::GenParticle * daug; + daug = dynamic_cast(*daughter_itr)->getHepMC(); + + + if(daug->production_vertex()!=orig_end_vertex) + Log::Fatal("PhotosHepMCParticle::setDaughters(): Daughter production_vertices point to difference places. Can not override. Please delete vertices first.",4); + else + end_vertex->add_particle_out(daug); + } + end_vertex->add_particle_in(m_particle); + } + +} + +std::vector PhotosHepMCParticle::getMothers(){ + + if(m_mothers.size()==0&&m_particle->production_vertex()){ + + HepMC::GenVertex::particles_in_const_iterator pcle_itr; + pcle_itr=m_particle->production_vertex()->particles_in_const_begin(); + + HepMC::GenVertex::particles_in_const_iterator pcle_itr_end; + pcle_itr_end=m_particle->production_vertex()->particles_in_const_end(); + + for(;pcle_itr != pcle_itr_end; pcle_itr++){ + m_mothers.push_back(new PhotosHepMCParticle(*pcle_itr)); + } + } + return m_mothers; +} + +std::vector PhotosHepMCParticle::getDaughters(){ + + if(m_daughters.size()==0&&m_particle->end_vertex()){ + HepMC::GenVertex::particles_out_const_iterator pcle_itr; + pcle_itr=m_particle->end_vertex()->particles_out_const_begin(); + + HepMC::GenVertex::particles_out_const_iterator pcle_itr_end; + pcle_itr_end=m_particle->end_vertex()->particles_out_const_end(); + + for(;pcle_itr != pcle_itr_end; pcle_itr++){ + + // ommit particles if their status code is ignored by Photos + if( Photos::isStatusCodeIgnored( (*pcle_itr)->status() ) ) continue; + + m_daughters.push_back(new PhotosHepMCParticle(*pcle_itr)); + } + } + return m_daughters; + +} + +std::vector PhotosHepMCParticle::getAllDecayProducts(){ + + m_decay_products.clear(); + + if(!hasDaughters()) // if this particle has no daughters + return m_decay_products; + + std::vector daughters = getDaughters(); + + // copy daughters to list of all decay products + m_decay_products.insert(m_decay_products.end(),daughters.begin(),daughters.end()); + + // Now, get all daughters recursively, without duplicates. + // That is, for each daughter: + // 1) get list of her daughters + // 2) for each particle on this list: + // a) check if it is already on the list + // b) if it's not, add her to the end of the list + for(unsigned int i=0;i daughters2 = m_decay_products[i]->getDaughters(); + + if(!m_decay_products[i]->hasDaughters()) continue; + for(unsigned int j=0;jgetBarcode() == m_decay_products[k]->getBarcode() ) + { + add=false; + break; + } + + if(add) m_decay_products.push_back(daughters2[j]); + } + } + + return m_decay_products; +} + +bool PhotosHepMCParticle::checkMomentumConservation(){ + + if(!m_particle->end_vertex()) return true; + + // HepMC version of check_momentum_conservation + // Ommitting history entries (status == 3) + + double sumpx = 0, sumpy = 0, sumpz = 0, sume = 0; + for( HepMC::GenVertex::particles_in_const_iterator part1 = m_particle->end_vertex()->particles_in_const_begin(); + part1 != m_particle->end_vertex()->particles_in_const_end(); part1++ ){ + + if( Photos::isStatusCodeIgnored((*part1)->status()) ) continue; + + sumpx += (*part1)->momentum().px(); + sumpy += (*part1)->momentum().py(); + sumpz += (*part1)->momentum().pz(); + sume += (*part1)->momentum().e(); + } + + for( HepMC::GenVertex::particles_out_const_iterator part2 = m_particle->end_vertex()->particles_out_const_begin(); + part2 != m_particle->end_vertex()->particles_out_const_end(); part2++ ){ + + if( Photos::isStatusCodeIgnored((*part2)->status()) ) continue; + + sumpx -= (*part2)->momentum().px(); + sumpy -= (*part2)->momentum().py(); + sumpz -= (*part2)->momentum().pz(); + sume -= (*part2)->momentum().e(); + } + + if( sqrt( sumpx*sumpx + sumpy*sumpy + sumpz*sumpz + sume*sume) > Photos::momentum_conservation_threshold ) { + Log::Warning()<<"Momentum not conserved in the vertex:"<end_vertex()->print(); + Log::RevertOutput(); + return false; + } + + return true; +} + +void PhotosHepMCParticle::setPdgID(int pdg_id){ + m_particle->set_pdg_id(pdg_id); +} + +void PhotosHepMCParticle::setMass(double mass){ + m_particle->set_generated_mass(mass); +} + +void PhotosHepMCParticle::setStatus(int status){ + m_particle->set_status(status); +} + +int PhotosHepMCParticle::getPdgID(){ + return m_particle->pdg_id(); +} + +int PhotosHepMCParticle::getStatus(){ + return m_particle->status(); +} + +int PhotosHepMCParticle::getBarcode(){ + return m_particle->barcode(); +} + + +PhotosHepMCParticle * PhotosHepMCParticle::createNewParticle( + int pdg_id, int status, double mass, + double px, double py, double pz, double e){ + + PhotosHepMCParticle * new_particle = new PhotosHepMCParticle(); + new_particle->getHepMC()->set_pdg_id(pdg_id); + new_particle->getHepMC()->set_status(status); + new_particle->getHepMC()->set_generated_mass(mass); + + HepMC::FourVector momentum(px,py,pz,e); + new_particle->getHepMC()->set_momentum(momentum); + + m_created_particles.push_back(new_particle); + return new_particle; +} + +void PhotosHepMCParticle::createHistoryEntry(){ + + if(!m_particle->production_vertex()) + { + Log::Warning()<<"PhotosHepMCParticle::createHistoryEntry(): particle without production vertex."<set_status(Photos::historyEntriesStatus); + m_particle->production_vertex()->add_particle_out(part); +} + +void PhotosHepMCParticle::createSelfDecayVertex(PhotosParticle *out) +{ + if(m_particle->end_vertex()) + { + Log::Error()<<"PhotosHepMCParticle::createSelfDecayVertex: particle already has end vertex!"<parent_event()==NULL) + { + Log::Error()<<"PhotosHepMCParticle::createSelfDecayVertex: particle not in the HepMC event!"<(out)->m_particle) ); + HepMC::GenVertex *v = new HepMC::GenVertex(); + + // Copy vertex position from parent vertex + v->set_position( m_particle->production_vertex()->position() ); + + v->add_particle_in (m_particle); + v->add_particle_out(outgoing); + + getHepMC()->parent_event()->add_vertex(v); + + // If this particle was stable, set its status to 2 + if(getStatus()==1) setStatus(2); +} + +void PhotosHepMCParticle::print(){ + m_particle->print(); +} + + +/******** Getter and Setter methods: ***********************/ + +inline double PhotosHepMCParticle::getPx(){ + return m_particle->momentum().px(); +} + +inline double PhotosHepMCParticle::getPy(){ + return m_particle->momentum().py(); +} + +double PhotosHepMCParticle::getPz(){ + return m_particle->momentum().pz(); +} + +double PhotosHepMCParticle::getE(){ + return m_particle->momentum().e(); +} + +void PhotosHepMCParticle::setPx(double px){ + //make new momentum as something is wrong with + //the HepMC momentum setters + + HepMC::FourVector momentum(m_particle->momentum()); + momentum.setPx(px); + m_particle->set_momentum(momentum); +} + +void PhotosHepMCParticle::setPy(double py){ + HepMC::FourVector momentum(m_particle->momentum()); + momentum.setPy(py); + m_particle->set_momentum(momentum); +} + + +void PhotosHepMCParticle::setPz(double pz){ + HepMC::FourVector momentum(m_particle->momentum()); + momentum.setPz(pz); + m_particle->set_momentum(momentum); +} + +void PhotosHepMCParticle::setE(double e){ + HepMC::FourVector momentum(m_particle->momentum()); + momentum.setE(e); + m_particle->set_momentum(momentum); +} + +double PhotosHepMCParticle::getMass() +{ + return m_particle->generated_mass(); +} + +} // namespace Photospp diff --git a/TEvtGen/Photos/PhotosHepMCParticle.h b/TEvtGen/Photos/PhotosHepMCParticle.h new file mode 100644 index 00000000000..ad1e655be0a --- /dev/null +++ b/TEvtGen/Photos/PhotosHepMCParticle.h @@ -0,0 +1,166 @@ +#ifndef _PhotosHepMCParticle_h_included_ +#define _PhotosHepMCParticle_h_included_ + +/** + * @class PhotosHepMCParticle + * + * @brief Interface to HepMC::GenParticle objects + * + * This class implements the virtual methods of + * PhotosParticle. In this way it provides an + * interface between the generic PhotosParticle class + * and a HepMC::GenParticle object. + * + * @author Nadia Davidson + * @date 17 June 2008 + * + * This code is licensed under GNU General Public Licence. + * For more informations, see: http://www.gnu.org/licenses/ + */ + +#include + +#include "HepMC/GenParticle.h" +#include "PhotosParticle.h" + +using namespace std; + +namespace Photospp +{ + +class PhotosHepMCParticle: public PhotosParticle{ + + public: + /** General constructor */ + PhotosHepMCParticle(); + + /** Constructor which keeps a pointer to the HepMC::GenParticle*/ + PhotosHepMCParticle(HepMC::GenParticle * particle); + + /** Constructor which creates a new HepMC::GenParticle and + sets the properties pdg_id, statu and mass. */ + PhotosHepMCParticle(int pdg_id, int status, double mass); + + /** Destructor */ + ~PhotosHepMCParticle(); + + /** return the HepMC::GenParticle */ + HepMC::GenParticle * getHepMC(); + + /** Set the mothers of this particle via a vector of PhotosParticle*/ + void setMothers(std::vector mothers); + + /** Set the daughters of this particle via a vector of PhotosParticle*/ + void setDaughters(std::vector daughters); + + /** Add a new daughter to the end vertex of this particle */ + void addDaughter(PhotosParticle* daughter); + + /** Returns the mothers of this particle via a vector of PhotosParticle */ + std::vector getMothers(); + + /** Returns the daughters of this particle via a vector of PhotosParticle + IMPORTANT: this method will remeber list from the first call. Particles + (e.g. photons) added later will be ignored */ + std::vector getDaughters(); + + /** Returns all particles in the decay tree of this particle + via a vector of PhotosParticle */ + std::vector getAllDecayProducts(); + + /** Set the PDG ID code of this particle */ + void setPdgID(int pdg_id); + + /** Set the status of this particle */ + void setStatus(int statu); + + /** Set the mass of this particle */ + void setMass(double mass); + + /** Get the PDG ID code of this particle */ + int getPdgID(); + + /** Get the status of this particle */ + int getStatus(); + + /** Get the barcode of this particle */ + int getBarcode(); + + /** check that the 4 momentum in conserved at the vertices producing + and ending this particle */ + bool checkMomentumConservation(); + + /** Create a new particle of type PhotosHepMCParticle, with the given + properties. The new particle bares no relations to this + particle, but it provides a way of creating a instance of + this derived class. eg. createNewParticle() is used inside + filhep_() so that a PhotosHepMCParticle can be created without + the method having explicit knowledge of the PhotosHepMCParticle + class */ + PhotosHepMCParticle * createNewParticle(int pdg_id, int status, double mass, + double px, double py, + double pz, double e); + + /** Create history entry for HepMC event record. + Creates copy of this particle with status = 3 */ + void createHistoryEntry(); + + /** Create a self-decay vertex for this particle + with 'out' being the outgoing particle in new vertex */ + void createSelfDecayVertex(PhotosParticle *out); + + /** Print some information about this particle to standard output */ + void print(); + + /** Returns the px component of the four vector*/ + double getPx(); + + /** Returns the py component of the four vector */ + double getPy(); + + /** Returns the pz component of the four vector */ + double getPz(); + + /** Returns the energy component of the four vector */ + double getE(); + + /** Returns the mass taken from event record */ + double getMass(); + + /** Set the px component of the four vector */ + void setPx( double px ); + + /** Set the px component of the four vector */ + void setPy( double py ); + + /** Set the pz component of the four vector */ + void setPz( double pz ); + + /** Set the energy component of the four vector */ + void setE( double e ); + + private: + /** Internal function used to clear particles from the vector */ + void clear(std::vector v); + + /** A pointer to the HepMC::GenParticle particle */ + HepMC::GenParticle * m_particle; + + /** A vector of this particles mothers */ + std::vector m_mothers; + + /** A vector of this particles daughters */ + std::vector m_daughters; + + /** A vector of all decay products of this particle */ + std::vector m_decay_products; + + /** list to keep track of new particles which have been + created from this one, so we can call their destructor later */ + std::vector m_created_particles; + +}; + +} // namespace Photospp +#endif + diff --git a/TEvtGen/Photos/PhotosParticle.cxx b/TEvtGen/Photos/PhotosParticle.cxx new file mode 100644 index 00000000000..5ea61905582 --- /dev/null +++ b/TEvtGen/Photos/PhotosParticle.cxx @@ -0,0 +1,222 @@ +#include +#include +#include "PhotosParticle.h" +#include "Log.h" +using std::vector; + +namespace Photospp +{ + +bool PhotosParticle::hasDaughters() +{ + if(getDaughters().size()==0) return false; + else return true; +} + +PhotosParticle * PhotosParticle::findLastSelf() +{ + vector daughters = getDaughters(); + vector::iterator pcl_itr = daughters.begin(); + + //get all daughters and look for stable with same pgd id + for(;pcl_itr != daughters.end();pcl_itr++) + { + if((*pcl_itr)->getPdgID()==this->getPdgID()) + return (*pcl_itr)->findLastSelf(); + } + + return this; +} + +vector PhotosParticle::findProductionMothers() +{ + vector mothers = getMothers(); + vector::iterator pcl_itr = mothers.begin(); + + //get all mothers and check none have pdg id of this one + for(;pcl_itr != mothers.end();pcl_itr++) + { + if((*pcl_itr)->getPdgID()==this->getPdgID()) + return (*pcl_itr)->findProductionMothers(); + } + return mothers; +} + +vector PhotosParticle::getDecayTree() +{ + vector particles; + particles.push_back(this); + vector daughters = getDaughters(); + for(int i=0;i<(int)daughters.size();i++) + { + // Check if we are the first mother of each daughters + // If not - skip this daughter + PhotosParticle *p = daughters.at(i); + vector mothers = p->getMothers(); + if(mothers.size()>1 && mothers.at(0)->getBarcode()!=getBarcode()) continue; + vector tree = p->getDecayTree(); + particles.insert(particles.end(),tree.begin(),tree.end()); + } + return particles; +} + +void PhotosParticle::boostDaughtersFromRestFrame(PhotosParticle * tau_momentum) +{ + if(!hasDaughters()) //if there are no daughters + return; + + // get all daughters, granddaughters, etc. then rotate and boost them + vector list = getAllDecayProducts(); + vector::iterator pcl_itr = list.begin(); + + for(;pcl_itr != list.end();pcl_itr++) + { + (*pcl_itr)->boostFromRestFrame(tau_momentum); + } + + //checkMomentumConservation(); +} + +void PhotosParticle::boostDaughtersToRestFrame(PhotosParticle * tau_momentum) +{ + if(!hasDaughters()) //if there are no daughters + return; + + // get all daughters, granddaughters, etc. then rotate and boost them + vector list = getAllDecayProducts(); + vector::iterator pcl_itr = list.begin(); + + for(;pcl_itr != list.end();pcl_itr++) + { + (*pcl_itr)->boostToRestFrame(tau_momentum); + } + + //checkMomentumConservation(); +} + + +void PhotosParticle::boostToRestFrame(PhotosParticle * tau_momentum) +{ + double theta = tau_momentum->getRotationAngle(Y_AXIS); + tau_momentum->rotate(Y_AXIS,theta); + + double phi = tau_momentum->getRotationAngle(X_AXIS); + tau_momentum->rotate(Y_AXIS,-theta); + + //Now rotate coordinates to get boost in Z direction. + rotate(Y_AXIS,theta); + rotate(X_AXIS,phi); + boostAlongZ(-1*tau_momentum->getP(),tau_momentum->getE()); + rotate(X_AXIS,-phi); + rotate(Y_AXIS,-theta); +} + +void PhotosParticle::boostFromRestFrame(PhotosParticle * tau_momentum) +{ + //get the rotation angles + //and boost z + + double theta = tau_momentum->getRotationAngle(Y_AXIS); + tau_momentum->rotate(Y_AXIS,theta); + + double phi = tau_momentum->getRotationAngle(X_AXIS); + tau_momentum->rotate(Y_AXIS,-theta); + + //Now rotate coordinates to get boost in Z direction. + rotate(Y_AXIS,theta); + rotate(X_AXIS,phi); + boostAlongZ(tau_momentum->getP(),tau_momentum->getE()); + rotate(X_AXIS,-phi); + rotate(Y_AXIS,-theta); +} + +/** Get the angle needed to rotate the 4 momentum vector so that + the x (y) component disapears. (and the Z component is > 0) */ +double PhotosParticle::getRotationAngle(int axis, int second_axis) +{ + /**if(getP(axis)==0){ + if(getPz()>0) + return 0; //no rotaion required + else + return M_PI; + }**/ + if(getP(second_axis)==0) + { + if(getP(axis)>0) return -M_PI/2.0; + else return M_PI/2.0; + } + if(getP(second_axis)>0) return -atan(getP(axis)/getP(second_axis)); + else return M_PI-atan(getP(axis)/getP(second_axis)); + +} + +/** Boost this vector along the Z direction. + Assume no momentum components in the X or Y directions. */ +void PhotosParticle::boostAlongZ(double boost_pz, double boost_e) +{ + // Boost along the Z axis + double m_tau=sqrt(boost_e*boost_e-boost_pz*boost_pz); + + double p=getPz(); + double e=getE(); + + setPz((boost_e*p + boost_pz*e)/m_tau); + setE((boost_pz*p + boost_e*e )/m_tau); +} + +/** Rotation around an axis X or Y */ +void PhotosParticle::rotate(int axis,double theta, int second_axis) +{ + double temp_px=getP(axis); + double temp_pz=getP(second_axis); + setP(axis,cos(theta)*temp_px + sin(theta)*temp_pz); + setP(second_axis,-sin(theta)*temp_px + cos(theta)*temp_pz); +} + +void PhotosParticle::rotateDaughters(int axis,double theta, int second_axis) +{ + if(!hasDaughters()) //if there are no daughters + return; + + vector daughters = getDaughters(); + vector::iterator pcl_itr = daughters.begin(); + + //get all daughters then rotate and boost them. + for(;pcl_itr != daughters.end();pcl_itr++) + { + (*pcl_itr)->rotate(axis,theta,second_axis); + (*pcl_itr)->rotateDaughters(axis,theta,second_axis); + } + //checkMomentumConservation(); +} + +double PhotosParticle::getVirtuality() +{ + double e_sq=getE()*getE(); + double p_sq=getP()*getP(); + + if(e_sq>p_sq) return sqrt(e_sq-p_sq); + else return -1*sqrt(p_sq-e_sq); //if it's negative +} + +double PhotosParticle::getP() +{ + return sqrt(getPx()*getPx()+getPy()*getPy()+getPz()*getPz()); +} + +double PhotosParticle::getP(int axis) +{ + if(axis==X_AXIS) return getPx(); + if(axis==Y_AXIS) return getPy(); + if(axis==Z_AXIS) return getPz(); + return 0; +} + +void PhotosParticle::setP(int axis, double p_component) +{ + if(axis==X_AXIS) setPx(p_component); + if(axis==Y_AXIS) setPy(p_component); + if(axis==Z_AXIS) setPz(p_component); +} + +} // namespace Photospp diff --git a/TEvtGen/Photos/PhotosParticle.h b/TEvtGen/Photos/PhotosParticle.h new file mode 100644 index 00000000000..c322feff908 --- /dev/null +++ b/TEvtGen/Photos/PhotosParticle.h @@ -0,0 +1,283 @@ +#ifndef _PhotosParticle_h_included_ +#define _PhotosParticle_h_included_ + +/** + * @class PhotosParticle + * + * @brief Abstract base class for particle in the event. This class also + * handles boosting. + * + * PhotosParticle is a Photos representation of a particle. It has virtual + * getter and setter methods that need to be implemented by a derived class. + * An example of this is PhotosHepMCParticle. In this way it provides an + * interface to the information in the Event Record. + * + * @author Nadia Davidson + * @date 16 June 2008 + */ + +#include +#include "Photos.h" + +namespace Photospp +{ + +class PhotosParticle +{ +public: + /** Stable particle status */ + static const int STABLE=1; + + /** Decayed particle status */ + static const int DECAYED=2; + + /** History particle status */ + static const int HISTORY=3; + + /** X Axis */ + static const int X_AXIS=1; + + /** Y Axis */ + static const int Y_AXIS=2; + + /** Z Axis */ + static const int Z_AXIS=3; + + /** Z0 particle */ + static const int Z0 = 23; + + /** H particle */ + static const int HIGGS = 25; + + /** H0 particle */ + static const int HIGGS_H = 35; + + /** A0 particle */ + static const int HIGGS_A = 36; + + /** H+ particle */ + static const int HIGGS_PLUS = 37; + + /** H- particle */ + static const int HIGGS_MINUS = -37; + + /** W+ particle */ + static const int W_PLUS = 24; + + /** W- particle */ + static const int W_MINUS = -24; + + /** photon */ + static const int GAMMA = 22; + + /** tau+ particle */ + static const int TAU_PLUS = -15; + + /** tau- particle */ + static const int TAU_MINUS = 15; + + /** tau neutrino particle */ + static const int TAU_NEUTRINO = 16; + + /** tau antineutrino particle */ + static const int TAU_ANTINEUTRINO = -16; + + /** muon+ particle */ + static const int MUON_PLUS = -13; + + /** muon- particle */ + static const int MUON_MINUS = 13; + + /** muon neutrino particle */ + static const int MUON_NEUTRINO = 14; + + /** muon antineutrino particle */ + static const int MUON_ANTINEUTRINO = -14; + + /** e+ particle */ + static const int POSITRON = -11; + + /** e- particle */ + static const int ELECTRON = 11; + + /** e neutrino particle */ + static const int ELECTRON_NEUTRINO = 12; + + /** e antineutrino particle */ + static const int ELECTRON_ANTINEUTRINO = -12; + + /** up quark */ + static const int UP = 2; + + /** anti-up quark */ + static const int ANTIUP = -2; + + /** down quark */ + static const int DOWN = 1; + + /** anti-down quark */ + static const int ANTIDOWN = -1; + + /** All other particle types*/ + static const int OTHER = 0; + +public: + virtual ~PhotosParticle(){}; + + /** Return whether the particle has any chidren */ + bool hasDaughters(); + + /** Traverse the event structure and find the final version + of this particle which does not have a particle of it's own type + as it's daughter. eg. Generally the final stable copy */ + PhotosParticle * findLastSelf(); + + /** Traverse the event structure and find the first set of mothers + which are not of the same type as this particle. */ + std::vector findProductionMothers(); + + /** Return whole decay tree starting from this particle */ + std::vector getDecayTree(); + + /** Transform this particles four momentum from the lab frome + into the rest frame of the paramter PhotosParticle. */ + void boostToRestFrame(PhotosParticle * boost); + + /** Transform the four momentum of all the daughters recursively + into the frame of the "particle" PhotosParticle. */ + void boostDaughtersToRestFrame(PhotosParticle * boost); + + /** Transform this particles four momentum from the rest frame of + the paramter PhotosParticle, back into the lab frame. */ + void boostFromRestFrame(PhotosParticle * boost); + + /** Transform this particles four momentum from the lab frame to + the rest frame of the parameter PhotosParticle. */ + void boostDaughtersFromRestFrame(PhotosParticle * boost); + + /** Do a Lorenz transformation along the Z axis. */ + void boostAlongZ(double pz, double e); + + /** rotate this particles 4-momentum by an angle phi from + the axisis "axis" towards the axis "second_axis". */ + void rotate(int axis, double phi, int second_axis=Z_AXIS); + + /** rotate 4-momentum of daughters of this particle by an angle phi from + the axisis "axis" towards the axis "second_axis". */ + void rotateDaughters(int axis, double phi, int second_axis=Z_AXIS); + + /** Returns the angle around the axis "axis" needed to rotate + the four momenum is such a way that the non-Z component + disappears and Z>0. This is used to in rotating the coordinate + system into a frame with only a Z component before calling + boostAlongZ(). */ + double getRotationAngle(int axis, int second_axis=Z_AXIS); + + /** Get scalar momentum */ + double getP(); + + /** Get momentum component in the direction of "axis" (x,y,z) */ + double getP(int axis); + + /** Set momentum component in the direction of "axis" (x,y,z) */ + void setP(int axis, double p_component); + + /** Get sqrt(e^2-p^2) */ + virtual double getVirtuality(); + +public: + /** check that the 4 momentum in conserved at the vertices producing + and ending this particle */ + virtual bool checkMomentumConservation()=0; + + /** Returns the px component of the four vector */ + virtual double getPx()=0; + + /** Returns the py component of the four vector */ + virtual double getPy()=0; + + /** Returns the pz component of the four vector */ + virtual double getPz()=0; + + /** Returns the energy component of the four vector */ + virtual double getE()=0; + + /** Get the invariant mass from the event record*/ + virtual double getMass() = 0; + + /** Set the px component of the four vector */ + virtual void setPx( double px )=0; + + /** Set the px component of the four vector */ + virtual void setPy( double py )=0; + + /** Set the pz component of the four vector */ + virtual void setPz( double pz )=0; + + /** Set the energy component of the four vector */ + virtual void setE( double e )=0; + + /** Set the mothers of this particle via a vector of PhotosParticle */ + virtual void setMothers(std::vector mothers)=0; + + /** Set the daughters of this particle via a vector of PhotosParticle */ + virtual void setDaughters(std::vector daughters)=0; + + /** Add a new daughter to this particle */ + virtual void addDaughter(PhotosParticle* daughter)=0; + + /** Returns the mothers of this particle via a vector of PhotosParticle */ + virtual std::vector getMothers()=0; + + /** Returns the daughters of this particle via a vector of PhotosParticle */ + virtual std::vector getDaughters()=0; + + /** Returns all particles in the decay tree of this particle + via a vector of PhotosParticle */ + virtual std::vector getAllDecayProducts()=0; + + /** Set the PDG ID code of this particle */ + virtual void setPdgID(int pdg_id)=0; + + /** Set the mass of this particle */ + virtual void setMass(double mass)=0; + + /** Set the status of this particle */ + virtual void setStatus(int status)=0; + + /** Get the PDG ID code of this particle */ + virtual int getPdgID()=0; + + /** Get the status of this particle */ + virtual int getStatus()=0; + + /** Get the barcode of this particle */ + virtual int getBarcode()=0; + + /** Create a new particle of the same type, with the given + properties. The new particle bares no relations to this + particle, but it provides a way of creating a intance of + the derived class. eg. createNewParticle() is used inside + filhep_() so that an eg. PhotosHepMCParticle is created without + the method having explicit knowledge of the PhotosHepMCParticle + class */ + virtual PhotosParticle * createNewParticle(int pdg_id, int status, + double mass, double px, + double py, double pz, + double e)=0; + + /** Create history entry of this particle before modifications + of PHOTOS. Implementation of this method depends strongly + on the event record. */ + virtual void createHistoryEntry()=0; + + /** Create a self-decay vertex for this particle + with 'out' being the outgoing particle in new vertex */ + virtual void createSelfDecayVertex(PhotosParticle *out)=0; + + /** Print some information about this particle to standard output */ + virtual void print()=0; +}; + +} // namespace Photospp +#endif diff --git a/TEvtGen/Photos/PhotosRandom.cxx b/TEvtGen/Photos/PhotosRandom.cxx new file mode 100644 index 00000000000..056a419375f --- /dev/null +++ b/TEvtGen/Photos/PhotosRandom.cxx @@ -0,0 +1,107 @@ +#include +#include "PhotosRandom.h" +#include "Photos.h" +#include "Log.h" + +namespace Photospp +{ + +bool PhotosRandom::init = false; +int PhotosRandom::iseed[2]= { 1802, 9373 }; +int PhotosRandom::i97 = 96; +int PhotosRandom::j97 = 32; +double PhotosRandom::uran[97]= { 0.0 }; +double PhotosRandom::cran = 362436.0 /16777216.0; +const double PhotosRandom::cdran = 7654321.0 /16777216.0; +const double PhotosRandom::cmran = 16777213.0/16777216.0; + +void PhotosRandom::setSeed(int s1,int s2) +{ + if(s1<0 || s1>31327) Log::Fatal("PhotosRandom::setSeed(): Seed(1) out of range [0,31327]",8); + if(s2<0 || s2>30080) Log::Fatal("PhotosRandom::setSeed(): Seed(2) out of range [0,30080]",9); + iseed[0]=s1; + iseed[1]=s2; +} + +/******************************************************************************* + PHORIN: PHOton radiation in decays RANdom number generator init + + Purpose: Initialse PHORAN with the user specified seeds in the + array iseed. For details see also: F. James CERN DD- + Report November 1988. + + Author(s): B. van Eijk and F. James Created at: 27/09/89 + Last Update: 22/02/90 + Rewritten to C++: 18/10/10 + by T. Przedzinski (tprzedzi@cern.ch) +*******************************************************************************/ +void PhotosRandom::initialize() +{ + long IS1,IS2,IS3,IS4,IS5; + double S,T; + +// Calculate Marsaglia and Zaman seeds (by F. James) + IS1=(iseed[0]/177)%177+2; + IS2= iseed[0]%177+2; + IS3=(iseed[1]/169)%178+1; + IS4= iseed[1]%169; + for(int i=0;i<97;i++) + { + S=0.0; + T=0.5; + for(int j=0;j<24;j++) + { + IS5=( ((IS1*IS2)%179)*IS3 )%179; + IS1=IS2; + IS2=IS3; + IS3=IS5; + IS4=(53*IS4+1)%169; + if( (IS4*IS5)%64>=32) S=S+T; + T=0.5*T; + } + uran[i]=S; + } + init=true; + Log::Debug(0)<<"PhotosRandom::inititalize(): seed: "<0.0) break; + } + return ret; +} + +} // namespace Photospp + diff --git a/TEvtGen/Photos/PhotosRandom.h b/TEvtGen/Photos/PhotosRandom.h new file mode 100644 index 00000000000..e5b0d10d3b8 --- /dev/null +++ b/TEvtGen/Photos/PhotosRandom.h @@ -0,0 +1,46 @@ +#ifndef _PhotosRandom_included_ +#define _PhotosRandom_included_ + +/** + * @class PhotosRandom + * + * @brief Photos random number generator rewritten from PHOTOS FORTRAN + * + * Generates uniformly distributed random numbers between 0 and 1. + * Must be initialized by call to PhotosRandom::initialize(). + * Original authors: B. van Eijk, F. James, G. Marsaglia and A. Zaman + * + * @author Tomasz Przedzinski + * @date 18th October 2010 + */ + +namespace Photospp +{ + +class PhotosRandom +{ +public: + /* Change the seed. Default is s1=1802 and s2=9373 + These values must be in range [0,31327] and [0,30080] respectively */ + static void setSeed(int s1,int s2); + + /* Initialization routine. Must be called at least once before + the generator can be used. */ + static void initialize(); + + /* Uniform distribution between 0 and 1 */ + static double randomReal(); + +protected: + static bool init; + static int iseed[2]; + static int i97; + static int j97; + static double uran[97]; + static double cran; + static const double cdran; + static const double cmran; +}; + +} // namespace Photospp +#endif diff --git a/TEvtGen/Photos/PhotosUtilities.cxx b/TEvtGen/Photos/PhotosUtilities.cxx new file mode 100644 index 00000000000..afbe412f0e8 --- /dev/null +++ b/TEvtGen/Photos/PhotosUtilities.cxx @@ -0,0 +1,428 @@ +#include "PhotosUtilities.h" +#include +#include +using std::max; + +namespace Photospp +{ + +namespace PhotosUtilities +{ + + +void fill_val(int beg, int end, double* array, double value) +{ + for (int i = beg; i < end; i++) + array[i] = value; +} + + +//---------------------------------------------------------------------- +// +// PHOEPS: PHOeps vector product (normalized to unity) +// +// Purpose: calculates vector product, then normalizes its length. +// used to generate orthogonal vectors, i.e. to +// generate polarimetric vectors for photons. +// +// Input Parameters: VEC1,VEC2 - input 4-vectors +// +// Output Parameters: EPS - normalized 4-vector, orthogonal to +// VEC1 and VEC2 +// +// Author(s): Z. Was, P.Golonka Created at: 19/01/05 +// Last Update: 10/06/13 +// +//---------------------------------------------------------------------- + +void PHOEPS(double vec1[4], double vec2[4], double eps[4]){ + double xn; + int j=1; // convention of indices of Riemann space must be preserved. + + eps[1-j]=vec1[2-j]*vec2[3-j] - vec1[3-j]*vec2[2-j]; + eps[2-j]=vec1[3-j]*vec2[1-j] - vec1[1-j]*vec2[3-j]; + eps[3-j]=vec1[1-j]*vec2[2-j] - vec1[2-j]*vec2[1-j]; + eps[4-j]=0.0; + + xn=sqrt( eps[1-j]*eps[1-j] + eps[2-j]*eps[2-j] + eps[3-j]*eps[3-j]); + + eps[1-j]=eps[1-j]/xn; + eps[2-j]=eps[2-j]/xn; + eps[3-j]=eps[3-j]/xn; + +} + + + +//---------------------------------------------------------------------- +// +// PHOTOS: PHOton radiation in decays function for SPIn determina- +// tion +// +// Purpose: Calculate the spin of particle with code IDHEP. The +// code of the particle is defined by the Particle Data +// Group in Phys. Lett. B204 (1988) 1. +// +// Input Parameter: IDHEP +// +// Output Parameter: Funtion value = spin of particle with code +// IDHEP +// +// Author(s): E. Barberio and B. van Eijk Created at: 29/11/89 +// Last update: 10/06/13 +// +//---------------------------------------------------------------------- +double PHOSPI(int idhep){ + static double SPIN[100] = { 0 }; + static int j=0; + //-- + //-- Array 'SPIN' contains the spin of the first 100 particles accor- + //-- ding to the PDG particle code... + + if(j==0) // initialization + { + j=1; + fill_val(0 , 8, SPIN, 0.5); + fill_val(8 , 9, SPIN, 1.0); + fill_val(9 , 10, SPIN, 0.0); + fill_val(10, 18, SPIN, 0.5); + fill_val(18, 20, SPIN, 0.0); + fill_val(20, 24, SPIN, 1.0); + fill_val(24,100, SPIN, 0.0); + } + + int idabs=abs(idhep); + //-- + //-- Spin of quark, lepton, boson etc.... + if (idabs-1<100) return SPIN[idabs-1]; + + //-- ...other particles, however... + double xx=((idabs % 10)-1.0)/2.0; + //-- + //-- ...K_short and K_long are special !! + xx=max(xx,0.0); + return xx; +} + +//---------------------------------------------------------------------- +// +// PHOTOS: PHOton radiation in decays CHArge determination +// +// Purpose: Calculate the charge of particle with code IDHEP. The +// code of the particle is defined by the Particle Data +// Group in Phys. Lett. B204 (1988) 1. +// +// Input Parameter: IDHEP +// +// Output Parameter: Funtion value = charge of particle with code +// IDHEP +// +// Author(s): E. Barberio and B. van Eijk Created at: 29/11/89 +// Last update: 11/06/13 +// +//---------------------------------------------------------------------- +double PHOCHA(int idhep){ + static double CHARGE[101] = { 0 }; + static int j=0; + //-- + //-- Array 'SPIN' contains the spin of the first 100 particles accor- + //-- ding to the PDG particle code... + + if(j==0) // initialization + { + j=1; + fill_val(0 , 1, CHARGE, 0.0 ); + fill_val(1 , 2, CHARGE,-0.3333333333); + fill_val(2 , 3, CHARGE, 0.6666666667); + fill_val(3 , 4, CHARGE,-0.3333333333); + fill_val(4 , 5, CHARGE, 0.6666666667); + fill_val(5 , 6, CHARGE,-0.3333333333); + fill_val(6 , 7, CHARGE, 0.6666666667); + fill_val(7 , 8, CHARGE,-0.3333333333); + fill_val(8 , 9, CHARGE, 0.6666666667); + fill_val(9 , 11, CHARGE, 0.0 ); + fill_val(11 ,12, CHARGE,-1.0 ); + fill_val(12 ,13, CHARGE, 0.0 ); + fill_val(13 ,14, CHARGE,-1.0 ); + fill_val(14, 15, CHARGE, 0.0 ); + fill_val(15 ,16, CHARGE,-1.0 ); + fill_val(16, 17, CHARGE, 0.0 ); + fill_val(17 ,18, CHARGE,-1.0 ); + fill_val(18, 24, CHARGE, 0.0 ); + fill_val(24, 25, CHARGE, 1.0 ); + fill_val(25, 37, CHARGE, 0.0 ); + fill_val(37, 38, CHARGE, 1.0 ); + fill_val(38,101, CHARGE, 0.0 ); + } + + int idabs=abs(idhep); + double phoch=0.0; + + //-- + //-- Charge of quark, lepton, boson etc.... + if (idabs<=100) phoch=CHARGE[idabs]; + else { + int Q3= idabs/1000 % 10; + int Q2= idabs/100 % 10; + int Q1= idabs/10 % 10; + if (Q3==0){ + //-- + //-- ...meson... + if(Q2 % 2==0) phoch=CHARGE[Q2]-CHARGE[Q1]; + else phoch=CHARGE[Q1]-CHARGE[Q2]; + } + else{ + //-- + //-- ...diquarks or baryon. + phoch=CHARGE[Q1]+CHARGE[Q2]+CHARGE[Q3]; + } + } + //-- + //-- Find the sign of the charge... + if (idhep<0.0) phoch=-phoch; + if (phoch*phoch<0.000001) phoch=0.0; + + return phoch; +} + + + + +//---------------------------------------------------------------------- +// +// PHOTOS: PHOton radiation in decays calculation of TRIangle fie +// +// Purpose: Calculation of triangle function for phase space. +// +// Input Parameters: A, B, C (Virtual) particle masses. +// +// Output Parameter: Function value = +// SQRT(LAMBDA(A**2,B**2,C**2))/(2*A) +// +// Author(s): B. van Eijk Created at: 15/11/89 +// Last Update: 12/06/13 +// +//---------------------------------------------------------------------- +double PHOTRI(double A,double B,double C){ + double DA,DB,DC,DAPB,DAMB,DTRIAN; + DA=A; + DB=B; + DC=C; + DAPB=DA+DB; + DAMB=DA-DB; + DTRIAN=sqrt((DAMB-DC)*(DAPB+DC)*(DAMB+DC)*(DAPB-DC)); + return DTRIAN/(DA+DA); +} +//---------------------------------------------------------------------- +// +// PHOTOS: PHOton radiation in decays calculation of ANgle '1' +// +// Purpose: Calculate angle from X and Y +// +// Input Parameters: X, Y +// +// Output Parameter: Function value +// +// Author(s): S. Jadach Created at: 01/01/89 +// B. van Eijk Last Update: 12/06/13 +// +//---------------------------------------------------------------------- +double PHOAN1(double X,double Y){ + + double phoan1 = 0.0; + + static double PI=3.14159265358979324, TWOPI=6.28318530717958648; + + if (fabs(Y) +#include +using std::cout; +using std::endl; +/** + * @class PhotosUtilities + * + * @brief Support functions + * + * Functions for boosting, rotation, ... + * + * @author Tomasz Przedzinski, Zbigniew Was + * @date 29 June 2013 + */ +namespace Photospp +{ + +namespace PhotosUtilities +{ + /** PHOton radiation in decays calculation of TRIangle fie */ + double PHOTRI(double A,double B,double C); + + /** PHOton radiation in decays Calculate ANgle from X and Y */ + double PHOAN1(double X,double Y); + + /** PHOton radiation in decays Calculate ANgle from X and Y equiv to PHOAN1 */ + double PHOAN2(double X,double Y); + + /** PHOton radiation in decays ROtation routine around 2-nd axis */ + void PHORO2(double ANGLE,double PVEC[4]); + + + /** PHOton radiation in decays ROtation routine around 3-rd axis */ + void PHORO3(double ANGLE,double PVEC[4]); + + /** Boot to-from restr frame of PBOOS1 */ + void PHOB(int MODE,double PBOOS1[4],double vec[4]); + + /** PHOton radiation in decays BOost routine along arbitrary axis axis */ + void bostdq(int mode,double qq[4],double pp[4],double r[4]); + + + /** PHOton radiation in decays BOost routine along 3-rd axis */ + void PHOBO3(double ANGLE,double PVEC[4]); + + /** trivial method to fill value into array on positions beg to end */ + void fill_val(int beg, int end, double* array, double value); + + /** PHOeps vector product (normalized to unity) */ + void PHOEPS(double vec1[4], double vec2[4], double eps[4]); + + /** PHOton radiation in decays function for SPIn determination */ + double PHOSPI(int idhep); + + /** PHOton radiation in decays CHArge determination */ + double PHOCHA(int idhep); + +} // namespace PhotosUtilities + +} // namespace Photospp +#endif + diff --git a/TEvtGen/Photos/f_Init.h b/TEvtGen/Photos/f_Init.h new file mode 100644 index 00000000000..b2fe5c7bfb1 --- /dev/null +++ b/TEvtGen/Photos/f_Init.h @@ -0,0 +1,165 @@ +#ifndef _f_Init_included_ +#define _f_Init_included_ + +namespace Photospp +{ + +const static int NMXHEP = 10000; +const static double PI = 3.14159265358979324; +const static double TWOPI = 6.28318530717958648; + + +// extern "C" +//{ + + /** Definition of the PHOEVT common block */ + extern struct HEPEVT + { + int nevhep; + int nhep; + int isthep[NMXHEP]; + int idhep[NMXHEP]; + int jmohep[NMXHEP][2]; + int jdahep[NMXHEP][2]; + double phep[NMXHEP][5]; + double vhep[NMXHEP][4]; + int qedrad[NMXHEP]; // to be bool once compatibility with F77 removed + const static int nmxhep=NMXHEP; + // NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO), + // JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO) + // int qedrad[NMXHEP] was an add up + // for HEPEVT in F77 times. Separate common PH_PHOQED + // also phoif_.chkif[NMXPHO] was add up for PHOEVT + // now it is pho.qedrad + } hep,pho; + //ph_hepevt_,phoevt_; + + + + extern struct PHOCOP + { + double alpha; + double xphcut; + } phocop_; + + extern struct PHNUM + { + double iev; + } phnum_; + + + + extern struct PHOKEY + { + double fsec; + double fint; + double expeps; + int interf; + int isec; + int itre; + int iexp; + int iftop; + int ifw; + } phokey_; + + extern struct PHOSTA + { + int status[10]; + int ifstop; + } phosta_; + + extern struct PHOLUN + { + int phlun; + } pholun_; + + extern struct PHOPHS + { + double xphmax; + double xphoto; + double costhg; + double sinthg; + + } phophs_; + extern struct TOFROM + { + double QQ[4]; + double XM; + double th1; + double fi1; + + } tofrom_; + + extern struct PHOPRO + { + double probh; + double corwt; + double xf; + int irep; + } phopro_; + + extern struct PHOREST + { + double fi3; + double fi1; + double th1; + int irep; // provably line to be removed + + } phorest_; + + extern struct PHWT + { + double beta; + double wt1; + double wt2; + double wt3; + + } phwt_; + extern struct PHOCORWT + { + double phocorwt3; + double phocorwt2; + double phocorwt1; + + } phocorwt_; + + extern struct PHOMOM + { + double mchsqr; + double mnesqr; + double pneutr[5]; + } phomom_; + extern struct PHOCMS + { + double bet[3]; + double gam; + } phocms_; + + extern struct PHOEXP + { + const static int NX = 10; + double pro[NX]; + int nchan; + int expini; // bool + } phoexp_; + + //debug mode on if ipoin < 1 and ipoinm > 1 + extern struct PHLUPY + { + int ipoin; + int ipoinm; + } phlupy_; + + /** Initialize kinematic corrections */ + void PHCORK(int modcor); + + /** Single branch processing */ + void PHOTOS_MAKE_C(int id); + + /* Central management routine. Defines what action + will be performed at point ID. */ + void PHTYPE(int ID); +// } + +} // namespace Photospp +#endif diff --git a/TEvtGen/Photos/forW-MEc.cxx b/TEvtGen/Photos/forW-MEc.cxx new file mode 100644 index 00000000000..54f56483880 --- /dev/null +++ b/TEvtGen/Photos/forW-MEc.cxx @@ -0,0 +1,1014 @@ +#include "forW-MEc.h" +#include "Photos.h" +#include "f_Init.h" +#include "PH_HEPEVT_Interface.h" +#include +#include +using std::cout; +using std::endl; + +namespace Photospp +{ + +// COMMON /Kleiss_Stirling/spV,bet +double PhotosMEforW::spV[4],PhotosMEforW::bet[4]; + +// COMMON /mc_parameters/pi,sw,cw,alphaI,qb,mb,mf1,mf2,qf1,qf2,vf,af,mcLUN +double PhotosMEforW::pi,PhotosMEforW::sw,PhotosMEforW::cw,PhotosMEforW::alphaI,PhotosMEforW::qb,PhotosMEforW::mb,PhotosMEforW::mf1,PhotosMEforW::mf2,PhotosMEforW::qf1,PhotosMEforW::qf2,PhotosMEforW::vf,PhotosMEforW::af,PhotosMEforW::mcLUN; + +////////////////////////////////////////////////////////////////// +// small s_{+,-}(p1,p2) for massless case: // +// p1^2 = p2^2 = 0 // +// // +// k0(0) = 1.d0 // +// k0(1) = 1.d0 // +// k0(2) = 0.d0 Kleisse_Stirling k0 points to X-axis // +// k0(3) = 0.d0 // +// // +////////////////////////////////////////////////////////////////// +complex PhotosMEforW::InProd_zero(double p1[4],int l1,double p2[4],int l2){ + + + double forSqrt1,forSqrt2,sqrt1,sqrt2; + complex Dcmplx; + static complex i_= complex(0.0,1.0); + bool equal; + + + + equal = true; + for (int i = 0; i < 4; i++){ + + if (p1[i]!=p2[i]) equal = equal && false ; + } + + + if ( (l1==l2) || equal ) return complex(0.0,0.0); + + + else if ( (l1==+1) && (l2==-1) ){ + + forSqrt1 = (p1[0]-p1[1])/(p2[0]-p2[1]); + forSqrt2 = 1.0/forSqrt1; + sqrt1 = sqrt(forSqrt2); + sqrt2 = sqrt(forSqrt1); + + return (p1[2]+i_*p1[3])*sqrt1 - + (p2[2]+i_*p2[3])*sqrt2 ; + } + else if ( (l1==-1) && (l2==+1) ){ + + forSqrt1 = (p1[0]-p1[1])/(p2[0]-p2[1]); + forSqrt2 = 1.0/forSqrt1; + sqrt1 = sqrt(forSqrt2); + sqrt2 = sqrt(forSqrt1); + + return (p2[2]-i_*p2[3])*sqrt2 - + (p1[2]-i_*p1[3])*sqrt1 ; + } + else{ + + + cout << " "< PhotosMEforW::InProd_mass(double p1[4],double m1,int l1,double p2[4],double m2,int l2){ + double sqrt1,sqrt2,forSqrt1; + + + if ((l1==+1)&&(l2==+1)) { + forSqrt1 = (p1[0]-p1[1])/(p2[0]-p2[1]); + sqrt1 = sqrt(forSqrt1); + sqrt2 = 1.0/sqrt1; + return complex(m1*sqrt2+m2*sqrt1,0.0); + } + else if ((l1==+1)&&(l2==-1)) + return InProd_zero(p1,+1,p2,-1); + + else if ((l1==-1)&&(l2==+1)) + return InProd_zero(p1,-1,p2,+1); + + else if ((l1==-1)&&(l2==-1)){ + forSqrt1 = (p1[0]-p1[1])/(p2[0]-p2[1]); + sqrt1 = sqrt(forSqrt1); + sqrt2 = 1.0/sqrt1; + return complex(m1*sqrt2+m2*sqrt1,0.0); + } + else { + cout <<" " < PhotosMEforW::BsFactor(int s,double k[4],double p[4],double m){ + double forSqrt1,sqrt1; + complex inPr1; + + if ( s==1 ){ + + inPr1 = InProd_zero(k,+1,p,-1); + forSqrt1 = (p[0]-p[1])/(k[0]-k[1]); + sqrt1 = sqrt(2.0*forSqrt1); + //BsFactor = + return inPr1*sqrt1; + } + + else if ( s==-1 ){ + + inPr1 = InProd_zero(k,-1,p,+1); + forSqrt1 = (p[0]-p[1])/(k[0]-k[1]); + sqrt1 = sqrt(2.0*forSqrt1); + //BsFactor = + return inPr1*sqrt1; + } + else{ + + cout << " "<l_1+l_2+\gamma in terms of K&S objects ! +// +// EikFactor = q1*eps.p1/k.p1 + q2*eps.p2/k.p2 - q3*eps.p3/k.p3 +// +// indices 1,2 are for charged decay products +// index 3 is for W +// +// q - charge +// +//====================================================================== +complex PhotosMEforW::WDecayEikonalKS_1ph(double p3[4],double p1[4],double p2[4],double k[4],int s){ + + double scalProd1,scalProd2,scalProd3; + complex wdecayeikonalks_1ph,BSoft1,BSoft2; + + scalProd1 = p1[0]*k[0]-p1[1]*k[1]-p1[2]*k[2]-p1[3]*k[3]; + scalProd2 = p2[0]*k[0]-p2[1]*k[1]-p2[2]*k[2]-p2[3]*k[3]; + scalProd3 = p3[0]*k[0]-p3[1]*k[1]-p3[2]*k[2]-p3[3]*k[3]; + + + BSoft1 = BsFactor(s,k,p1,mf1); + BSoft2 = BsFactor(s,k,p2,mf2); + + //WDecayEikonalKS_1ph = + return sqrt(pi/alphaI)*(-(qf1/scalProd1+qb/scalProd3)*BSoft1 + +(qf2/scalProd2-qb/scalProd3)*BSoft2); + +} + +//====================================================================== +// +// Gauge invariant soft factor for decay!! +// Gmass2 -- photon mass square +// +//====================================================================== +complex PhotosMEforW::SoftFactor(int s,double k[4],double p1[4],double m1,double p2[4],double m2,double Gmass2){ + + double ScalProd1,ScalProd2; + complex BsFactor2,BsFactor1; + + + ScalProd1 = k[0]*p1[0]-k[1]*p1[1]-k[2]*p1[2]-k[3]*p1[3]; + ScalProd2 = k[0]*p2[0]-k[1]*p2[1]-k[2]*p2[2]-k[3]*p2[3]; + + BsFactor1 = BsFactor(s,k,p1,m1); + BsFactor2 = BsFactor(s,k,p2,m2); + + return + BsFactor2/2.0/(ScalProd2-Gmass2) + - BsFactor1/2.0/(ScalProd1-Gmass2); +} + +//############################################################################# +// # +// \ eps(k,0,s) # +// / # +// _\ # +// /\ # +// \ # +// / # +// ---<----------\-------------<--- # +// Ub(p1,m1,l1) U(p2,m2,l2) # +// # +// # +// definition of arbitrary light-like vector beta!! # +// # +// bet[0] = 1.d0 # +// bet[1] = 1.d0 # +// bet[2] = 0.d0 <==> bet == k0 expression becomes easy!! # +// bet[3] = 0.d0 # +//############################################################################# + +complex PhotosMEforW::TrMatrix_zero(double p1[4],double m1,int l1,double k[4],int s,double p2[4],double m2,int l2){ + + double forSqrt1,forSqrt2; + // double p1_1[4],p2_1[4]; + double sqrt1,sqrt2; // ,scalProd1,scalProd2; + complex inPr1,inPr2,inPr3; + bool equal; + + equal = true; + for (int i = 0; i < 4; i++) + if (p1[i] != p2[i]) equal = equal&&false; + + + + if ( (m1==m2)&&(equal) ){ + //.. + //.. when: p1=p2=p <=> m1=m2 TrMatrix_zero is diagonal + //.. + if ( (l1==+1)&&(l2==+1) ){ + + inPr1 = InProd_zero(k,+s,p1,-s); + forSqrt1 = (p1[0]-p1[1])/(k[0]-k[1]); + sqrt1 = sqrt(2.0*forSqrt1); + + return sqrt1*inPr1; + } + + else if ( (l1==+1)&&(l2==-1) ){ + + return complex(0.0,0.0);} + + + else if ( (l1==-1)&&(l2==+1) ){ + + return complex(0.0,0.0); + } + + else if ( (l1==-1)&&(l2==-1) ){ + + inPr1 = InProd_zero(k,+s,p1,-s); + forSqrt1 = (p1[0]-p1[1])/(k[0]-k[1]); + sqrt1 = sqrt(2.0*forSqrt1); + + return sqrt1*inPr1; + } + + else{ + + cout << "" <(0.0,0.0); + } + + else if( (l1==-1)&&(l2==+1)&&(s==+1) ){ + + forSqrt1 = (p1[0]-p1[1])/(p2[0]-p2[1]); + forSqrt2 = 1.0/forSqrt1; + sqrt1 = sqrt(2.0*forSqrt1); + sqrt2 = sqrt(2.0*forSqrt2); + + return complex(m2*sqrt1-m1*sqrt2,0.0); + } + else if ( (l1==-1)&&(l2==-1)&&(s==+1) ){ + + inPr1 = InProd_zero(k,+1,p2,-1); + forSqrt1 = (p1[0]-p1[1])/(k[0]-k[1]); + sqrt1 = sqrt(2.0*forSqrt1); + + return inPr1*sqrt1; + } + + else if ( (l1==+1)&&(l2==+1)&&(s==-1) ){ + + inPr1 = -InProd_zero(k,-1,p2,+1); + forSqrt1 = (p1[0]-p1[1])/(k[0]-k[1]); + sqrt1 = sqrt(2.0*forSqrt1); + + return -sqrt1*inPr1; + } + + else if ( (l1==+1)&&(l2==-1)&&(s==-1) ){ + + forSqrt1 = (p1[0]-p1[1])/(p2[0]-p2[1]); + forSqrt2 = 1.0/forSqrt1; + sqrt1 = sqrt(2.0*forSqrt1); + sqrt2 = sqrt(2.0*forSqrt2); + + return complex(m2*sqrt1-m1*sqrt2,0.0); + } + + else if ( (l1==-1)&&(l2==+1)&&(s==-1) ){ + + return complex(0.0,0.0); + } + + else if( (l1==-1)&&(l2==-1)&&(s==-1) ){ + + inPr1 = -InProd_zero(k,-1,p1,+1); + forSqrt1 = (p2[0]-p2[1])/(k[0]-k[1]); + sqrt1 = sqrt(2.0*forSqrt1); + + return -inPr1*sqrt1; + } + else { + + cout << "" << endl; + cout << " ERROR IN TrMatrix_zero: " << endl; + cout << " WRONG VALUES FOR l1,l2,s" << endl; + cout << "" << endl; + exit(0); + } + +} + + + +//////////////////////////////////////////////////////////////// +// transition matrix for massive boson // +// // +// // +// \ eps(k,m,s) // +// / // +// _\ // +// /\ k // +// \ // +// <-- p1 / <-- p2 // +// ---<----------\----------<--- // +// Ub(p1,m1,l1) U(p2,m2,l2) // +// // +//////////////////////////////////////////////////////////////// +complex PhotosMEforW::TrMatrix_mass(double p1[4],double m1,int l1,double k[4],double m,int s,double p2[4],double m2,int l2){ + + + double forSqrt1,forSqrt2; + double k_1[4],k_2[4]; + double forSqrt3,forSqrt4,sqrt3,sqrt1,sqrt2,sqrt4; + complex inPr1,inPr2,inPr3,inPr4; + + for (int i = 0; i < 4; i++) { + k_1[i] = 1.0/2.0*(k[i] - m*spV[i]); + k_2[i] = 1.0/2.0*(k[i] + m*spV[i]); + } + + if ( (l1==+1)&&(l2==+1)&&(s==0) ){ + + inPr1 = InProd_zero(p1,+1,k_2,-1); + inPr2 = InProd_zero(p2,-1,k_2,+1); + inPr3 = InProd_zero(p1,+1,k_1,-1); + inPr4 = InProd_zero(p2,-1,k_1,+1); + sqrt1 = sqrt(p1[0]-p1[1]); + sqrt2 = sqrt(p2[0]-p2[1]); + sqrt3 = m1*m2/sqrt1/sqrt2; + + return + (inPr1*inPr2-inPr3*inPr4)*(vf+af)/m + + (k_1[0]-k_2[0]-k_1[1]+k_2[1])*sqrt3*(vf-af)/m; + } + + else if ( (l1==+1)&&(l2==-1)&&(s==0) ){ + + inPr1 = InProd_zero(p1,+1,k_1,-1); + inPr2 = InProd_zero(p1,+1,k_2,-1); + inPr3 = InProd_zero(p2,+1,k_2,-1); + inPr4 = InProd_zero(p2,+1,k_1,-1); + + forSqrt1 = (k_1[0]-k_1[1])/(p2[0]-p2[1]); + forSqrt2 = (k_2[0]-k_2[1])/(p2[0]-p2[1]); + forSqrt3 = (k_2[0]-k_2[1])/(p1[0]-p1[1]); + forSqrt4 = (k_1[0]-k_1[1])/(p1[0]-p1[1]); + sqrt1 = sqrt(forSqrt1); + sqrt2 = sqrt(forSqrt2); + sqrt3 = sqrt(forSqrt3); + sqrt4 = sqrt(forSqrt4); + + return + (inPr1*sqrt1 - inPr2*sqrt2)*(vf+af)*m2/m + + (inPr3*sqrt3 - inPr4*sqrt4)*(vf-af)*m1/m; + } + else if ( (l1==-1)&&(l2==+1)&&(s==0) ){ + + inPr1 = InProd_zero(p1,-1,k_1,+1); + inPr2 = InProd_zero(p1,-1,k_2,+1); + inPr3 = InProd_zero(p2,-1,k_2,+1); + inPr4 = InProd_zero(p2,-1,k_1,+1); + + forSqrt1 = (k_1[0]-k_1[1])/(p2[0]-p2[1]); + forSqrt2 = (k_2[0]-k_2[1])/(p2[0]-p2[1]); + forSqrt3 = (k_2[0]-k_2[1])/(p1[0]-p1[1]); + forSqrt4 = (k_1[0]-k_1[1])/(p1[0]-p1[1]); + sqrt1 = sqrt(forSqrt1); + sqrt2 = sqrt(forSqrt2); + sqrt3 = sqrt(forSqrt3); + sqrt4 = sqrt(forSqrt4); + + return + (inPr1*sqrt1 - inPr2*sqrt2)*(vf-af)*m2/m + + (inPr3*sqrt3 - inPr4*sqrt4)*(vf+af)*m1/m; + } + else if ( (l1==-1)&&(l2==-1)&&(s==0) ){ + + inPr1 = InProd_zero(p2,+1,k_2,-1); + inPr2 = InProd_zero(p1,-1,k_2,+1); + inPr3 = InProd_zero(p2,+1,k_1,-1); + inPr4 = InProd_zero(p1,-1,k_1,+1); + sqrt1 = sqrt(p1[0]-p1[1]); + sqrt2 = sqrt(p2[0]-p2[1]); + sqrt3 = m1*m2/sqrt1/sqrt2; + + return + (inPr1*inPr2 - inPr3*inPr4)*(vf-af)/m + + (k_1[0]-k_2[0]-k_1[1]+k_2[1])*sqrt3*(vf+af)/m; + } + else if ( (l1==+1)&&(l2==+1)&&(s==+1) ){ + + inPr1 = InProd_zero(p1,+1,k_1,-1); + inPr2 = InProd_zero(k_2,-1,p2,+1); + inPr3 = inPr1*inPr2; + + forSqrt1 = (k_1[0]-k_1[1])/(p1[0]-p1[1]); + forSqrt2 = (k_2[0]-k_2[1])/(p2[0]-p2[1]); + sqrt1 = sqrt(forSqrt1); + sqrt2 = sqrt(forSqrt2); + sqrt3 = m1*m2*sqrt1*sqrt2; + + return + sqrt(2.0)/m*(inPr3*(vf+af)+sqrt3*(vf-af)); + } + + else if ( (l1==+1)&&(l2==-1)&&(s==+1) ){ + + inPr1 = InProd_zero(p1,+1,k_1,-1); + inPr2 = InProd_zero(p2,+1,k_1,-1); + + forSqrt1 = (k_2[0]-k_2[1])/(p2[0]-p2[1]); + forSqrt2 = (k_2[0]-k_2[1])/(p1[0]-p1[1]); + sqrt1 = m2*sqrt(forSqrt1); + sqrt2 = m1*sqrt(forSqrt2); + + return + sqrt(2.0)/m*( + inPr1*sqrt1*(vf+af) + - inPr2*sqrt2*(vf-af) + ); + } + else if ( (l1==-1)&&(l2==+1)&&(s==+1) ){ + + inPr1 = InProd_zero(k_2,-1,p2,+1); + inPr2 = InProd_zero(k_2,-1,p1,+1); + + forSqrt1 = (k_1[0]-k_1[1])/(p1[0]-p1[1]); + forSqrt2 = (k_1[0]-k_1[1])/(p2[0]-p2[1]); + sqrt1 = m1*sqrt(forSqrt1); + sqrt2 = m2*sqrt(forSqrt2); + + return + sqrt(2.0)/m*( + inPr1*sqrt1*(vf+af) + - inPr2*sqrt2*(vf-af) + ); + } + else if ( (l1==-1)&&(l2==-1)&&(s==+1) ){ + + inPr1 = InProd_zero(p2,+1,k_1,-1); + inPr2 = InProd_zero(k_2,-1,p1,+1); + inPr3 = inPr1*inPr2; + + forSqrt1 = (k_1[0]-k_1[1])/(p1[0]-p1[1]); + forSqrt2 = (k_2[0]-k_2[1])/(p2[0]-p2[1]); + sqrt1 = sqrt(forSqrt1); + sqrt2 = sqrt(forSqrt2); + sqrt3 = m1*m2*sqrt1*sqrt2; + + return + sqrt(2.0)/m*(inPr3*(vf-af)+sqrt3*(vf+af)); + } + + else if ( (l1==+1)&&(l2==+1)&&(s==-1) ){ + + inPr1 = InProd_zero(p2,-1,k_1,+1); + inPr2 = InProd_zero(k_2,+1,p1,-1); + inPr3 = inPr1*inPr2; + + forSqrt1 = (k_1[0]-k_1[1])/(p1[0]-p1[1]); + forSqrt2 = (k_2[0]-k_2[1])/(p2[0]-p2[1]); + sqrt1 = sqrt(forSqrt1); + sqrt2 = sqrt(forSqrt2); + sqrt3 = m1*m2*sqrt1*sqrt2; + + return + sqrt(2.0)/m*(inPr3*(vf+af)+sqrt3*(vf-af)); + } + else if ( (l1==+1)&&(l2==-1)&&(s==-1) ){ + + inPr1 = InProd_zero(k_2,+1,p2,-1); + inPr2 = InProd_zero(k_2,+1,p1,-1); + + forSqrt1 = (k_1[0]-k_1[1])/(p1[0]-p1[1]); + forSqrt2 = (k_1[0]-k_1[1])/(p2[0]-p2[1]); + sqrt1 = m1*sqrt(forSqrt1); + sqrt2 = m2*sqrt(forSqrt2); + + return + sqrt(2.0)/m*(+ inPr1*sqrt1*(vf-af) + - inPr2*sqrt2*(vf+af) + ); + } + else if ( (l1==-1)&&(l2==+1)&&(s==-1) ){ + + inPr1 = InProd_zero(p1,-1,k_1,+1); + inPr2 = InProd_zero(p2,-1,k_1,+1); + + forSqrt1 = (k_2[0]-k_2[1])/(p2[0]-p2[1]); + forSqrt2 = (k_2[0]-k_2[1])/(p1[0]-p1[1]); + sqrt1 = m2*sqrt(forSqrt1); + sqrt2 = m1*sqrt(forSqrt2); + + return + sqrt(2.0)/m*(+ inPr1*sqrt1*(vf-af) + - inPr2*sqrt2*(vf+af) + ); + } + else if ( (l1==-1)&&(l2==-1)&&(s==-1) ){ + + inPr1 = InProd_zero(p1,-1,k_1,+1); + inPr2 = InProd_zero(k_2,+1,p2,-1); + inPr3 = inPr1*inPr2; + + forSqrt1 = (k_1[0]-k_1[1])/(p1[0]-p1[1]); + forSqrt2 = (k_2[0]-k_2[1])/(p2[0]-p2[1]); + sqrt1 = sqrt(forSqrt1); + sqrt2 = sqrt(forSqrt2); + sqrt3 = m1*m2*sqrt1*sqrt2; + + return + sqrt(2.0)/m*(inPr3*(vf-af)+sqrt3*(vf+af)); + } + + else{ + + cout << " "<< endl; + cout << " TrMatrix_mass: Wrong values for l1,l2,s:"<< endl; + cout << " l1,l2 = -1,+1; s = -1,0,1 "<< endl; + cout << " "<< endl; + exit(0); + + } + +} + + + +//====================================================================== +// = +// p1,mf1,l1 = +// / = +// \/_ = +// / = +// p3,mb,l3 / = +// \/\/\/\/\/\ ------> g_(mu,1)*(1+g5_(1)) = +// \ = +// _\/ = +// \ = +// p2,mf2,l2 = +// INPUT : p1,m1,l1; p2,m2,l2; p3,m3,l3 -- momenta,mass and helicity = +// = +// OUTPUT: value of functions -- decay amplitude = +// = +//====================================================================== +complex PhotosMEforW::WDecayBornAmpKS_1ph(double p3[4],int l3,double p1[4],int l1,double p2[4],int l2){ + + double coeff; + + + coeff = sqrt(pi/alphaI/2.0)/sw; // vertex: g/2/sqrt(2) + + return coeff*TrMatrix_mass(p2,mf2,l2,p3,mb,l3,p1,-mf1,-l1); +} + + +//====================================================================== +// k,0,l = +// \ p1,mf1,l1 = +// / / = +// \ \/_ = +// / / = +// p3,mb,l3 \ / = +// \/\/\/\/\/\ ------> g_(mu,1)*(1+g5_(1)) = +// \ = +// _\/ = +// \ = +// p2,mf2,l2 = +// { + } = +// p1,mf1,l1 = +// / = +// \/_~~~~~~~ k,0,s = +// / = +// p3,mb,l3 / = +// \/\/\/\/\/\ ------> g_(mu,1)*(1+g5_(1)) = +// \ = +// _\/ = +// \ = +// p2,mf2,l2 = +// { + } = +// p1,mf1,l1 = +// / = +// \/_ = +// / = +// p3,mb,l3 / = +// \/\/\/\/\/\ ------> g_(mu,1)*(1+g5_(1)) = +// \ = +// _\/ ~~~~~~~ k,0,s = +// \ = +// p2,mf2,l2 = +// = +// all momentas, exept k are incoming !!! = +// = +// This function culculates The W-ff\gamma decay amplitude into permion= +// pair and one photon using Kleisse&Stirling method for helicity = +// amplitudes, which includes three above feynman diagramms.. = +// = +// INPUT : p1,m1,l1; p2,m2,l2; p3,m3,l3 -- momenta,mass and helicity = +// = +// OUTPUT: value of functions -- decay amplitude = +// = +//====================================================================== + +complex PhotosMEforW::WDecayAmplitudeKS_1ph(double p3[4],int l3,double p1[4],int l1,double p2[4],int l2,double k[4],int s){ + + double scalProd1,scalProd2,scalProd3,coeff; //,theta3,ph3; + complex bornAmp,TrMx1,TrMx2; + complex BSoft1,BSoft2; + + coeff = sqrt(2.0)*pi/sw/alphaI; // vertex: g/2/sqrt[2] * e + + scalProd1 = p1[0]*k[0]-p1[1]*k[1]-p1[2]*k[2]-p1[3]*k[3]; + scalProd2 = p2[0]*k[0]-p2[1]*k[1]-p2[2]*k[2]-p2[3]*k[3]; + scalProd3 = p3[0]*k[0]-p3[1]*k[1]-p3[2]*k[2]-p3[3]*k[3]; + + BSoft1 = BsFactor(s,k,p1,mf1); + BSoft2 = BsFactor(s,k,p2,mf2); + bornAmp = TrMatrix_mass(p2,mf2,l2,p3,mb,l3,p1,-mf1,-l1); + TrMx1 = complex(0.0,0.0); + TrMx2 = complex(0.0,0.0); + + for (int la1 = -1; la1< 3 ; la1+=2) { + // DO la1=-1,1,2 + TrMx1 = TrMx1 + TrMatrix_zero(k,0.0,-la1,k,s,p1,-mf1,-l1)* + TrMatrix_mass(p2,mf2,l2,p3,mb,l3,k,0.0,-la1); + TrMx2 = TrMx2 + TrMatrix_zero(p2,mf2,l2,k,s,k,0.0,la1)* + TrMatrix_mass(k,0.0,la1,p3,mb,l3,p1,-mf1,-l1); + } + + return coeff * ( + + (-(qf1/scalProd1+qb/scalProd3)*BSoft1 // IR-divergent part of amplitude + +(qf2/scalProd2-qb/scalProd3)*BSoft2)/2.0*bornAmp + // + - (qf1/scalProd1+qb/scalProd3)*TrMx1/2.0 // IR-finite part of amplitude + + (qf2/scalProd2-qb/scalProd3)*TrMx2/2.0 + ); +} + + + +//======================================================== +// The squared eikonal factor for W decay = +// into fermion pair and one photon = +// INPUT : = +// = +// OUTPUT: = +//======================================================== + +double PhotosMEforW::WDecayEikonalSqrKS_1ph(double p3[4],double p1[4],double p2[4],double k[4]){ + double spinSumAvrg; + complex wDecAmp; + + spinSumAvrg = 0.0; + for (int s = -1; s< 3 ; s+=2) { + wDecAmp = WDecayEikonalKS_1ph(p3,p1,p2,k,s); + spinSumAvrg = spinSumAvrg + real(wDecAmp*conj(wDecAmp)); + } + return spinSumAvrg; +} + +//======================================================== +// The squared eikonal factor for W decay = +// into fermion pair and one photon = +// INPUT : = +// = +// OUTPUT: = +//======================================================== + +double PhotosMEforW::WDecayBornAmpSqrKS_1ph(double p3[4],double p1[4],double p2[4]){ + double spinSumAvrg; + complex wDecAmp; + + spinSumAvrg = 0.0; + for (int l3 = -1; l3< 2 ; l3++) { + for (int l1 = -1; l1< 3 ; l1+=2) { + for (int l2 = -1; l2< 3 ; l2+=2) { + wDecAmp = WDecayBornAmpKS_1ph(p3,l3,p1,l1,p2,l2); + spinSumAvrg = spinSumAvrg + real(wDecAmp*conj(wDecAmp)); + } + } + } + return spinSumAvrg; +} + + + +//======================================================== +// The squared amplitude for W decay = +// into fermion pair and one photon = +// INPUT : = +// = +// OUTPUT: = +//======================================================== + +double PhotosMEforW::WDecayAmplitudeSqrKS_1ph(double p3[4],double p1[4],double p2[4], double k[4]){ + + double spinSumAvrg; + complex wDecAmp; + + spinSumAvrg = 0.0; + for (int l3 = -1; l3< 2 ; l3++) { + for (int l1 = -1; l1< 3 ; l1+=2) { + for (int l2 = -1; l2< 3 ; l2+=2) { + for (int s = -1; s < 3 ; s+=2) { + wDecAmp = WDecayAmplitudeKS_1ph(p3,l3,p1,l1,p2,l2,k,s); + spinSumAvrg = spinSumAvrg + real(wDecAmp*conj(wDecAmp)); + } + } + } + } + return spinSumAvrg; + + + +//$$$ +//$$$ +//$$$ +//$$$ +//$$$ +//$$$ +//$$$ +//$$$ +//$$$ +//$$$ +//$$$ +//$$$ +//$$$ +//$$$ +//$$$ +//$$$ WffGammaME.f ends above: +//$$$ +//$$$ +//$$$ +//$$$ +} + + + +//C========================================================== == +//C========================================================== == +//C these will be public for PHOTOS functions of W_ME class == +//C========================================================== == +//C========================================================== == + +double PhotosMEforW::SANC_WT(double PW[4],double PNE[4],double PMU[4],double PPHOT[4],double B_PW[4],double B_PNE[4],double B_PMU[4]){ + + + //.. Exact amplitude square + double AMPSQR=WDecayAmplitudeSqrKS_1ph(PW,PNE,PMU,PPHOT); + + double EIKONALFACTOR=WDecayBornAmpSqrKS_1ph(B_PW,B_PNE,B_PMU) + *WDecayEikonalSqrKS_1ph(PW,PNE,PMU,PPHOT); + + //.. New weight + + // cout << 'B_pne=',B_PNE << endl; + // cout << 'B_PMU=',B_PMU << endl; + // cout << 'bornie=',WDecayBornAmpSqrKS_1ph(B_PW,B_PNE,B_PMU) << endl; + + // cout << ' ' << endl; + // cout << ' pne=',pne << endl; + // cout << ' pmu=',pmu << endl; + // cout << 'pphot=',pphot << endl; + // cout << ' ' << endl; + // cout << ' b_pw=',B_PW << endl; + // cout << ' b_pne=',B_PNE << endl; + // cout << 'b_pmu=',B_PMU << endl; + + // cout << 'cori=',AMPSQR/EIKONALFACTOR,AMPSQR,EIKONALFACTOR << endl; + + return AMPSQR/EIKONALFACTOR; + // + // return (1-8*EMU*XPH*(1-COSTHG*BETA)* + // (MCHREN+2*XPH*SQRT(MPASQR))/ + // MPASQR**2/(1-MCHREN/MPASQR)/(4-MCHREN/MPASQR)) +} + + +void PhotosMEforW::SANC_INIT1(double QB0,double QF20,double MF10,double MF20,double MB0){ + qb =QB0; + qf2=QF20; + mf1=MF10; + mf2=MF20; + mb =MB0; +} + +void PhotosMEforW::SANC_INIT(double ALPHA,int PHLUN){ + + + static int SANC_MC_INIT=-123456789; + + //... Initialization of the W->l\nu\gamma + //... decay Matrix Element parameters + if (SANC_MC_INIT==-123456789){ + SANC_MC_INIT=1; + + pi=4*atan(1.0); + qf1=0.0; // neutrino charge + mf1=1.0e-10; // newutrino mass + vf=1.0; // V&A couplings + af=1.0; + alphaI=1.0/ALPHA; + cw=0.881731727; // Weak Weinberg angle + sw=0.471751166; + + + //... An auxilary K&S vectors + bet[0]= 1.0; + bet[1]= 0.0722794881816159; + bet[2]=-0.994200045099866; + bet[3]= 0.0796363353729248; + + spV[0]= 0.0; + spV[1]= 7.22794881816159e-2; + spV[2]=-0.994200045099866; + spV[3]= 7.96363353729248e-2; + + mcLUN = PHLUN; + } +} +//---------------------------------------------------------------------- +// +// PHOTOS: PHOtos Boson W correction weight +// +// Purpose: calculates correction weight due to amplitudes of +// emission from W boson. It is ecact, but not verified +// for exponentiation yet. +// +// +// +// +// Input Parameters: Common /PHOEVT/, with photon added. +// wt to be corrected +// +// +// +// Output Parameters: wt +// +// Author(s): G. Nanava, Z. Was Created at: 13/03/03 +// Last Update: 22/06/13 +// +//---------------------------------------------------------------------- +void PhotosMEforW::PHOBWnlo(double *WT){ + // FILE *PHLUN = stdout; // printouts from matrix element calculations + // directed with phlun still + int phlun=6; + double EMU,MCHREN,BETA,COSTHG,MPASQR,XPH; + double PW[4],PMU[4],PPHOT[4],PNE[4]; + double B_PW[4],B_PNE[4],B_PMU[4]; //,AMPSQR; + static int i=1; + int I,IJ,I3,I4,JJ; + double MB,MF1,MF2,QB,QF2; + // double pi,sw,cw,alphaI,qb,mb,mf1,mf2,qf1,qf2,vf,af; + + + //! write(*,*) 'IDPHOs=',IDPHO(1),IDPHO(2),IDPHO(3),IDPHO(4),IDPHO(5) + //! write(*,*) 'IDPHOs=',pho.jdahep[1-i][1-i],npho + //! write(*,*) 'hep.IDPHOs=',hep.IDhep(1),hep.IDhep(2),hep.IDhep(3),hep.IDhep(4),hep.IDhep(5) + + //-- + if(abs(pho.idhep[1-i])==24&& + abs(pho.idhep[pho.jdahep[1-i][1-i]-i ])>=11&& + abs(pho.idhep[pho.jdahep[1-i][1-i]-i ])<=16&& + abs(pho.idhep[pho.jdahep[1-i][1-i]-i+1])>=11&& + abs(pho.idhep[pho.jdahep[1-i][1-i]-i+1])<=16 ){ + + if( + abs(pho.idhep[pho.jdahep[1-i][1-i]-i ])==11|| + abs(pho.idhep[pho.jdahep[1-i][1-i]-i ])==13|| + abs(pho.idhep[pho.jdahep[1-i][1-i]-i ])==15 ){ + I=pho.jdahep[1-i][1-i]; + } + else{ + I=pho.jdahep[1-i][1-i]+1; + } + //.. muon energy + EMU=pho.phep[I-i][4-i]; + //.. muon mass square + MCHREN=fabs(pho.phep[I-i][4-i]*pho.phep[I-i][4-i]-pho.phep[I-i][3-i]*pho.phep[I-i][3-i] + -pho.phep[I-i][2-i]*pho.phep[I-i][2-i]-pho.phep[I-i][1-i]*pho.phep[I-i][1-i]); + BETA=sqrt(1- MCHREN/ pho.phep[I-i][4-i]*pho.phep[I-i][4-i]); + COSTHG=((pho.phep[I-i][3-i]*pho.phep[pho.nhep-i][3-i]+pho.phep[I-i][2-i]*pho.phep[pho.nhep-i][2-i] + +pho.phep[I-i][1-i]*pho.phep[pho.nhep-i][1-i])/ + sqrt(pho.phep[I-i][3-i]*pho.phep[I-i][3-i]+pho.phep[I-i][2-i]*pho.phep[I-i][2-i]+pho.phep[I-i][1-i]*pho.phep[I-i][1-i]) / + sqrt(pho.phep[pho.nhep-i][3-i]*pho.phep[pho.nhep-i][3-i]+pho.phep[pho.nhep-i][2-i]*pho.phep[pho.nhep-i][2-i]+pho.phep[pho.nhep-i][1-i]*pho.phep[pho.nhep-i][1-i])); + MPASQR=pho.phep[1-i][4-i]*pho.phep[1-i][4-i]; + XPH=pho.phep[pho.nhep-i][4-i]; + + //... Initialization of the W->l\nu\gamma + //... decay Matrix Element parameters + SANC_INIT(phocop_.alpha,phlun); + + + MB=pho.phep[1-i][4-i];// ! W boson mass + MF2=sqrt(MCHREN);// ! muon mass + I3=-1; + for(IJ=1;IJ<=hep.nhep;IJ++){ + if(abs(hep.idhep[IJ-i])==24){ I3=IJ;} //! position of W + } + if(I3==-1) {cout << " ERROR IN PHOBWnlo of PHOTS W-ME: I3= &2i"<0.0) QF2=-1.0; // ! lepton charge + if (hep.idhep[I4-i]<0.0) QF2=+1.0; + + + //... Particle momenta before foton radiation; effective Born level + for( JJ=1; JJ<=4;JJ++){ + B_PW [(JJ % 4)]=hep.phep[I3-i][JJ-i];// ! W boson + B_PNE[(JJ % 4)]=hep.phep[I3-i][JJ-i]-hep.phep[I4-i][JJ-i];// ! neutrino + B_PMU[(JJ % 4)]=hep.phep[I4-i][JJ-i]; // ! muon + } + + //.. Particle monenta after photon radiation + for( JJ=1; JJ<=4;JJ++){ + PW [(JJ % 4)]=pho.phep[1-i][JJ-i]; + PMU [(JJ % 4)]=pho.phep[I-i][JJ-i]; + PPHOT[(JJ % 4)]=pho.phep[pho.nhep-i][JJ-i]; + PNE [(JJ % 4)]=pho.phep[1-i][JJ-i]-pho.phep[I-i][JJ-i]-pho.phep[pho.nhep-i][JJ-i]; + } + + // two options of calculating neutrino (spectator) mass + MF1=sqrt(fabs(B_PNE[0]*B_PNE[0]*-B_PNE[1]*B_PNE[1]-B_PNE[2]*B_PNE[2]-B_PNE[3]*B_PNE[3])); + MF1=sqrt(fabs( PNE[0]*PNE[0]- PNE[1]*PNE[1]- PNE[2]*PNE[2]- PNE[3]*PNE[3])); + + SANC_INIT1(QB,QF2,MF1,MF2,MB); + *WT=(*WT)*SANC_WT(PW,PNE,PMU,PPHOT,B_PW,B_PNE,B_PMU); + } + // write(*,*) 'AMPSQR/EIKONALFACTOR= ', AMPSQR/EIKONALFACTOR +} + +} // namespace Photospp + diff --git a/TEvtGen/Photos/forW-MEc.h b/TEvtGen/Photos/forW-MEc.h new file mode 100644 index 00000000000..d4fbdbdde17 --- /dev/null +++ b/TEvtGen/Photos/forW-MEc.h @@ -0,0 +1,43 @@ +#ifndef _forW_MEc_h_included_ +#define _forW_MEc_h_included_ +#include +using std::complex; + +namespace Photospp +{ + +class PhotosMEforW +{ +public: + static void PHOBWnlo(double *WT); + +private: + static double WDecayEikonalSqrKS_1ph(double p3[4],double p1[4],double p2[4],double k[4]); + static double WDecayBornAmpSqrKS_1ph(double p3[4],double p1[4],double p2[4]); + static double WDecayAmplitudeSqrKS_1ph(double p3[4],double p1[4],double p2[4],double k[4]); + static double SANC_WT(double PW[4],double PNE[4],double PMU[4],double PPHOT[4],double B_PW[4],double B_PNE[4],double B_PMU[4]); + static void SANC_INIT1(double QB0,double QF20,double MF10,double MF20,double MB0); + static void SANC_INIT(double ALPHA,int PHLUN); + +private: + static complex InProd_zero(double p1[4],int l1,double p2[4],int l2); + static double InSqrt(double p[4],double q[4]); + static complex InProd_mass(double p1[4],double m1,int l1,double p2[4],double m2,int l2); + static complex BsFactor(int s,double k[4],double p[4],double m); + static complex WDecayEikonalKS_1ph(double p3[4],double p1[4],double p2[4],double k[4],int s); + static complex SoftFactor(int s,double k[4],double p1[4],double m1,double p2[4],double m2,double Gmass2); + static complex TrMatrix_zero(double p1[4],double m1,int l1,double k[4],int s,double p2[4],double m2,int l2); + static complex TrMatrix_mass(double p1[4],double m1,int l1,double k[4],double m,int s,double p2[4],double m2,int l2); + static complex WDecayBornAmpKS_1ph(double p3[4],int l3,double p1[4],int l1,double p2[4],int l2); + static complex WDecayAmplitudeKS_1ph(double p3[4],int l3,double p1[4],int l1,double p2[4],int l2,double k[4],int s); + +private: + // COMMON /Kleiss_Stirling/spV,bet + static double spV[4],bet[4]; + + // COMMON /mc_parameters/pi,sw,cw,alphaI,qb,mb,mf1,mf2,qf1,qf2,vf,af,mcLUN + static double pi,sw,cw,alphaI,qb,mb,mf1,mf2,qf1,qf2,vf,af,mcLUN; +}; + +} // namespace Photospp +#endif diff --git a/TEvtGen/Photos/forZ-MEc.cxx b/TEvtGen/Photos/forZ-MEc.cxx new file mode 100644 index 00000000000..20723462343 --- /dev/null +++ b/TEvtGen/Photos/forZ-MEc.cxx @@ -0,0 +1,528 @@ +#include "forZ-MEc.h" +#include "Photos.h" +#include "PhotosUtilities.h" +#include "PH_HEPEVT_Interface.h" +#include "f_Init.h" +#include +#include +#include +#include +using std::cout; +using std::endl; +using namespace Photospp; +using namespace PhotosUtilities; + +namespace Photospp +{ + +// from photosC.cxx + +extern void PHODMP(); +extern double PHINT(int idumm); +// ---------------------------------------------------------------------- +// PROVIDES ELECTRIC CHARGE AND WEAK IZOSPIN OF A FAMILY FERMION +// IDFERM=1,2,3,4 DENOTES NEUTRINO, LEPTON, UP AND DOWN QUARK +// NEGATIVE IDFERM=-1,-2,-3,-4, DENOTES ANTIPARTICLE +// IHELIC=+1,-1 DENOTES RIGHT AND LEFT HANDEDNES ( CHIRALITY) +// SIZO3 IS THIRD PROJECTION OF WEAK IZOSPIN (PLUS MINUS HALF) +// AND CHARGE IS ELECTRIC CHARGE IN UNITS OF ELECTRON CHARGE +// KOLOR IS A QCD COLOUR, 1 FOR LEPTON, 3 FOR QUARKS +// +// called by : EVENTE, EVENTM, FUNTIH, ..... +// ---------------------------------------------------------------------- + +void PhotosMEforZ::GIVIZO(int IDFERM,int IHELIC,double *SIZO3,double *CHARGE,int *KOLOR) { + // + int IH, IDTYPE, IC, LEPQUA, IUPDOW; + if (IDFERM==0 || abs(IDFERM)>4 || abs(IHELIC)!=1){ + cout << "STOP IN GIVIZO: WRONG PARAMS" << endl; + exit(0); + } + + IH =IHELIC; + IDTYPE =abs(IDFERM); + IC =IDFERM/IDTYPE; + LEPQUA=(int)(IDTYPE*0.4999999); + IUPDOW=IDTYPE-2*LEPQUA-1; + *CHARGE =(-IUPDOW+2.0/3.0*LEPQUA)*IC; + *SIZO3 =0.25*(IC-IH)*(1-2*IUPDOW); + *KOLOR=1+2*LEPQUA; + //** NOTE THAT CONVENTIONALY Z0 COUPLING IS + //** XOUPZ=(SIZO3-CHARGE*SWSQ)/SQRT(SWSQ*(1-SWSQ)) + return; +} + + +//////////////////////////////////////////////////////////////////////////// +/// // +/// This routine provides unsophisticated Born differential cross section // +/// at the crude x-section level, with Z and gamma s-chanel exchange. // +/////////////////////////////////////////////////////////////////////////// +double PhotosMEforZ::PHBORNM(double svar,double costhe,double T3e,double qe,double T3f,double qf,int NCf){ + + double s,Sw2,MZ,MZ2,GammZ,AlfInv,GFermi; // t,MW,MW2, + double Ve,Ae,thresh; // sum,deno, + double xe,yf,xf,ye,ff0,ff1,amx2,amfin,Vf,Af; + double ReChiZ,SqChiZ,RaZ; //,RaW,ReChiW,SqChiW; + double Born; //, BornS; + // int KeyZet,HadMin,KFbeam; + // int i,ke,KFfin,kf,IsGenerated,iKF; + int KeyWidFix; + + AlfInv= 137.0359895; + GFermi=1.16639e-5; + + //-------------------------------------------------------------------- + s = svar; + //------------------------------ + // EW paratemetrs taken from BornV + MZ=91.187; + GammZ=2.50072032; + Sw2=.22276773; + //------------------------------ + // Z and gamma couplings to beams (electrons) + // Z and gamma couplings to final fermions + // Loop over all flavours defined in m_xpar(400+i) + + + //------ incoming fermion + Ve= 2*T3e -4*qe*Sw2; + Ae= 2*T3e; + //------ final fermion couplings + amfin = 0.000511; // m_xpar(kf+6) + Vf = 2*T3f -4*qf*Sw2; + Af = 2*T3f; + if(fabs(costhe) > 1.0){ + cout << "+++++STOP in PHBORN: costhe>0 =" << costhe << endl; + exit(0); + } + MZ2 = MZ*MZ; + RaZ = (GFermi *MZ2 *AlfInv )/( sqrt(2.0) *8.0 *PI); // + RaZ = 1/(16.0*Sw2*(1.0-Sw2)); + KeyWidFix = 1; // fixed width + KeyWidFix = 0; // variable width + if( KeyWidFix == 0 ){ + ReChiZ=(s-MZ2)*s/((s-MZ2)*(s-MZ2)+(GammZ*s/MZ)*(GammZ*s/MZ)) *RaZ; // variable width + SqChiZ= s*s/((s-MZ2)*(s-MZ2)+(GammZ*s/MZ)*(GammZ*s/MZ)) *RaZ*RaZ; // variable width + } + else{ + ReChiZ=(s-MZ2)*s/((s-MZ2)*(s-MZ2)+(GammZ*MZ)*(GammZ*MZ)) *RaZ; // fixed width + SqChiZ= s*s/((s-MZ2)*(s-MZ2)+(GammZ*MZ)*(GammZ*MZ)) *RaZ*RaZ; // fixed width + } + xe= Ve*Ve +Ae*Ae; + xf= Vf*Vf +Af*Af; + ye= 2*Ve*Ae; + yf= 2*Vf*Af; + ff0= qe*qe*qf*qf +2*ReChiZ*qe*qf*Ve*Vf +SqChiZ*xe*xf; + ff1= +2*ReChiZ*qe*qf*Ae*Af +SqChiZ*ye*yf; + Born = (1.0+ costhe*costhe)*ff0 +2.0*costhe*ff1; + // Colour factor + Born = NCf*Born; + // Crude method of correcting threshold, cos(theta) depencence incorrect!!! + if( svar < 4.0*amfin*amfin){ + thresh=0.0; + } + else if(svar < 16.0*amfin*amfin){ + amx2=4.0*amfin*amfin/svar; + thresh=sqrt(1.0-amx2)*(1.0+amx2/2.0); + } + else{ + thresh=1.0; + } + + Born= Born*thresh; + return Born; +} + + +// ---------------------------------------------------------------------- +// THIS ROUTINE CALCULATES BORN ASYMMETRY. +// IT EXPLOITS THE FACT THAT BORN X. SECTION = A + B*C + D*C**2 +// +// called by : EVENTM +// ---------------------------------------------------------------------- +// +double PhotosMEforZ::AFBCALC(double SVAR,int IDEE,int IDFF){ + int KOLOR,KOLOR1; + double T3e,qe,T3f,qf,A,B; + GIVIZO(IDEE,-1,&T3e,&qe,&KOLOR); + GIVIZO(IDFF,-1,&T3f,&qf,&KOLOR1); + + A=PHBORNM(SVAR,0.5,T3e,qe,T3f,qf,KOLOR*KOLOR1); + B=PHBORNM(SVAR,-0.5,T3e,qe,T3f,qf,KOLOR*KOLOR1); + return (A-B)/(A+B)*5.0/2.0 *3.0/8.0; +} + + +int PhotosMEforZ::GETIDEE(int IDE){ + + int IDEE; + IDEE=-555; + if((IDE==11) || (IDE== 13) || (IDE== 15)){ + IDEE=2; + } + else if((IDE==-11) || (IDE==-13) || (IDE==-15)){ + IDEE=-2; + } + else if((IDE== 12) || (IDE== 14) || (IDE== 16)){ + IDEE=1; + } + else if((IDE==-12) || (IDE==-14) || (IDE==-16)){ + IDEE=-1; + } + else if((IDE== 1) || (IDE== 3) || (IDE== 5)){ + IDEE=4; + } + else if((IDE== -1) || (IDE== -3) || (IDE== -5)){ + IDEE=-4; + } + else if((IDE== 2) || (IDE== 4) || (IDE== 6)){ + IDEE=3; + } + else if((IDE==- 2) || (IDE== -4) || (IDE== -6)){ + IDEE=-3; + } + if(IDEE==-555) {cout << " ERROR IN GETIDEE of PHOTS Z-ME: I3= &4i"<1.0e-10 &&(pho.idhep[1-i]==22 || pho.idhep[1-i]==23)){ + + // write(*,*) 'nhep=',nhep + // DO K=1,3 ENDDO + // IF (K.EQ.1) IBREM= 1 + // IF (K.EQ.2) IBREM=-1 + // ICONT=ICONT+1 + // IBREM=IBREX ! that will be input parameter. + // IBREM=IBREY ! that IS now input parameter. + + // We initialize twice 4-vectors, here and again later after boost + // must be the same way. Important is how the reduction procedure will work. + // It seems at present that the beams must be translated to be back to back. + // this may be done after initialising, thus on 4-vectors. + + for( K=1;K<5;K++){ + PP[K-i]=pho.phep[1-i][K-i]; + PM[K-i]=pho.phep[2-i][K-i]; + QP[K-i]=pho.phep[3-i][K-i]; + QM[K-i]=pho.phep[4-i][K-i]; + PH[K-i]=pho.phep[pho.nhep-i][K-i]; + QQ[K-i]=0.0; + QQS[K-i]=QP[K-i]+QM[K-i]; + } + + + PP[4-i]=(pho.phep[1-i][4-i]+pho.phep[2-i][4-i])/2.0; + PM[4-i]=(pho.phep[1-i][4-i]+pho.phep[2-i][4-i])/2.0; + PP[3-i]= PP[4-i]; + PM[3-i]=-PP[4-i]; + + for(L=5;L<=pho.nhep-1;L++){ + for( K=1;K<5;K++){ + QQ [K-i]=QQ [K-i]+ pho.phep[L-i][K-i]; + QQS[K-i]=QQS[K-i]+ pho.phep[L-i][K-i]; + } + } + + // go to the restframe of 3 + PHOB(1,QQS,QP); + PHOB(1,QQS,QM); + PHOB(1,QQS,QQ); + ENE=(QP[4-i]+QM[4-i]+QQ[4-i])/2; + + // preserve direction of emitting particle and wipeout QQ + if (phopro_.irep==1){ + double a=sqrt(ENE*ENE-pho.phep[3-i][5-i]*pho.phep[3-i][5-i])/sqrt(QM[4-i]*QM[4-i]-pho.phep[3-i][5-i]*pho.phep[3-i][5-i]); + QM[1-i]= QM[1-i]*a; + QM[2-i]= QM[2-i]*a; + QM[3-i]= QM[3-i]*a; + QP[1-i]=-QM[1-i]; + QP[2-i]=-QM[2-i]; + QP[3-i]=-QM[3-i]; + } + else{ + double a=sqrt(ENE*ENE-pho.phep[3-i][5-i]*pho.phep[3-i][5-i])/sqrt(QP[4-i]*QP[4-i]-pho.phep[3-i][5-i]*pho.phep[3-i][5-i]); + QP[1-i]= QP[1-i]*a; + QP[2-i]= QP[2-i]*a; + QP[3-i]= QP[3-i]*a; + QM[1-i]=-QP[1-i]; + QM[2-i]=-QP[2-i]; + QM[3-i]=-QP[3-i]; + } + QP[4-i]=ENE; + QM[4-i]=ENE; + // go back to reaction frame (QQ eliminated) + PHOB(-1,QQS,QP); + PHOB(-1,QQS,QM); + PHOB(-1,QQS,QQ); + + svar=pho.phep[1-i][4-i]*pho.phep[1-i][4-i]; + + IDE=hep.idhep[1-i]; + IDF=hep.idhep[4-i]; + if(abs(hep.idhep[4-i])==abs(hep.idhep[3-i])) IDF=hep.idhep[3-i]; + + IDHEP3=pho.idhep[3-i]; + return Zphwtnlo(svar,XK,IDHEP3,phopro_.irep,QP,QM,PH,PP,PM,phophs_.costhg,phwt_.beta,phorest_.th1,IDE,IDF); + } + else{ + // in other cases we just use default setups. + return PHINT(IDUM); + } +} + +} // namespace Photospp + diff --git a/TEvtGen/Photos/forZ-MEc.h b/TEvtGen/Photos/forZ-MEc.h new file mode 100644 index 00000000000..514f7027e33 --- /dev/null +++ b/TEvtGen/Photos/forZ-MEc.h @@ -0,0 +1,23 @@ +#ifndef _forZ_MEc_h_included_ +#define _forZ_MEc_h_included_ + +namespace Photospp +{ + +class PhotosMEforZ +{ +public: + static double phwtnlo(); + +private: + static void GIVIZO(int idferm,int ihelic,double *sizo3,double *charge,int *kolor); + static double PHBORNM(double svar,double costhe,double T3e,double qe,double T3f,double qf,int Ncf); + static double AFBCALC(double SVAR,int IDEE,int IDFF); + static int GETIDEE(int IDE); + static double PHASYZ(double SVAR, int IDE, int IDF); + static double Zphwtnlo(double svar,double xk, int IDHEP3, int IREP, double qp[4], double qm[4],double ph[4], double pp[4], double pm[4], double COSTHG, double BETA, double th1, int IDE, int IDF); +}; + +} // namespace Photospp + +#endif diff --git a/TEvtGen/Photos/photosC.cxx b/TEvtGen/Photos/photosC.cxx new file mode 100644 index 00000000000..0b12581bb58 --- /dev/null +++ b/TEvtGen/Photos/photosC.cxx @@ -0,0 +1,2399 @@ +#include "Photos.h" +#include "forW-MEc.h" +#include "forZ-MEc.h" +#include "Log.h" +#include +#include +#include +#include "f_Init.h" +#include "PH_HEPEVT_Interface.h" +#include "PhotosUtilities.h" + +using std::cout; +using std::endl; +using std::max; +using namespace Photospp; +using namespace PhotosUtilities; + +namespace Photospp +{ + +// Declaration of structs defined in f_Init.h +struct PHOSTA phosta_; +struct PHLUPY phlupy_; +struct TOFROM tofrom_; +struct PHNUM phnum_; +struct PHOLUN pholun_; +struct PHOREST phorest_; +struct PHOCMS phocms_; +struct PHOMOM phomom_; +struct PHOPHS phophs_; +struct PHOCORWT phocorwt_; +struct PHOPRO phopro_; +struct PHOCOP phocop_; +struct PHWT phwt_; +struct PHOKEY phokey_; +struct PHOEXP phoexp_; + + +struct HEPEVT hep; +struct HEPEVT pho; + +/** Logical function used deep inside algorithm to check if emitted + particles are to emit. For mother it blocks the vertex, + but for daughters individually: bad sisters will not prevent electron to emit. + top quark has further exception method. */ +bool F(int m, int i) +{ + return Photos::IPHQRK_setQarknoEmission(0,i) && (i<= 41 || i>100) + && i != 21 + && i != 2101 && i !=3101 && i !=3201 + && i != 1103 && i !=2103 && i !=2203 + && i != 3103 && i !=3203 && i !=3303; +} + + +// --- can be used with VARIANT A. For B use PHINT1 or 2 -------------- +//---------------------------------------------------------------------- +// +// PHINT: PHotos universal INTerference correction weight +// +// Purpose: calculates correction weight as expressed by +// formula (17) from CPC 79 (1994), 291. +// +// Input Parameters: Common /PHOEVT/, with photon added. +// +// Output Parameters: correction weight +// +// Author(s): Z. Was, P.Golonka Created at: 19/01/05 +// Last Update: 23/06/13 +// +//---------------------------------------------------------------------- + +double PHINT(int IDUM){ + + double PHINT2; + double EPS1[4],EPS2[4],PH[4],PL[4]; + static int i=1; + int K,L; + // DOUBLE PRECISION EMU,MCHREN,BETA,phophs_.costhg,MPASQR,XPH, XC1, XC2 + double XNUM1,XNUM2,XDENO,XC1,XC2; + + // REAL*8 PHOCHA + //-- + + // Calculate polarimetric vector: ph, eps1, eps2 are orthogonal + + for( K=1;K<=4;K++){ + PH[K-i]= pho.phep[pho.nhep-i][K-i]; + EPS2[K-i]=1.0; + } + + + PHOEPS(PH,EPS2,EPS1); + PHOEPS(PH,EPS1,EPS2); + + + XNUM1=0.0; + XNUM2=0.0; + XDENO=0.0; + + for( K=pho.jdahep[1-i][1-i]; K<=pho.nhep-1;K++){ //! or jdahep[1-i][2-i] + + // momenta of charged particle in PL + + for( L=1;L<=4;L++) PL[L-i]=pho.phep[K-i][L-i]; + + // scalar products: epsilon*p/k*p + + XC1 = - PHOCHA(pho.idhep[K-i]) * + ( PL[1-i]*EPS1[1-i] + PL[2-i]*EPS1[2-i] + PL[3-i]*EPS1[3-i] ) / + ( PH[4-i]*PL[4-i] - PH[1-i]*PL[1-i] - PH[2-i]*PL[2-i] - PH[3-i]*PL[3-i] ); + + XC2 = - PHOCHA(pho.idhep[K-i]) * + ( PL[1-i]*EPS2[1-i] + PL[2-i]*EPS2[2-i] + PL[3-i]*EPS2[3-i] ) / + ( PH[4-i]*PL[4-i] - PH[1-i]*PL[1-i] - PH[2-i]*PL[2-i] - PH[3-i]*PL[3-i] ); + + + // accumulate the currents + XNUM1 = XNUM1+XC1; + XNUM2 = XNUM2+XC2; + + XDENO = XDENO + XC1*XC1 + XC2*XC2; + } + + PHINT2=(XNUM1*XNUM1 + XNUM2*XNUM2) / XDENO; + return (XNUM1*XNUM1 + XNUM2*XNUM2) / XDENO; + +} + + + +//---------------------------------------------------------------------- +// +// PHINT: PHotos INTerference (Old version kept for tests only. +// +// Purpose: Calculates interference between emission of photons from +// different possible chaged daughters stored in +// the HEP common /PHOEVT/. +// +// Input Parameter: commons /PHOEVT/ /PHOMOM/ /PHOPHS/ +// +// +// Output Parameters: +// +// +// Author(s): Z. Was, Created at: 10/08/93 +// Last Update: 15/03/99 +// +//---------------------------------------------------------------------- + +double PHINT1(int IDUM){ + + double PHINT; + + /* + DOUBLE PRECISION phomom_.mchsqr,phomom_.mnesqr + REAL*8 PNEUTR + COMMON/PHOMOM/phomom_.mchsqr,phomom_.mnesqr,PNEUTR(5) + DOUBLE PRECISION phophs_.costhg,SINTHG + REAL*8 XPHMAX,phophs_.xphoto + COMMON/PHOPHS/XPHMAX,phophs_.xphoto,phophs_.costhg,SINTHG + + */ + double MPASQR,XX,BETA; + bool IFINT; + int K,IDENT; + static int i=1; + IDENT=pho.nhep; + // + for(K=pho.jdahep[1-i][2-i]; K>=pho.jdahep[1-i][1-i];K--){ + if(pho.idhep[K-i]!=22){ + IDENT=K; + break; + } + } + + // check if there is a photon + IFINT= pho.nhep>IDENT; + // check if it is two body + gammas reaction + IFINT= IFINT && (IDENT-pho.jdahep[1-i][1-i])==1; + // check if two body was particle antiparticle + IFINT= IFINT && pho.idhep[pho.jdahep[1-i][1-i]-i] == -pho.idhep[IDENT-i]; + // check if particles were charged + IFINT= IFINT && PHOCHA(pho.idhep[IDENT-i]) != 0; + // calculates interference weight contribution + if(IFINT){ + MPASQR = pho.phep[1-i][5-i]*pho.phep[1-i][5-i]; + XX=4.0*phomom_.mchsqr/MPASQR*(1.0-phophs_.xphoto)/(1.0-phophs_.xphoto+(phomom_.mchsqr-phomom_.mnesqr)/MPASQR)/(1.0-phophs_.xphoto+(phomom_.mchsqr-phomom_.mnesqr)/MPASQR); + BETA=sqrt(1.0-XX); + PHINT = 2.0/(1.0+phophs_.costhg*phophs_.costhg*BETA*BETA); + } + else{ + PHINT = 1.0; + } + + return PHINT; +} + + +//---------------------------------------------------------------------- +// +// PHINT: PHotos INTerference +// +// Purpose: Calculates interference between emission of photons from +// different possible chaged daughters stored in +// the HEP common /PHOEVT/. +// +// Input Parameter: commons /PHOEVT/ /PHOMOM/ /PHOPHS/ +// +// +// Output Parameters: +// +// +// Author(s): Z. Was, Created at: 10/08/93 +// Last Update: +// +//---------------------------------------------------------------------- + +double PHINT2(int IDUM){ + + + /* + DOUBLE PRECISION phomom_.mchsqr,phomom_.mnesqr + REAL*8 PNEUTR + COMMON/PHOMOM/phomom_.mchsqr,phomom_.mnesqr,PNEUTR(5) + DOUBLE PRECISION phophs_.costhg,SINTHG + REAL*8 XPHMAX,phophs_.xphoto + COMMON/PHOPHS/XPHMAX,phophs_.xphoto,phophs_.costhg,SINTHG + */ + double MPASQR,XX,BETA,pq1[4],pq2[4],pphot[4]; + double SS,PP2,PP,E1,E2,q1,q2,costhe,PHINT; + bool IFINT; + int K,k,IDENT; + static int i=1; + IDENT=pho.nhep; + // + for(K=pho.jdahep[1-i][2-i]; K>=pho.jdahep[1-i][1-i];K--){ + if(pho.idhep[K-i]!=22){ + IDENT=K; + break; + } + } + + // check if there is a photon + IFINT= pho.nhep>IDENT; + // check if it is two body + gammas reaction + IFINT= IFINT&&(IDENT-pho.jdahep[1-i][1-i])==1; + // check if two body was particle antiparticle (we improve on it ! + // IFINT= IFINT.AND.pho.idhep(JDAPHO(1,1)).EQ.-pho.idhep(IDENT) + // check if particles were charged + IFINT= IFINT&&fabs(PHOCHA(pho.idhep[IDENT-i]))>0.01; + // check if they have both charge + IFINT= IFINT&&fabs(PHOCHA(pho.idhep[pho.jdahep[1-i][1-i]-i]))>0.01; + // calculates interference weight contribution + if(IFINT){ + MPASQR = pho.phep[1-i][5-i]*pho.phep[1-i][5-i]; + XX=4.0*phomom_.mchsqr/MPASQR*(1.0-phophs_.xphoto)/pow(1.-phophs_.xphoto+(phomom_.mchsqr-phomom_.mnesqr)/MPASQR,2); + BETA=sqrt(1.0-XX); + PHINT = 2.0/(1.0+phophs_.costhg*phophs_.costhg*BETA*BETA); + SS =MPASQR*(1.0-phophs_.xphoto); + PP2=((SS-phomom_.mchsqr-phomom_.mnesqr)*(SS-phomom_.mchsqr-phomom_.mnesqr)-4*phomom_.mchsqr*phomom_.mnesqr)/SS/4; + PP =sqrt(PP2); + E1 =sqrt(PP2+phomom_.mchsqr); + E2 =sqrt(PP2+phomom_.mnesqr); + PHINT= (E1+E2)*(E1+E2)/((E2+phophs_.costhg*PP)*(E2+phophs_.costhg*PP)+(E1-phophs_.costhg*PP)*(E1-phophs_.costhg*PP)); + // return PHINT; + // + q1=PHOCHA(pho.idhep[pho.jdahep[1-i][1-i]-i]); + q2=PHOCHA(pho.idhep[IDENT-i]); + for( k=1;k<=4;k++){ + pq1[k-i]=pho.phep[pho.jdahep[1-i][1-i]-i][k-i]; + pq2[k-i]=pho.phep[pho.jdahep[1-i][1-i]+1-i][k-i]; + pphot[k-i]=pho.phep[pho.nhep-i][k-i]; + } + costhe=(pphot[1-i]*pq1[1-i]+pphot[2-i]*pq1[2-i]+pphot[3-i]*pq1[3-i]); + costhe=costhe/sqrt(pq1[1-i]*pq1[1-i]+pq1[2-i]*pq1[2-i]+pq1[3-i]*pq1[3-i]); + costhe=costhe/sqrt(pphot[1-i]*pphot[1-i]+pphot[2-i]*pphot[2-i]+pphot[3-i]*pphot[3-i]); + // + // --- this IF checks whether JDAPHO(1,1) was MCH or MNE. + // --- phophs_.costhg angle (and in-generation variables) may be better choice + // --- than costhe. note that in the formulae below amplitudes were + // --- multiplied by (E2+phophs_.costhg*PP)*(E1-phophs_.costhg*PP). + if(phophs_.costhg*costhe>0){ + + PHINT= pow(q1*(E2+phophs_.costhg*PP)-q2*(E1-phophs_.costhg*PP),2)/(q1*q1*(E2+phophs_.costhg*PP)*(E2+phophs_.costhg*PP)+q2*q2*(E1-phophs_.costhg*PP)*(E1-phophs_.costhg*PP)); + } + else{ + + PHINT= pow(q1*(E1-phophs_.costhg*PP)-q2*(E2+phophs_.costhg*PP),2)/(q1*q1*(E1-phophs_.costhg*PP)*(E1-phophs_.costhg*PP)+q2*q2*(E2+phophs_.costhg*PP)*(E2+phophs_.costhg*PP)); + } + } + else{ + PHINT = 1.0; + } + return PHINT; +} + + +//***************************************************************** +//***************************************************************** +//***************************************************************** +// beginning of the class of methods reading from PH_HEPEVT +//***************************************************************** +//***************************************************************** +//***************************************************************** + + +//---------------------------------------------------------------------- +// +// PHOTOS: PHOton radiation in decays event DuMP routine +// +// Purpose: Print event record. +// +// Input Parameters: Common /PH_HEPEVT/ +// +// Output Parameters: None +// +// Author(s): B. van Eijk Created at: 05/06/90 +// Last Update: 20/06/13 +// +//---------------------------------------------------------------------- +void PHODMP(){ + + double SUMVEC[5]; + int I,J; + static int i=1; + const char eq80[81] = "================================================================================"; + const char X29[30] = " "; + const char X23[24 ]= " "; + const char X1[2] = " "; + const char X2[3] = " "; + const char X3[4] = " "; + const char X4[5] = " "; + const char X6[7] = " "; + const char X7[8] = " "; + FILE *PHLUN = stdout; + + for(I=0;I<5;I++) SUMVEC[I]=0.0; + //-- + //-- Print event number... + fprintf(PHLUN,"%s",eq80); + fprintf(PHLUN,"%s Event No.: %10i\n",X29,hep.nevhep); + fprintf(PHLUN,"%s Particle Parameters\n",X6); + fprintf(PHLUN,"%s Nr %s Type %s Parent(s) %s Daughter(s) %s Px %s Py %s Pz %s E %s Inv. M.\n",X1,X3,X3,X2,X6,X7,X7,X7,X4); + for(I=1;I<=hep.nhep;I++){ + //-- + //-- For 'stable particle' calculate vector momentum sum + if (hep.jdahep[I-i][1-i]==0){ + for(J=1; J<=4;J++){ + SUMVEC[J-i]=SUMVEC[J-i]+hep.phep[I-i][J-i]; + } + if (hep.jmohep[I-i][2-i]==0){ + fprintf(PHLUN,"%4i %7i %s %4i %s Stable %9.2f %9.2f %9.2f %9.2f %9.2f\n" , I,hep.idhep[I-i],X3,hep.jmohep[I-i][1-i],X7,hep.phep[I-i][1-i],hep.phep[I-i][2-i],hep.phep[I-i][3-i],hep.phep[I-i][4-i],hep.phep[I-i][5-i]); + } + else{ + fprintf(PHLUN,"%4i %7i %4i - %4i %s Stable %9.2f %9.2f %9.2f %9.2f %9.2f\n",I,hep.idhep[I-i],hep.jmohep[I-i][1-i],hep.jmohep[I-i][2-i], X4,hep.phep[I-i][1-i],hep.phep[I-i][2-i],hep.phep[I-i][3-i],hep.phep[I-i][4-i],hep.phep[I-i][5-i]); + } + } + else{ + if(hep.jmohep[I-i][2-i]==0){ + fprintf(PHLUN,"%4i %7i %s %4i %s %4i - %4i %9.2f %9.2f %9.2f %9.2f %9.2f\n" , I,hep.idhep[I-i],X3,hep.jmohep[I-i][1-i],X2,hep.jdahep[I-i][1-i],hep.jdahep[I-i][2-i],hep.phep[I-i][1-i],hep.phep[I-i][2-i],hep.phep[I-i][3-i],hep.phep[I-i][4-i],hep.phep[I-i][5-i]); + } + else{ + fprintf(PHLUN,"%4i %7i %4i - %4i %4i - %4i %9.2f %9.2f %9.2f %9.2f %9.2f\n", I,hep.idhep[I-i],hep.jmohep[I-i][1-i],hep.jmohep[I-i][2-i],hep.jdahep[I-i][1-i],hep.jdahep[I-i][2-i],hep.phep[I-i][1-i],hep.phep[I-i][2-i],hep.phep[I-i][3-i],hep.phep[I-i][4-i],hep.phep[I-i][5-i]); + } + } + } + SUMVEC[5-i]=sqrt(SUMVEC[4-i]*SUMVEC[4-i]-SUMVEC[1-i]*SUMVEC[1-i]-SUMVEC[2-i]*SUMVEC[2-i]-SUMVEC[3-i]*SUMVEC[3-i]); + fprintf(PHLUN,"%s Vector Sum: %9.2f %9.2f %9.2f %9.2f %9.2f\n",X23,SUMVEC[1-i],SUMVEC[2-i],SUMVEC[3-i],SUMVEC[4-i],SUMVEC[5-i]); + + + + +// 9030 FORMAT(1H ,I4,I7,3X,I4,9X,'Stable',2X,5F9.2) +//"%4i %7i %s %4i %s Stable %s %9.2f %9.2f %9.2f %9.2f %9.2f " X3,9X,X2 + + // 9050 FORMAT(1H ,I4,I7,3X,I4,6X,I4,' - ',I4,5F9.2) + //"%4i %7i %s %4i %s %4i - %4i %9.2f %9.2f %9.2f %9.2f %9.2f " X3,X6 + + + + + //"%4i %7i %4i - %4i %s Stable %s %9.2f %9.2f %9.2f %9.2f %9.2f " X5,X2 + + + //9060 FORMAT(1H ,I4,I7,I4,' - ',I4,2X,I4,' - ',I4,5F9.2) + //"%4i %7i %4i - %4i %s %4i - %4i %9.2f %9.2f %9.2f %9.2f %9.2f " X2, +} + + + +//---------------------------------------------------------------------- +// +// PHLUPAB: debugging tool +// +// Purpose: NONE, eventually may printout content of the +// /PH_HEPEVT/ common +// +// Input Parameters: Common /PH_HEPEVT/ and /PHNUM/ +// latter may have number of the event. +// +// Output Parameters: None +// +// Author(s): Z. Was Created at: 30/05/93 +// Last Update: 20/06/13 +// +//---------------------------------------------------------------------- + +void PHLUPAB(int IPOINT){ + char name[12] = "/PH_HEPEVT/"; + int I,J; + static int IPOIN0=-5; + static int i=1; + double SUM[5]; + FILE *PHLUN = stdout; + + if (IPOIN0<0){ + IPOIN0=400000; // ! maximal no-print point + phlupy_.ipoin =IPOIN0; + phlupy_.ipoinm=400001; // ! minimal no-print point + } + + if (IPOINT<=phlupy_.ipoinm||IPOINT>=phlupy_.ipoin ) return; + if ((int)phnum_.iev<1000){ + for(I=1; I<=5;I++) SUM[I-i]=0.0; + + fprintf(PHLUN,"EVENT NR= %i WE ARE TESTING %s at IPOINT=%i \n",(int)phnum_.iev,name,IPOINT); + fprintf(PHLUN," ID p_x p_y p_z E m ID-MO_DA1 ID-MO_DA2\n"); + I=1; + fprintf(PHLUN,"%4i %14.9f %14.9f %14.9f %14.9f %14.9f %9i %9i\n", hep.idhep[I-i],hep.phep[1-i][I-i],hep.phep[2-i][I-i],hep.phep[3-i][I-i],hep.phep[4-i][I-i],hep.phep[5-i][I-i],hep.jdahep[1-i][I-i],hep.jdahep[2-i][I-i]); + I=2; + fprintf(PHLUN,"%4i %14.9f %14.9f %14.9f %14.9f %14.9f %9i %9i\n", hep.idhep[I-i],hep.phep[1-i][I-i],hep.phep[2-i][I-i],hep.phep[3-i][I-i],hep.phep[4-i][I-i],hep.phep[5-i][I-i],hep.jdahep[1-i][I-i],hep.jdahep[2-i][I-i]); + fprintf(PHLUN," \n"); + for(I=3;I<=hep.nhep;I++){ + fprintf(PHLUN,"%4i %14.9f %14.9f %14.9f %14.9f %14.9f %9i %9i\n", hep.idhep[I-i],hep.phep[1-i][I-i],hep.phep[2-i][I-i],hep.phep[3-i][I-i],hep.phep[4-i][I-i],hep.phep[5-i][I-i],hep.jmohep[1-i][I-i],hep.jmohep[2-i][I-i]); + for(J=1;J<=4;J++) SUM[J-i]=SUM[J-i]+hep.phep[J-i][I-i]; + } + + + SUM[5-i]=sqrt(fabs(SUM[4-i]*SUM[4-i]-SUM[1-i]*SUM[1-i]-SUM[2-i]*SUM[2-i]-SUM[3-i]*SUM[3-i])); + fprintf(PHLUN," SUM %14.9f %14.9f %14.9f %14.9f %14.9f\n",SUM[1-i],SUM[2-i],SUM[3-i],SUM[4-i],SUM[5-i]); + + } + + + // 10 FORMAT(1X,' ID ','p_x ','p_y ','p_z ', + //$ 'E ','m ', + //$ 'ID-MO_DA1','ID-MO DA2' ) + // 20 FORMAT(1X,I4,5(F14.9),2I9) + //"%i4 %14.9f %14.9f %14.9f %14.9f %i9 i9" + // 30 FORMAT(1X,' SUM',5(F14.9)) +} + + + + + + + + + +//---------------------------------------------------------------------- +// +// PHLUPA: debugging tool +// +// Purpose: NONE, eventually may printout content of the +// /PHOEVT/ common +// +// Input Parameters: Common /PHOEVT/ and /PHNUM/ +// latter may have number of the event. +// +// Output Parameters: None +// +// Author(s): Z. Was Created at: 30/05/93 +// Last Update: 21/06/13 +// +//---------------------------------------------------------------------- + +void PHLUPA(int IPOINT){ + char name[9] = "/PHOEVT/"; + int I,J; + static int IPOIN0=-5; + static int i=1; + double SUM[5]; + FILE *PHLUN = stdout; + + if (IPOIN0<0){ + IPOIN0=400000; // ! maximal no-print point + phlupy_.ipoin =IPOIN0; + phlupy_.ipoinm=400001; // ! minimal no-print point + } + + if (IPOINT<=phlupy_.ipoinm||IPOINT>=phlupy_.ipoin ) return; + if ((int)phnum_.iev<1000){ + for(I=1; I<=5;I++) SUM[I-i]=0.0; + + fprintf(PHLUN,"EVENT NR= %i WE ARE TESTING %s at IPOINT=%i \n",(int)phnum_.iev,name,IPOINT); + fprintf(PHLUN," ID p_x p_y p_z E m ID-MO_DA1 ID-MO_DA2\n"); + I=1; + fprintf(PHLUN,"%4i %14.9f %14.9f %14.9f %14.9f %14.9f %9i %9i\n", pho.idhep[I-i],pho.phep[1-i][I-i],pho.phep[2-i][I-i],pho.phep[3-i][I-i],pho.phep[4-i][I-i],pho.phep[5-i][I-i],pho.jdahep[1-i][I-i],pho.jdahep[2-i][I-i]); + I=2; + fprintf(PHLUN,"%4i %14.9f %14.9f %14.9f %14.9f %14.9f %9i %9i\n", pho.idhep[I-i],pho.phep[1-i][I-i],pho.phep[2-i][I-i],pho.phep[3-i][I-i],pho.phep[4-i][I-i],pho.phep[5-i][I-i],pho.jdahep[1-i][I-i],pho.jdahep[2-i][I-i]); + fprintf(PHLUN," \n"); + for(I=3;I<=pho.nhep;I++){ + fprintf(PHLUN,"%4i %14.9f %14.9f %14.9f %14.9f %14.9f %9i %9i\n", pho.idhep[I-i],pho.phep[1-i][I-i],pho.phep[2-i][I-i],pho.phep[3-i][I-i],pho.phep[4-i][I-i],pho.phep[5-i][I-i],pho.jmohep[1-i][I-i],pho.jmohep[2-i][I-i]); + for(J=1;J<=4;J++) SUM[J-i]=SUM[J-i]+pho.phep[J-i][I-i]; + } + + + SUM[5-i]=sqrt(fabs(SUM[4-i]*SUM[4-i]-SUM[1-i]*SUM[1-i]-SUM[2-i]*SUM[2-i]-SUM[3-i]*SUM[3-i])); + fprintf(PHLUN," SUM %14.9f %14.9f %14.9f %14.9f %14.9f\n",SUM[1-i],SUM[2-i],SUM[3-i],SUM[4-i],SUM[5-i]); + + } + + + // 10 FORMAT(1X,' ID ','p_x ','p_y ','p_z ', + //$ 'E ','m ', + //$ 'ID-MO_DA1','ID-MO DA2' ) + // 20 FORMAT(1X,I4,5(F14.9),2I9) + //"%4i %14.9f %14.9f %14.9f %14.9f %9i %9i" + // 30 FORMAT(1X,' SUM',5(F14.9)) +} + + +void PHOtoRF(){ + + + // COMMON /PH_TOFROM/ QQ[4],XM,th1,fi1 + double PP[4],RR[4]; + + int K,L; + static int i=1; + + for(K=1;K<=4;K++){ + tofrom_.QQ[K-i]=0.0; + } + for( L=hep.jdahep[hep.jmohep[hep.nhep-i][1-i]-i][1-i];L<=hep.jdahep[hep.jmohep[hep.nhep-i][1-i]-i][2-i];L++){ + for(K=1;K<=4;K++){ + tofrom_.QQ[K-i]=tofrom_.QQ[K-i]+hep.phep[L-i][K-i]; + } + } + tofrom_.XM =tofrom_.QQ[4-i]*tofrom_.QQ[4-i]-tofrom_.QQ[3-i]*tofrom_.QQ[3-i]-tofrom_.QQ[2-i]*tofrom_.QQ[2-i]-tofrom_.QQ[1-i]*tofrom_.QQ[1-i]; + if(tofrom_.XM>0.0) tofrom_.XM=sqrt(tofrom_.XM); + if(tofrom_.XM<=0.0) return; + + for(L=1;L<=hep.nhep;L++){ + for(K=1;K<=4;K++){ + PP[K-i]=hep.phep[L-i][K-i]; + } + bostdq(1,tofrom_.QQ,PP,RR); + for(K=1;K<=4;K++){ + hep.phep[L-i][K-i]=RR[K-i]; + } + } + + tofrom_.fi1=0.0; + tofrom_.th1=0.0; + if(fabs(hep.phep[1-i][1-i])+fabs(hep.phep[1-i][2-i])>0.0) tofrom_.fi1=PHOAN1(hep.phep[1-i][1-i],hep.phep[1-i][2-i]); + if(fabs(hep.phep[1-i][1-i])+fabs(hep.phep[1-i][2-i])+fabs(hep.phep[1-i][3-i])>0.0) + tofrom_.th1=PHOAN2(hep.phep[1-i][3-i],sqrt(hep.phep[1-i][1-i]*hep.phep[1-i][1-i]+hep.phep[1-i][2-i]*hep.phep[1-i][2-i])); + + for(L=1;L<=hep.nhep;L++){ + for(K=1;K<=4;K++){ + RR[K-i]=hep.phep[L-i][K-i]; + } + + PHORO3(-tofrom_.fi1,RR); + PHORO2(-tofrom_.th1,RR); + for(K=1;K<=4;K++){ + hep.phep[L-i][K-i]=RR[K-i]; + } + } + + return; +} + +void PHOtoLAB(){ + + // // REAL*8 QQ(4),XM,th1,fi1 + // COMMON /PH_TOFROM/ QQ,XM,th1,fi1 + double PP[4],RR[4]; + int K,L; + static int i=1; + + if(tofrom_.XM<=0.0) return; + + + for(L=1;L<=hep.nhep;L++){ + for(K=1;K<=4;K++){ + PP[K-i]=hep.phep[L-i][K-i]; + } + + PHORO2( tofrom_.th1,PP); + PHORO3( tofrom_.fi1,PP); + bostdq(-1,tofrom_.QQ,PP,RR); + + for(K=1;K<=4;K++){ + hep.phep[L-i][K-i]=RR[K-i]; + } + } + return; +} + + + + + +// 2) GENERAL INTERFACE: +// PHOTOS_GET +// PHOTOS_MAKE + + +// COMMONS: +// NAME USED IN SECT. # OF OC// Comment +// PHOQED 1) 2) 3 Flags whether emisson to be gen. +// PHOLUN 1) 4) 6 Output device number +// PHOCOP 1) 3) 4 photon coupling & min energy +// PHPICO 1) 3) 4) 5 PI & 2*PI +// PHSEED 1) 4) 3 RN seed +// PHOSTA 1) 4) 3 Status information +// PHOKEY 1) 2) 3) 7 Keys for nonstandard application +// PHOVER 1) 1 Version info for outside +// HEPEVT 2) 2 PDG common +// PH_HEPEVT2) 8 PDG common internal +// PHOEVT 2) 3) 10 PDG branch +// PHOIF 2) 3) 2 emission flags for PDG branch +// PHOMOM 3) 5 param of char-neutr system +// PHOPHS 3) 5 photon momentum parameters +// PHOPRO 3) 4 var. for photon rep. (in branch) +// PHOCMS 2) 3 parameters of boost to branch CMS +// PHNUM 4) 1 event number from outside +//---------------------------------------------------------------------- + + +//---------------------------------------------------------------------- +// +// PHOTOS_MAKE: General search routine +// +// Purpose: Search through the /PH_HEPEVT/ standard HEP common, sta- +// rting from the IPPAR-th particle. Whenevr branching +// point is found routine PHTYPE(IP) is called. +// Finally if calls on PHTYPE(IP) modified entries, common +// /PH_HEPEVT/ is ordered. +// +// Input Parameter: IPPAR: Pointer to decaying particle in +// /PH_HEPEVT/ and the common itself, +// +// Output Parameters: Common /PH_HEPEVT/, either with or without +// new particles added. +// +// Author(s): Z. Was, B. van Eijk Created at: 26/11/89 +// Last Update: 30/08/93 +// +//---------------------------------------------------------------------- + +void PHOTOS_MAKE_C(int IPARR){ + static int i=1; + int IPPAR,I,J,NLAST,MOTHER; + + //-- + PHLUPAB(3); + + // write(*,*) 'at poczatek' + // PHODMP(); + IPPAR=abs(IPARR); + //-- Store pointers for cascade treatement... + NLAST=hep.nhep; + + + //-- + //-- Check decay multiplicity and minimum of correctness.. + if ((hep.jdahep[IPPAR-i][1-i]==0)||(hep.jmohep[hep.jdahep[IPPAR-i][1-i]-i][1-i]!=IPPAR)) return; + + PHOtoRF(); + + // write(*,*) 'at przygotowany' + // PHODMP(); + + //-- + //-- single branch mode + //-- IPPAR is original position where the program was called + + //-- let-s do generation + PHTYPE(IPPAR); + + + //-- rearrange /PH_HEPEVT/ for added particles. + //-- at present this may be not needed as information + //-- is set at HepMC level. + if (hep.nhep>NLAST){ + for(I=NLAST+1;I<=hep.nhep;I++){ + //-- + //-- Photon mother and vertex... + MOTHER=hep.jmohep[I-i][1-i]; + hep.jdahep[MOTHER-i][2-i]=I; + for( J=1;J<=4;J++){ + hep.vhep[I-i][J-i]=hep.vhep[I-1-i][J-i]; + } + } + } + // write(*,*) 'at po dzialaniu ' + // PHODMP(); + PHOtoLAB(); + // write(*,*) 'at koniec' + // PHODMP(); + return; +} + + + + +//---------------------------------------------------------------------- +// +// PHCORK: corrects kinmatics of subbranch needed if host program +// produces events with the shaky momentum conservation +// +// Input Parameters: Common /PHOEVT/, MODCOR +// MODCOR >0 type of action +// =1 no action +// =2 corrects energy from mass +// =3 corrects mass from energy +// =4 corrects energy from mass for +// particles up to .4 GeV mass, +// for heavier ones corrects mass, +// =5 most complete correct also of mother +// often necessary for exponentiation. +// =0 execution mode +// +// Output Parameters: corrected /PHOEVT/ +// +// Author(s): P.Golonka, Z. Was Created at: 01/02/99 +// Modified : 07/07/13 +//---------------------------------------------------------------------- + +void PHCORK(int MODCOR){ + + double M,P2,PX,PY,PZ,E,EN,XMS; + int I,K; + FILE *PHLUN = stdout; + + + static int MODOP=0; + static int IPRINT=0; + static double MCUT=0.4; + static int i=1; + + if(MODCOR !=0){ + // INITIALIZATION + MODOP=MODCOR; + + fprintf(PHLUN,"Message from PHCORK(MODCOR):: initialization\n"); + if(MODOP==1) fprintf(PHLUN,"MODOP=1 -- no corrections on event: DEFAULT\n"); + else if(MODOP==2) fprintf(PHLUN,"MODOP=2 -- corrects Energy from mass\n"); + else if(MODOP==3) fprintf(PHLUN,"MODOP=3 -- corrects mass from Energy\n"); + else if(MODOP==4){ + fprintf(PHLUN,"MODOP=4 -- corrects Energy from mass to Mcut\n"); + fprintf(PHLUN," and mass from energy above Mcut\n"); + fprintf(PHLUN," Mcut=%6.3f GeV",MCUT); + } + else if(MODOP==5) fprintf(PHLUN,"MODOP=5 -- corrects Energy from mass+flow\n"); + + else{ + fprintf(PHLUN,"PHCORK wrong MODCOR=%4i\n",MODCOR); + exit(0); + } + return; + } + + if(MODOP==0&&MODCOR==0){ + fprintf(PHLUN,"PHCORK lack of initialization\n"); + exit(0); + } + + // execution mode + // ============== + // ============== + + + PX=0.0; + PY=0.0; + PZ=0.0; + E =0.0; + + if (MODOP==1){ + // ----------------------- + // In this case we do nothing + return; + } + else if(MODOP==2){ + // ----------------------- + // lets loop thru all daughters and correct their energies + // according to E^2=p^2+m^2 + + for( I=3;I<=pho.nhep;I++){ + + PX=PX+pho.phep[I-i][1-i]; + PY=PY+pho.phep[I-i][2-i]; + PZ=PZ+pho.phep[I-i][3-i]; + + P2=pho.phep[I-i][1-i]*pho.phep[I-i][1-i]+pho.phep[I-i][2-i]*pho.phep[I-i][2-i]+pho.phep[I-i][3-i]*pho.phep[I-i][3-i]; + + EN=sqrt( pho.phep[I-i][5-i]*pho.phep[I-i][5-i] + P2); + + if (IPRINT==1)fprintf(PHLUN,"CORRECTING ENERGY OF %6i: %14.9f => %14.9f\n",I,pho.phep[I-i][4-i],EN); + + pho.phep[I-i][4-i]=EN; + E = E+pho.phep[I-i][4-i]; + + } + } + + else if (MODOP==5){ + // ----------------------- + //C lets loop thru all daughters and correct their energies + //C according to E^2=p^2+m^2 + + for( I=3;I<=pho.nhep;I++){ + PX=PX+pho.phep[I-i][1-i]; + PY=PY+pho.phep[I-i][2-i]; + PZ=PZ+pho.phep[I-i][3-i]; + + P2=pho.phep[I-i][1-i]*pho.phep[I-i][1-i]+pho.phep[I-i][2-i]*pho.phep[I-i][2-i]+pho.phep[I-i][3-i]*pho.phep[I-i][3-i]; + + EN=sqrt( pho.phep[I-i][5-i]*pho.phep[I-i][5-i] + P2); + + if (IPRINT==1)fprintf(PHLUN,"CORRECTING ENERGY OF %6i: %14.9f => %14.9f\n",I,pho.phep[I-i][4-i],EN); + + pho.phep[I-i][4-i]=EN; + E = E+pho.phep[I-i][4-i]; + + } + for( K=1;K<=4;K++){ + pho.phep[1-i][K-i]=0.0; + for( I=3;I<=pho.nhep;I++){ + pho.phep[1-i][K-i]=pho.phep[1-i][K-i]+pho.phep[I-i][K-i]; + } + } + XMS=sqrt(pho.phep[1-i][4-i]*pho.phep[1-i][4-i]-pho.phep[1-i][3-i]*pho.phep[1-i][3-i]-pho.phep[1-i][2-i]*pho.phep[1-i][2-i]-pho.phep[1-i][1-i]*pho.phep[1-i][1-i]); + pho.phep[1-i][5-i]=XMS; + } + else if(MODOP==3){ + // ----------------------- + + // lets loop thru all daughters and correct their masses + // according to E^2=p^2+m^2 + + for (I=3;I<=pho.nhep;I++){ + + PX=PX+pho.phep[I-i][1-i]; + PY=PY+pho.phep[I-i][2-i]; + PZ=PZ+pho.phep[I-i][3-i]; + E = E+pho.phep[I-i][4-i]; + + P2=pho.phep[I-i][1-i]*pho.phep[I-i][1-i]+pho.phep[I-i][2-i]*pho.phep[I-i][2-i]+pho.phep[I-i][3-i]*pho.phep[I-i][3-i]; + + M=sqrt(fabs( pho.phep[I-i][4-i]*pho.phep[I-i][4-i] - P2)); + + if (IPRINT==1) fprintf(PHLUN,"CORRECTING MASS OF %6i: %14.9f => %14.9f\n",I,pho.phep[I-i][5-i],M); + + pho.phep[I-i][5-i]=M; + + } + + } + else if(MODOP==4){ + // ----------------------- + + // lets loop thru all daughters and correct their masses + // or energies according to E^2=p^2+m^2 + + for (I=3;I<=pho.nhep;I++){ + + PX=PX+pho.phep[I-i][1-i]; + PY=PY+pho.phep[I-i][2-i]; + PZ=PZ+pho.phep[I-i][3-i]; + P2=pho.phep[I-i][1-i]*pho.phep[I-i][1-i]+pho.phep[I-i][2-i]*pho.phep[I-i][2-i]+pho.phep[I-i][3-i]*pho.phep[I-i][3-i]; + M=sqrt(fabs( pho.phep[I-i][4-i]*pho.phep[I-i][4-i] - P2)); + + + if(M>MCUT){ + if(IPRINT==1) fprintf(PHLUN,"CORRECTING MASS OF %6i: %14.9f => %14.9f\n",I,pho.phep[I-i][5-i],M); + pho.phep[I-i][5-i]=M; + E = E+pho.phep[I-i][4-i]; + } + else{ + + EN=sqrt( pho.phep[I-i][5-i]*pho.phep[I-i][5-i] + P2); + if(IPRINT==1) fprintf(PHLUN,"CORRECTING ENERGY OF %6i: %14.9f =>% 14.9f\n",I ,pho.phep[I-i][4-i],EN); + + pho.phep[I-i][4-i]=EN; + E = E+pho.phep[I-i][4-i]; + } + + + } + } + + // ----- + + if(IPRINT==1){ + fprintf(PHLUN,"CORRECTING MOTHER"); + fprintf(PHLUN,"PX:%14.9f =>%14.9f",pho.phep[1-i][1-i],PX-pho.phep[2-i][1-i]); + fprintf(PHLUN,"PY:%14.9f =>%14.9f",pho.phep[1-i][2-i],PY-pho.phep[2-i][2-i]); + fprintf(PHLUN,"PZ:%14.9f =>%14.9f",pho.phep[1-i][3-i],PZ-pho.phep[2-i][3-i]); + fprintf(PHLUN," E:%14.9f =>%14.9f",pho.phep[1-i][4-i], E-pho.phep[2-i][4-i]); + } + + pho.phep[1-i][1-i]=PX-pho.phep[2-i][1-i]; + pho.phep[1-i][2-i]=PY-pho.phep[2-i][2-i]; + pho.phep[1-i][3-i]=PZ-pho.phep[2-i][3-i]; + pho.phep[1-i][4-i]=E -pho.phep[2-i][4-i]; + + + P2=pho.phep[1-i][1-i]*pho.phep[1-i][1-i]+pho.phep[1-i][2-i]*pho.phep[1-i][2-i]+pho.phep[1-i][3-i]*pho.phep[1-i][3-i]; + if(pho.phep[1-i][4-i]*pho.phep[1-i][4-i]>P2){ + M=sqrt(pho.phep[1-i][4-i]*pho.phep[1-i][4-i] - P2 ); + if(IPRINT==1)fprintf(PHLUN," M: %14.9f => %14.9f\n",pho.phep[1-i][5-i],M); + pho.phep[1-i][5-i]=M; + } + + PHLUPA(25); + +} + + + + + + +//---------------------------------------------------------------------- +// +// PHOTOS: PHOton radiation in decays DOing of KINematics +// +// Purpose: Starting from the charged particle energy/momentum, +// PNEUTR, photon energy fraction and photon angle with +// respect to the axis formed by charged particle energy/ +// momentum vector and PNEUTR, scale the energy/momentum, +// keeping the original direction of the neutral system in +// the lab. frame untouched. +// +// Input Parameters: IP: Pointer to decaying particle in +// /PHOEVT/ and the common itself +// NCHARB: pointer to the charged radiating +// daughter in /PHOEVT/. +// NEUDAU: pointer to the first neutral daughter +// Output Parameters: Common /PHOEVT/, with photon added. +// +// Author(s): Z. Was, B. van Eijk Created at: 26/11/89 +// Last Update: 27/05/93 +// +//---------------------------------------------------------------------- + +void PHODO(int IP,int NCHARB,int NEUDAU){ + static int i=1; + double QNEW,QOLD,EPHOTO,PMAVIR; + double GNEUT,DATA; + double CCOSTH,SSINTH,PVEC[4],PARNE; + double TH3,FI3,TH4,FI4,FI5,ANGLE; + int I,J,FIRST,LAST; + + //-- + EPHOTO=phophs_.xphoto*pho.phep[IP-i][5-i]/2.0; + PMAVIR=sqrt(pho.phep[IP-i][5-i]*(pho.phep[IP-i][5-i]-2.0*EPHOTO)); + //-- + //-- Reconstruct kinematics of charged particle and neutral system + phorest_.fi1=PHOAN1(phomom_.pneutr[1-i],phomom_.pneutr[2-i]); + //-- + //-- Choose axis along z of PNEUTR, calculate angle between x and y + //-- components and z and x-y plane and perform Lorentz transform... + phorest_.th1=PHOAN2(phomom_.pneutr[3-i],sqrt(phomom_.pneutr[1-i]*phomom_.pneutr[1-i]+phomom_.pneutr[2-i]*phomom_.pneutr[2-i])); + PHORO3(-phorest_.fi1,phomom_.pneutr); + PHORO2(-phorest_.th1,phomom_.pneutr); + //-- + //-- Take away photon energy from charged particle and PNEUTR ! Thus + //-- the onshell charged particle decays into virtual charged particle + //-- and photon. The virtual charged particle mass becomes: + //-- SQRT(pho.phep[5,IP)*(pho.phep[5,IP)-2*EPHOTO)). Construct new PNEUTR mo- + //-- mentum in the rest frame of the parent: + //-- 1) Scaling parameters... + QNEW=PHOTRI(PMAVIR,phomom_.pneutr[5-i],pho.phep[NCHARB-i][5-i]); + QOLD=phomom_.pneutr[3-i]; + GNEUT=(QNEW*QNEW+QOLD*QOLD+phomom_.mnesqr)/(QNEW*QOLD+sqrt((QNEW*QNEW+phomom_.mnesqr)*(QOLD*QOLD+phomom_.mnesqr))); + if(GNEUT<1.0){ + DATA=0.0; + PHOERR(4,"PHOKIN",DATA); + } + PARNE=GNEUT-sqrt(max(GNEUT*GNEUT-1.0,0.0)); + //-- + //-- 2) ...reductive boost... + PHOBO3(PARNE,phomom_.pneutr); + //-- + //-- ...calculate photon energy in the reduced system... + pho.nhep=pho.nhep+1; + pho.isthep[pho.nhep-i]=1; + pho.idhep[pho.nhep-i] =22; + //-- Photon mother and daughter pointers ! + pho.jmohep[pho.nhep-i][1]=IP; + pho.jmohep[pho.nhep-i][2]=0; + pho.jdahep[pho.nhep-i][1]=0; + pho.jdahep[pho.nhep-i][2]=0; + pho.phep[pho.nhep-i][4-i]=EPHOTO*pho.phep[IP-i][5-i]/PMAVIR; + //-- + //-- ...and photon momenta + CCOSTH=-phophs_.costhg; + SSINTH=phophs_.sinthg; + TH3=PHOAN2(CCOSTH,SSINTH); + FI3=TWOPI*Photos::randomDouble(); + pho.phep[pho.nhep-i][1-i]=pho.phep[pho.nhep-i][4-i]*phophs_.sinthg*cos(FI3); + pho.phep[pho.nhep-i][2-i]=pho.phep[pho.nhep-i][4-i]*phophs_.sinthg*sin(FI3); + //-- + //-- Minus sign because axis opposite direction of charged particle ! + pho.phep[pho.nhep-i][3-i]=-pho.phep[pho.nhep-i][4-i]*phophs_.costhg; + pho.phep[pho.nhep-i][5-i]=0.0; + //-- + //-- Rotate in order to get photon along z-axis + PHORO3(-FI3,phomom_.pneutr); + PHORO3(-FI3,pho.phep[pho.nhep-i]); + PHORO2(-TH3,phomom_.pneutr); + PHORO2(-TH3,pho.phep[pho.nhep-i]); + ANGLE=EPHOTO/pho.phep[pho.nhep-i][4-i]; + //-- + //-- Boost to the rest frame of decaying particle + PHOBO3(ANGLE,phomom_.pneutr); + PHOBO3(ANGLE,pho.phep[pho.nhep-i]); + //-- + //-- Back in the parent rest frame but PNEUTR not yet oriented ! + FI4=PHOAN1(phomom_.pneutr[1-i],phomom_.pneutr[2-i]); + TH4=PHOAN2(phomom_.pneutr[3-i],sqrt(phomom_.pneutr[1-i]*phomom_.pneutr[1-i]+phomom_.pneutr[2-i]*phomom_.pneutr[2-i])); + PHORO3(FI4,phomom_.pneutr); + PHORO3(FI4,pho.phep[pho.nhep-i]); + //-- + for(I=2; I<=4;I++) PVEC[I-i]=0.0; + PVEC[1-i]=1.0; + + PHORO3(-FI3,PVEC); + PHORO2(-TH3,PVEC); + PHOBO3(ANGLE,PVEC); + PHORO3(FI4,PVEC); + PHORO2(-TH4,phomom_.pneutr); + PHORO2(-TH4,pho.phep[pho.nhep-i]); + PHORO2(-TH4,PVEC); + FI5=PHOAN1(PVEC[1-i],PVEC[2-i]); + //-- + //-- Charged particle restores original direction + PHORO3(-FI5,phomom_.pneutr); + PHORO3(-FI5,pho.phep[pho.nhep-i]); + PHORO2(phorest_.th1,phomom_.pneutr); + PHORO2(phorest_.th1,pho.phep[pho.nhep-i]); + PHORO3(phorest_.fi1,phomom_.pneutr); + PHORO3(phorest_.fi1,pho.phep[pho.nhep-i]); + //-- See whether neutral system has multiplicity larger than 1... + + if((pho.jdahep[IP-i][2-i]-pho.jdahep[IP-i][1-i])>1){ + //-- Find pointers to components of 'neutral' system + //-- + FIRST=NEUDAU; + LAST=pho.jdahep[IP-i][2-i]; + for(I=FIRST;I<=LAST;I++){ + if(I!=NCHARB && ( pho.jmohep[I-i][1-i]==IP)){ + //-- + //-- Reconstruct kinematics... + PHORO3(-phorest_.fi1,pho.phep[I-i]); + PHORO2(-phorest_.th1,pho.phep[I-i]); + //-- + //-- ...reductive boost + PHOBO3(PARNE,pho.phep[I-i]); + //-- + //-- Rotate in order to get photon along z-axis + PHORO3(-FI3,pho.phep[I-i]); + PHORO2(-TH3,pho.phep[I-i]); + //-- + //-- Boost to the rest frame of decaying particle + PHOBO3(ANGLE,pho.phep[I-i]); + //-- + //-- Back in the parent rest-frame but PNEUTR not yet oriented. + PHORO3(FI4,pho.phep[I-i]); + PHORO2(-TH4,pho.phep[I-i]); + //-- + //-- Charged particle restores original direction + PHORO3(-FI5,pho.phep[I-i]); + PHORO2(phorest_.th1,pho.phep[I-i]); + PHORO3(phorest_.fi1,pho.phep[I-i]); + } + } + } + else{ + //-- + // ...only one 'neutral' particle in addition to photon! + for(J=1;J<=4;J++) pho.phep[NEUDAU-i][J-i]=phomom_.pneutr[J-i]; + } + //-- + //-- All 'neutrals' treated, fill /PHOEVT/ for charged particle... + for (J=1;J<=3;J++) pho.phep[NCHARB-i][J-i]=-(pho.phep[pho.nhep-i][J-i]+phomom_.pneutr[J-i]); + pho.phep[NCHARB-i][4-i]=pho.phep[IP-i][5-i]-(pho.phep[pho.nhep-i][4-i]+phomom_.pneutr[4-i]); + //-- +} + + +//---------------------------------------------------------------------- +// +// PHOTOS: PHOtos Boson W correction weight +// +// Purpose: calculates correction weight due to amplitudes of +// emission from W boson. +// +// +// +// +// +// Input Parameters: Common /PHOEVT/, with photon added. +// wt to be corrected +// +// +// +// Output Parameters: wt +// +// Author(s): G. Nanava, Z. Was Created at: 13/03/03 +// Last Update: 08/07/13 +// +//---------------------------------------------------------------------- + +void PHOBW(double *WT){ + static int i=1; + int I; + double EMU,MCHREN,BETA,COSTHG,MPASQR,XPH; + //-- + if(abs(pho.idhep[1-i])==24 && + abs(pho.idhep[pho.jdahep[1-i][1-i]-i]) >=11 && + abs(pho.idhep[pho.jdahep[1-i][1-i]-i]) <=16 && + abs(pho.idhep[pho.jdahep[1-i][1-i]+1-i])>=11 && + abs(pho.idhep[pho.jdahep[1-i][1-i]+1-i])<=16 ){ + + if( + abs(pho.idhep[pho.jdahep[1-i][1-i]-i])==11 || + abs(pho.idhep[pho.jdahep[1-i][1-i]-i])==13 || + abs(pho.idhep[pho.jdahep[1-i][1-i]-i])==15 ){ + I=pho.jdahep[1-i][1-i]; + } + else{ + I=pho.jdahep[1-i][1-i]+1; + } + + EMU=pho.phep[I-i][4-i]; + MCHREN=fabs(pow(pho.phep[I-i][4-i],2)-pow(pho.phep[I-i][3-i],2) + -pow(pho.phep[I-i][2-i],2)-pow(pho.phep[I-i][1-i],2)); + BETA=sqrt(1.0- MCHREN/ pho.phep[I-i][4-i]/pho.phep[I-i][4-i]); + COSTHG=(pho.phep[I-i][3-i]*pho.phep[pho.nhep-i][3-i]+pho.phep[I-i][2-i]*pho.phep[pho.nhep-i][2-i] + +pho.phep[I-i][1-i]*pho.phep[pho.nhep-i][1-i])/ + sqrt(pho.phep[I-i][3-i]*pho.phep[I-i][3-i]+pho.phep[I-i][2-i]*pho.phep[I-i][2-i]+pho.phep[I-i][1-i]*pho.phep[I-i][1-i])/ + sqrt(pho.phep[pho.nhep-i][3-i]*pho.phep[pho.nhep-i][3-i]+pho.phep[pho.nhep-i][2-i]*pho.phep[pho.nhep-i][2-i]+pho.phep[pho.nhep-i][1-i]*pho.phep[pho.nhep-i][1-i]); + MPASQR=pho.phep[1-i][4-i]*pho.phep[1-i][4-i]; + XPH=pho.phep[pho.nhep-i][4-i]; + *WT=(*WT)*(1-8*EMU*XPH*(1-COSTHG*BETA)* + (MCHREN+2*XPH*sqrt(MPASQR))/ + (MPASQR*MPASQR)/(1-MCHREN/MPASQR)/(4-MCHREN/MPASQR)); + } + // write(*,*) pho.idhep[1),pho.idhep[pho.jdahep[1,1)),pho.idhep[pho.jdahep[1,1)+1) + // write(*,*) emu,xph,costhg,beta,mpasqr,mchren + +} + + + +//---------------------------------------------------------------------- +// +// PHOTOS: PHOton radiation in decays control FACtor +// +// Purpose: This is the control function for the photon spectrum and +// final weighting. It is called from PHOENE for genera- +// ting the raw photon energy spectrum (MODE=0) and in PHO- +// COR to scale the final weight (MODE=1). The factor con- +// sists of 3 terms. Addition of the factor FF which mul- +// tiplies PHOFAC for MODE=0 and divides PHOFAC for MODE=1, +// does not affect the results for the MC generation. An +// appropriate choice for FF can speed up the calculation. +// Note that a too small value of FF may cause weight over- +// flow in PHOCOR and will generate a warning, halting the +// execution. PRX should be included for repeated calls +// for the same event, allowing more particles to radiate +// photons. At the first call IREP=0, for more than 1 +// charged decay products, IREP >= 1. Thus, PRSOFT (no +// photon radiation probability in the previous calls) +// appropriately scales the strength of the bremsstrahlung. +// +// Input Parameters: MODE, PROBH, XF +// +// Output Parameter: Function value +// +// Author(s): S. Jadach, Z. Was Created at: 01/01/89 +// B. van Eijk, P.Golonka Last Update: 09/07/13 +// +//---------------------------------------------------------------------- + +double PHOFAC(int MODE){ + static double FF=0.0,PRX=0.0; + + if(phokey_.iexp) return 1.0; // In case of exponentiation this routine is useles + + if(MODE==-1){ + PRX=1.0; + FF=1.0; + phopro_.probh=0.0; + } + else if (MODE==0){ + if(phopro_.irep==0) PRX=1.0; + PRX=PRX/(1.0-phopro_.probh); + FF=1.0; + //-- + //-- Following options are not considered for the time being... + //-- (1) Good choice, but does not save very much time: + //-- FF=(1.0-sqrt(phopro_.xf)/2.0)/(1.0+sqrt(phopro_.xf)/2.0) + //-- (2) Taken from the blue, but works without weight overflows... + //-- FF=(1.0-phopro_.xf/(1-pow((1-sqrt(phopro_.xf)),2)))*(1+(1-sqrt(phopro_.xf))/sqrt(1-phopro_.xf))/2.0 + return FF*PRX; + } + else{ + return 1.0/FF; + } + + return NAN; +} + + + +// ###### +// replace with, +// ###### + +//---------------------------------------------------------------------- +// +// PHOTOS: PHOton radiation in decays CORrection weight from +// matrix elements This version for spin 1/2 is verified for +// W decay only +// Purpose: Calculate photon angle. The reshaping functions will +// have to depend on the spin S of the charged particle. +// We define: ME = 2 * S + 1 ! +// THIS IS POSSIBLY ALWAYS BETTER THAN PHOCOR() +// +// Input Parameters: MPASQR: Parent mass squared, +// MCHREN: Renormalised mass of charged system, +// ME: 2 * spin + 1 determines matrix element +// +// Output Parameter: Function value. +// +// Author(s): Z. Was, B. van Eijk, G. Nanava Created at: 26/11/89 +// Last Update: 01/11/12 +// +//---------------------------------------------------------------------- + +double PHOCORN(double MPASQR,double MCHREN,int ME){ + double wt1,wt2,wt3; + double beta0,beta1,XX,YY,DATA; + double S1,PHOCOR; + + + + //-- + //-- Shaping (modified by ZW)... + XX=4.0*phomom_.mchsqr/MPASQR*(1.0-phophs_.xphoto)/pow(1.0-phophs_.xphoto+(phomom_.mchsqr-phomom_.mnesqr)/MPASQR,2); + if(ME==1){ + S1=MPASQR * (1.0-phophs_.xphoto); + beta0=2*PHOTRI(1.0,sqrt(phomom_.mchsqr/MPASQR),sqrt(phomom_.mnesqr/MPASQR)); + beta1=2*PHOTRI(1.0,sqrt(phomom_.mchsqr/S1),sqrt(phomom_.mnesqr/S1)); + wt1= (1.0-phophs_.costhg*sqrt(1.0-MCHREN)) + /((1.0+pow(1.0-phophs_.xphoto/phophs_.xphmax,2))/2.0)*phophs_.xphoto; // de-presampler + + wt2= beta1/beta0*phophs_.xphoto; //phase space jacobians + wt3= beta1*beta1* (1.0-phophs_.costhg*phophs_.costhg) * (1.0-phophs_.xphoto)/phophs_.xphoto/phophs_.xphoto + /pow(1.0 +phomom_.mchsqr/S1-phomom_.mnesqr/S1-beta1*phophs_.costhg,2)/2.0; // matrix element + } + else if (ME==2){ + S1=MPASQR * (1.0-phophs_.xphoto); + beta0=2*PHOTRI(1.0,sqrt(phomom_.mchsqr/MPASQR),sqrt(phomom_.mnesqr/MPASQR)); + beta1=2*PHOTRI(1.0,sqrt(phomom_.mchsqr/S1),sqrt(phomom_.mnesqr/S1)); + wt1= (1.0-phophs_.costhg*sqrt(1.0-MCHREN)) + /((1.0+pow(1.0-phophs_.xphoto/phophs_.xphmax,2))/2.0)*phophs_.xphoto; // de-presampler + + wt2= beta1/beta0*phophs_.xphoto; // phase space jacobians + + wt3= beta1*beta1* (1.0-phophs_.costhg*phophs_.costhg) * (1.0-phophs_.xphoto)/phophs_.xphoto/phophs_.xphoto // matrix element + /pow(1.0 +phomom_.mchsqr/S1-phomom_.mnesqr/S1-beta1*phophs_.costhg,2)/2.0 ; + wt3=wt3*(1-phophs_.xphoto/phophs_.xphmax+0.5*pow(phophs_.xphoto/phophs_.xphmax,2))/(1-phophs_.xphoto/phophs_.xphmax); + // print*,"wt3=",wt3 + phocorwt_.phocorwt3=wt3; + phocorwt_.phocorwt2=wt2; + phocorwt_.phocorwt1=wt1; + + // YY=0.5D0*(1.D0-phophs_.xphoto/phophs_.xphmax+1.D0/(1.D0-phophs_.xphoto/phophs_.xphmax)) + // phwt_.beta=SQRT(1.D0-XX) + // wt1=(1.D0-phophs_.costhg*SQRT(1.D0-MCHREN))/(1.D0-phophs_.costhg*phwt_.beta) + // wt2=(1.D0-XX/YY/(1.D0-phwt_.beta**2*phophs_.costhg**2))*(1.D0+phophs_.costhg*phwt_.beta)/2.D0 + // wt3=1.D0 + } + else if ((ME==3) || (ME==4) || (ME==5)){ + YY=1.0; + phwt_.beta=sqrt(1.0-XX); + wt1=(1.0-phophs_.costhg*sqrt(1.0-MCHREN))/(1.0-phophs_.costhg*phwt_.beta); + wt2=(1.0-XX/YY/(1.0-phwt_.beta*phwt_.beta*phophs_.costhg*phophs_.costhg))*(1.0+phophs_.costhg*phwt_.beta)/2.0; + wt3=(1.0+pow(1.0-phophs_.xphoto/phophs_.xphmax,2)-pow(phophs_.xphoto/phophs_.xphmax,3))/ + (1.0+pow(1.0-phophs_.xphoto/phophs_.xphmax,2)); + } + else{ + DATA=(ME-1.0)/2.0; + PHOERR(6,"PHOCORN",DATA); + YY=1.0; + phwt_.beta=sqrt(1.0-XX); + wt1=(1.0-phophs_.costhg*sqrt(1.0-MCHREN))/(1.0-phophs_.costhg*phwt_.beta); + wt2=(1.0-XX/YY/(1.0-phwt_.beta*phwt_.beta*phophs_.costhg*phophs_.costhg))*(1.0+phophs_.costhg*phwt_.beta)/2.0; + wt3=1.0; + } + wt2=wt2*PHOFAC(1); + PHOCOR=wt1*wt2*wt3; + + phopro_.corwt=PHOCOR; + if(PHOCOR>1.0){ + DATA=PHOCOR; + PHOERR(3,"PHOCOR",DATA); + } + return PHOCOR; +} + + + + + +//---------------------------------------------------------------------- +// +// PHOTOS: PHOton radiation in decays CORrection weight from +// matrix elements +// +// Purpose: Calculate photon angle. The reshaping functions will +// have to depend on the spin S of the charged particle. +// We define: ME = 2 * S + 1 ! +// +// Input Parameters: MPASQR: Parent mass squared, +// MCHREN: Renormalised mass of charged system, +// ME: 2 * spin + 1 determines matrix element +// +// Output Parameter: Function value. +// +// Author(s): Z. Was, B. van Eijk Created at: 26/11/89 +// Last Update: 21/03/93 +// +//---------------------------------------------------------------------- + +double PHOCOR(double MPASQR,double MCHREN,int ME){ + double XX,YY,DATA; + double PHOC; + int IscaNLO; + + //-- + //-- Shaping (modified by ZW)... + XX=4.0*phomom_.mchsqr/MPASQR*(1.0-phophs_.xphoto)/pow((1.0-phophs_.xphoto+(phomom_.mchsqr-phomom_.mnesqr)/MPASQR),2); + if(ME==1){ + YY=1.0; + phwt_.wt3=(1.0-phophs_.xphoto/phophs_.xphmax)/((1.0+pow((1.0-phophs_.xphoto/phophs_.xphmax),2))/2.0); + } + else if(ME==2){ + YY=0.5*(1.0-phophs_.xphoto/phophs_.xphmax+1.0/(1.0-phophs_.xphoto/phophs_.xphmax)); + phwt_.wt3=1.0; + } + else if((ME==3)||(ME==4)||(ME==5)){ + YY=1.0; + phwt_.wt3=(1.0+pow(1.0-phophs_.xphoto/phophs_.xphmax,2)-pow(phophs_.xphoto/phophs_.xphmax,3))/ + (1.0+pow(1.0-phophs_.xphoto/phophs_.xphmax,2) ); + } + else{ + DATA=(ME-1.0)/2.0; + PHOERR(6,"PHOCOR",DATA); + YY=1.0; + phwt_.wt3=1.0; + } + + + phwt_.beta=sqrt(1.0-XX); + phwt_.wt1=(1.0-phophs_.costhg*sqrt(1.0-MCHREN))/(1.0-phophs_.costhg*phwt_.beta); + phwt_.wt2=(1.0-XX/YY/(1.0-phwt_.beta*phwt_.beta*phophs_.costhg*phophs_.costhg))*(1.0+phophs_.costhg*phwt_.beta)/2.0; + + + IscaNLO=Photos::meCorrectionWtForScalar; ///// @@@@@ + if(ME==1 && IscaNLO ==1){ // this switch NLO in scalar decays. + // overrules default calculation. + // Need tests including basic ones + PHOC=PHOCORN(MPASQR,MCHREN,ME); + phwt_.wt1=1.0; + phwt_.wt2=1.0; + phwt_.wt3=PHOC; + } + else{ + phwt_.wt2=phwt_.wt2*PHOFAC(1); + } + PHOC=phwt_.wt1*phwt_.wt2*phwt_.wt3; + + phopro_.corwt=PHOC; + if(PHOC>1.0){ + DATA=PHOC; + PHOERR(3,"PHOCOR",DATA); + } + return PHOC; +} + + +//---------------------------------------------------------------------- +// +// PHOTWO: PHOtos but TWO mothers allowed +// +// Purpose: Combines two mothers into one in /PHOEVT/ +// necessary eg in case of g g (q qbar) --> t tbar +// +// Input Parameters: Common /PHOEVT/ (/PHOCMS/) +// +// Output Parameters: Common /PHOEVT/, (stored mothers) +// +// Author(s): Z. Was Created at: 5/08/93 +// Last Update:10/08/93 +// +//---------------------------------------------------------------------- + +void PHOTWO(int MODE){ + + int I; + static int i=1; + double MPASQR; + bool IFRAD; + // logical IFRAD is used to tag cases when two mothers may be + // merged to the sole one. + // So far used in case: + // 1) of t tbar production + // + // t tbar case + if(MODE==0){ + IFRAD=(pho.idhep[1-i]==21) && (pho.idhep[2-i]==21); + IFRAD=IFRAD || (pho.idhep[1-i]==-pho.idhep[2-i] && abs(pho.idhep[1-i])<=6); + IFRAD=IFRAD && (abs(pho.idhep[3-i])==6) && (abs(pho.idhep[4-i])==6); + MPASQR= pow(pho.phep[1-i][4-i]+pho.phep[2-i][4-i],2)-pow(pho.phep[1-i][3-i]+pho.phep[2-i][3-i],2) + -pow(pho.phep[1-i][2-i]+pho.phep[2-i][2-i],2)-pow(pho.phep[1-i][1-i]+pho.phep[2-i][1-i],2); + IFRAD=IFRAD && (MPASQR>0.0); + if(IFRAD){ + //.....combining first and second mother + for(I=1;I<=4;I++){ + pho.phep[1-i][I-i]=pho.phep[1-i][I-i]+pho.phep[2-i][I-i]; + } + pho.phep[1-i][5-i]=sqrt(MPASQR); + //.....removing second mother, + for(I=1;I<=5;I++){ + pho.phep[2-i][I-i]=0.0; + } + } + } + else{ + // boosting of the mothers to the reaction frame not implemented yet. + // to do it in mode 0 original mothers have to be stored in new comon (?) + // and in mode 1 boosted to cms. + } +} + + + +//---------------------------------------------------------------------- +// +// PHOTOS: PHOtos CDE-s +// +// Purpose: Keep definitions for PHOTOS QED correction Monte Carlo. +// +// Input Parameters: None +// +// Output Parameters: None +// +// Author(s): Z. Was, B. van Eijk Created at: 29/11/89 +// Last Update: 10/08/93 +// +// ========================================================= +// General Structure Information: = +// ========================================================= +//: ROUTINES: +// 1) INITIALIZATION (all in C++ now) +// 2) GENERAL INTERFACE: +// PHOBOS +// PHOIN +// PHOTWO (specific interface +// PHOOUT +// PHOCHK +// PHTYPE (specific interface +// PHOMAK (specific interface +// 3) QED PHOTON GENERATION: +// PHINT +// PHOBW +// PHOPRE +// PHOOMA +// PHOENE +// PHOCOR +// PHOFAC +// PHODO +// 4) UTILITIES: +// PHOTRI +// PHOAN1 +// PHOAN2 +// PHOBO3 +// PHORO2 +// PHORO3 +// PHOCHA +// PHOSPI +// PHOERR +// PHOREP +// PHLUPA +// PHCORK +// IPHQRK +// IPHEKL +// COMMONS: +// NAME USED IN SECT. # OF OC// Comment +// PHOQED 1) 2) 3 Flags whether emisson to be gen. +// PHOLUN 1) 4) 6 Output device number +// PHOCOP 1) 3) 4 photon coupling & min energy +// PHPICO 1) 3) 4) 5 PI & 2*PI +// PHOSTA 1) 4) 3 Status information +// PHOKEY 1) 2) 3) 7 Keys for nonstandard application +// PHOVER 1) 1 Version info for outside +// HEPEVT 2) 2 PDG common +// PH_HEPEVT2) 8 PDG common internal +// PHOEVT 2) 3) 10 PDG branch +// PHOIF 2) 3) 2 emission flags for PDG branch +// PHOMOM 3) 5 param of char-neutr system +// PHOPHS 3) 5 photon momentum parameters +// PHOPRO 3) 4 var. for photon rep. (in branch) +// PHOCMS 2) 3 parameters of boost to branch CMS +// PHNUM 4) 1 event number from outside +//---------------------------------------------------------------------- + + +//---------------------------------------------------------------------- +// +// PHOIN: PHOtos INput +// +// Purpose: copies IP branch of the common /PH_HEPEVT/ into /PHOEVT/ +// moves branch into its CMS system. +// +// Input Parameters: IP: pointer of particle starting branch +// to be copied +// BOOST: Flag whether boost to CMS was or was +// . replace stri not performed. +// +// Output Parameters: Commons: /PHOEVT/, /PHOCMS/ +// +// Author(s): Z. Was Created at: 24/05/93 +// Last Update: 16/11/93 +// +//---------------------------------------------------------------------- +void PHOIN(int IP,bool *BOOST,int nhep0){ + int FIRST,LAST,I,LL,IP2,J,NA; + double PB; + static int i=1; + + //-- + // let-s calculate size of the little common entry + FIRST=hep.jdahep[IP-i][1-i]; + LAST =hep.jdahep[IP-i][2-i]; + pho.nhep=3+LAST-FIRST+hep.nhep-nhep0; + pho.nevhep=pho.nhep; + + // let-s take in decaying particle + pho.idhep[1-i]=hep.idhep[IP-i]; + pho.jdahep[1-i][1-i]=3; + pho.jdahep[1-i][2-i]=3+LAST-FIRST; + for(I=1;I<=5;I++) pho.phep[1-i][I-i]=hep.phep[IP-i][I-i]; + + // let-s take in eventual second mother + IP2=hep.jmohep[hep.jdahep[IP-i][1-i]-i][2-i]; + if((IP2!=0) && (IP2!=IP)){ + pho.idhep[2-i]=hep.idhep[IP2-i]; + pho.jdahep[2-i][1-i]=3; + pho.jdahep[2-i][2-i]=3+LAST-FIRST; + for(I=1;I<=5;I++) + pho.phep[2-i][I-i]=hep.phep[IP2-i][I-i]; + } + else{ + pho.idhep[2-i]=0; + for(I=1;I<=5;I++) pho.phep[2-i][I-i]=0.0; + } + + // let-s take in daughters + for(LL=0;LL<=LAST-FIRST;LL++){ + pho.idhep[3+LL-i]=hep.idhep[FIRST+LL-i]; + pho.jmohep[3+LL-i][1-i]=hep.jmohep[FIRST+LL-i][1-i]; + if(hep.jmohep[FIRST+LL-i][1-i]==IP) pho.jmohep[3+LL-i][1-i]=1; + for(I=1;I<=5;I++) pho.phep[3+LL-i][I-i]=hep.phep[FIRST+LL-i][I-i]; + + } + if(hep.nhep>nhep0){ + // let-s take in illegitimate daughters + NA=3+LAST-FIRST; + for(LL=1;LL<=hep.nhep-nhep0;LL++){ + pho.idhep[NA+LL-i]=hep.idhep[nhep0+LL-i]; + pho.jmohep[NA+LL-i][1-i]=hep.jmohep[nhep0+LL-i][1-i]; + if(hep.jmohep[nhep0+LL-i][1-i]==IP) pho.jmohep[NA+LL-i][1-i]=1; + for(I=1;I<=5;I++) pho.phep[NA+LL-i][I-i]=hep.phep[nhep0+LL-i][I-i]; + + } + //-- there is hep.nhep-nhep0 daugters more. + pho.jdahep[1-i][2-i]=3+LAST-FIRST+hep.nhep-nhep0; + } + if (pho.idhep[pho.nhep-i]==22) PHLUPA(100001); + // if (pho.idhep[pho.nhep-i]==22) exit(0); + PHCORK(0); + if(pho.idhep[pho.nhep-i]==22) PHLUPA(100002); + + // special case of t tbar production process + if(phokey_.iftop) PHOTWO(0); + *BOOST=false; + + //-- Check whether parent is in its rest frame... + // ZBW ND 27.07.2009: + // bug reported by Vladimir Savinov localized and fixed. + // protection against rounding error was back-firing if soft + // momentum of mother was physical. Consequence was that PHCORK was + // messing up masses of final state particles in vertex of the decay. + // Only configurations with previously generated photons of energy fraction + // smaller than 0.0001 were affected. Effect was numerically insignificant. + + // IF ( (ABS(pho.phep[4,1)-pho.phep[5,1)).GT.pho.phep[5,1)*1.D-8) + // $ .AND.(pho.phep[5,1).NE.0)) THEN + + if((fabs(pho.phep[1-i][1-i]+fabs(pho.phep[1-i][2-i])+fabs(pho.phep[1-i][3-i]))> + pho.phep[1-i][5-i]*1.E-8) && (pho.phep[1-i][5-i]!=0)){ + + *BOOST=true; + //PHOERR(404,"PHOIN",1.0); // we need to improve this warning: program should never + // enter this place + // may be exit(0); + //-- + //-- Boost daughter particles to rest frame of parent... + //-- Resultant neutral system already calculated in rest frame ! + for(J=1;J<=3;J++) phocms_.bet[J-i]=-pho.phep[1-i][J-i]/pho.phep[1-i][5-i]; + phocms_.gam=pho.phep[1-i][4-i]/pho.phep[1-i][5-i]; + for(I=pho.jdahep[1-i][1-i];I<=pho.jdahep[1-i][2-i];I++){ + PB=phocms_.bet[1-i]*pho.phep[I-i][1-i]+phocms_.bet[2-i]*pho.phep[I-i][2-i]+phocms_.bet[3-i]*pho.phep[I-i][3-i]; + for(J=1;J<=3;J++) pho.phep[I-i][J-i]=pho.phep[I-i][J-i]+phocms_.bet[J-i]*(pho.phep[I-i][4-i]+PB/(phocms_.gam+1.0)); + pho.phep[I-i][4-i]=phocms_.gam*pho.phep[I-i][4-i]+PB; + } + //-- Finally boost mother as well + I=1; + PB=phocms_.bet[1-i]*pho.phep[I-i][1-i]+phocms_.bet[2-i]*pho.phep[I-i][2-i]+phocms_.bet[3-i]*pho.phep[I-i][3-i]; + for(J=1;J<=3;J++) pho.phep[I-i][J-i]=pho.phep[I-i][J-i]+phocms_.bet[J-i]*(pho.phep[I-i][4-i]+PB/(phocms_.gam+1.0)); + + pho.phep[I-i][4-i]=phocms_.gam*pho.phep[I-i][4-i]+PB; + } + + + // special case of t tbar production process + if(phokey_.iftop) PHOTWO(1); + PHLUPA(2); + if(pho.idhep[pho.nhep-i]==22) PHLUPA(10000); + //if (pho.idhep[pho.nhep-1-i]==22) exit(0); // this is probably form very old times ... + return; +} + + +//---------------------------------------------------------------------- +// +// PHOOUT: PHOtos OUTput +// +// Purpose: copies back IP branch of the common /PH_HEPEVT/ from +// /PHOEVT/ moves branch back from its CMS system. +// +// Input Parameters: IP: pointer of particle starting branch +// to be given back. +// BOOST: Flag whether boost to CMS was or was +// . not performed. +// +// Output Parameters: Common /PHOEVT/, +// +// Author(s): Z. Was Created at: 24/05/93 +// Last Update: +// +//---------------------------------------------------------------------- +void PHOOUT(int IP, bool BOOST, int nhep0){ + int LL,FIRST,LAST,I; + int NN,J,K,NA; + double PB; + static int i=1; + if(pho.nhep==pho.nevhep) return; + //-- When parent was not in its rest-frame, boost back... + PHLUPA(10); + if (BOOST){ + PHOERR(404,"PHOOUT",1.0); // we need to improve this warning: program should never + // enter this place + + for (J=pho.jdahep[1-i][1-i];J<=pho.jdahep[1-i][2-i];J++){ + PB=-phocms_.bet[1-i]*pho.phep[J-i][1-i]-phocms_.bet[2-i]*pho.phep[J-i][2-i]-phocms_.bet[3-i]*pho.phep[J-i][3-i]; + for(K=1;K<=3;K++) pho.phep[J-i][K-i]=pho.phep[J-i][K-i]-phocms_.bet[K-i]*(pho.phep[J-i][4-i]+PB/(phocms_.gam+1.0)); + pho.phep[J-i][4-i]=phocms_.gam*pho.phep[J-i][4-i]+PB; + } + + //-- ...boost photon, or whatever else has shown up + for(NN=pho.nevhep+1;NN<=pho.nhep;NN++){ + PB=-phocms_.bet[1-i]*pho.phep[NN-i][1-i]-phocms_.bet[2-i]*pho.phep[NN-i][2-i]-phocms_.bet[3-i]*pho.phep[NN-i][3-i]; + for(K=1;K<=3;K++) pho.phep[NN-i][K-i]=pho.phep[NN-i][K-i]-phocms_.bet[K-i]*(pho.phep[NN-i][4-i]+PB/(phocms_.gam+1.0)); + pho.phep[NN-i][4-i]=phocms_.gam*pho.phep[NN][4-i]+PB; + } + } + PHCORK(0); // we have to use it because it clears input + // for grandaughters modified in C++ + FIRST=hep.jdahep[IP-i][1-i]; + LAST =hep.jdahep[IP-i][2-i]; + // let-s take in original daughters + for(LL=0;LL<=LAST-FIRST;LL++){ + hep.idhep[FIRST+LL-i] = pho.idhep[3+LL-i]; + for(I=1;I<=5;I++) hep.phep[FIRST+LL-i][I-i] = pho.phep[3+LL-i][I-i]; + } + + // let-s take newcomers to the end of HEPEVT. + NA=3+LAST-FIRST; + for (LL=1;LL<=pho.nhep-NA;LL++){ + hep.idhep[nhep0+LL-i] = pho.idhep[NA+LL-i]; + hep.isthep[nhep0+LL-i]=pho.isthep[NA+LL-i]; + hep.jmohep[nhep0+LL-i][1-i]=IP; + hep.jmohep[nhep0+LL-i][2-i]=hep.jmohep[hep.jdahep[IP-i][1-i]-i][2-i]; + hep.jdahep[nhep0+LL-i][1-i]=0; + hep.jdahep[nhep0+LL-i][2-i]=0; + for(I=1;I<=5;I++) hep.phep[nhep0+LL-i][I-i] = pho.phep[NA+LL-i][I-i]; + } + hep.nhep=hep.nhep+pho.nhep-pho.nevhep; + PHLUPA(20); + return; +} + +//---------------------------------------------------------------------- +// +// PHOCHK: checking branch. +// +// Purpose: checks whether particles in the common block /PHOEVT/ +// can be served by PHOMAK. +// JFIRST is the position in /PH_HEPEVT/ (!) of the first +// daughter of sub-branch under action. +// +// +// Author(s): Z. Was Created at: 22/10/92 +// Last Update: 11/12/00 +// +//---------------------------------------------------------------------- +// ******************** + +void PHOCHK(int JFIRST){ + + int IDABS,NLAST,I; + bool IFRAD; + int IDENT,K; + static int i=1, IPPAR=1; + + NLAST = pho.nhep; + // + + for (I=IPPAR;I<=NLAST;I++){ + IDABS = abs(pho.idhep[I-i]); + // possibly call on PHZODE is a dead (to be omitted) code. + pho.qedrad[I-i]= F(0,IDABS) && F(0,abs(pho.idhep[1-i])) + && (pho.idhep[2-i]==0); + + if(I>2) pho.qedrad[I-i]=pho.qedrad[I-i] && hep.qedrad[JFIRST+I-IPPAR-2-i]; + } + + //-- + // now we go to special cases, where pho.qedrad[I) will be overwritten + //-- + IDENT=pho.nhep; + if(phokey_.iftop){ + // special case of top pair production + for(K=pho.jdahep[1-i][2-i];K>=pho.jdahep[1-i][1-i];K--){ + if(pho.idhep[K-i]!=22){ + IDENT=K; + break; // from loop over K + } + } + + IFRAD=((pho.idhep[1-i]==21) && (pho.idhep[2-i]== 21)) + || ((abs(pho.idhep[1-i])<=6) && (pho.idhep[2-i]==(-pho.idhep[1-i]))); + IFRAD=IFRAD + && (abs(pho.idhep[3-i])==6)&& (pho.idhep[4-i]==(-pho.idhep[3-i])) + && (IDENT==4); + if(IFRAD){ + for(I=IPPAR;I<=NLAST;I++){ + pho.qedrad[I-i]= true; + if(I>2) pho.qedrad[I-i]=pho.qedrad[I-i] && hep.qedrad[JFIRST+I-IPPAR-2-i]; + } + } + } + //-- + //-- + if(phokey_.iftop){ + // special case of top decay + for (K=pho.jdahep[1-i][2-i];K>=pho.jdahep[1-i][1-i];K--){ + if(pho.idhep[K-i]!=22){ + IDENT=K; + break; + } + } + IFRAD=((abs(pho.idhep[1-i])==6) && (pho.idhep[2-i]==0)); + IFRAD=IFRAD + && ((abs(pho.idhep[3-i])==24) &&(abs(pho.idhep[4-i])== 5) + || (abs(pho.idhep[3-i])== 5) &&(abs(pho.idhep[4-i])==24) ) + && (IDENT==4); + + if(IFRAD){ + for(I=IPPAR;I<=NLAST;I++){ + pho.qedrad[I-i]= true; + if(I>2) pho.qedrad[I-i] = (pho.qedrad[I-i] && hep.qedrad[JFIRST+I-IPPAR-2-i]); + } + } + } + //-- + //-- + return; +} + + + +//---------------------------------------------------------------------- +// +// PHOTOS: PHOton radiation in decays calculation of photon ENErgy +// fraction +// +// Purpose: Subroutine returns photon energy fraction (in (parent +// mass)/2 units) for the decay bremsstrahlung. +// +// Input Parameters: MPASQR: Mass of decaying system squared, +// XPHCUT: Minimum energy fraction of photon, +// XPHMAX: Maximum energy fraction of photon. +// +// Output Parameter: MCHREN: Renormalised mass squared, +// BETA: Beta factor due to renormalisation, +// XPHOTO: Photon energy fraction, +// XF: Correction factor for PHOFA// +// +// Author(s): S. Jadach, Z. Was Created at: 01/01/89 +// B. van Eijk, P.Golonka Last Update: 11/07/13 +// +//---------------------------------------------------------------------- + +void PHOENE(double MPASQR,double *pMCHREN,double *pBETA,double *pBIGLOG,int IDENT){ + double DATA; + double PRSOFT,PRHARD; + double PRKILL,RRR; + int K,IDME; + double PRSUM; + static int i=1; + double &MCHREN = *pMCHREN; + double &BETA = *pBETA; + double &BIGLOG = *pBIGLOG; + //-- + if(phophs_.xphmax<=phocop_.xphcut){ + BETA=PHOFAC(-1); // to zero counter, here beta is dummy + phophs_.xphoto=0.0; + return; + } + //-- Probabilities for hard and soft bremstrahlung... + MCHREN=4.0* phomom_.mchsqr/MPASQR/pow(1.0+ phomom_.mchsqr/MPASQR,2); + BETA=sqrt(1.0-MCHREN); + +#ifdef VARIANTB + // ----------- VARIANT B ------------------ + // we replace 1D0/BETA*BIGLOG with (1.0/BETA*BIGLOG+2*phokey_.fint) + // for integral of new crude + BIGLOG=log(MPASQR/ phomom_.mchsqr*(1.0+BETA)*(1.0+BETA)/4.0* + pow(1.0+ phomom_.mchsqr/MPASQR,2)); + PRHARD=phocop_.alpha/PI*(1.0/BETA*BIGLOG+2*phokey_.fint) + *(log(phophs_.xphmax/phocop_.xphcut)-.75+phocop_.xphcut/phophs_.xphmax-.25*phocop_.xphcut*phocop_.xphcut/phophs_.xphmax/phophs_.xphmax); + PRHARD=PRHARD*PHOCHA(IDENT)*PHOCHA(IDENT)*phokey_.fsec; + // ----------- END OF VARIANT B ------------------ +#else + // ----------- VARIANT A ------------------ + BIGLOG=log(MPASQR/ phomom_.mchsqr*(1.0+BETA)*(1.0+BETA)/4.0* + pow(1.0+ phomom_.mchsqr/MPASQR,2)); + PRHARD=phocop_.alpha/PI*(1.0/BETA*BIGLOG)* + (log(phophs_.xphmax/phocop_.xphcut)-.75+phocop_.xphcut/phophs_.xphmax-.25*phocop_.xphcut*phocop_.xphcut/phophs_.xphmax/phophs_.xphmax); + PRHARD=PRHARD*PHOCHA(IDENT)*PHOCHA(IDENT)*phokey_.fsec*phokey_.fint; + //me_channel_(&IDME); + IDME=PH_HEPEVT_Interface::ME_channel; + // write(*,*) 'KANALIK IDME=',IDME + if(IDME==0){ + // do nothing + } + + else if(IDME==1){ + PRHARD=PRHARD/(1.0+0.75*phocop_.alpha/PI); // NLO + } + else if (IDME==2){ + // work on virtual crrections in W decay to be done. + } + else{ + cout << "problem with ME_CHANNEL IDME= " << IDME << endl; + exit(0); + } + + //----------- END OF VARIANT A ------------------ +#endif + if(phopro_.irep==0) phopro_.probh=0.0; + PRKILL=0.0; + if(phokey_.iexp){ // IEXP + phoexp_.nchan=phoexp_.nchan+1; + if(phoexp_.expini){ // EXPINI + phoexp_.pro[phoexp_.nchan-i]=PRHARD+0.05*(1.0+phokey_.fint); // we store hard photon emission prob + //for leg phoexp_.nchan + PRHARD=0.0; // to kill emission at initialization call + phopro_.probh=PRHARD; + } + else{ // EXPINI + PRSUM=0.0; + for(K=phoexp_.nchan;K<=phoexp_.NX;K++) PRSUM=PRSUM+phoexp_.pro[K-i]; + PRHARD=PRHARD/PRSUM; // note that PRHARD may be smaller than + //phoexp_.pro[phoexp_.nchan) because it is calculated + // for kinematical configuartion as is + // (with effects of previous photons) + PRKILL=phoexp_.pro[phoexp_.nchan-i]/PRSUM-PRHARD; + + } // EXPINI + PRSOFT=1.0-PRHARD; + } + else{ // IEXP + PRHARD=PRHARD*PHOFAC(0); // PHOFAC is used to control eikonal + // formfactors for non exp version only + // here PHOFAC(0)=1 at least now. + phopro_.probh=PRHARD; + } // IEXP + PRSOFT=1.0-PRHARD; + //-- + //-- Check on kinematical bounds + if (phokey_.iexp){ + if(PRSOFT<-5.0E-8){ + DATA=PRSOFT; + PHOERR(2,"PHOENE",DATA); + } + } + else{ + if (PRSOFT<0.1){ + DATA=PRSOFT; + PHOERR(2,"PHOENE",DATA); + } + } + + RRR=Photos::randomDouble(); + if (RRR((1.0+pow(1.0-phophs_.xphoto/phophs_.xphmax,2))/2.0)); + } + + //-- + //-- Calculate parameter for PHOFAC function + phopro_.xf=4.0* phomom_.mchsqr*MPASQR/pow(MPASQR+ phomom_.mchsqr-phomom_.mnesqr,2); + return; +} + + +//---------------------------------------------------------------------- +// +// PHOTOS: Photon radiation in decays +// +// Purpose: Order (alpha) radiative corrections are generated in +// the decay of the IPPAR-th particle in the HEP-like +// common /PHOEVT/. Photon radiation takes place from one +// of the charged daughters of the decaying particle IPPAR +// WT is calculated, eventual rejection will be performed +// later after inclusion of interference weight. +// +// Input Parameter: IPPAR: Pointer to decaying particle in +// /PHOEVT/ and the common itself, +// +// Output Parameters: Common /PHOEVT/, either with or without a +// photon(s) added. +// WT weight of the configuration +// +// Author(s): Z. Was, B. van Eijk Created at: 26/11/89 +// Last Update: 12/07/13 +// +//---------------------------------------------------------------------- + +void PHOPRE(int IPARR,double *pWT,int *pNEUDAU,int *pNCHARB){ + int CHAPOI[pho.nmxhep]; + double MINMAS,MPASQR,MCHREN; + double EPS,DEL1,DEL2,DATA,BIGLOG; + double MASSUM; + int IP,IPPAR,I,J,ME,NCHARG,NEUPOI,NLAST; + int IDABS; + double WGT; + int IDME; + double a,b; + double &WT = *pWT; + int &NEUDAU = *pNEUDAU; + int &NCHARB = *pNCHARB; + + static int i=1; + + //-- + IPPAR=IPARR; + //-- Store pointers for cascade treatement... + IP=IPPAR; + NLAST=pho.nhep; + + //-- + //-- Check decay multiplicity.. + if (pho.jdahep[IP-i][1-i]==0) return; + + //-- + //-- Loop over daughters, determine charge multiplicity + + NCHARG=0; + phopro_.irep=0; + MINMAS=0.0; + MASSUM=0.0; + for (I=pho.jdahep[IP-i][1-i];I<=pho.jdahep[IP-i][2-i];I++){ + //-- + //-- + //-- Exclude marked particles, quarks and gluons etc... + IDABS=abs(pho.idhep[I-i]); + if (pho.qedrad[I-pho.jdahep[IP-i][1-i]+3-i]){ + if(PHOCHA(pho.idhep[I-i])!=0){ + NCHARG=NCHARG+1; + if(NCHARG>pho.nmxhep){ + DATA=NCHARG; + PHOERR(1,"PHOTOS",DATA); + } + CHAPOI[NCHARG-i]=I; + } + MINMAS=MINMAS+pho.phep[I-i][5-i]*pho.phep[I-i][5-i]; + } + MASSUM=MASSUM+pho.phep[I-i][5-i]; + } + + if (NCHARG!=0){ + //-- + //-- Check that sum of daughter masses does not exceed parent mass + if ((pho.phep[IP-i][5-i]-MASSUM)/pho.phep[IP-i][5-i]>2.0*phocop_.xphcut){ + //-- + label30: + +// do{ + + for (J=1;J<=3;J++) phomom_.pneutr[J-i] =-pho.phep[CHAPOI[NCHARG-i]-i][J-i]; + phomom_.pneutr[4-i]=pho.phep[IP-i][5-i]-pho.phep[CHAPOI[NCHARG-i]-i][4-i]; + //-- + //-- Calculate invariant mass of 'neutral' etc. systems + MPASQR=pho.phep[IP-i][5-i]*pho.phep[IP-i][5-i]; + phomom_.mchsqr=pow(pho.phep[CHAPOI[NCHARG-i]-i][5-i],2); + if((pho.jdahep[IP-i][2-i]-pho.jdahep[IP-i][1-i])==1){ + NEUPOI=pho.jdahep[IP-i][1-i]; + if(NEUPOI==CHAPOI[NCHARG-i]) NEUPOI=pho.jdahep[IP-i][2-i]; + phomom_.mnesqr=pho.phep[NEUPOI-i][5-i]*pho.phep[NEUPOI-i][5-i]; + phomom_.pneutr[5-i]=pho.phep[NEUPOI-i][5-i]; + } + else{ + phomom_.mnesqr=pow(phomom_.pneutr[4-i],2)-pow(phomom_.pneutr[1-i],2)-pow(phomom_.pneutr[2-i],2)-pow(phomom_.pneutr[3-i],2); + phomom_.mnesqr=max(phomom_.mnesqr,MINMAS-phomom_.mchsqr); + phomom_.pneutr[5-i]=sqrt(phomom_.mnesqr); + } + + //-- + //-- Determine kinematical limit... + phophs_.xphmax=(MPASQR-pow(phomom_.pneutr[5-i]+pho.phep[CHAPOI[NCHARG-i]-i][5-i],2))/MPASQR; + + //-- + //-- Photon energy fraction... + PHOENE(MPASQR,&MCHREN,&phwt_.beta,&BIGLOG,pho.idhep[CHAPOI[NCHARG-i]-i]); + //-- + + if (phophs_.xphoto<-4.0) { + NCHARG=0; // we really stop trials + phophs_.xphoto=0.0; // in this case !! + //-- Energy fraction not too large (very seldom) ? Define angle. + } + else if ((phophs_.xphoto phophs_.xphmax)){ + //-- + //-- No radiation was accepted, check for more daughters that may ra- + //-- diate and correct radiation probability... + NCHARG=NCHARG-1; + if(NCHARG>0) phopro_.irep=phopro_.irep+1; + if(NCHARG>0) goto label30; + } + else{ + //-- + //-- Angle is generated in the frame defined by charged vector and + //-- PNEUTR, distribution is taken in the infrared limit... + EPS=MCHREN/(1.0+phwt_.beta); + //-- + //-- Calculate sin(theta) and cos(theta) from interval variables + DEL1=(2.0-EPS)*pow(EPS/(2.0-EPS),Photos::randomDouble()); + DEL2=2.0-DEL1; + +#ifdef VARIANTB + // ----------- VARIANT B ------------------ + // corrections for more efiicient interference correction, + // instead of doubling crude distribution, we add flat parallel channel + if(Photos::randomDouble()1.0){ + + WGT=1.0/(1.0-phwt_.beta*phophs_.costhg); + WGT=WGT/(WGT+phokey_.fint); + // WGT=1.0 // ?? + } + else{ + WGT=1.0; + } + // + // ----------- END OF VARIANT B ------------------ +#else + // ----------- VARIANT A ------------------ + phophs_.costhg=(1.0-DEL1)/phwt_.beta; + phophs_.sinthg=sqrt(DEL1*DEL2-MCHREN)/phwt_.beta; + WGT=1.0; + // ----------- END OF VARIANT A ------------------ +#endif + //-- + //-- Determine spin of particle and construct code for matrix element + ME=(int) (2.0*PHOSPI(pho.idhep[CHAPOI[NCHARG-i]-i])+1.0); + //-- + //-- Weighting procedure with 'exact' matrix element, reconstruct kine- + //-- matics for photon, neutral and charged system and update /PHOEVT/. + //-- Find pointer to the first component of 'neutral' system + for (I=pho.jdahep[IP-i][1-i];I<=pho.jdahep[IP-i][2-i];I++){ + if(I!=CHAPOI[NCHARG-i]){ + NEUDAU=I; + goto label51; //break; // to 51 + } + } + //-- + //-- Pointer not found... + DATA=NCHARG; + PHOERR(5,"PHOKIN",DATA); + label51: + + NCHARB=CHAPOI[NCHARG-i]; + NCHARB=NCHARB-pho.jdahep[IP-i][1-i]+3; + NEUDAU=NEUDAU-pho.jdahep[IP-i][1-i]+3; + + IDME=PH_HEPEVT_Interface::ME_channel; + // two options introduced temporarily. + // In future always PHOCOR-->PHOCORN + // Tests and adjustment of wts for Znlo needed. + // otherwise simple change. PHOCORN implements + // exact ME for scalar to 2 scalar decays. + if(IDME==2){ + b=PHOCORN(MPASQR,MCHREN,ME); + WT=b*WGT; + WT=WT/(1-phophs_.xphoto/phophs_.xphmax+0.5*pow(phophs_.xphoto/phophs_.xphmax,2))*(1-phophs_.xphoto/phophs_.xphmax)/2; // factor to go to WnloWT + } + else if(IDME==1){ + + a=PHOCOR(MPASQR,MCHREN,ME); + b=PHOCORN(MPASQR,MCHREN,ME); + WT=b*WGT ; + WT=WT*phwt_.wt1*phwt_.wt2*phwt_.wt3/phocorwt_.phocorwt1/phocorwt_.phocorwt2/phocorwt_.phocorwt3; // factor to go to ZnloWT + // write(*,*) ' -----------' + // write(*,*) phwt_.wt1,' ',phwt_.wt2,' ',phwt_.wt3 + // write(*,*) phocorwt_.phocorwt1,' ',phocorwt_.phocorwt2,' ',phocorwt_.phocorwt3 + } + else{ + a=PHOCOR(MPASQR,MCHREN,ME); + WT=a*WGT; +// WT=b*WGT; // /(1-phophs_.xphoto/phophs_.xphmax+0.5*pow(phophs_.xphoto/phophs_.xphmax,2))*(1-phophs_.xphoto/phophs_.xphmax)/2; + } + + + + } + } + else{ + DATA=pho.phep[IP-i][5-i]-MASSUM; + PHOERR(10,"PHOTOS",DATA); + } + } + + //-- + return; +} + + +//---------------------------------------------------------------------- +// +// PHOMAK: PHOtos MAKe +// +// Purpose: Single or double bremstrahlung radiative corrections +// are generated in the decay of the IPPAR-th particle in +// the HEP common /PH_HEPEVT/. Example of the use of +// general tools. +// +// Input Parameter: IPPAR: Pointer to decaying particle in +// /PH_HEPEVT/ and the common itself +// +// Output Parameters: Common /PH_HEPEVT/, either with or without +// particles added. +// +// Author(s): Z. Was, Created at: 26/05/93 +// Last Update: 29/01/05 +// +//---------------------------------------------------------------------- + +void PHOMAK(int IPPAR,int NHEP0){ + + double DATA; + int IP,NCHARG,IDME; + int IDUM; + int NCHARB,NEUDAU; + double RN,WT; + bool BOOST; + static int i=1; + //-- + IP=IPPAR; + IDUM=1; + NCHARG=0; + //-- + PHOIN(IP,&BOOST,NHEP0); + PHOCHK(hep.jdahep[IP-i][1-i]); + WT=0.0; + PHOPRE(1,&WT,&NEUDAU,&NCHARB); + + if(WT==0.0) return; + RN=Photos::randomDouble(); + // PHODO is caling randomDouble(), thus change of series if it is moved before if + PHODO(1,NCHARB,NEUDAU); + +#ifdef VARIANTB + // we eliminate divisions /phokey_.fint in variant B. ??? +#endif + // get ID of channel dependent ME, ID=0 means no + + IDME=PH_HEPEVT_Interface::ME_channel; + // corrections for matrix elements + // controlled by IDME + // write(*,*) 'KANALIK IDME=',IDME + + if( IDME==0) { // default + + if(phokey_.interf) WT=WT*PHINT(IDUM); + if(phokey_.ifw) PHOBW(&WT); // extra weight for leptonic W decay + } + else if (IDME==2){ // ME weight for leptonic W decay + + PhotosMEforW::PHOBWnlo(&WT); + WT=WT*2.0; + } + else if (IDME==1){ // ME weight for leptonic Z decay + + WT=WT*PhotosMEforZ::phwtnlo(); + } + else{ + cout << "problem with ME_CHANNEL IDME= " << IDME << endl; + exit(0); + } + +#ifndef VARIANTB + WT = WT/phokey_.fint; // FINT must be in variant A +#endif + + DATA=WT; + if (WT>1.0) PHOERR(3,"WT_INT",DATA); + // weighting + if (RN<=WT){ + PHOOUT(IP,BOOST,NHEP0); + } + return; +} + +//---------------------------------------------------------------------- +// +// PHTYPE: Central manadgement routine. +// +// Purpose: defines what kind of the +// actions will be performed at point ID. +// +// Input Parameters: ID: pointer of particle starting branch +// in /PH_HEPEVT/ to be treated. +// +// Output Parameters: Common /PH_HEPEVT/. +// +// Author(s): Z. Was Created at: 24/05/93 +// P. Golonka Last Update: 27/06/04 +// +//---------------------------------------------------------------------- +void PHTYPE(int ID){ + + int K; + double PRSUM,ESU; + int NHEP0; + bool IPAIR; + double RN,SUM; + bool IFOUR; + static int i=1; + + //-- + IFOUR= phokey_.itre; // we can make internal choice whether + // we want 3 or four photons at most. + IPAIR=true; + //-- Check decay multiplicity.. + if(hep.jdahep[ID-i][1-i]==0) return; + // if (hep.jdahep[ID-i][1-i]==hep.jdahep[ID-i][2-i]) return; + //-- + NHEP0=hep.nhep; + //-- + if(phokey_.iexp){ + phoexp_.expini=true; // Initialization/cleaning + for(phoexp_.nchan=1;phoexp_.nchan<=phoexp_.NX;phoexp_.nchan++) + phoexp_.pro[phoexp_.nchan-i]=0.0; + phoexp_.nchan=0; + + phokey_.fsec=1.0; + PHOMAK(ID,NHEP0); // Initialization/crude formfactors into + // phoexp_.pro[phoexp_.nchan) + phoexp_.expini=false; + RN=Photos::randomDouble(); + PRSUM=0.0; + for(K=1;K<=phoexp_.NX;K++)PRSUM=PRSUM+phoexp_.pro[K-i]; + + ESU=exp(-PRSUM); + // exponent for crude Poissonian multiplicity + // distribution, will be later overwritten + // to give probability for k + SUM=ESU; + // distribuant for the crude Poissonian + // at first for k=0 + for(K=1;K<=100;K++){ // hard coded max (photon) multiplicity is 100 + if(RN1.0-phokey_.expeps) break; + } + + } + else if(IFOUR){ + //-- quatro photon emission + phokey_.fsec=1.0; + RN=Photos::randomDouble(); + if(RN>=23.0/24.0){ + PHOMAK(ID,NHEP0); + PHOMAK(ID,NHEP0); + PHOMAK(ID,NHEP0); + PHOMAK(ID,NHEP0); + } + else if (RN>=17.0/24.0){ + PHOMAK(ID,NHEP0); + PHOMAK(ID,NHEP0); + } + else if(RN>=9.0/24.0){ + PHOMAK(ID,NHEP0); + } + else{ + } + } + else if(phokey_.itre){ + //-- triple photon emission + phokey_.fsec=1.0; + RN=Photos::randomDouble(); + if(RN>=5.0/6.0){ + PHOMAK(ID,NHEP0); + PHOMAK(ID,NHEP0); + PHOMAK(ID,NHEP0); + } + else if (RN>=2.0/6.0){ + PHOMAK(ID,NHEP0); + } + } + else if(phokey_.isec){ + //-- double photon emission + phokey_.fsec=1.0; + RN=Photos::randomDouble(); + if(RN>=0.5){ + PHOMAK(ID,NHEP0); + PHOMAK(ID,NHEP0); + } + } + else{ + //-- single photon emission + phokey_.fsec=1.0; + PHOMAK(ID,NHEP0); + } + //-- + //-- electron positron pair (coomented out for a while + // if (IPAIR) PHOPAR(ID,NHEP0); +} + +} // namespace Photospp + diff --git a/TEvtGen/README.txt b/TEvtGen/README.txt index 871e3d081b2..43ae71afb2a 100644 --- a/TEvtGen/README.txt +++ b/TEvtGen/README.txt @@ -1,41 +1,62 @@ //------------------------------------------------------------------------------// 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 + B-physics studies. Complete manual of EvtGen is available at: + http://robbep.home.cern.ch/robbep/EvtGen/GuideEvtGen.pdf. Further information + can be found on the EvtGen official web site http://evtgen.warwick.ac.uk/src/ + The EvtGen release installed here is taken from + http://svnweb.cern.ch/guest/evtgen/tags/R01-03-00 //------------------------------------------------------------------------------// -[14/12/2009] +[23/05/2014] 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. + - EvtGen original code organized in four directories: + EvtGenBase-EvtGenModels-EvtGen-EvtGenExternal. + EvtGenModels directory contains all models avilable in EvtGen to decay + particles. EvtGenExternal contains the "interface" class with the external + packages - 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. + 2)The external packages, interfaced with EvtGen by EvtGenExternal class, + are used to generate specific particle decays and + are located in the TEvtGen subdirectories (except for Pythia8): - 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. + - HepMC (http://lcgapp.cern.ch/project/simu/HepMC/download/HepMC-2.06.08.tar.gz) + The HepMC package is an object oriented event record written in C++ for High Energy + Physics Monte Carlo Generators. + + - Tauola (http://tauolapp.web.cern.ch/tauolapp/resources/TAUOLA.1.1.4/TAUOLA.1.1.4.tar.gz) + C++ interface of Tauola code, specifically designed to generate tau decays. + + - Photos (http://photospp.web.cern.ch/photospp/resources/PHOTOS.3.54/PHOTOS.3.54.tar.gz) + C++ interface of Photos code, specifically designed to generate Final State Radiation. + + - Pythia8 (available in $ALICE_ROOT/PYTHIA8/) + + + 3)The "default" decay table with all particles and all decay channels + can be found in TEvtGen/EvtGen/DECAY.DEC. The definition of all + particles is done in the table "evt.pdl". Both tables (DECAY.DEC and evt.pdl) + are loaded during the initialization of EvtGen. Several decay tables are available + in the directory TEvtGen/EvtGen/DecayTable and are used to generate "forced" decay modes. + All parameters, models and BR used in these tables are not modified with respect + to the official EvtGen release. 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: + 5)Below an example of the usage of EvtGen in AliRoot to decay beauty particles. + The following lines should be added in the Config.C: - //----- load libraries (after loading libpythia6.so) - gSystem->Load("libphotos.so"); - gSystem->Load("libEvtGenBase"); - gSystem->Load("libEvtGenModels"); + //----- load libraries + gSystem->Load("libHepMC.so"); + gSystem->Load("libTauola.so"); + gSystem->Load("libpythia8.so"); + gSystem->Load("libPhotos.so"); gSystem->Load("libEvtGen"); + gSystem->Load("libEvtGenExternal"); gSystem->Load("libTEvtGen"); //----- declare an AliGenCocktail diff --git a/TEvtGen/Tauola/DecayList.cxx b/TEvtGen/Tauola/DecayList.cxx new file mode 100644 index 00000000000..ab42277fcf6 --- /dev/null +++ b/TEvtGen/Tauola/DecayList.cxx @@ -0,0 +1,85 @@ +#include "DecayList.h" +#include "Log.h" + +using namespace std; + +namespace Tauolapp +{ + +vector DecayList::m_particle_list; + +int DecayList::getAbsoluteIndex(int index){ + return getAbsoluteIndex(index, m_particle_list.size()+1); +} + +int DecayList::getAbsoluteIndex(int index, + int neg_index_relative_to){ + int absIndex; + + if(index > 0) //absolute position + absIndex = index; + else //relative to fixed + absIndex = index + neg_index_relative_to; + //Some error checking + if(absIndex < 1 || absIndex > (int)m_particle_list.size()+1){ + Log::Error()<<"Index outside range: "<< absIndex << ". Range: 1 to " + << m_particle_list.size()+1 << endl; + Log::Fatal(4); + } + // cout << "Final call in getAbsoluteIndex().. "<< absIndex << endl; + return absIndex; //account for vectors starting at index 0 +} + +// NOTE: Not executed by release examples +int DecayList::getAbsoluteIndex(TauolaParticle * particle){ + for(int i=0; i < (int) m_particle_list.size(); i++){ + if(m_particle_list.at(i)==particle) + return i+1; + } + Log::Warning()<<"Could not find particle in particle_list" << endl; + return 0; +} + +TauolaParticle * DecayList::getParticle(int index){ + return m_particle_list.at(index-1); +} + +void DecayList::updateList(TauolaParticle * new_particle, + int index){ + + if(index > (int) m_particle_list.size()) + //Add new particle to end + addToEnd(new_particle); + else{ + // NOTE: Not executed by release examples + + TauolaParticle * old_particle = getParticle(index); + //Add new particle + m_particle_list.at(index - 1) = new_particle; + + //Remove old particle at same index in event record + /** if(old_particle->production_vertex()) + old_particle->production_vertex()->remove_particle(old_particle); + if(old_particle->end_vertex()) + old_particle->end_vertex()->remove_particle(old_particle); + delete old_particle;**/ + delete old_particle; + + } +} + +void DecayList::addToEnd(TauolaParticle * new_particle){ + m_particle_list.push_back(new_particle); +} + +void DecayList::print(){ + for(int index=0; index < (int) m_particle_list.size(); index++){ + Log::Info()<< "Index: "<< index+1<<" Object: "<< m_particle_list.at(index)< 0 are absolute. 1 is the first item (which should generally be + * the tau's position) + * + * @author Nadia Davidson + * @date 17 June 2008 + */ + +#include +#include +#include + +#include "TauolaParticle.h" + +using namespace std; + +namespace Tauolapp +{ + +class TauolaParticle; + +class DecayList { + + public: + /** Return the TauolaParticle corresponding to the index (absolute) + in the list of particle */ + static TauolaParticle * getParticle(int index); + + /** Adds the new particle into the list and delete the previous + particle at the same position if it exists */ + static void updateList(TauolaParticle * new_particle, + int index); + + /** Adds the new particle to the end of list */ + static void addToEnd(TauolaParticle * new_particle); + + /** clear all entries from the list */ + static void clear(); + + /** Translates index (absolute and relative) to + absolute index. If a relative index is given (negative integer) + it is taken relative from the end of the list */ + static int getAbsoluteIndex(int index); + + /** Translates index (absolute and relative) to + absolute index. If a relative index is given (negative integer) + it is taken relative to the parameter "neg_index_relative_to" */ + static int getAbsoluteIndex(int index, + int neg_index_relative_to); + + /** Return index (absolute) of "particle" */ + static int getAbsoluteIndex(TauolaParticle * particle); + + /** Print the contents of the list */ + static void print(); + + private: + /** vector used for TauolaParticle mapping */ + static vector m_particle_list; + +}; + +} // namespace Tauolapp +#endif diff --git a/TEvtGen/Tauola/Log.cxx b/TEvtGen/Tauola/Log.cxx new file mode 100644 index 00000000000..7732426f2a3 --- /dev/null +++ b/TEvtGen/Tauola/Log.cxx @@ -0,0 +1,157 @@ +#include +#include "Log.h" +using std::streambuf; +using std::stringstream; +using std::ostream; +using std::cout; +using std::cerr; +using std::endl; + +namespace Tauolapp +{ + +list *Log::PointerList = NULL; + +streambuf *Log::bCout=cout.rdbuf(),*Log::bCerr=cerr.rdbuf(); +ostream *Log::out=&cout; +stringstream Log::buf; +int Log::warnLimit=100; +int Log::decays[4] = {0}; +int Log::dCount =0,Log::dRangeS =65535,Log::dRangeE =65534; +int Log::faCount=0,Log::faRangeS=65535,Log::faRangeE=65534; +int Log::iCount =0,Log::wCount =0,Log::eCount =0,Log::asCount=0, Log::asFailedCount=0; +bool Log::iAction=1,Log::wAction=1,Log::eAction=1,Log::asAction=1,Log::rAction=1; + +void Log::AddDecay(int type) +{ + decays[type]++; +} + +ostream& Log::Debug(unsigned short int code, bool count) +{ + if(count) ++dCount; + if(code>=dRangeS && code<=dRangeE ) return *out<<"DEBUG("<0 && wCount>=warnLimit) + { + if(wAction) + { + *out<<"WARNING from TAUOLA:"<faRangeE) exit(-1); +} + +void Log::RedirectOutput(void (*func)(), ostream& where) +{ + + if(!rAction) { func(); return; } + cout.rdbuf(where.rdbuf()); + cerr.rdbuf(where.rdbuf()); + where<dRangeE) *out<<"(OFF)"; + *out<<"\t\t"<0 && wCount>warnLimit) *out<<"(SUPP.)"; + else *out<<"(OFF)"; + } + *out<<"\t\t"<0) *out<<" Asserts: "< +#include +#include +#include +#include +#include + +using std::stringstream; +using std::string; +using std::streambuf; +using std::ostream; +using std::list; +using std::cout; +using std::endl; + +namespace Tauolapp +{ + +class Log +{ +public: + /** Shows the summary of all messages. */ + static void Summary(); + + /** Shows the summary at the end of the program. */ + static void SummaryAtExit() { atexit(Summary); } + + /** Adds the decay to the counter. The type is: + 0 - gun, 1 - no mothers & grandmothers, 2 - no mothers, 3 - ok. */ + static void AddDecay(int type); + + /** Four logging entries. Usage: + Log::Info()<<"Logging some info: "<<8<<" > "<<7.9< *PointerList; +public: +#ifdef _LOG_DEBUG_MODE_ + static void NewPointer(unsigned long address, unsigned long size, const char *file, unsigned long line) + { + if(!PointerList) + { + PointerList = new list(); + atexit(PrintAllocatedPointers); + } + Pointer *info = new Pointer(); + info->address = address; + info->size = size; + info->line = line; + strncpy(info->file, file, 63); + PointerList->push_front(info); + } + static void DeletePointer(unsigned long address) + { + if(!PointerList) return; + for(list::iterator i = PointerList->begin(); i!=PointerList->end(); i++) + { + if((*i)->address == address) + { + PointerList->remove((*i)); + break; + } + } + } + static bool PointerCompare(Pointer *one, Pointer *two) + { + int eq = strcmp(one->file,two->file); + if(eq<0) return true; + else if(eq>0) return false; + return (one->line <= two->line); + } + static void PrintAllocatedPointers() + { + if(!PointerList) return; + int pointers=0,buf=0; + unsigned long total=0; + char *lastS=" "; + int lastL=0; + if(PointerList->size()==0) + { + cout<<"----------------------------UNFREED MEMORY POINTERS----------------------------\n"; + cout<<" ... NONE ...\n"; + cout<<"-------------------------------------------------------------------------------\n"; + return; + } + PointerList->sort(PointerCompare); + cout<<"---------------------------UNFREED MEMORY POINTERS---------------------------\n"; + for(list::iterator i = PointerList->begin(); i!=PointerList->end(); i++) + { + total+=(*i)->size; + ++pointers; + if(strcmp(lastS,(*i)->file)==0) + { + if(lastL==(*i)->line) + { + printf("%56s%10lub (%lu)\n"," ",(*i)->size,(*i)->address); + continue; + } + } + lastS=(*i)->file; + lastL=(*i)->line; + printf("%s%n:",(*i)->file,&buf); + printf("%-*lu%10lub (%lu)\n",55-buf,(*i)->line,(*i)->size,(*i)->address); + } + cout< +#include +#include +using namespace std; + +namespace Tauolapp +{ + +Plots::Plots(): + m_incoming_pdg_id(1), + m_cosTheta (-0.2), + m_n_plot_points (1000) +{ +} + +void Plots::SANCtest1(){ + + cout<<"SANC plot 1 (short)..."< +#include +#include +#include "Log.h" +#include "Tauola.h" +#include "TauolaEvent.h" + +namespace Tauolapp +{ + +int Tauola::m_pdg_id = 15; +int Tauola::m_firstDecayMode = 0; +int Tauola::m_secondDecayMode = 0; +bool Tauola::m_rad = true; +double Tauola::m_rad_cut_off = 0.001; +double Tauola::m_iniphy = 0.1; +double Tauola::m_higgs_scalar_pseudoscalar_mix = M_PI/4; +int Tauola::m_higgs_scalar_pseudoscalar_pdg = 35; +int Tauola::m_helPlus = 0; +int Tauola::m_helMinus = 0; +double Tauola::m_wtEW = 0.0; +double Tauola::m_wtEW0 = 0.0; +double Tauola::table11A[NS1][NCOS][4][4] = {{{{0.0}}}}; +double Tauola::table1A [NS1][NCOS][4][4] = {{{{0.0}}}}; +double Tauola::table2A [NS1][NCOS][4][4] = {{{{0.0}}}}; +double Tauola::wtable11A[NS1][NCOS] = {{0.0}}; +double Tauola::wtable1A [NS1][NCOS] = {{0.0}}; +double Tauola::wtable2A [NS1][NCOS] = {{0.0}}; +double Tauola::w0table11A[NS1][NCOS] = {{0.0}}; +double Tauola::w0table1A [NS1][NCOS] = {{0.0}}; +double Tauola::w0table2A [NS1][NCOS] = {{0.0}}; + +double Tauola::table11B[NS2][NCOS][4][4] = {{{{0.0}}}}; +double Tauola::table1B [NS2][NCOS][4][4] = {{{{0.0}}}}; +double Tauola::table2B [NS2][NCOS][4][4] = {{{{0.0}}}}; +double Tauola::wtable11B[NS2][NCOS] = {{0.0}}; +double Tauola::wtable1B [NS2][NCOS] = {{0.0}}; +double Tauola::wtable2B [NS2][NCOS] = {{0.0}}; +double Tauola::w0table11B[NS2][NCOS] = {{0.0}}; +double Tauola::w0table1B [NS2][NCOS] = {{0.0}}; +double Tauola::w0table2B [NS2][NCOS] = {{0.0}}; + +double Tauola::table11C[NS3][NCOS][4][4] = {{{{0.0}}}}; +double Tauola::table1C [NS3][NCOS][4][4] = {{{{0.0}}}}; +double Tauola::table2C [NS3][NCOS][4][4] = {{{{0.0}}}}; +double Tauola::wtable11C[NS3][NCOS] = {{0.0}}; +double Tauola::wtable1C [NS3][NCOS] = {{0.0}}; +double Tauola::wtable2C [NS3][NCOS] = {{0.0}}; +double Tauola::w0table11C[NS3][NCOS] = {{0.0}}; +double Tauola::w0table1C [NS3][NCOS] = {{0.0}}; +double Tauola::w0table2C [NS3][NCOS] = {{0.0}}; + +double Tauola::sminA = 0; +double Tauola::smaxA = 0; + +double Tauola::sminB = 0; +double Tauola::smaxB = 0; + +double Tauola::sminC = 0; +double Tauola::smaxC = 0; + +int Tauola::ion[3] = {0}; +double Tauola::tau_lifetime = .08711; +double Tauola::momentum_conservation_threshold = 0.1; + +Tauola::Particles Tauola::spin_correlation; + +Tauola::MomentumUnits Tauola::momentumUnit = Tauola::DEFAULT_MOMENTUM; +Tauola::LengthUnits Tauola::lengthUnit = Tauola::DEFAULT_LENGTH; + +bool Tauola::m_is_using_decay_one = false; +double Tauola::m_decay_one_polarization[3] = {0}; +void (*Tauola::m_decay_one_boost_routine)(TauolaParticle*,TauolaParticle*) = NULL; + +int Tauola::buf_incoming_pdg_id = 0; +int Tauola::buf_outgoing_pdg_id = 0; +double Tauola::buf_invariant_mass_squared = -1.; +double Tauola::buf_cosTheta = 0.; + +double Tauola::buf_R[4][4] = {{0.0}}; //density matrix + +double (*Tauola::randomDouble)() = Tauola::defaultRandomGenerator; +void (*Tauola::redefineTauPlusProperties)(TauolaParticle *) = defaultRedPlus; +void (*Tauola::redefineTauMinusProperties)(TauolaParticle *) = defaultRedMinus; + +/**************************************************************/ +void Tauola::setNewCurrents(int mode) +{ + inirchl_(&mode); +} + +double Tauola::defaultRandomGenerator(){ + return rand()*1./RAND_MAX; +} + +void Tauola::setRandomGenerator(double (*gen)()){ + if(gen==NULL) randomDouble = defaultRandomGenerator; + else randomDouble = gen; +} + +void Tauola::defaultRedPlus(TauolaParticle *tau) {} +void Tauola::defaultRedMinus(TauolaParticle *tau) {} + +void Tauola::setRedefineTauMinus( void (*fun)(TauolaParticle *) ){ + redefineTauMinusProperties=fun; +} + +void Tauola::setRedefineTauPlus ( void (*fun)(TauolaParticle *) ){ + redefineTauPlusProperties=fun; +} + +void Tauola::getBornKinematics(int *incoming_pdg_id, int *outgoing_pdg_id, double *invariant_mass_squared,double *cosTheta){ + *incoming_pdg_id = buf_incoming_pdg_id; + *outgoing_pdg_id = buf_outgoing_pdg_id; + *invariant_mass_squared = buf_invariant_mass_squared; + *cosTheta = buf_cosTheta; + // m_R[0][0] to be added in next step; +} + +void Tauola::setUnits(MomentumUnits m, LengthUnits l){ + Tauola::momentumUnit = m; + Tauola::lengthUnit = l; +} + +void Tauola::setTauLifetime(double t){ + tau_lifetime = t; +} + +void Tauola::initialize(){ + printf("\n"); + printf(" *************************************\n"); + printf(" * TAUOLA C++ Interface v1.1.4 *\n"); + printf(" *-----------------------------------*\n"); + printf(" * *\n"); + printf(" * (c) Nadia Davidson, (1,2) *\n"); + printf(" * Gizo Nanava, (3) *\n"); + printf(" * Tomasz Przedzinski,(4) *\n"); + printf(" * Elzbieta Richter-Was,(2,4) *\n"); + printf(" * Zbigniew Was (2,5) *\n"); + printf(" * *\n"); + printf(" * 1) Unimelb, Melbourne, Australia *\n"); + printf(" * 2) INP, Krakow, Poland *\n"); + printf(" * 3) University Bonn, Germany *\n"); + printf(" * 4) UJ, Krakow, Poland *\n"); + printf(" * 5) CERN, Geneva, Switzerland *\n"); + printf(" *************************************\n"); + + // Turn on all spin correlations + spin_correlation.setAll(true); + + // Ininitalize tauola-fortran + f_interface_tauolaInitialize(m_pdg_id,m_firstDecayMode, + m_secondDecayMode,m_rad, + m_rad_cut_off, m_iniphy); + + //--------------------------------------------------------------------------- + // Initialize SANC tables + //--------------------------------------------------------------------------- + cout<<"Reading SANC input files."<>buf>>dbuf1>>dbuf2>>dbuf3>>dbufcos; + + // Check table sizes + if(dbuf1!=NS1 || dbuf2!=NS2 || dbuf3!=NS3 || dbufcos!=NCOS) { + cout<<"mismatched NS1= "< "< "< "< "<>buf>>buf1>>buf2>>buf3>>buf4>>buf5>>buf6; + + // Set ranges + if(sminA==0.0){ + sminA=buf1; + smaxA=buf2; + sminB=buf3; + smaxB=buf4; + sminC=buf5; + smaxC=buf6; + } + + // Check ranges + if(buf1!=sminA || buf2!=smaxA || buf3!=sminB || buf4!=smaxB || buf5!=sminC || buf6!=smaxC) { + cout<<"mismatched sminA= "< "< "< "< "< "< "<>table1A[i][j][k][l]; + } // for(l) + } // for(k) + f>>wtable1A[i][j]; + f>>w0table1A[i][j]; + } // for(j) + } // for(i) + + // Find 2nd range + while(!f.eof()){ + f>>buf; + if(strcmp(buf.c_str(),"BeginRange2")==0) break; + } + + // Read table + for (int i=0;i>table1B[i][j][k][l]; + } // for(l) + } // for(k) + f>>wtable1B[i][j]; + f>>w0table1B[i][j]; + } // for(j) + } // for(i) + + // Find 3rd range + while(!f.eof()){ + f>>buf; + if(strcmp(buf.c_str(),"BeginRange3")==0) break; + } + + // Read table + for (int i=0;i>table1C[i][j][k][l]; + } // for(l) + } // for(k) + f>>wtable1C[i][j]; + f>>w0table1C[i][j]; + } // for(j) + } // for(i) + + // Check for proper file end + f>>buf; + if(buf.size() == 0 || strcmp(buf.c_str(),"End") != 0){ + cout<<"...incorrect file version or file incomplete/damaged!"<>buf>>dbuf1>>dbuf2>>dbuf3>>dbufcos; + + // Check table sizes + if(dbuf1!=NS1 || dbuf2!=NS2 || dbuf3!=NS3 || dbufcos!=NCOS) { + cout<<"mismatched NS1= "< "< "< "< "<>buf>>buf1>>buf2>>buf3>>buf4>>buf5>>buf6; + + // Set ranges + if(sminA==0.0) + { + sminA=buf1; + smaxA=buf2; + sminB=buf3; + smaxB=buf4; + sminC=buf5; + smaxC=buf6; + } + + // Check ranges + if(buf1!=sminA || buf2!=smaxA || buf3!=sminB || buf4!=smaxB || buf5!=sminC || buf6!=smaxC) { + cout<<"mismatched sminA= "< "< "< "< "< "< "<>table2A[i][j][k][l]; + } // for(l) + } // for(k) + f>>wtable2A[i][j]; + f>>w0table2A[i][j]; + } // for(j) + } // for(i) + + // Find 2nd range + while(!f.eof()){ + f>>buf; + if(strcmp(buf.c_str(),"BeginRange2")==0) break; + } + + // Read table + for (int i=0;i>table2B[i][j][k][l]; + } // for(l) + } // for(k) + f>>wtable2B[i][j]; + f>>w0table2B[i][j]; + } // for(j) + } // for(i) + + // Find 3rd range + while(!f.eof()){ + f>>buf; + if(strcmp(buf.c_str(),"BeginRange3")==0) break; + } + + // Read table + for (int i=0;i>table2C[i][j][k][l]; + } // for(l) + } // for(k) + f>>wtable2C[i][j]; + f>>w0table2C[i][j]; + } // for(j) + } // for(i) + + // Check for proper file end + f>>buf; + if(buf.size()==0 || strcmp(buf.c_str(),"End")!=0){ + cout<<"...incorrect file version or file incomplete/damaged!"<>buf>>dbuf1>>dbuf2>>dbuf3>>dbufcos; + + // Check table sizes + if(dbuf1!=NS1 || dbuf2!=NS2 || dbuf3!=NS3 || dbufcos!=NCOS) { + cout<<"mismatched NS1= "< "< "< "< "<>buf>>buf1>>buf2>>buf3>>buf4>>buf5>>buf6; + + // Set ranges + if(sminA==0.0) + { + sminA=buf1; + smaxA=buf2; + sminB=buf3; + smaxB=buf4; + sminC=buf5; + smaxC=buf6; + } + + // Check ranges + if(buf1!=sminA || buf2!=smaxA || buf3!=sminB || buf4!=smaxB || buf5!=sminC || buf6!=smaxC) { + cout<<"mismatched sminA= "< "< "< "< "< "< "<>table11A[i][j][k][l]; + } // for(l) + } // for(k) + f>>wtable11A[i][j]; + f>>w0table11A[i][j]; + } // for(j) + } // for(i) + + // Find 2nd range + while(!f.eof()){ + f>>buf; + if(strcmp(buf.c_str(),"BeginRange2")==0) break; + } + + // Read table + for (int i=0;i>table11B[i][j][k][l]; + } // for(l) + } // for(k) + f>>wtable11B[i][j]; + f>>w0table11B[i][j]; + } // for(j) + } // for(i) + + // Find 3rd range + while(!f.eof()){ + f>>buf; + if(strcmp(buf.c_str(),"BeginRange3")==0) break; + } + + // Read table + for (int i=0;i>table11C[i][j][k][l]; + } // for(l) + } // for(k) + f>>wtable11C[i][j]; + f>>w0table11C[i][j]; + } // for(j) + } // for(i) + + f>>buf; + if(buf.size()==0 || strcmp(buf.c_str(),"End")!=0){ + cout<<"...incorrect file version or file incomplete/damaged!"<1) + { + Log::Warning()<<"decayOne(): ignoring wrong polarization vector: "<hasDaughters()) + { + if(undecay) tau->undecay(); + else + { + m_is_using_decay_one = false; + return; + } + } + + std::vector list; + list.push_back(tau); + + // Decay single tau + TauolaParticlePair t_pair(list); + t_pair.decayTauPair(); + t_pair.checkMomentumConservation(); + + // Revert to normal mode + m_is_using_decay_one = false; +} + +void Tauola::initialise(){ + + Log::Warning() <<"Deprecated routine 'Tauola::initialise'"<taubra_.nchan || value<0.) + Log::Warning()<<"setTauBr(): Invalid input. Value must be >= 0 and 0 < i <= "<1 || brk0<0 ||brk0>1 || brk0b<0 || brk0b>1 || brks<0 ||brks>1) + { + Log::Warning()<<"setTaukle(): variables must be in range [0,1]. Ignored."< +#include "TauolaParticle.h" +#include "f_Init.h" +#include "f_Variables.h" + +namespace Tauolapp +{ + +class TauolaEvent; +class TauolaParticle; + +class Tauola{ + + public: + + static const int NS1=100,NS2=100,NS3=100,NCOS=21; + + /** Units */ + static enum MomentumUnits { DEFAULT_MOMENTUM=-1, MEV, GEV } momentumUnit; + static enum LengthUnits { DEFAULT_LENGTH =-1, MM , CM } lengthUnit; + + /** Set output units (default Tauola::GEV and Tauola::MM). */ + static void setUnits(MomentumUnits m,LengthUnits l); + + /** Set tau lifetime (in mm). */ + static void setTauLifetime(double t); + + /** Decay Modes */ + enum { All=0, ElectronMode, MuonMode, PionMode, + RhoMode, A1Mode, KMode, KStarMode }; + + /** Structure for switching the computation of spin correlation. + By default all spin correlations are turned on. */ + struct Particles + { + bool GAMMA, + Z0, + HIGGS, + HIGGS_H, + HIGGS_A, + HIGGS_PLUS, + HIGGS_MINUS, + W_PLUS, + W_MINUS; + void setAll(bool flag) { GAMMA=Z0=HIGGS=HIGGS_H=HIGGS_A=HIGGS_PLUS=HIGGS_MINUS=W_PLUS=W_MINUS=flag; } + } static spin_correlation; + + /** Initalize Tauola with the parameters previously set via the + setter methods */ + static void initialize(); + + /** DEPRECATED: Use 'initialize' instead. */ + static void initialise(); + + /** Change currents used by Tauola. + mode = 0 (default) - use CLEO currents + mode = 1 use RChL currents for 3pi and Belle currents for 2pi */ + static void setNewCurrents(int mode); + + /** Substitute build-in generator with external one */ + static void setRandomGenerator( double (*gen)() ); + + static void setRedefineTauMinus( void (*fun)(TauolaParticle *) ); + static void setRedefineTauPlus ( void (*fun)(TauolaParticle *) ); + + /** Tau gun. Takes one particle that's already inside an event record and produces it's decay. + The tau provided may be undecayed first, or left intact if it already has daughters. + If the polarization three-vector is provided it will be used to construct m_R matrix. */ + static void decayOne(TauolaParticle *tau, bool undecay=false, double polx=0,double poly=0, double polz=0); + + /** Checks if we are using decayOne() */ + static bool isUsingDecayOne(); + + /** Checks if we are using boost routine for decayOne */ + static bool isUsingDecayOneBoost(); + + /** Set boost routine for decayOne(). Refer to documentation for more details. */ + static void setBoostRoutine( void (*boost)(TauolaParticle*, TauolaParticle *) ); + + /** Execute boost routine for decayOne() */ + static void decayOneBoost(TauolaParticle *mother, TauolaParticle *target); + + /** Return polarization vector used by decayOne() */ + static const double* getDecayOnePolarization(); + + /** Set the pdg id of the particle to decay (should be 15 or -15) */ + static void setDecayingParticle(int pdg_id); + + /** Return the pdg id of the particle to decay */ + static int getDecayingParticle(); + + /** Set the decay mode of all particle with pdg id the same + as the one given in setDecayingParticle(). firstDecayMode=0 + is default and allows all decay modes. */ + static void setSameParticleDecayMode(int firstDecayMode); + + /** Set the decay mode of all particle with opposite charge + to the one given in setDecayingParticle(). secondDecayMode=0 + is default and allows all decay modes. */ + static void setOppositeParticleDecayMode(int secondDecayMode); + + /** Switch for bremssthahlung in leptonic tau decays */ + static void setRadiation(bool rad); + + /** Cut-Off parameter of radition. Above that value photon is explicitly generated */ + static void setRadiationCutOff(double rad_cut_off); + + /** Initialization of some constants related to QED corrections. + Variable iniphy_param is at present dummy. It is prepared to be transmitted + to some old style production code and is kept for backward compatibility */ + static void setInitializePhy(double iniphy); + + /** DEPRECATED: Use 'setInitializePhy' instead. */ + static void setInitialisePhy(double iniphy); + + /** Set branching fraction for i-th channel. Can be reused several times during the run. */ + static void setTauBr(int i, double value); + + static void setTaukle(double bra1, double brk0, double brk0b, double brks); + + static double getHiggsScalarPseudoscalarMixingAngle(); + + /** set the mixing angle. coupling: tau~(cos(phi)+isin(phi)gamma5)tau */ + static void setHiggsScalarPseudoscalarMixingAngle(double angle); + + /** Get mass of the tau used by interface. */ + static double getTauMass(); + + /** Modify Higgs Scalar-Pseudoscalar PDG id (default is 35). */ + static void setHiggsScalarPseudoscalarPDG(int pdg_id); + + /** Get Higgs Scalar-Pseudoscalar PDG id. */ + static int getHiggsScalarPseudoscalarPDG(); + + static int getHelPlus(); + + static int getHelMinus(); + + static double getEWwt(); + + static double getEWwt0(); + + static void setEWwt(double wt, double wt0); + + static void setHelicities(int Minus, int Plus); + + static void setEtaK0sPi(int eta, int k, int pi); + + static void getBornKinematics(int *incoming_pdg_id, int *outgoing_pdg_id, double *invariant_mass_squared,double *cosTheta); + + static void summary(); + +public: + + static double table11A[NS1][NCOS][4][4],table1A[NS1][NCOS][4][4],table2A[NS1][NCOS][4][4]; + static double wtable11A[NS1][NCOS],wtable1A[NS1][NCOS],wtable2A[NS1][NCOS]; + static double w0table11A[NS1][NCOS],w0table1A[NS1][NCOS],w0table2A[NS1][NCOS]; + + static double table11B[NS2][NCOS][4][4],table1B[NS2][NCOS][4][4],table2B[NS2][NCOS][4][4]; + static double wtable11B[NS2][NCOS],wtable1B[NS2][NCOS],wtable2B[NS2][NCOS]; + static double w0table11B[NS2][NCOS],w0table1B[NS2][NCOS],w0table2B[NS2][NCOS]; + + static double table11C[NS3][NCOS][4][4],table1C[NS3][NCOS][4][4],table2C[NS3][NCOS][4][4]; + static double wtable11C[NS3][NCOS],wtable1C[NS3][NCOS],wtable2C[NS3][NCOS]; + static double w0table11C[NS3][NCOS],w0table1C[NS3][NCOS],w0table2C[NS3][NCOS]; + static double sminA,smaxA,sminB,smaxB,sminC,smaxC; + + static int ion[3]; + + // c*tau in milimeters, survival probablility P(t)=exp(-t/lifetime) + static double tau_lifetime; + static double momentum_conservation_threshold; + + //born kinematic variables + static int buf_incoming_pdg_id, buf_outgoing_pdg_id; + static double buf_invariant_mass_squared, buf_cosTheta; + static double buf_R[4][4]; //density matrix + + //pointer to random generator function + static double (*randomDouble)(); + + static void (*redefineTauPlusProperties)(TauolaParticle *); + static void (*redefineTauMinusProperties)(TauolaParticle *); + + private: + + /** Calculate the charge of particle with code 'idhep'. + The code of the particle is defined by the Particle Data + Group in Phys. Lett. B204 (1988) 1. + NOTE: Code taken from Photos++, file: PhotosUtilities.cxx, function: PHOCHA */ + static double particleCharge(int idhep); + + /** Fill 'array' indices from 'beg' to 'end' with 'value' */ + static void fill_val(int beg, int end, double* array, double value); + + /** Default generator used in Tauola */ + static double defaultRandomGenerator(); + static void defaultRedPlus(TauolaParticle *); + static void defaultRedMinus(TauolaParticle *); + + /** Are we using decayOne() ? */ + static bool m_is_using_decay_one; + /** decayOne() polarization vector */ + static double m_decay_one_polarization[3]; + /** Boost routine used by decayOne() */ + static void (*m_decay_one_boost_routine)(TauolaParticle*,TauolaParticle*); + + static int m_pdg_id; + static int m_firstDecayMode; + static int m_secondDecayMode; + static bool m_rad; + static double m_rad_cut_off; + static double m_iniphy; + static double m_higgs_scalar_pseudoscalar_mix; + static int m_higgs_scalar_pseudoscalar_pdg; + static double m_wtEW; + static double m_wtEW0; + static int m_helPlus; + static int m_helMinus; +}; + +} // namespace Tauolapp +#endif + diff --git a/TEvtGen/Tauola/TauolaEvent.cxx b/TEvtGen/Tauola/TauolaEvent.cxx new file mode 100644 index 00000000000..e2066d4bd83 --- /dev/null +++ b/TEvtGen/Tauola/TauolaEvent.cxx @@ -0,0 +1,38 @@ +#include "TauolaEvent.h" +#include "Plots.h" + +using namespace std; + +namespace Tauolapp +{ + +void TauolaEvent::undecayTaus(){ + + std::vector particle_list; + particle_list = findParticles(Tauola::getDecayingParticle()); + + for(int p=0; p < (int) particle_list.size(); p++) + particle_list.at(p)->findLastSelf()->undecay(); + +} + +void TauolaEvent::decayTaus(){ + + std::vector particle_list; + particle_list = findStableParticles(Tauola::getDecayingParticle()); + + while(particle_list.size()!=0){ + + // tau and its matching tau-like partner is removed from the list here: + TauolaParticlePair t_pair(particle_list); + + //t_pair.print(); + t_pair.decayTauPair(); + t_pair.checkMomentumConservation(); + } + + // Final event record modifications + eventEndgame(); +} + +} // namespace Tauolapp diff --git a/TEvtGen/Tauola/TauolaEvent.h b/TEvtGen/Tauola/TauolaEvent.h new file mode 100644 index 00000000000..f39c3784bc3 --- /dev/null +++ b/TEvtGen/Tauola/TauolaEvent.h @@ -0,0 +1,65 @@ +#ifndef _TauolaEvent_h_included_ +#define _TauolaEvent_h_included_ + +#include +#include +#include +#include "TauolaParticlePair.h" + +/** + * @class TauolaEvent + * + * @brief Abstract base class for containing the event information. + * + * TauolaEvent contains virtual methods, which need to be implemented + * by the appropriate interface class to the event record. Currently only + * TauolaHepMCEvent does this. An object of TauolaEvent type should be + * created by the user and can be decayed via the decayTaus() method. + * + * This class is responsible for finding taus, (or tau and + * it's neutrino) and creating TauolaParticlePairs out of them. + * + * @author Nadia Davidson + * @date 16 June 2008 + */ + +namespace Tauolapp +{ + +class TauolaEvent{ + + public: + virtual ~TauolaEvent(){}; + + /** create TauolaParticlePairs */ + std::vector findPairs(); + + /** Decay taus in this event.*/ + void decayTaus(); + + /** Undecay taus in this event but removing their daughters and + returning the status cods to 1.*/ + void undecayTaus(); + + /** Final touches to event record after all decays are finished. + Some event records (e.g. HepMC) need it. */ + virtual void eventEndgame() {} + + /** return a list of all particle with pdg_id = absolute value of pdg_id. + This method must be implemented by a derived class. eg. + TauolaHepMCEvent */ + virtual std::vector findParticles(int pdg_id)=0; + + /** return a list of all particle with pdg_id = absolute value of pdg_id + and stable status code. This method must be implemented by a derived class. + eg. TauolaHepMCEvent */ + virtual std::vector findStableParticles(int pdg_id)=0; + + + private: + +}; + +} // namespace Tauolapp +#endif + diff --git a/TEvtGen/Tauola/TauolaHEPEVTEvent.cxx b/TEvtGen/Tauola/TauolaHEPEVTEvent.cxx new file mode 100644 index 00000000000..2436a413224 --- /dev/null +++ b/TEvtGen/Tauola/TauolaHEPEVTEvent.cxx @@ -0,0 +1,143 @@ +#include "TauolaHEPEVTEvent.h" + +#include "Log.h" + +namespace Tauolapp +{ + +TauolaHEPEVTEvent::~TauolaHEPEVTEvent() +{ + for(unsigned int i=0;isetEvent(this); + + p->setBarcode(particle_list.size()); + particle_list.push_back(p); +} + +TauolaHEPEVTParticle *TauolaHEPEVTEvent::getParticle(int i) +{ + if( i<0 || i>=(int)particle_list.size() ) return NULL; + return particle_list[i]; +} + +int TauolaHEPEVTEvent::getParticleCount() +{ + return particle_list.size(); +} + +// we have conflict in names, looks for -pdg_id also... +std::vector TauolaHEPEVTEvent::findParticles(int pdg_id){ + + std::vector list; + + // Loop over all particles in the event looking + // for tau (or other) particle with specified pdg_id and -pdg_id + for(unsigned int i=0; igetPdgID() ) == pdg_id) + list.push_back(particle_list[i]); + } + + return list; +} + +// we have conflict in names, should be findStableTaus or have another argument. +std::vector TauolaHEPEVTEvent::findStableParticles(int pdg_id){ + + std::vector tau_list = findParticles(pdg_id); + std::vector stable_tau_list; + + for(int i=0; i<(int) tau_list.size(); i++){ + + if(!tau_list.at(i)->hasDaughters()) + stable_tau_list.push_back(tau_list[i]); + else + { + std::vector t = tau_list[i]->getDaughters(); + //Ignore taus that we won't be decaying anyway + if(t.size()==1) continue; + if(t.size()==2 && (abs(t[0]->getPdgID())==15 || abs(t[1]->getPdgID())==15) ) continue; + Log::Warning()<<"Particle with pdg code "<getPdgID() + <<" already has daughters" <print(); +} + +void TauolaHEPEVTEvent::clear() +{ + for(unsigned int i=0;iaddParticle(p); + } +} + +void TauolaHEPEVTEvent::write_event_to_HEPEVT(TauolaHEPEVTEvent *evt) +{ + if(evt==NULL) return; + + hepevt_.nhep = evt->getParticleCount(); + + for(int i=0; igetParticle(i); + + hepevt_.idhep [i] =p->getPdgID(); + hepevt_.isthep[i] =p->getStatus(); + hepevt_.phep [i][0]=p->getPx(); + hepevt_.phep [i][1]=p->getPy(); + hepevt_.phep [i][2]=p->getPz(); + hepevt_.phep [i][3]=p->getE(); + hepevt_.phep [i][4]=p->getMass(); + hepevt_.jmohep[i][0]=p->getFirstMotherIndex() +1; + hepevt_.jmohep[i][1]=p->getSecondMotherIndex() +1; + hepevt_.jdahep[i][0]=p->getDaughterRangeStart()+1; + hepevt_.jdahep[i][1]=p->getDaughterRangeEnd() +1; + hepevt_.vhep [i][0]=0.0; + hepevt_.vhep [i][1]=0.0; + hepevt_.vhep [i][2]=0.0; + hepevt_.vhep [i][3]=0.0; + } +} + +#endif + +} // namespace Tauolapp diff --git a/TEvtGen/Tauola/TauolaHEPEVTEvent.h b/TEvtGen/Tauola/TauolaHEPEVTEvent.h new file mode 100644 index 00000000000..b94bf93a298 --- /dev/null +++ b/TEvtGen/Tauola/TauolaHEPEVTEvent.h @@ -0,0 +1,102 @@ +#ifndef _TauolaHEPEVTEvent_h_included_ +#define _TauolaHEPEVTEvent_h_included_ + +/** + * @class TauolaHEPEVTParticle + * + * @brief Single particle of HEPEVT event record + * + * This class implements the virtual methods of + * TauolaEvent. In this way it provides an + * interface between the generic TauolaEvent class + * and information stored in HEPEVT event record. + * + * @author Tomasz Przedzinski + * @date 24 November 2011 + */ + +#include +#include "TauolaEvent.h" +#include "TauolaParticle.h" +#include "TauolaHEPEVTParticle.h" + +namespace Tauolapp +{ + +// Uncomment this line to use interface to common block HEPEVT +// But first be sure about suitable for you value of NMXHEP +// and whether phep, vhep should be declared float or double +//#define USE_HEPEVT_INTERFACE + +#ifdef USE_HEPEVT_INTERFACE + +// Change this value to match HEPEVT size +const int NMXHEP = 10000; + +extern "C" struct { + int nevhep; // serial number + int nhep; // number of particles + int isthep[NMXHEP]; // status code + int idhep [NMXHEP]; // particle PDG ID + int jmohep[NMXHEP][2]; // parent particles + int jdahep[NMXHEP][2]; // childreen particles + double phep [NMXHEP][5]; // four-momentum, mass [GeV] + double vhep [NMXHEP][4]; // vertex [mm] +} hepevt_; + +#endif + +class TauolaHEPEVTParticle; + +class TauolaHEPEVTEvent : public TauolaEvent { + + public: + + /** Default destructor */ + ~TauolaHEPEVTEvent(); + + /** Default constructor */ + TauolaHEPEVTEvent(); + + /** Add particle at the end of event record */ + void addParticle(TauolaHEPEVTParticle *p); + + /** Get particle at index 'i' */ + TauolaHEPEVTParticle *getParticle(int i); + + /** Get higher-most index of the particles in event (nhep) */ + int getParticleCount(); + + /** Implementation of TauolaEvent virtual method. + This returns a list of particles in the event with + pdg id = "pdgID". */ + std::vector findParticles(int pdgID); + + /** Implementation of TauolaEven virtual method. + This returns a list of particles in the event with + pdg id = "pdgID" and stable status code. */ + std::vector findStableParticles(int pdgID); + + /** Print out list of particles in the event */ + void print(); + + /** Remove all particles from the event */ + void clear(); + +#ifdef USE_HEPEVT_INTERFACE + /** Fill TauolaHEPEVTEvent from HEPEVT common block */ + static void read_event_from_HEPEVT(TauolaHEPEVTEvent *evt); + + /** Write to HEPEVT common block content of TauolaHEPEVTEvent */ + static void write_event_to_HEPEVT(TauolaHEPEVTEvent *evt); +#endif + + private: + + /** List of all particles */ + std::vector particle_list; +}; + +} // namespace Tauolapp +#endif + diff --git a/TEvtGen/Tauola/TauolaHEPEVTParticle.cxx b/TEvtGen/Tauola/TauolaHEPEVTParticle.cxx new file mode 100644 index 00000000000..fffc6bc26d1 --- /dev/null +++ b/TEvtGen/Tauola/TauolaHEPEVTParticle.cxx @@ -0,0 +1,319 @@ +#include "TauolaHEPEVTParticle.h" + +#include "Log.h" + +namespace Tauolapp +{ + +TauolaHEPEVTParticle::~TauolaHEPEVTParticle() +{ + // Cleanup particles that do not belong to event + for(unsigned int i=0;im_barcode<0) + delete cache[i]; +} + +TauolaHEPEVTParticle::TauolaHEPEVTParticle(int pdgid, int status, double px, double py, double pz, double e, double m, int ms, int me, int ds, int de){ + m_px = px; + m_py = py; + m_pz = pz; + m_e = e; + m_generated_mass = m; + + m_pdgid = pdgid; + m_status = status; + + m_first_mother = ms; + m_second_mother = me; + m_daughter_start = ds; + m_daughter_end = de; + + m_barcode = -1; + m_event = NULL; +} + +void TauolaHEPEVTParticle::undecay(){ + + Log::Info()<<"TauolaHEPEVTParticle::undecay not implemented for HEPEVT"< mothers){ + + // If this particle has not yet been added to the event record + // then add it to the mothers' event record + if(m_barcode<0 && mothers.size()>0) + { + TauolaHEPEVTEvent *evt = ((TauolaHEPEVTParticle*)mothers[0])->m_event; + evt->addParticle(this); + } + + if(mothers.size()>2) Log::Fatal("TauolaHEPEVTParticle::setMothers: HEPEVT does not allow more than two mothers!"); + + if(mothers.size()>0) m_first_mother = mothers[0]->getBarcode(); + if(mothers.size()>1) m_second_mother = mothers[1]->getBarcode(); +} + +void TauolaHEPEVTParticle::setDaughters(vector daughters){ + + // This particle must be inside some event record to be able to add daughters + if(m_event==NULL) Log::Fatal("TauolaHEPEVTParticle::setDaughters: particle not inside event record."); + + int beg = 65535, end = -1; + + for(unsigned int i=0;igetBarcode(); + if(bc<0) Log::Fatal("TauolaHEPEVTParticle::setDaughters: all daughters has to be in event record first"); + if(bcend) end = bc; + } + if(end == -1) beg = -1; + + m_daughter_start = beg; + m_daughter_end = end; +} + +std::vector TauolaHEPEVTParticle::getMothers(){ + + std::vector mothers; + + TauolaParticle *p1 = NULL; + TauolaParticle *p2 = NULL; + + if(m_first_mother>=0) p1 = m_event->getParticle(m_first_mother); + if(m_second_mother>=0) p2 = m_event->getParticle(m_second_mother); + + if(p1) mothers.push_back(p1); + if(p2) mothers.push_back(p2); + + return mothers; +} + +// WARNING: this method also corrects daughter indices +// if such were not defined +std::vector TauolaHEPEVTParticle::getDaughters(){ + + std::vector daughters; + + if(!m_event) return daughters; + + // Check if m_daughter_start and m_daughter_end are set + // If not - try to get list of daughters from event + if(m_daughter_end<0) + { + int min_d=65535, max_d=-1; + for(int i=0;igetParticleCount();i++) + { + if(m_event->getParticle(i)->isDaughterOf(this)) + { + if(imax_d) max_d = i; + } + } + if(max_d>=0) + { + m_daughter_start = min_d; + m_daughter_end = max_d; + m_status = 2; + } + } + + // If m_daughter_end is still not set - there are no daughters + // Otherwsie - get daughters + if(m_daughter_end>=0) + { + for(int i=m_daughter_start;i<=m_daughter_end;i++) + { + TauolaParticle *p = m_event->getParticle(i); + if(p==NULL) + { + Log::Warning()<<"TauolaHEPEVTParticle::getDaughters(): No particle with index "<getParticle(m_daughter_start); + + int first_mother_idx = buf->getFirstMotherIndex(); + int second_mother_idx = buf->getSecondMotherIndex(); + + double px =0.0, py =0.0, pz =0.0, e =0.0; + double px2=0.0, py2=0.0, pz2=0.0, e2=0.0; + + for(int i=m_daughter_start;i<=m_daughter_end;i++) + { + buf = m_event->getParticle(i); + px += buf->getPx(); + py += buf->getPy(); + pz += buf->getPz(); + e += buf->getE (); + } + + if(first_mother_idx>=0) + { + buf = m_event->getParticle(first_mother_idx); + px2 += buf->getPx(); + py2 += buf->getPy(); + pz2 += buf->getPz(); + e2 += buf->getE(); + } + + if(second_mother_idx>=0) + { + buf = m_event->getParticle(second_mother_idx); + px2 += buf->getPx(); + py2 += buf->getPy(); + pz2 += buf->getPz(); + e2 += buf->getE(); + } + // 3-momentum // test HepMC style + double dp = sqrt( (px-px2)*(px-px2) + (py-py2)*(py-py2) + (pz-pz2)*(pz-pz2) ); + // virtuality test as well. + double m1 = sqrt( fabs( e*e - px*px - py*py - pz*pz ) ); + double m2 = sqrt( fabs( e2*e2 - px2*px2 - py2*py2 - pz2*pz2 ) ); + + if( fabs(m1-m2) > 0.0001 || dp > 0.0001*(e+e2)) + { + Log::RedirectOutput( Log::Warning()<<"Momentum not conserved in vertex: " ); + if(first_mother_idx >=0) m_event->getParticle(first_mother_idx) ->print(); + if(second_mother_idx>=0) m_event->getParticle(second_mother_idx)->print(); + for(int i=m_daughter_start;i<=m_daughter_end;i++) m_event->getParticle(i)->print(); + Log::RevertOutput(); + } +} + +TauolaHEPEVTParticle * TauolaHEPEVTParticle::createNewParticle( + int pdg_id, int status, double mass, + double px, double py, double pz, double e){ + + // New particles created using this method are added to cache + // They will be deleted when this particle will be deleted + + cache.push_back(new TauolaHEPEVTParticle(pdg_id,status,px,py,pz,e,mass,-1,-1,-1,-1)); + return cache.back(); +} + +bool TauolaHEPEVTParticle::isDaughterOf(TauolaHEPEVTParticle *p) +{ + int bc = p->getBarcode(); + if(bc==m_first_mother || bc==m_second_mother) return true; + + return false; +} + +bool TauolaHEPEVTParticle::isMotherOf (TauolaHEPEVTParticle *p) +{ + int bc = p->getBarcode(); + if(bc>=m_daughter_start && bc<=m_daughter_end) return true; + + return false; +} + +void TauolaHEPEVTParticle::print(){ + char buf[256]; + sprintf(buf,"P: (%2i) %6i %2i | %11.4e %11.4e %11.4e %11.4e | %11.4e | M: %2i %2i | D: %2i %2i\n", + m_barcode, m_pdgid, m_status, m_px, m_py, m_pz, m_e, m_generated_mass, + m_first_mother, m_second_mother, m_daughter_start, m_daughter_end); + + cout< +#include + +#include "f_Decay.h" +#include "TauolaParticle.h" +#include "TauolaHEPEVTEvent.h" + +namespace Tauolapp +{ + +class TauolaHEPEVTEvent; + +class TauolaHEPEVTParticle: public TauolaParticle { + + public: + /** Default destructor */ + ~TauolaHEPEVTParticle(); + + /** Default constructor */ + TauolaHEPEVTParticle(int pdgid, int status, double px, double py, double pz, double e, double m, int ms, int me, int ds, int de); + + /** Remove the decay branch from the event record and reset the particle status code to stable. + WARNING: not implemented for HEPEVT. */ + void undecay(); + + /** Set the mothers of this particle via a vector of TauolaParticle*/ + void setMothers(std::vector mothers); + + /** Set the daughters of this particle via a vector of TauolaParticle*/ + void setDaughters(std::vector daughters); + + /** Returns the mothers of this particle via a vector of TauolaParticle */ + std::vector getMothers(); + + /** Returns the daughters of this particle via a vector of TauolaParticle */ + std::vector getDaughters(); + + /** Check that the 4 momentum in conserved in the decay of this particle */ + void checkMomentumConservation(); + + /** Creates a new particle of type TauolaHEPEVTParticle, with the given + properties. The new particle bares no relations to this + particle, but `this particle' provides only a way of creating an instance of + this derived class. eg. createNewParticle() is used inside + filhep_() so that a TauolaHEPEVTParticle can be created without + the method having explicit knowledge of the TauolaHEPEVTParticle + class */ + TauolaHEPEVTParticle * createNewParticle(int pdg_id, int status, double mass, + double px, double py, + double pz, double e); + + /** Check if particle 'p' is daughter of this particle */ + bool isDaughterOf(TauolaHEPEVTParticle *p); + + /** Check if particle 'p' is mother of this particle */ + bool isMotherOf (TauolaHEPEVTParticle *p); + + /** Print information on this particle into standard output */ + void print(); + + /** Set the PDG ID code of this particle */ + void setPdgID(int pdg_id); + + /** Set the status of this particle */ + void setStatus(int statu); + + /** Set the mass of this particle */ + void setMass(double mass); + + /** Get the PDG ID code of this particle */ + int getPdgID(); + + /** Get the status of this particle */ + int getStatus(); + + /** Get the mass stored (i.e. not calculated from four vector) at generation step */ + double getMass(); + + /** Returns the px component of the four vector*/ + double getPx(); + + /** Returns the py component of the four vector */ + double getPy(); + + /** Returns the pz component of the four vector */ + double getPz(); + + /** Returns the energy component of the four vector */ + double getE(); + + /** Set the px component of the four vector */ + void setPx( double px ); + + /** Set the px component of the four vector */ + void setPy( double py ); + + /** Set the pz component of the four vector */ + void setPz( double pz ); + + /** Set the energy component of the four vector */ + void setE( double e ); + + /** Get the barcode (position in list) of this particle */ + int getBarcode(); + + /** Set barcode (position in list) of this particle */ + void setBarcode(int barcode); + + /** Set event of this particle */ + void setEvent(TauolaHEPEVTEvent *event); + + /** Get index of first mother */ + int getFirstMotherIndex(); + + /** Get index of second mother */ + int getSecondMotherIndex(); + + /** Get index of first daughter */ + int getDaughterRangeStart(); + + /** Get index of last daughter */ + int getDaughterRangeEnd(); + +private: + + /** Event from which this particle is taken */ + TauolaHEPEVTEvent *m_event; + + /** Position in the event record */ + int m_barcode; + + /** Indexes of mothers (-1 if do not have mothers) */ + int m_first_mother, m_second_mother; + + /** Range of indexes of daughters (-1 if do not have daughters) */ + int m_daughter_start, m_daughter_end; + + /** PDG ID */ + int m_pdgid; + + /** Status (stable, decayed) */ + int m_status; + + /** Momentum */ + double m_px, m_py, m_pz, m_e; + + /** Mass saved at generation step */ + double m_generated_mass; + + /** List of created particles - if they are not in the event, they + will be deleted when no longer needed */ + vector cache; +}; + +} // namespace Tauolapp +#endif + diff --git a/TEvtGen/Tauola/TauolaHepMCEvent.cxx b/TEvtGen/Tauola/TauolaHepMCEvent.cxx new file mode 100644 index 00000000000..4c67df62f6d --- /dev/null +++ b/TEvtGen/Tauola/TauolaHepMCEvent.cxx @@ -0,0 +1,124 @@ +#include "TauolaHepMCEvent.h" +#include "Log.h" + +using namespace std; + +namespace Tauolapp +{ + +TauolaHepMCEvent::TauolaHepMCEvent(HepMC::GenEvent * event){ + m_event=event; + + // Default units + m_momentum_unit = "GEV"; + m_length_unit = "MM"; + + if(m_event->momentum_unit() != HepMC::Units::GEV) m_momentum_unit = "MEV"; + if(m_event->length_unit() != HepMC::Units::MM ) m_length_unit = "CM"; + + // If needed - change units used by HepMC to GEV and MM + if( m_event->momentum_unit() != HepMC::Units::GEV || + m_event->length_unit() != HepMC::Units::MM ) + { + m_event->use_units(HepMC::Units::GEV,HepMC::Units::MM); + } +} + +TauolaHepMCEvent::~TauolaHepMCEvent(){ + + while(m_tau_list.size()!=0){ + TauolaParticle * temp = m_tau_list.back(); + m_tau_list.pop_back(); + delete temp; + } + +} + +HepMC::GenEvent * TauolaHepMCEvent::getEvent(){ + return m_event; +} + +std::vector TauolaHepMCEvent::findParticles(int pdg_id){ + + if(m_tau_list.size()==0){ + + HepMC::GenEvent::particle_const_iterator part_itr = m_event->particles_begin(); + //loop over all particle in the event looking for taus (or other) + for( ; part_itr!=m_event->particles_end(); part_itr++){ + if(abs((*part_itr)->pdg_id())==pdg_id) + m_tau_list.push_back(new TauolaHepMCParticle(*part_itr)); + } + } + return m_tau_list; +} + +std::vector TauolaHepMCEvent::findStableParticles(int pdg_id){ + + /** HepMC::GenEvent::particle_const_iterator part_itr = m_event->particles_begin(); + //loop over all particle in the event looking for taus (or other) + for( ; part_itr!=m_event->particles_end(); part_itr++){ + if(fabs((*part_itr)->pdg_id())==pdg_id){ + if((*part_itr)->end_vertex()){ + cout << "WARNING: Particle with pdg code " << (*part_itr)->pdg_id() + << " has end vertex" < tau_list = findParticles(pdg_id); + std::vector stable_tau_list; + + for(int i=0; i<(int) tau_list.size(); i++){ + + if(!tau_list.at(i)->hasDaughters()) + stable_tau_list.push_back(tau_list.at(i)); + else + { + std::vector t = tau_list.at(i)->getDaughters(); + //Ignore taus that we won't be decaying anyway + if(t.size()==1) continue; + if(t.size()==2 && (abs(t[0]->getPdgID())==15 || abs(t[1]->getPdgID())==15) ) continue; + Log::Warning()<<"Particle with pdg code "<getPdgID() + <<" already has daughters" <use_units(momentum,length); +} + +} // namespace Tauolapp diff --git a/TEvtGen/Tauola/TauolaHepMCEvent.h b/TEvtGen/Tauola/TauolaHepMCEvent.h new file mode 100644 index 00000000000..1cd9b79fed0 --- /dev/null +++ b/TEvtGen/Tauola/TauolaHepMCEvent.h @@ -0,0 +1,73 @@ +#ifndef _TauolaHepMCEvent_h_included_ +#define _TauolaHepMCEvent_h_included_ + +/** + * @class TauolaHepMCEvent + * + * @brief Interface to HepMC::GenEvent objects + * + * This class implements the virtual methods of + * TauolaEvent. In this way it provides an + * interface between the generic TauolaEvent class + * and a HepMC::GenEvent object. + * + * @author Nadia Davidson + * @date 17 June 2008 + * + * This code is licensed under GNU General Public Licence. + * For more informations, see: http://www.gnu.org/licenses/ + */ + +#include +#include "HepMC/GenEvent.h" +#include "HepMC/GenVertex.h" +#include "HepMC/GenParticle.h" +#include "TauolaEvent.h" +#include "TauolaParticle.h" +#include "TauolaHepMCParticle.h" + +namespace Tauolapp +{ + +class TauolaHepMCEvent : public TauolaEvent{ + + public: + + /** Constructor which keeps a pointer to the HepMC::GenEvent*/ + TauolaHepMCEvent(HepMC::GenEvent * event); + + ~TauolaHepMCEvent(); + + /** Returns the HepMC::GenEvent */ + HepMC::GenEvent * getEvent(); + + /** Implementation of TauolaEvent virtual method. + This returns a list of particles in the event with + pdg id = "pdgID". */ + std::vector findParticles(int pdgID); + + /** Implementation of TauolaEven virtual method. + This returns a list of particles in the event with + pdg id = "pdgID" and stable status code. */ + std::vector findStableParticles(int pdgID); + + /** Overriding of TauolaEvent decayEndgame method. + Converts the momentum and length units */ + void eventEndgame(); + + private: + + /** The event */ + HepMC::GenEvent * m_event; + /** List of particles to be decayed */ + std::vector m_tau_list; + /** Momentum unit name */ + string m_momentum_unit; + /** Length unit name */ + string m_length_unit; + +}; + +} // namespace Tauolapp +#endif + diff --git a/TEvtGen/Tauola/TauolaHepMCParticle.cxx b/TEvtGen/Tauola/TauolaHepMCParticle.cxx new file mode 100644 index 00000000000..19e39e2abae --- /dev/null +++ b/TEvtGen/Tauola/TauolaHepMCParticle.cxx @@ -0,0 +1,365 @@ +#include "TauolaHepMCParticle.h" +#include "Log.h" + +namespace Tauolapp +{ + +TauolaHepMCParticle::TauolaHepMCParticle(){ + m_particle = new HepMC::GenParticle(); +} + +TauolaHepMCParticle::~TauolaHepMCParticle(){ + + //delete the mother and daughter pointers + while(m_mothers.size()!=0){ + TauolaParticle * temp = m_mothers.back(); + m_mothers.pop_back(); + delete temp; + } + while(m_daughters.size()!=0){ + TauolaParticle * temp = m_daughters.back(); + m_daughters.pop_back(); + delete temp; + } + + while(m_created_particles.size()!=0){ + TauolaHepMCParticle * temp = (TauolaHepMCParticle*) m_created_particles.back(); + m_created_particles.pop_back(); + if(temp->getHepMC()->barcode()==0) delete temp->getHepMC(); + delete temp; + } + +} + +// NOTE: Not executed by release examples +TauolaHepMCParticle::TauolaHepMCParticle(int pdg_id, int status, double mass){ + m_particle = new HepMC::GenParticle(); + m_particle->set_pdg_id(pdg_id); + m_particle->set_status(status); + m_particle->set_generated_mass(mass); +} + +TauolaHepMCParticle::TauolaHepMCParticle(HepMC::GenParticle * particle){ + m_particle = particle; +} + +HepMC::GenParticle * TauolaHepMCParticle::getHepMC(){ + return m_particle; +} + +void TauolaHepMCParticle::undecay(){ + std::vector daughters = getDaughters(); + std::vector::iterator dIter = daughters.begin(); + + for(; dIter != daughters.end(); dIter++) + (*dIter)->undecay(); + + if(m_particle->end_vertex()) + { + while(m_particle->end_vertex()->particles_out_size()) + { + HepMC::GenParticle *p = m_particle->end_vertex()->remove_particle(*(m_particle->end_vertex()->particles_out_const_begin())); + delete p; + } + delete m_particle->end_vertex(); + } + + m_daughters.clear(); + m_particle->set_status(TauolaParticle::STABLE); + + for(unsigned int i=0;i mothers){ + + /******** Deal with mothers ***********/ + + //If there are mothers + if(mothers.size()>0){ + + HepMC::GenParticle * part; + part=dynamic_cast(mothers.at(0))->getHepMC(); + + //Use end vertex of first mother as production vertex for particle + HepMC::GenVertex * production_vertex = part->end_vertex(); + HepMC::GenVertex * orig_production_vertex = production_vertex; + + //If production_vertex does not exist - create it + //If it's tau decay - set the time and position including the tau lifetime correction + //otherwise - copy the time and position of decaying particle + if(!production_vertex){ + production_vertex = new HepMC::GenVertex(); + HepMC::FourVector point = part->production_vertex()->position(); + production_vertex->set_position(point); + part->parent_event()->add_vertex(production_vertex); + } + + //Loop over all mothers to check that the end points to the right place + vector::iterator mother_itr; + for(mother_itr = mothers.begin(); mother_itr != mothers.end(); + mother_itr++){ + + HepMC::GenParticle * moth; + moth = dynamic_cast(*mother_itr)->getHepMC(); + + if(moth->end_vertex()!=orig_production_vertex) + Log::Fatal("Mother production_vertices point to difference places. Can not override. Please delete vertices first.",1); + else + production_vertex->add_particle_in(moth); + + //update status info + if(moth->status()==TauolaParticle::STABLE) + moth->set_status(TauolaParticle::DECAYED); + } + production_vertex->add_particle_out(m_particle); + } +} + +void TauolaHepMCParticle::setDaughters(vector daughters){ + + if(!m_particle->parent_event()) + Log::Fatal("New particle needs the event set before it's daughters can be added",2); + + //If there are daughters + if(daughters.size()>0){ + // NOTE: Not executed by release examples + // because daughters.size() is always 0 + + //Use production vertex of first daughter as end vertex for particle + HepMC::GenParticle * first_daughter; + first_daughter = (dynamic_cast(daughters.at(0)))->getHepMC(); + + HepMC::GenVertex * end_vertex; + end_vertex=first_daughter->production_vertex(); + HepMC::GenVertex * orig_end_vertex = end_vertex; + + if(!end_vertex){ //if it does not exist create it + end_vertex = new HepMC::GenVertex(); + m_particle->parent_event()->add_vertex(end_vertex); + } + + //Loop over all daughters to check that the end points to the right place + vector::iterator daughter_itr; + for(daughter_itr = daughters.begin(); daughter_itr != daughters.end(); + daughter_itr++){ + + HepMC::GenParticle * daug; + daug = dynamic_cast(*daughter_itr)->getHepMC(); + + + if(daug->production_vertex()!=orig_end_vertex) + Log::Fatal("Daughter production_vertices point to difference places. Can not override. Please delete vertices first.",3); + else + end_vertex->add_particle_out(daug); + } + end_vertex->add_particle_in(m_particle); + } +} + +std::vector TauolaHepMCParticle::getMothers(){ + + if(m_mothers.size()==0&&m_particle->production_vertex()){ + HepMC::GenVertex::particles_in_const_iterator pcle_itr; + pcle_itr=m_particle->production_vertex()->particles_in_const_begin(); + + HepMC::GenVertex::particles_in_const_iterator pcle_itr_end; + pcle_itr_end=m_particle->production_vertex()->particles_in_const_end(); + + for(;pcle_itr != pcle_itr_end; pcle_itr++){ + m_mothers.push_back(new TauolaHepMCParticle(*pcle_itr)); + } + } + return m_mothers; +} + +std::vector TauolaHepMCParticle::getDaughters(){ + + if(m_daughters.size()==0&&m_particle->end_vertex()){ + HepMC::GenVertex::particles_out_const_iterator pcle_itr; + pcle_itr=m_particle->end_vertex()->particles_out_const_begin(); + + HepMC::GenVertex::particles_out_const_iterator pcle_itr_end; + pcle_itr_end=m_particle->end_vertex()->particles_out_const_end(); + + for(;pcle_itr != pcle_itr_end; pcle_itr++){ + m_daughters.push_back(new TauolaHepMCParticle(*pcle_itr)); + } + } + return m_daughters; +} + +void TauolaHepMCParticle::checkMomentumConservation(){ + + if(!m_particle->end_vertex()) return; + + // HepMC version of check_momentum_conservation + // with added energy check + + double sumpx = 0, sumpy = 0, sumpz = 0, sume = 0; + for( HepMC::GenVertex::particles_in_const_iterator part1 = m_particle->end_vertex()->particles_in_const_begin(); + part1 != m_particle->end_vertex()->particles_in_const_end(); part1++ ){ + + sumpx += (*part1)->momentum().px(); + sumpy += (*part1)->momentum().py(); + sumpz += (*part1)->momentum().pz(); + sume += (*part1)->momentum().e(); + } + + for( HepMC::GenVertex::particles_out_const_iterator part2 = m_particle->end_vertex()->particles_out_const_begin(); + part2 != m_particle->end_vertex()->particles_out_const_end(); part2++ ){ + + sumpx -= (*part2)->momentum().px(); + sumpy -= (*part2)->momentum().py(); + sumpz -= (*part2)->momentum().pz(); + sume -= (*part2)->momentum().e(); + } + + if( sqrt( sumpx*sumpx + sumpy*sumpy + sumpz*sumpz + sume*sume) > Tauola::momentum_conservation_threshold ) { + Log::Warning()<<"Momentum not conserved in the vertex:"<end_vertex()->print(); + Log::RevertOutput(); + return; + } + + return; +} + +// NOTE: Not executed by release examples +void TauolaHepMCParticle::setPdgID(int pdg_id){ + m_particle->set_pdg_id(pdg_id); +} + +void TauolaHepMCParticle::setMass(double mass){ + m_particle->set_generated_mass(mass); +} + +// NOTE: Not executed by release examples +void TauolaHepMCParticle::setStatus(int status){ + m_particle->set_status(status); +} + +int TauolaHepMCParticle::getPdgID(){ + return m_particle->pdg_id(); +} + +int TauolaHepMCParticle::getStatus(){ + return m_particle->status(); +} + +int TauolaHepMCParticle::getBarcode(){ + return m_particle->barcode(); +} + +// Set (X,T) Position of tau decay trees +void TauolaHepMCParticle::decayEndgame(){ + + double lifetime = Tauola::tau_lifetime * (-log( Tauola::randomDouble() )); + HepMC::FourVector tau_momentum = m_particle->momentum(); + + double mass = sqrt(abs( tau_momentum.e()*tau_momentum.e() + - tau_momentum.px()*tau_momentum.px() + - tau_momentum.py()*tau_momentum.py() + - tau_momentum.pz()*tau_momentum.pz() + ) ); + + // Get previous position + HepMC::FourVector previous_position = m_particle->production_vertex()->position(); + + // Calculate new position + HepMC::FourVector new_position(previous_position.x()+tau_momentum.px()/mass*lifetime, + previous_position.y()+tau_momentum.py()/mass*lifetime, + previous_position.z()+tau_momentum.pz()/mass*lifetime, + previous_position.t()+tau_momentum.e() /mass*lifetime); + + // Set new position + m_particle->end_vertex()->set_position(new_position); + recursiveSetPosition(m_particle,new_position); +} + +void TauolaHepMCParticle::recursiveSetPosition(HepMC::GenParticle *p, HepMC::FourVector pos){ + + if(!p->end_vertex()) return; + + // Iterate over all outgoing particles + for(HepMC::GenVertex::particles_out_const_iterator pp = p->end_vertex()->particles_out_const_begin(); + pp != p->end_vertex()->particles_out_const_end(); + ++pp){ + if( !(*pp)->end_vertex() ) continue; + + // Set position + (*pp)->end_vertex()->set_position(pos); + recursiveSetPosition(*pp,pos); + } +} + +TauolaHepMCParticle * TauolaHepMCParticle::createNewParticle( + int pdg_id, int status, double mass, + double px, double py, double pz, double e){ + + TauolaHepMCParticle * new_particle = new TauolaHepMCParticle(); + new_particle->getHepMC()->set_pdg_id(pdg_id); + new_particle->getHepMC()->set_status(status); + new_particle->getHepMC()->set_generated_mass(mass); + + HepMC::FourVector momentum(px,py,pz,e); + new_particle->getHepMC()->set_momentum(momentum); + + m_created_particles.push_back(new_particle); + + return new_particle; +} + +void TauolaHepMCParticle::print(){ + m_particle->print(); +} + + +/******** Getter and Setter methods: ***********************/ + +inline double TauolaHepMCParticle::getPx(){ + return m_particle->momentum().px(); +} + +inline double TauolaHepMCParticle::getPy(){ + return m_particle->momentum().py(); +} + +double TauolaHepMCParticle::getPz(){ + return m_particle->momentum().pz(); +} + +double TauolaHepMCParticle::getE(){ + return m_particle->momentum().e(); +} + +void TauolaHepMCParticle::setPx(double px){ + //make new momentum as something is wrong with + //the HepMC momentum setters + + HepMC::FourVector momentum(m_particle->momentum()); + momentum.setPx(px); + m_particle->set_momentum(momentum); +} + +void TauolaHepMCParticle::setPy(double py){ + HepMC::FourVector momentum(m_particle->momentum()); + momentum.setPy(py); + m_particle->set_momentum(momentum); +} + + +void TauolaHepMCParticle::setPz(double pz){ + HepMC::FourVector momentum(m_particle->momentum()); + momentum.setPz(pz); + m_particle->set_momentum(momentum); +} + +void TauolaHepMCParticle::setE(double e){ + HepMC::FourVector momentum(m_particle->momentum()); + momentum.setE(e); + m_particle->set_momentum(momentum); +} + +} // namespace Tauolapp diff --git a/TEvtGen/Tauola/TauolaHepMCParticle.h b/TEvtGen/Tauola/TauolaHepMCParticle.h new file mode 100644 index 00000000000..69f7f5157d8 --- /dev/null +++ b/TEvtGen/Tauola/TauolaHepMCParticle.h @@ -0,0 +1,156 @@ +#ifndef _TauolaHepMCParticle_h_included_ +#define _TauolaHepMCParticle_h_included_ + +/** + * @class TauolaHepMCParticle + * + * @brief Interface to HepMC::GenParticle objects + * + * This class implements the virtual methods of + * TauolaParticle. In this way it provides an + * interface between the generic TauolaParticle class + * and a HepMC::GenParticle object. + * + * @author Nadia Davidson + * @date 17 June 2008 + * + * This code is licensed under GNU General Public Licence. + * For more informations, see: http://www.gnu.org/licenses/ + */ + +#include +#include + +#include "HepMC/GenParticle.h" +#include "HepMC/SimpleVector.h" +#include "HepMC/GenEvent.h" + +//#include "DecayList.h" +#include "TauolaParticle.h" +#include "f_Decay.h" + +namespace Tauolapp +{ + +class TauolaHepMCParticle: public TauolaParticle{ + + public: + /** General constructor */ + TauolaHepMCParticle(); + + ~TauolaHepMCParticle(); + + /** Constructor which keeps a pointer to the HepMC::GenParticle*/ + TauolaHepMCParticle(HepMC::GenParticle * particle); + + /** Constructor which creates a new HepMC::GenParticle and + sets the properties pdg_id, statu and mass. */ + TauolaHepMCParticle(int pdg_id, int status, double mass); + + /** Returns the HepMC::GenParticle */ + HepMC::GenParticle * getHepMC(); + + /** Remove the decay branch from the event record and reset the particle status code to stable. */ + void undecay(); + + /** Set the mothers of this particle via a vector of TauolaParticle*/ + void setMothers(std::vector mothers); + + /** Set the daughters of this particle via a vector of TauolaParticle*/ + void setDaughters(std::vector daughters); + + /** Returns the mothers of this particle via a vector of TauolaParticle */ + std::vector getMothers(); + + /** Returns the daughters of this particle via a vector of TauolaParticle */ + std::vector getDaughters(); + + /** Set the PDG ID code of this particle */ + void setPdgID(int pdg_id); + + /** Set the status of this particle */ + void setStatus(int statu); + + /** Set the mass of this particle */ + void setMass(double mass); + + /** Get the PDG ID code of this particle */ + int getPdgID(); + + /** Get the status of this particle */ + int getStatus(); + + /** Get the barcode of this particle */ + int getBarcode(); + + /** Check that the 4 momentum in conserved at the vertices producing + and ending this particle */ + void checkMomentumConservation(); + + /** Overriding of TauolaParticle decayEndgame method. + Converts the momentum and length units + and sets the vector (X,T) position */ + void decayEndgame(); + + /** Create a new particle of type TauolaHepMCParticle, with the given + properties. The new particle bares no relations to this + particle, but it provides a way of creating a instance of + this derived class. eg. createNewParticle() is used inside + filhep_() so that a TauolaHepMCParticle can be created without + the method having explicit knowledge of the TauolaHepMCParticle + class */ + TauolaHepMCParticle * createNewParticle(int pdg_id, int status, double mass, + double px, double py, + double pz, double e); + + /** Print some information about this particle to standard output */ + void print(); + + /** Returns the px component of the four vector*/ + double getPx(); + + /** Returns the py component of the four vector */ + double getPy(); + + /** Returns the pz component of the four vector */ + double getPz(); + + /** Returns the energy component of the four vector */ + double getE(); + + /** Set the px component of the four vector */ + void setPx( double px ); + + /** Set the px component of the four vector */ + void setPy( double py ); + + /** Set the pz component of the four vector */ + void setPz( double pz ); + + /** Set the energy component of the four vector */ + void setE( double e ); + + +private: + + /** Sets the position for whole decay tree starting from given particle */ + void recursiveSetPosition(HepMC::GenParticle *p,HepMC::FourVector pos); + + /** A pointer to the HepMC::GenParticle particle */ + HepMC::GenParticle * m_particle; + + /** A list of mothers */ + std::vector m_mothers; + + /** A list of daughters */ + std::vector m_daughters; + + /** List to keep track of new particles which have been + created from this one, so we can call their destructor later */ + std::vector m_created_particles; + +}; + +} // namespace Tauolapp +#endif + diff --git a/TEvtGen/Tauola/TauolaParticle.cxx b/TEvtGen/Tauola/TauolaParticle.cxx new file mode 100644 index 00000000000..83933d3b485 --- /dev/null +++ b/TEvtGen/Tauola/TauolaParticle.cxx @@ -0,0 +1,365 @@ +#include "TauolaParticle.h" +#include "Log.h" +#include + +namespace Tauolapp +{ + +double TauolaParticle::getPolarimetricX(){ + return m_pol_x; +} + +double TauolaParticle::getPolarimetricY(){ + return m_pol_y; +} + +double TauolaParticle::getPolarimetricZ(){ + return m_pol_z; +} + + +TauolaParticle * TauolaParticle::clone(){ + + return createNewParticle(getPdgID(),getStatus(),getMass(), + getPx(),getPy(),getPz(),getE()); + +} + +// NOTE: Not executed by release examples +double TauolaParticle::getAngle(TauolaParticle * other_particle){ + + //use the dot product + double x1 = getPx(); + double y1 = getPy(); + double z1 = getPz(); + double x2 = other_particle->getPx(); + double y2 = other_particle->getPy(); + double z2 = other_particle->getPz(); + + return acos( (x1*x2+y1*y2+z1*z2) / sqrt((x1*x1+y1*y1+z1*z1)*(x2*x2+y2*y2+z2*z2)) ); + +} + +// NOTE: Not executed by release examples +void TauolaParticle::add(TauolaParticle * other_particle){ + + setPx(getPx() + other_particle->getPx()); + setPy(getPy() + other_particle->getPy()); + setPz(getPz() + other_particle->getPz()); + setE(getE() + other_particle->getE()); + setMass( sqrt( getE()*getE()-getPx()*getPx()-getPy()*getPy()-getPz()*getPz() )); +} + +void TauolaParticle::subtract(TauolaParticle * other_particle){ + + setPx(getPx() - other_particle->getPx()); + setPy(getPy() - other_particle->getPy()); + setPz(getPz() - other_particle->getPz()); + setE(getE() - other_particle->getE()); + setMass( sqrt( getE()*getE()-getPx()*getPx()-getPy()*getPy()-getPz()*getPz() )); +} + +int TauolaParticle::getSign(){ + if(getPdgID()== Tauola::getDecayingParticle()) + return SAME_SIGN; + else if(getPdgID()== -1 * Tauola::getDecayingParticle()) + return OPPOSITE_SIGN; + else + return NA_SIGN; +} + +bool TauolaParticle::hasDaughters(){ + if(getDaughters().size()==0) + return 0; + else + return 1; +} + +TauolaParticle * TauolaParticle::findLastSelf(){ + vector daughters = getDaughters(); + vector::iterator pcl_itr = daughters.begin(); + + //get all daughters and look for stable with same pgd id + for(;pcl_itr != daughters.end();pcl_itr++){ + if((*pcl_itr)->getPdgID()==this->getPdgID()) + return (*pcl_itr)->findLastSelf(); + } + + return this; +} + +std::vector TauolaParticle::findProductionMothers(){ + vector mothers = getMothers(); + vector::iterator pcl_itr = mothers.begin(); + + //get all mothers and check none have pdg id of this one + for(;pcl_itr != mothers.end();pcl_itr++){ + if((*pcl_itr)->getPdgID()==this->getPdgID()) + return (*pcl_itr)->findProductionMothers(); + } + return mothers; +} + +void TauolaParticle::decay(){ + + //Do the decay and set the polarimetric vectors + TauolaDecay(getSign(),&m_pol_x, &m_pol_y, &m_pol_z, &m_pol_n); +} + +void TauolaParticle::addDecayToEventRecord(){ + + //Add to decay list used by f_filhep.c + DecayList::addToEnd(this); + TauolaWriteDecayToEventRecord(getSign()); + + double xmom[4]={0}; + double *pp=xmom; + + if (Tauola::ion[2]) + for(int i=1;1;i++) + { + TauolaParticle *x; + try{ x=DecayList::getParticle(i); } + catch(std::out_of_range d) {break;} + if(x->getPdgID()==221){ + + // Fix 28.04.2011 The pp vector must have boost for eta undone + TauolaParticle *x_copy = x->clone(); + if(getP(TauolaParticle::Z_AXIS)>0) + x_copy->boostAlongZ(-getP(),getE()); + else + x_copy->boostAlongZ(getP(),getE()); + + pp[3]=x_copy->getE(); + pp[0]=x_copy->getPx(); + pp[1]=x_copy->getPy(); + pp[2]=x_copy->getPz(); + taueta_(pp,&i); + } + } + + if (Tauola::ion[1]) + for(int i=1;1;i++) + { + TauolaParticle *x; + try{ x=DecayList::getParticle(i); } + catch(std::out_of_range d) {break;} + if(x->getPdgID()==310){ + + // Fix 28.04.2011 The pp vector must have boost for k0 undone + TauolaParticle *x_copy = x->clone(); + if(getP(TauolaParticle::Z_AXIS)>0) + x_copy->boostAlongZ(-getP(),getE()); + else + x_copy->boostAlongZ(getP(),getE()); + + pp[3]=x_copy->getE(); + pp[0]=x_copy->getPx(); + pp[1]=x_copy->getPy(); + pp[2]=x_copy->getPz(); + tauk0s_(pp,&i); + } + } + + if (Tauola::ion[0]) + for(int i=1;1;i++) + { + TauolaParticle *x; + try{ x=DecayList::getParticle(i); } + catch(std::out_of_range d) {break;} + if(x->getPdgID()==111){ + + // Fix 28.04.2011 The pp vector must have boost for pi0 undone + TauolaParticle *x_copy = x->clone(); + if(getP(TauolaParticle::Z_AXIS)>0) + x_copy->boostAlongZ(-getP(),getE()); + else + x_copy->boostAlongZ(getP(),getE()); + + pp[3]=x_copy->getE(); + pp[0]=x_copy->getPx(); + pp[1]=x_copy->getPy(); + pp[2]=x_copy->getPz(); + taupi0_(pp,&i); + } + } + DecayList::clear(); + + if(!hasDaughters()) + Log::Fatal("TAUOLA failed. No decay was created",5); + // checkMomentumConservation(); + // decayEndgame(); // vertex shift was wrongly calculated, + // used 4-momenta should be in lab frame, + // thanks to Sho Iwamoto for debug info. + +} + + +void TauolaParticle::boostDaughtersFromRestFrame(TauolaParticle * tau_momentum){ + + if(!hasDaughters()) //if there are no daughters + return; + + vector daughters = getDaughters(); + vector::iterator pcl_itr = daughters.begin(); + + //get all daughters then rotate and boost them. + for(;pcl_itr != daughters.end();pcl_itr++){ + + (*pcl_itr)->boostFromRestFrame(tau_momentum); + (*pcl_itr)->boostDaughtersFromRestFrame(tau_momentum); + } + //checkMomentumConservation(); +} + +void TauolaParticle::boostDaughtersToRestFrame(TauolaParticle * tau_momentum){ + + if(!hasDaughters()) //if there are no daughters + return; + // NOTE: Not executed by release examples + // because !hasDaughters() is always true + vector daughters = getDaughters(); + vector::iterator pcl_itr = daughters.begin(); + + //get all daughters then rotate and boost them. + for(;pcl_itr != daughters.end();pcl_itr++){ + + (*pcl_itr)->boostToRestFrame(tau_momentum); + (*pcl_itr)->boostDaughtersToRestFrame(tau_momentum); + } + //checkMomentumConservation(); +} + + +void TauolaParticle::boostToRestFrame(TauolaParticle * tau_momentum){ + + double theta = tau_momentum->getRotationAngle(Y_AXIS); + tau_momentum->rotate(Y_AXIS,theta); + double phi = tau_momentum->getRotationAngle(X_AXIS); + tau_momentum->rotate(Y_AXIS,-theta); + + //Now rotate coordinates to get boost in Z direction. + rotate(Y_AXIS,theta); + rotate(X_AXIS,phi); + boostAlongZ(-1*tau_momentum->getP(),tau_momentum->getE()); + rotate(X_AXIS,-phi); + rotate(Y_AXIS,-theta); + +} + +void TauolaParticle::boostFromRestFrame(TauolaParticle * tau_momentum){ + //get the rotation angles + //and boost z + + double theta = tau_momentum->getRotationAngle(Y_AXIS); + tau_momentum->rotate(Y_AXIS,theta); + double phi = tau_momentum->getRotationAngle(X_AXIS); + tau_momentum->rotate(Y_AXIS,-theta); + + //Now rotate coordinates to get boost in Z direction. + rotate(Y_AXIS,theta); + rotate(X_AXIS,phi); + boostAlongZ(tau_momentum->getP(),tau_momentum->getE()); + rotate(X_AXIS,-phi); + rotate(Y_AXIS,-theta); +} + +/** Get the angle needed to rotate the 4 momentum vector so that + the x (y) component disapears. (and the Z component is > 0) */ +double TauolaParticle::getRotationAngle(int axis, int second_axis){ + + /**if(getP(axis)==0){ + if(getPz()>0) + return 0; //no rotaion required + else + return M_PI; + }**/ + if(getP(second_axis)==0){ + if(getP(axis)>0) + return -M_PI/2.0; + else + return M_PI/2.0; + } + if(getP(second_axis)>0) + return -atan(getP(axis)/getP(second_axis)); + else + return M_PI-atan(getP(axis)/getP(second_axis)); + +} + +/** Boost this vector along the Z direction. + Assume no momentum components in the X or Y directions. */ +void TauolaParticle::boostAlongZ(double boost_pz, double boost_e){ + + // Boost along the Z axis + double m=sqrt(boost_e*boost_e-boost_pz*boost_pz); + + double p=getPz(); + double e=getE(); + + setPz((boost_e*p + boost_pz*e)/m); + setE((boost_pz*p + boost_e*e )/m); +} + +/** Rotation around an axis X or Y */ +void TauolaParticle::rotate(int axis,double theta, int second_axis){ + + double temp_px=getP(axis); + double temp_pz=getP(second_axis); + setP(axis,cos(theta)*temp_px + sin(theta)*temp_pz); + setP(second_axis,-sin(theta)*temp_px + cos(theta)*temp_pz); +} + +void TauolaParticle::rotateDaughters(int axis,double theta, int second_axis){ + if(!hasDaughters()) //if there are no daughters + return; + + vector daughters = getDaughters(); + vector::iterator pcl_itr = daughters.begin(); + + //get all daughters then rotate and boost them. + for(;pcl_itr != daughters.end();pcl_itr++){ + + (*pcl_itr)->rotate(axis,theta,second_axis); + (*pcl_itr)->rotateDaughters(axis,theta,second_axis); + } + //checkMomentumConservation(); +} + +double TauolaParticle::getMass(){ + double e_sq=getE()*getE(); + double p_sq=getP()*getP(); + + if(e_sq>p_sq) + return sqrt(e_sq-p_sq); + else + return -1*sqrt(p_sq-e_sq); //if it's negative +} + +double TauolaParticle::getP(){ + return sqrt(getPx()*getPx()+getPy()*getPy()+getPz()*getPz()); +} + +double TauolaParticle::getP(int axis){ + if(axis==X_AXIS) + return getPx(); + + if(axis==Y_AXIS) + return getPy(); + + if(axis==Z_AXIS) + return getPz(); + + return 0; +} + +void TauolaParticle::setP(int axis, double p_component){ + if(axis==X_AXIS) + setPx(p_component); + if(axis==Y_AXIS) + setPy(p_component); + if(axis==Z_AXIS) + setPz(p_component); +} + +} // namespace Tauolapp diff --git a/TEvtGen/Tauola/TauolaParticle.h b/TEvtGen/Tauola/TauolaParticle.h new file mode 100644 index 00000000000..d67de038d3e --- /dev/null +++ b/TEvtGen/Tauola/TauolaParticle.h @@ -0,0 +1,353 @@ +#ifndef _TauolaParticle_h_included_ +#define _TauolaParticle_h_included_ + +/** + * @class TauolaParticle + * + * @brief Abstract base class for particle in the event. This class also + * handles boosting. + * + * TauolaParticle is a Tauola representation of a particle. It has virtual + * getter and setter methods that need to be implemented by a derived class. + * An example of this is TauolaHepMCParticle. In this way it provides an + * interface to the information in the Event Record. + * + * The class is also responsible for decays and contains the polarimetric + * vector returned from tauola. All boosting is also done here. + * + * @author Nadia Davidson + * @date 16 June 2008 + */ + +#include +#include +#include + +#include "DecayList.h" +#include "Tauola.h" +#include "f_Decay.h" + +namespace Tauolapp +{ + +class TauolaParticle{ + + public: + + virtual ~TauolaParticle(){}; + + /** The same sign as decaying particle pdg ID code + given to Tauola object (only meaningful for taus). */ + static const int SAME_SIGN=1; + + /** The opposite sign to decaying particle pdg ID code + given to Tauola object (only meaningful for taus). */ + static const int OPPOSITE_SIGN=2; + + /** Sign type is not applicable for this particle + (probably it's not a tau). */ + static const int NA_SIGN=3; + + /** Stable particle status */ + static const int STABLE=1; + + /** Decayed particle status */ + static const int DECAYED=2; + + /** History particle status */ + static const int HISTORY=3; + + /** X Axis */ + static const int X_AXIS=1; + + /** Y Axis */ + static const int Y_AXIS=2; + + /** Z Axis */ + static const int Z_AXIS=3; + + /** Z0 particle */ + static const int Z0 = 23; + + /** H particle */ + static const int HIGGS = 25; + + /** A0 particle */ + static const int HIGGS_A = 36; + + /** H+ particle */ + static const int HIGGS_PLUS = 37; + + /** H- particle */ + static const int HIGGS_MINUS = -37; + + + /** W+ particle */ + static const int W_PLUS = 24; + + /** W- particle */ + static const int W_MINUS = -24; + + /** photon */ + static const int GAMMA = 22; + + /** tau+ particle */ + static const int TAU_PLUS = -15; + + /** tau- particle */ + static const int TAU_MINUS = 15; + + /** tau neutrino particle */ + static const int TAU_NEUTRINO = 16; + + /** tau antineutrino particle */ + static const int TAU_ANTINEUTRINO = -16; + + + /** muon+ particle */ + static const int MUON_PLUS = -13; + + /** muon- particle */ + static const int MUON_MINUS = 13; + + /** muon neutrino particle */ + static const int MUON_NEUTRINO = 14; + + /** muon antineutrino particle */ + static const int MUON_ANTINEUTRINO = -14; + + + /** e+ particle */ + static const int POSITRON = -11; + + /** e- particle */ + static const int ELECTRON = 11; + + /** e neutrino particle */ + static const int ELECTRON_NEUTRINO = 12; + + /** e antineutrino particle */ + static const int ELECTRON_ANTINEUTRINO = -12; + + /** up quark */ + static const int UP = 2; + + /** anti-up quark */ + static const int ANTIUP = -2; + + /** down quark */ + static const int DOWN = 1; + + /** anti-down quark */ + static const int ANTIDOWN = -1; + + static const int GLUON = 21; + static const int CHARM = 4; + static const int TOP = 6; + static const int STRANGE = 3; + static const int BOTTOM = 5; + + /** All other particle types*/ + static const int OTHER = 0; + + /** Create a new particle with the same properties as this one. + Mothers and daughters will not be linked. */ + TauolaParticle * clone(); + + /** Get the angle between this particle and another particle */ + double getAngle(TauolaParticle *); + + /** Add the 4 momentum of another particle to this particle */ + void add(TauolaParticle *); + + /** Subtract the 4 momentum of another particle from this particle */ + void subtract(TauolaParticle *); + + /** Decay the particle. This calls the decay methods in the + interface to (FORTRAN) tauola. */ + void decay(); + + /** Invokes TAUOLA FORTRAN routine DEKAY retrieving the daughters of + decayed tau. */ + void addDecayToEventRecord(); + + /** Get whether this particle has the same or opposite sign + to the pdg code given to the Tauola object. (Only relevant + for tau particles).*/ + int getSign(); + + /** Get the polarimetric vector of this particle in the direction X. + (Only relevant for tau particles).*/ + double getPolarimetricX(); + + /** Get the polarimetric vector of this particle in the direction Y. + (Only relevant for tau particles).*/ + double getPolarimetricY(); + + /** Get the polarimetric vector of this particle in the direction Z. + (Only relevant for tau particles).*/ + double getPolarimetricZ(); + + /** Return whether the particle has any chidren */ + bool hasDaughters(); + + /** Traverse the event structure and find the final version + of this particle which does not have a particle of it's own type + as it's daughter. eg. Generally the final stable copy */ + TauolaParticle * findLastSelf(); + + /** Traverse the event structure and find the first set of mothers + which are not of the same type as this particle. */ + std::vector findProductionMothers(); + + /** Transform this particles four momentum from the lab frome + into the rest frame of the paramter TauolaParticle. **/ + void boostToRestFrame(TauolaParticle * boost); + + /** Transform the four momentum of all the daughters recursively + into the frame of the "particle" TauolaParticle. **/ + void boostDaughtersToRestFrame(TauolaParticle * boost); + + + /** Transform this particles four momentum from the rest frame of + the paramter TauolaParticle, back into the lab frame. **/ + void boostFromRestFrame(TauolaParticle * boost); + + void boostDaughtersFromRestFrame(TauolaParticle * boost); + + /** Do a Lorenz transformation along the Z axis. */ + void boostAlongZ(double pz, double e); + + /** rotate this particles 4-momentum by an angle phi from + the axisis "axis" towards the axis "second_axis". */ + void rotate(int axis, double phi, int second_axis=Z_AXIS); + + void rotateDaughters(int axis, double phi, int second_axis=Z_AXIS); + + /** Returns the angle around the axis "axis" needed to rotate + the four momenum is such a way that the non-Z component + disappears and Z>0. This is used to rotating the coordinate + system into a frame with only a Z component before calling + boostAlongZ().*/ + double getRotationAngle(int axis, int second_axis=Z_AXIS); + + /** Get scalar momentum */ + double getP(); + + /** Get momentum component in the direction of "axis" (x,y,z) */ + double getP(int axis); + + /** Set momentum component in the direction of "axis" (x,y,z) */ + void setP(int axis, double p_component); + + /** Get the invariant mass from the four momentum*/ + double getMass(); + + + + /********************************************** + Beginning of virtual methods + + ********************************************/ + + /** remove the ougoing branch from this particles and reset its status to stable */ + virtual void undecay(){}; + + /** check that the 4 momentum in conserved at the vertices producing + and ending this particle */ + virtual void checkMomentumConservation(){}; + + /** Optional. Modify particle or decay tree if needed. */ + virtual void decayEndgame(){}; + + /** Returns the px component of the four vector*/ + virtual double getPx()=0; + + /** Returns the py component of the four vector */ + virtual double getPy()=0; + + /** Returns the pz component of the four vector */ + virtual double getPz()=0; + + /** Returns the energy component of the four vector */ + virtual double getE()=0; + + /** Set the px component of the four vector */ + virtual void setPx( double px )=0; + + /** Set the px component of the four vector */ + virtual void setPy( double py )=0; + + /** Set the pz component of the four vector */ + virtual void setPz( double pz )=0; + + /** Set the energy component of the four vector */ + virtual void setE( double e )=0; + + /** Set the mothers of this particle via a vector of TauolaParticle */ + virtual void setMothers(std::vector mothers)=0; + + /** Set the daughters of this particle via a vector of TauolaParticle */ + virtual void setDaughters(std::vector daughters)=0; + + /** Returns the mothers of this particle via a vector of TauolaParticle */ + virtual std::vector getMothers()=0; + + /** Returns the daughters of this particle via a vector of TauolaParticle */ + virtual std::vector getDaughters()=0; + + /** Set the PDG ID code of this particle */ + virtual void setPdgID(int pdg_id)=0; + + /** Set the mass of this particle */ + virtual void setMass(double mass)=0; + + /** Set the status of this particle */ + virtual void setStatus(int status)=0; + + /** Get the PDG ID code of this particle */ + virtual int getPdgID()=0; + + /** Get the status of this particle */ + virtual int getStatus()=0; + + /** Get the barcode of this particle */ + virtual int getBarcode()=0; + + /** Create a new particle of the same type, with the given + properties. The new particle bares no relations to this + particle, but it provides a way of creating a intance of + the derived class. eg. createNewParticle() is used inside + filhep_() so that an eg. TauolaHepMCParticle is created without + the method having explicit knowledge of the TauolaHepMCParticle + class */ + virtual TauolaParticle * createNewParticle(int pdg_id, int status, + double mass, double px, + double py, double pz, + double e)=0; + + /** Print some information about this particle to standard output */ + virtual void print()=0; + + private: + + /** The polarimetric vector of this particle in the direction X. + (Only relevant for tau particles). */ + double m_pol_x; + + /** The polarimetric vector of this particle in the direction Y. + (Only relevant for tau particles). */ + double m_pol_y; + + /** The polarimetric vector of this particle in the direction Z. + (Only relevant for tau particles). */ + double m_pol_z; + + /** Fourth component of the polarimetric vector. Should be the + normalisation (1). (Only relevant for tau particles). */ + double m_pol_n; +}; + +} // namespace Tauolapp +#endif + diff --git a/TEvtGen/Tauola/TauolaParticlePair.cxx b/TEvtGen/Tauola/TauolaParticlePair.cxx new file mode 100644 index 00000000000..c9a724985a3 --- /dev/null +++ b/TEvtGen/Tauola/TauolaParticlePair.cxx @@ -0,0 +1,1238 @@ +#include "Tauola.h" +#include "TauolaParticlePair.h" +#include "Log.h" +#include +#include +#include + +namespace Tauolapp +{ + +/** constructor. Get the mothers, grandmothers and siblings of the tau */ +TauolaParticlePair::TauolaParticlePair(std::vector &particle_list){ + TauolaParticle *particle=particle_list.back(); + particle_list.pop_back(); + setBornKinematics(0,0,-1.,0.); //set the default born variables + + // In case of decayOne() we need only the tau information + if(Tauola::isUsingDecayOne()) + { + m_mother = 0; + m_mother_exists = false; + m_production_particles.push_back(particle); + m_final_particles.push_back(particle); + initializeDensityMatrix(); + Log::AddDecay(0); + return; + } + + //See if there are any mothers + std::vector temp_mothers = particle->findProductionMothers(); + + // Case that there are no mothers or grandmothers + if(temp_mothers.size()==0){ + // NOTE: Not executed by release examples + // However, such cases were present if tests used older Pythia8.1 or so. + Log::Warning()<< "WARNING: Could not find taus mother or grandmothers. " + << "Ignoring spin effects" << std::endl; + m_mother = 0; + m_mother_exists = false; + m_production_particles.push_back(particle); + m_final_particles.push_back(particle->findLastSelf()); + initializeDensityMatrix(); + Log::AddDecay(1); + return; + } + + //fill the sibling pointers + std::vector temp_daughters; + temp_daughters = temp_mothers.at(0)->getDaughters(); + if(temp_daughters.size()==0) + Log::Fatal("WARNING: Something wrong with event structure or there is a bug in the TAUOLA interface.",6); + + m_production_particles=temp_daughters; + m_final_particles.push_back(particle->findLastSelf()); + + //Second tau-like particle selection should match properties of the hard (exotic) process. At present, solution + //match one of the possible diagrams contributing to SM process. Rare case like tau+ tau+ nutau nutau will not be treted + //accordingly to any diagram of SM + for(signed int i=0; i < (int) m_production_particles.size(); i++) + { + //check if it has opposite PDGID sign + if(m_final_particles.at(0)->getPdgID()*m_production_particles.at(i)->getPdgID()>=0) continue; + + if(m_production_particles.at(i)->getPdgID()==TauolaParticle::TAU_PLUS|| + m_production_particles.at(i)->getPdgID()==TauolaParticle::TAU_MINUS) + { + //tau+ or tau- - check if it's on the particle_list + int j=-1; + for(j=0;j<(int)particle_list.size();j++) + if(m_production_particles.at(i)->getBarcode()==particle_list.at(j)->getBarcode()) break; + if(j>=(int)particle_list.size()) continue; + + //exists on the list - add to m_final_particles and delete from particle_list + m_final_particles.push_back(m_production_particles.at(i)->findLastSelf()); + particle_list.erase(particle_list.begin()+j); + } + else if(m_production_particles.at(i)->getPdgID()==TauolaParticle::TAU_NEUTRINO|| + m_production_particles.at(i)->getPdgID()==TauolaParticle::TAU_ANTINEUTRINO) + { + //neutrino - for now - just add to m_final_particles + m_final_particles.push_back(m_production_particles.at(i)->findLastSelf()); + } + } + + + //fill the mother and grandmother pointers + if(temp_mothers.size()==1){ //one mother + m_mother_exists = true; + m_mother = temp_mothers.at(0); + m_grandmothers = m_mother->findProductionMothers(); + Log::AddDecay(3); + } + else{ //no mother, but grandparents exist + m_mother_exists = false; + m_grandmothers = temp_mothers; + m_mother = makeTemporaryMother(m_production_particles); + Log::AddDecay(2); + } + + initializeDensityMatrix(); + + return; +} + + +/** The axis is defined by the boosting routine but our standard convention + is: + - Axis 3 is along the direction of the +ve tau, + - Axis 1 is perpendicular to the reaction plane (sign=??) + - Axis 2 is defined through the vector product so the system + is right handed (?? check). Axis 1,2 and 3 are parrellel for the 1st + and second tau. */ +void TauolaParticlePair::initializeDensityMatrix(){ + int incoming_pdg_id=0; + int outgoing_pdg_id=0; + double invariant_mass_squared=-5.0; + double cosTheta=3.0; + + //initialize all elements of the density matrix to zero + for(int x = 0; x < 4; x ++) { + for(int y = 0; y < 4; y ++) + m_R[x][y] = 0; + } + + m_R[0][0]=1; + + if(Tauola::isUsingDecayOne()) + { + const double *pol = Tauola::getDecayOnePolarization(); + + m_R[0][1]=pol[0]; + m_R[0][2]=pol[1]; + m_R[0][3]=pol[2]; + + m_R[1][0]=pol[0]; + m_R[2][0]=pol[1]; + m_R[3][0]=pol[2]; + } + + if(!m_mother) return; + // fill the matrix depending on mother + + + // do scalar-pseudoscalar mixed higgs case separately since + // switch doesn't allow non-constants in a case statement. + // very annoying! + + if(m_mother->getPdgID()==Tauola::getHiggsScalarPseudoscalarPDG()){ + if(!Tauola::spin_correlation.HIGGS_H) return; + + double phi = Tauola::getHiggsScalarPseudoscalarMixingAngle(); + double mass_ratio = Tauola::getTauMass()/m_mother->getMass(); + + double beta = sqrt(1-4*mass_ratio*mass_ratio); + double denominator = pow(cos(phi)*beta,2)+pow(sin(phi),2); + + m_R[0][0]= 1; + m_R[1][1]= (pow(cos(phi)*beta,2)-pow(sin(phi),2))/denominator; + m_R[1][2]= 2*cos(phi)*sin(phi)*beta/denominator; + m_R[2][1]= -m_R[1][2]; + m_R[2][2]= m_R[1][1]; + m_R[3][3]= -1; + } + else { + + double pz = 0.0; + + switch(m_mother->getPdgID()){ + + case TauolaParticle::Z0: + if(!Tauola::spin_correlation.Z0) break; + // Here we calculate SVAR and COSTHE as well as IDE and IDF + // ANGULU(&IDE,&IDF,&SVAR,&COSTHE); + // this is ++ configuration of Fig 5 from HEPPH0101311: + //pol_tau_minus[2]=-1; pol_tau_plus[2]=1; + + pz = getZPolarization(&incoming_pdg_id, &outgoing_pdg_id, &invariant_mass_squared, &cosTheta); + m_R[0][0]=1; + m_R[0][3]=2*pz-1; + m_R[3][0]=2*pz-1; + m_R[3][3]=1; + // alternatively this may be overwritten if better solution exist + recalculateRij(incoming_pdg_id, outgoing_pdg_id, invariant_mass_squared, cosTheta); + break; + + case TauolaParticle::GAMMA: + if(!Tauola::spin_correlation.GAMMA) break; + // Here we calculate SVAR and COSTHE as well as IDE and IDF + // ANGULU(&IDE,&IDF,&SVAR,&COSTHE); + // this is ++ configuration of Fig 5 from HEPPH0101311: + //pol_tau_minus[2]=-1; pol_tau_plus[2]=1; + + pz = getZPolarization(&incoming_pdg_id, &outgoing_pdg_id, &invariant_mass_squared, &cosTheta); + m_R[0][0]=1; + m_R[0][3]=2*pz-1; + m_R[3][0]=2*pz-1; + m_R[3][3]=1; + // alternatively this may be overwritten if better solution exist + recalculateRij(incoming_pdg_id, outgoing_pdg_id, invariant_mass_squared, cosTheta); + break; + + //scalar higgs + case TauolaParticle::HIGGS: + if(!Tauola::spin_correlation.HIGGS) break; + m_R[0][0]=1; + m_R[1][1]=1; + m_R[2][2]=1; + m_R[3][3]=-1; + break; + + //pseudoscalar higgs case + case TauolaParticle::HIGGS_A: + if(!Tauola::spin_correlation.HIGGS_A) break; + m_R[0][0]=1; + m_R[1][1]=-1; + m_R[2][2]=-1; + m_R[3][3]=-1; + break; + + case TauolaParticle::HIGGS_PLUS: + if(!Tauola::spin_correlation.HIGGS_PLUS) break; + m_R[0][0]=1; + m_R[0][3]=-1; + m_R[3][0]=-1; + break; + + case TauolaParticle::HIGGS_MINUS: + if(!Tauola::spin_correlation.HIGGS_MINUS) break; + m_R[0][0]=1; + m_R[0][3]=-1; + m_R[3][0]=-1; + break; + + case TauolaParticle::W_PLUS: + if(!Tauola::spin_correlation.W_PLUS) break; + m_R[0][0]=1; + m_R[0][3]=1; //tau minus (tau minus is on the -ve Z axis) + m_R[3][0]=1; //tau plus + break; + + case TauolaParticle::W_MINUS: + if(!Tauola::spin_correlation.W_MINUS) break; + m_R[0][0]=1; + m_R[0][3]=1; //tau minus (tau minus is on the -ve Z axis) + m_R[3][0]=1; //tau plus + break; + + //ignore spin effects when mother is unknown + default: + m_R[0][0]=1; + break; + } + } + +} + +/**************************************************************/ +void TauolaParticlePair::setBornKinematics(int incoming_pdg_id, int outgoing_pdg_id, double invariant_mass_squared,double cosTheta){ + Tauola::buf_incoming_pdg_id=incoming_pdg_id; + Tauola::buf_outgoing_pdg_id=outgoing_pdg_id; + Tauola::buf_invariant_mass_squared=invariant_mass_squared; + Tauola::buf_cosTheta=cosTheta; + //cout<<"(TauolaParticlePair::Just to be sure:) "<getMass(),2); + setBornKinematics(*incoming_pdg_id, *outgoing_pdg_id, *invariant_mass_squared, *cosTheta); // store for debugging + + //TRIVIAL CASE: + //if we don't know the incoming beams then + //return the average z polarisation + if(m_grandmothers.size()<2){ + Log::Warning()<<"Not enough mothers of Z to " + <<"calculate cos(theta) between " + <<"incoming about outgoing beam" + << endl; + return 1-plzap0_(incoming_pdg_id,outgoing_pdg_id, + invariant_mass_squared, cosTheta); + } + + if(!getTauPlus(m_production_particles)||!getTauMinus(m_production_particles)){ + Log::Error()<<"tau+ or tau- not found in Z decay"<< endl; + return 0; + } + + //NOW CHECK FOR THE DIFFICULT EVENTS: + //case f1 + f2 + f3 -> Z -> tau tau + //case f1 + f2 -> Z + f3, Z-> tau tau or f1 + f2 -> tau tau f3 + //case f1 + f2 -> Z -> tau tau gamma + if(m_grandmothers.size()>2 || + (m_grandmothers.at(0)->getDaughters().size()>1 && m_mother_exists==true) || + m_production_particles.size() > 2){ + + //make a vector of the extra grandmother particles + vector extra_grandmothers; + for(int i=0; i<(int) m_grandmothers.size(); i++){ + // temp_grandmothers.push_back(m_grandmothers.at(i)); + if(m_grandmothers.at(i)!=getGrandmotherPlus(m_grandmothers)&& + m_grandmothers.at(i)!=getGrandmotherMinus(m_grandmothers)) + extra_grandmothers.push_back(m_grandmothers.at(i)); + } + + //make a vector of the tau siblings + //and copy all the production particle vector. + vector extra_tau_siblings; + vector temp_production_particles; + for(int i=0; i<(int) m_production_particles.size(); i++){ + if(m_production_particles.at(i)!=getTauPlus(m_production_particles)&& + m_production_particles.at(i)!=getTauMinus(m_production_particles)) + extra_tau_siblings.push_back(m_production_particles.at(i)); + } + + //make a vector of the Z's sibling + vector extra_Z_siblings; + for(int i=0; m_mother_exists && i<(int) m_grandmothers.at(0)->getDaughters().size(); i++){ + if(m_grandmothers.at(0)->getDaughters().at(i)->getPdgID()!=TauolaParticle::Z0) + extra_Z_siblings.push_back(m_grandmothers.at(0)->getDaughters().at(i)); + } + + //make temporary particles for the effect beams + //and copy into a vector + std::vector effective_taus; + effective_taus.push_back(getTauPlus(m_production_particles)->clone()); + effective_taus.push_back(getTauMinus(m_production_particles)->clone()); + + //copy grandmothers into the m_grandmothers vector since we want this to be perminante. + TauolaParticle * g1 = getGrandmotherPlus(m_grandmothers)->clone(); + TauolaParticle * g2 = getGrandmotherMinus(m_grandmothers)->clone(); + m_grandmothers.clear(); + m_grandmothers.push_back(g1); + m_grandmothers.push_back(g2); + + //loop over extra grandmothers + for(int i=0; i<(int) extra_grandmothers.size(); i++) + addToBeam(extra_grandmothers.at(i),&m_grandmothers,0); + + //loop over siblings to the Z + for(int i=0; i<(int) extra_Z_siblings.size(); i++) + addToBeam(extra_Z_siblings.at(i),0,&m_grandmothers); + + //loop over siblings of the taus + for(int i=0; i<(int) extra_tau_siblings.size() ; i++){ + if(m_mother_exists) + addToBeam(extra_tau_siblings.at(i),&effective_taus,0); + else + addToBeam(extra_tau_siblings.at(i),&effective_taus,&m_grandmothers); + } + //And we are finish making the effective income and outgoing beams + + TauolaParticle * temp_mother = makeTemporaryMother(effective_taus); + *invariant_mass_squared = pow(temp_mother->getMass(),2); + + //now we are ready to do the boosting, calculate the angle + //between incoming and outgoing, and get the polarisation of the Z + + double angle1,angle2,angle3; + boostFromLabToTauPairFrame(&angle1, &angle2, &angle3, temp_mother, + m_grandmothers, effective_taus); + + /*double theta1 = -getGrandmotherPlus(m_grandmothers)->getRotationAngle(TauolaParticle::Y_AXIS); + double theta2 = -(M_PI+getGrandmotherMinus(m_grandmothers)->getRotationAngle(TauolaParticle::Y_AXIS)); + *cosTheta = cos((theta1+theta2)/2.0); //just average the angles for now.*/ + + TauolaParticle *tM=getTauPlus(effective_taus); + TauolaParticle *gM=getGrandmotherPlus(m_grandmothers); + + double costheta1=(tM->getPx()*gM->getPx()+tM->getPy()*gM->getPy()+tM->getPz()*gM->getPz())/ + sqrt(tM->getPx()*tM->getPx()+tM->getPy()*tM->getPy()+tM->getPz()*tM->getPz())/ + sqrt(gM->getPx()*gM->getPx()+gM->getPy()*gM->getPy()+gM->getPz()*gM->getPz()); + tM=getTauMinus(effective_taus); + gM=getGrandmotherMinus(m_grandmothers); + + double costheta2=(tM->getPx()*gM->getPx()+tM->getPy()*gM->getPy()+tM->getPz()*gM->getPz())/ + sqrt(tM->getPx()*tM->getPx()+tM->getPy()*tM->getPy()+tM->getPz()*tM->getPz())/ + sqrt(gM->getPx()*gM->getPx()+gM->getPy()*gM->getPy()+gM->getPz()*gM->getPz()); + double sintheta1 = sqrt(1-costheta1*costheta1); + double sintheta2 = sqrt(1-costheta2*costheta2); + double avg = (costheta1*sintheta2+costheta2*sintheta1)/(sintheta1+sintheta2); + + *cosTheta = avg; + + *incoming_pdg_id = getGrandmotherPlus(m_grandmothers)->getPdgID(); + + if(abs(*incoming_pdg_id)==21 || abs(*incoming_pdg_id)==22) + { + *incoming_pdg_id = -getGrandmotherMinus(m_grandmothers)->getPdgID(); + //cout<<"INFO:\tgluon pdg id changed!"< 8 && + abs(*incoming_pdg_id)!=11 && + abs(*incoming_pdg_id)!=13 && + abs(*incoming_pdg_id)!=15 ) + { + Log::Error()<<"Second class disaster: incoming_pdg_id = "<<*incoming_pdg_id< Z -> tau+ tau - or f1 f2 -> tau+ tau- + //This includes Z -> tau tau, tau -> gamma tau? + + double angle1,angle2,angle3; + boostFromLabToTauPairFrame(&angle1, &angle2, &angle3, + m_mother,m_grandmothers,m_production_particles); + + TauolaParticle *tM=getTauPlus(m_production_particles); + TauolaParticle *gM=getGrandmotherPlus(m_grandmothers); + double costheta1=(tM->getPx()*gM->getPx()+tM->getPy()*gM->getPy()+tM->getPz()*gM->getPz())/ + sqrt(tM->getPx()*tM->getPx()+tM->getPy()*tM->getPy()+tM->getPz()*tM->getPz())/ + sqrt(gM->getPx()*gM->getPx()+gM->getPy()*gM->getPy()+gM->getPz()*gM->getPz()); + + tM=getTauMinus(m_production_particles); + gM=getGrandmotherMinus(m_grandmothers); + + double costheta2=(tM->getPx()*gM->getPx()+tM->getPy()*gM->getPy()+tM->getPz()*gM->getPz())/ + sqrt(tM->getPx()*tM->getPx()+tM->getPy()*tM->getPy()+tM->getPz()*tM->getPz())/ + sqrt(gM->getPx()*gM->getPx()+gM->getPy()*gM->getPy()+gM->getPz()*gM->getPz()); + + double sintheta1 = sqrt(1-costheta1*costheta1); + double sintheta2 = sqrt(1-costheta2*costheta2); + + double avg = (costheta1*sintheta2+costheta2*sintheta1)/(sintheta1+sintheta2); + + *cosTheta = avg; + + *incoming_pdg_id = getGrandmotherPlus(m_grandmothers)->getPdgID(); + + boostFromTauPairToLabFrame(angle1, angle2, angle3, + m_mother,m_grandmothers,m_production_particles); + + setBornKinematics(*incoming_pdg_id, *outgoing_pdg_id, *invariant_mass_squared, *cosTheta); // store for debugging + return 1-plzap0_(incoming_pdg_id,outgoing_pdg_id, invariant_mass_squared, cosTheta); + // return 0.5 - (-0.12 + 0.12*cosTheta)/2; +} + +/** WHERE WE CALCULATE THE EFFECTIVE BEAMS **/ +/** This is where we decide which particle should be added into which beam, + add it and change the flavour if necessary. candidates_same + are on the same side of the vertex as the particle. This is needed + for negative the particle 4-momentum. **/ +void TauolaParticlePair::addToBeam(TauolaParticle * pcle, + std::vector *candidates_same, + std::vector *candidates_opp){ + + + double s=0.,o=-10.; + TauolaParticle * s_beam = NULL; + TauolaParticle * o_beam = NULL; + + if(candidates_same){ + double s0 =1.0/getVirtuality(pcle,candidates_same->at(0),false); + double s1 = 1.0/getVirtuality(pcle,candidates_same->at(1),false); + if(s0>s1){ + s=s0; + s_beam = candidates_same->at(0); + } + else{ + s=s1; + s_beam = candidates_same->at(1); + } + } + if(candidates_opp){ + + double o0 =1.0/getVirtuality(pcle,candidates_opp->at(0),true); + double o1 = 1.0/getVirtuality(pcle,candidates_opp->at(1),true); + if(o0>o1){ + o=o0; + o_beam = candidates_opp->at(0); + } + else{ + o=o1; + o_beam = candidates_opp->at(1); + } + } + + if(s>o) + { + s_beam->add(pcle); + int pdg1 = pcle->getPdgID(); + int pdg2 = s_beam->getPdgID(); + if(abs(pdg2)==15) return; + if((abs(pdg2)==21 || abs(pdg2)==22) && abs(pdg1)<17 && abs(pdg1)!=10 && abs(pdg1)!=9) s_beam->setPdgID( pdg1); + } + else + { + o_beam->subtract(pcle); + int pdg1 = pcle->getPdgID(); + int pdg2 = o_beam->getPdgID(); + if((abs(pdg2)==21 || abs(pdg2)==22) && abs(pdg1)<17 && abs(pdg1)!=10 && abs(pdg1)!=9) o_beam->setPdgID(-pdg1); + } + + //should we also do something with the flavours?? + +} + +double TauolaParticlePair::getVirtuality(TauolaParticle * p1, TauolaParticle*p2, bool flip){ + + //if one particle in a gluon and the other a lepton + if((p1->getPdgID()==TauolaParticle::GLUON&&abs(p2->getPdgID())>10&&abs(p2->getPdgID())<20) || + (p2->getPdgID()==TauolaParticle::GLUON&&abs(p1->getPdgID())>10&&abs(p1->getPdgID())<20)) + return -1; + + //add some others... + + //otherwise we calculate the virtuality: + double kp = p1->getE()*p2->getE() - p1->getPx()*p2->getPx() + - p1->getPy()*p2->getPy() - p1->getPz()*p2->getPz(); + if(flip) // Note that we have 1/(p1+p2)^2 or 1/(p1-p2)^2 and p2^2=0 + kp = kp - p1->getMass()*p1->getMass(); + + double q = 1; + if(p1->getPdgID()==TauolaParticle::GAMMA){ + if(abs(p2->getPdgID())==TauolaParticle::UP || + abs(p2->getPdgID())==TauolaParticle::CHARM || + abs(p2->getPdgID())==TauolaParticle::TOP) + q=2.0/3.0; + if(abs(p2->getPdgID())==TauolaParticle::DOWN || + abs(p2->getPdgID())==TauolaParticle::STRANGE || + abs(p2->getPdgID())==TauolaParticle::BOTTOM) + q=1.0/3.0; + } + if(p2->getPdgID()==TauolaParticle::GAMMA){ + if(abs(p1->getPdgID())==TauolaParticle::UP || + abs(p1->getPdgID())==TauolaParticle::CHARM || + abs(p1->getPdgID())==TauolaParticle::TOP) + q=2.0/3.0; + if(abs(p1->getPdgID())==TauolaParticle::DOWN || + abs(p1->getPdgID())==TauolaParticle::STRANGE || + abs(p1->getPdgID())==TauolaParticle::BOTTOM) + q=1.0/3.0; + } + + return fabs(2*kp)/q; +} + +/*********************************************************** + ** TauolaParticlePair::decayTauPair(). + ** Generate tau decay + ************************************************************/ +void TauolaParticlePair::decayTauPair(){ + + //initalize h vectors in case the partner is not a tau + double h_tau_minus[4]={2,0,0,0}; //2 used to compensate for maximum weight + double h_tau_plus[4]={2,0,0,0}; //in the case when there is only 1 tau + + TauolaParticle * tau_minus = getTauMinus(m_final_particles); + TauolaParticle * tau_plus = getTauPlus(m_final_particles); + + //now calculate the spin weight + for(double weight=0; weight < Tauola::randomDouble();){ + //call tauola decay and get polarimetric vectors + if(tau_minus){ + Tauola::redefineTauMinusProperties(tau_minus); + tau_minus->decay(); + h_tau_minus[0]=1; + h_tau_minus[1]=tau_minus->getPolarimetricX(); + h_tau_minus[2]=tau_minus->getPolarimetricY(); + h_tau_minus[3]=tau_minus->getPolarimetricZ(); + } + if(tau_plus){ + Tauola::redefineTauPlusProperties(tau_plus); + tau_plus->decay(); + h_tau_plus[0]=1; + h_tau_plus[1]=tau_plus->getPolarimetricX(); + h_tau_plus[2]=tau_plus->getPolarimetricY(); + h_tau_plus[3]=tau_plus->getPolarimetricZ(); + } + // cout<<" tau? tau? "<< tau_plus->getPdgID()<<" "<< tau_minus->getPdgID()<(wthel[0]+wthel[1]+wthel[2])/(wthel[0]+wthel[1]+wthel[2]+wthel[3])) Tauola::setHelicities(-1,-1); + else if (rn>(wthel[0]+wthel[1]) /(wthel[0]+wthel[1]+wthel[2]+wthel[3])) Tauola::setHelicities(-1,+1); + else if (rn>(wthel[0]) /(wthel[0]+wthel[1]+wthel[2]+wthel[3])) Tauola::setHelicities( 1,-1); + else Tauola::setHelicities( 1, 1); + + + + + //boost into the frame used to define the density matrices + //and add the tau's new daughters. + + double angle1,angle2,angle3; + TauolaParticle * mum = makeTemporaryMother(m_final_particles); + + if(!Tauola::isUsingDecayOneBoost()) + boostFromLabToTauPairFrame(&angle1, &angle2, &angle3, + mum,m_grandmothers,m_final_particles); + + //add the accepted decay into the event record + if(tau_plus) + tau_plus->addDecayToEventRecord(); + if(tau_minus) + tau_minus->addDecayToEventRecord(); + + if(!Tauola::isUsingDecayOneBoost()) + boostFromTauPairToLabFrame(angle1,angle2,angle3, + mum,m_grandmothers,m_final_particles); + + // Apply final decay modification, once taus are in lab frame. + // At present 28.02.11, vertex position shift (in HepMC) is implemented. + // Thanks Sho Iwamoto for feedback + if(tau_plus) + tau_plus->decayEndgame(); + if(tau_minus) + tau_minus->decayEndgame(); + +} + +/*********************************************************** + ** Below are the methods used for boosting and rotating + ** into another reference frame. + ************************************************************/ + +/** Step 1. (Transformation A). Any modification to this method also requires a modification + to the inverse method boostFromTauPairFrameToLab (transformation A^-1).*/ +void TauolaParticlePair::boostFromLabToTauPairFrame(double * rotation_angle1, + double * rotation_angle2, + double * rotation_angle3, + TauolaParticle * mother, + vector grandmothers, + vector taus + ){ //in positive z axis (+1) //or negative z axis (-1) + + /** boost all gradmothers and daughters (taus, neutrinos, etc,) + to the mothers rest frame */ + + for(int i=0; i< (int) grandmothers.size(); i++) + grandmothers.at(i)->boostToRestFrame(mother); + //If taus.size()==1 then taus[1] is the same as mum. Disaster to be avoided. + if(taus.size()!=1) + for(int i=0; i< (int) taus.size(); i++){ + taus.at(i)->boostToRestFrame(mother); + // NOTE: Following line has no effect in release examples + // because taus don't have daughters at this step + taus.at(i)->boostDaughtersToRestFrame(mother); + } + + /** rotate all particles so taus are on the z axis */ + if(getTauPlus(taus)){ //if there's a tau+ use this to get the rotation angle + *rotation_angle1 = getTauPlus(taus)->getRotationAngle(TauolaParticle::Y_AXIS); + rotateSystem(grandmothers,taus,*rotation_angle1,TauolaParticle::Y_AXIS); + *rotation_angle2 = getTauPlus(taus)->getRotationAngle(TauolaParticle::X_AXIS); + rotateSystem(grandmothers,taus,*rotation_angle2,TauolaParticle::X_AXIS); + } + else{ //otherwise use the tau- + *rotation_angle1 = M_PI+getTauMinus(taus)->getRotationAngle(TauolaParticle::Y_AXIS); + rotateSystem(grandmothers,taus,*rotation_angle1,TauolaParticle::Y_AXIS); + *rotation_angle2 = M_PI+getTauMinus(taus)->getRotationAngle(TauolaParticle::X_AXIS); + rotateSystem(grandmothers,taus,*rotation_angle2,TauolaParticle::X_AXIS); + } + + //now rotate incoming beams so they are aligned in the y-z plane + if(grandmothers.size()<1){ //if there are no grandmothers + *rotation_angle3 = 0; + return; + } + + //the first grandmother will have a positive y component + if(getGrandmotherPlus(grandmothers)) + *rotation_angle3 = getGrandmotherPlus(grandmothers)->getRotationAngle(TauolaParticle::X_AXIS,TauolaParticle::Y_AXIS); + else + *rotation_angle3 = M_PI+getGrandmotherMinus(grandmothers)->getRotationAngle(TauolaParticle::X_AXIS,TauolaParticle::Y_AXIS); + + rotateSystem(grandmothers,taus,*rotation_angle3,TauolaParticle::X_AXIS,TauolaParticle::Y_AXIS); + +} + +/** Reverses boostFromLabtoMotherFrame. The three rotation angle must be provided. + Any modification to this would require a modification to boostFromLabToTauPairFrame + since this is the inverse transformation (Step 2: A^-1). */ +void TauolaParticlePair::boostFromTauPairToLabFrame(double rotation_angle1, + double rotation_angle2, + double rotation_angle3, + TauolaParticle * mother, + vector grandmothers, + vector taus){ + + + if(mother==0) //if there are no mothers + return; + + + //rotate grand mothers back away from the y-z plane + rotateSystem(grandmothers,taus,-rotation_angle3, TauolaParticle::X_AXIS,TauolaParticle::Y_AXIS); + + //rotate all so that taus are no longer on the z axis + rotateSystem(grandmothers,taus,-rotation_angle2,TauolaParticle::X_AXIS); + rotateSystem(grandmothers,taus,-rotation_angle1,TauolaParticle::Y_AXIS); + + + /*** boost grandmothers and daughters (taus) back into the lab frame */ + for(int i=0; i< (int) grandmothers.size(); i++) + grandmothers.at(i)->boostFromRestFrame(mother); + //If taus.size()==1 then taus[1] is the same as mum. Disaster to be avoided. + if(taus.size()!=1) + for(int i=0; i< (int) taus.size(); i++){ + taus.at(i)->boostFromRestFrame(mother); + taus.at(i)->boostDaughtersFromRestFrame(mother); + } +} + +void TauolaParticlePair::rotateSystem(vector grandmothers, + vector taus, + double theta, int axis, int axis2){ + for(int i=0; i< (int) grandmothers.size(); i++) + grandmothers.at(i)->rotate(axis,theta,axis2); + for(int i=0; i< (int) taus.size(); i++){ + taus.at(i)->rotate(axis,theta,axis2); + taus.at(i)->rotateDaughters(axis,theta,axis2); + } +} + + + +/*********************************************************** + Some extra useful methods +************************************************************/ +TauolaParticle * TauolaParticlePair::makeTemporaryMother(vector taus){ + + //calculate mothers 4-momentum based on the daughters. + double e=0; + double px=0; + double py=0; + double pz=0; + + bool tau_plus = false; + bool tau_minus = false; + bool tau_neutrino = false; + bool tau_antineutrino = false; + + for(int d=0; d < (int) taus.size(); d++){ + TauolaParticle * daughter = taus.at(d); + e+=daughter->getE(); + px+=daughter->getPx(); + py+=daughter->getPy(); + pz+=daughter->getPz(); + switch(daughter->getPdgID()){ + case TauolaParticle::TAU_PLUS: + tau_plus=true; + break; + case TauolaParticle::TAU_MINUS: + tau_minus=true; + break; + case TauolaParticle::TAU_NEUTRINO: + tau_neutrino=true; + break; + case TauolaParticle::TAU_ANTINEUTRINO: + tau_antineutrino=true; + break; + } + } + double m = e*e-px*px-py*py-pz*pz; + if(m<0) + m= -sqrt(-m); + else + m=sqrt(m); + + //look for mothers type: + int pdg=0; + + //Assume Z + if(tau_plus&&tau_minus) + pdg=TauolaParticle::Z0 ; + + //Assume W+ + if(tau_plus&&tau_neutrino) + pdg=TauolaParticle::W_PLUS; + + //Assume W- + if(tau_minus&&tau_antineutrino) + pdg=TauolaParticle::W_MINUS; + + // now make the mother + return taus.at(0)->createNewParticle(pdg,2,m,px,py,pz,e); +} + +// see if "particle" is one of the final taus in this tau pair +// (based on particle barcode) +// NOTE: Not executed by release examples +bool TauolaParticlePair::contains(TauolaParticle * particle){ + + for(int i=0; i< (int) m_final_particles.size(); i++){ + if(m_final_particles.at(i)->getBarcode()==particle->getBarcode()) + return true; + } + return false; +} + +TauolaParticle * TauolaParticlePair::getTauMinus(vector taus){ + for(int i=0; i< (int) taus.size(); i++){ + if(taus.at(i)->getPdgID()==TauolaParticle::TAU_MINUS) + return taus.at(i); + } + return 0; +} + +TauolaParticle * TauolaParticlePair::getTauPlus(vector taus){ + for(int i=0; i< (int) taus.size(); i++){ + if(taus.at(i)->getPdgID()==TauolaParticle::TAU_PLUS) + return taus.at(i); + } + return 0; +} + +TauolaParticle * TauolaParticlePair::getGrandmotherPlus(vector grandmothers){ + //choose based on energy if there are more than one?? + double e = -1e30; + int index = -1; + for(int i=0; i< (int) grandmothers.size(); i++){ + if( (grandmothers.at(i)->getPdgID()<0 && grandmothers.at(i)->getPdgID()>-9) || + grandmothers.at(i)->getPdgID()== TauolaParticle::POSITRON|| + grandmothers.at(i)->getPdgID()== TauolaParticle::MUON_PLUS){ + if(egetE()){ + e=grandmothers.at(i)->getE(); + index=i; + } + } + } + if(index==-1) + { + for(int i=0; i< (int) grandmothers.size(); i++) + { + if(grandmothers.at(i)->getPdgID()==21 || grandmothers.at(i)->getPdgID()==22) + { + index=i; + e=grandmothers.at(i)->getE(); + break; + } + } + } + if(index==-1) index=0; + if(e==0) + { + grandmothers.at(index)->print(); + return 0; + } + else + return grandmothers.at(index); +} + +TauolaParticle * TauolaParticlePair::getGrandmotherMinus(vector grandmothers){ + //choose based on energy if there are more than one?? + double e = -1e30; + int index = -1; + for(int i=0; i< (int) grandmothers.size(); i++){ + if( (grandmothers.at(i)->getPdgID()>0 && grandmothers.at(i)->getPdgID()<9) || + grandmothers.at(i)->getPdgID()== TauolaParticle::ELECTRON|| + grandmothers.at(i)->getPdgID()== TauolaParticle::MUON_MINUS){ + if(egetE()){ + e=grandmothers.at(i)->getE(); + index=i; + } + } + } + if(index==-1) + { + for(int i=(int) grandmothers.size()-1; i>=0 ; i--) + { + if(grandmothers.at(i)->getPdgID()==21||grandmothers.at(i)->getPdgID()==22) + { + index=i; + e=grandmothers.at(i)->getE(); + break; + } + } + } + if(index==-1) index=0; + if(e==0) + return 0; + else + return grandmothers.at(index); +} + + + +void TauolaParticlePair::print(){ + + Log::RedirectOutput(Log::Info()); + std::cout << "Daughters final:" << std::endl; + for(int i=0; i< (int) m_final_particles.size(); i++) + m_final_particles.at(i)->print(); + + + std::cout << "Daughters at production:" << std::endl; + for(int i=0; i< (int) m_production_particles.size(); i++) + m_production_particles.at(i)->print(); + + + std::cout << "Mother particle: " << std::endl; + if(m_mother) + m_mother->print(); + + std::cout << "Grandmother particles: " << std::endl; + for(int i=0; i< (int) m_grandmothers.size(); i++) + m_grandmothers.at(i)->print(); + + Log::RevertOutput(); +} + + +void TauolaParticlePair::checkMomentumConservation(){ + + for(int i=0; i< (int) m_final_particles.size(); i++) + m_final_particles.at(i)->checkMomentumConservation(); + + for(int i=0; i< (int) m_production_particles.size(); i++) + m_production_particles.at(i)->checkMomentumConservation(); + + if(m_mother) + m_mother->checkMomentumConservation(); + + for(int i=0; i< (int) m_grandmothers.size(); i++) + m_grandmothers.at(i)->checkMomentumConservation(); + +} + +void TauolaParticlePair::recalculateRij(int incoming_pdg_id, int outgoing_pdg_id, double invariant_mass_squared, double cosTheta){ + + if (abs(outgoing_pdg_id)!=15) + { + Log::Warning()<<"interface was not used for taus pdg id="<Tauola::sminB) + { + T = Tauola::table11B; + Tw = Tauola::wtable11B; + Tw0 = Tauola::w0table11B; + smin = Tauola::sminB; + smax = Tauola::smaxB; + step = (smax-smin)/(Tauola::NS2-1); + } + else if (invariant_mass_squaredTauola::sminC) + { + T = Tauola::table11C; + Tw = Tauola::wtable11C; + Tw0 = Tauola::w0table11C; + smin = Tauola::sminC; + smax = Tauola::smaxC; + step = (smax-smin)/(Tauola::NS3-1); + } + else + { + T = Tauola::table11A; + Tw = Tauola::wtable11A; + Tw0 = Tauola::w0table11A; + smin = Tauola::sminA; + smax = Tauola::smaxA; + step = (smax-smin)/(Tauola::NS1-1); + } + break; + + // NOTE: Use the same tables for 1, 3 and 5 + case 1: + case 3: + case 5: + if(invariant_mass_squaredTauola::sminB) + { + T = Tauola::table1B; + Tw = Tauola::wtable1B; + Tw0 = Tauola::w0table1B; + smin = Tauola::sminB; + smax = Tauola::smaxB; + step = (smax-smin)/(Tauola::NS2-1); + } + else if (invariant_mass_squaredTauola::sminC) + { + T = Tauola::table1C; + Tw = Tauola::wtable1C; + Tw0 = Tauola::w0table1C; + smin = Tauola::sminC; + smax = Tauola::smaxC; + step = (smax-smin)/(Tauola::NS3-1); + } + else + { + T = Tauola::table1A; + Tw = Tauola::wtable1A; + Tw0 = Tauola::w0table1A; + smin = Tauola::sminA; + smax = Tauola::smaxA; + step = (smax-smin)/(Tauola::NS1-1); + } + break; + + // NOTE: Use the same tables for 2 and 4 + case 2: + case 4: + if(invariant_mass_squaredTauola::sminB) + { + T = Tauola::table2B; + Tw = Tauola::wtable2B; + Tw0 = Tauola::w0table2B; + smin = Tauola::sminB; + smax = Tauola::smaxB; + step = (smax-smin)/(Tauola::NS2-1); + } + else if (invariant_mass_squaredTauola::sminC) + { + T = Tauola::table2C; + Tw = Tauola::wtable2C; + Tw0 = Tauola::w0table2C; + smin = Tauola::sminC; + smax = Tauola::smaxC; + step = (smax-smin)/(Tauola::NS3-1); + } + else + { + T = Tauola::table2A; + Tw = Tauola::wtable2A; + Tw0 = Tauola::w0table2A; + smin = Tauola::sminA; + smax = Tauola::smaxA; + step = (smax-smin)/(Tauola::NS1-1); + } + break; + + default: + Log::Warning()<<"interface was not used for proper beams pdg id="<0 ) w=Tauola::wtable2A[0][0]; + else if(Tauola::wtable1A[0][0]>0 ) w=Tauola::wtable1A[0][0]; + else if(Tauola::wtable11A[0][0]>0) w=Tauola::wtable11A[0][0]; + + if (Tauola::wtable2A[0][0]>0 ) w0=Tauola::w0table2A[0][0]; + else if(Tauola::wtable1A[0][0]>0 ) w0=Tauola::w0table1A[0][0]; + else if(Tauola::wtable11A[0][0]>0) w0=Tauola::w0table11A[0][0]; + + // Tauola::setEWwt(w/w0); + Tauola::setEWwt(w,w0); + return; + } // if(mass too small) + + int x = 0; + double buf = smin; + double remnant = 0.0; + + // Interpolate s + if(T==Tauola::table11A || T==Tauola::table1A || T== Tauola::table2A) + { + while(log(invariant_mass_squared) > buf){ + x++; + buf += (step); + } + remnant = (log(invariant_mass_squared)-(buf-step))/step; + } + else + { + while(invariant_mass_squared > buf){ + x++; + buf += step; + } + remnant = (invariant_mass_squared-(buf-step))/step; + } + + double cmin = -1.; + int y = 0; + double remnantc = 0.0; + + // Interpolate cosTheta + buf = cmin+1./Tauola::NCOS; + while(cosTheta > buf){ + y++; + buf+=2./Tauola::NCOS; + } + + remnantc = (cosTheta-(buf-2./Tauola::NCOS))/(2./Tauola::NCOS); + + // Special cases at edges - extrapolation + bool isUsingExtrapolation = false; + if(y >= Tauola::NCOS) { isUsingExtrapolation = true; y = Tauola::NCOS-1; } + if(y == 0) { isUsingExtrapolation = true; y = 1; } + + // Bilinear interpolation + double b11,b21,b12,b22; + + for (int i=0; i<4; i++){ + for (int j=0; j<4; j++){ + + if(isUsingExtrapolation){ + if(y == 1){ + b11 = 2*T[x-1][0][i][j] - T[x-1][1][i][j]; + b21 = 2*T[x][0][i][j] - T[x][1][i][j]; + b12 = T[x-1][0][i][j]; + b22 = T[x][0][i][j]; + } + else{ + b11 = T[x-1][y][i][j]; + b21 = T[x][y][i][j]; + b12 = 2*T[x-1][y][i][j] - T[x-1][y-1][i][j]; + b22 = 2*T[x][y][i][j] - T[x][y-1][i][j]; + } + } // if(isUsingExtrapolation) + else{ + b11 = T[x-1][y-1][i][j]; + b21 = T[x][y-1][i][j]; + b12 = T[x-1][y][i][j]; + b22 = T[x][y][i][j]; + } + m_R[i][j] = b11*(1-remnant)*(1-remnantc) + b21*remnant*(1-remnantc) + + b12*(1-remnant)*remnantc + b22*remnant*remnantc; + } // for(j) + } // for(i) + + // Calculate electroweak weights + double w,w0; + + if(isUsingExtrapolation){ + if(y == 1){ + b11 = 2*Tw[x-1][0] - Tw[x-1][1]; + b21 = 2*Tw[x][0] - Tw[x][1]; + b12 = Tw[x-1][0]; + b22 = Tw[x][0]; + } + else + { + b11 = Tw[x-1][y]; + b21 = Tw[x][y]; + b12 = 2*Tw[x-1][y] - Tw[x-1][y-1]; + b22 = 2*Tw[x][y] - Tw[x][y-1]; + } + } // if(isUsingExtrapolation) + else + { + b11 = Tw[x-1][y-1]; + b21 = Tw[x][y-1]; + b12 = Tw[x-1][y]; + b22 = Tw[x][y]; + } + + w = b11*(1-remnant)*(1-remnantc) + b21*remnant*(1-remnantc) + + b12*(1-remnant)*remnantc + b22*remnant*remnantc; + + if(isUsingExtrapolation){ + if(y == 1){ + b11 = 2*Tw0[x-1][0] - Tw0[x-1][1]; + b21 = 2*Tw0[x][0] - Tw0[x][1]; + b12 = Tw0[x-1][0]; + b22 = Tw0[x][0]; + } + else{ + b11 = Tw0[x-1][y]; + b21 = Tw0[x][y]; + b12 = 2*Tw0[x-1][y] - Tw0[x-1][y-1]; + b22 = 2*Tw0[x][y] - Tw0[x][y-1]; + } + } // if (isUsingExtrapolation) + else{ + b11 = Tw0[x-1][y-1]; + b21 = Tw0[x][y-1]; + b12 = Tw0[x-1][y]; + b22 = Tw0[x][y]; + } + + w0 = b11*(1-remnant)*(1-remnantc) + b21*remnant*(1-remnantc) + + b12*(1-remnant)*remnantc + b22*remnant*remnantc; + + Tauola::setEWwt(w,w0); +} + +} // namespace Tauolapp diff --git a/TEvtGen/Tauola/TauolaParticlePair.h b/TEvtGen/Tauola/TauolaParticlePair.h new file mode 100644 index 00000000000..e7a05945084 --- /dev/null +++ b/TEvtGen/Tauola/TauolaParticlePair.h @@ -0,0 +1,186 @@ +#ifndef _TauolaParticlePair_h_included_ +#define _TauolaParticlePair_h_included_ + +/** + * @class TauolaParticlePair + * + * @brief Contains two TauolaParticle that are related by + * the same mother. Spin correlations are handled here. + * + * An object of TauolaParticlePair contains two TauolaParticle + * that are related by the same mother. Generally this will be + * a tau+ and tau- or a tau and tau neutrino. For the case of + * event records that contain multiple instances of the same + * particle. eg. tau -> gamma tau or simply tau -> tau. Both + * the tau from the production vertex, and the final tau before + * the decay vertex are stored. This allows better handling + * of spin correlations. The decay is done in the rest frame of + * the final tau, where as the spin weight is calculated in the + * rest frame of the production tau. All spin weights are done + * in this class. Please refer to the decayTauPairs() method. + * + * @author Nadia Davidson + * @date 17 June 2008 + */ + + +#include +#include +#include +#include "TauolaParticle.h" + +namespace Tauolapp +{ + +class TauolaParticlePair{ + + public: + + //needed to access m_R matrix and recalculateRij() function. + friend class Plots; + + /** This constructor takes the TauolaParticle and traverse + the event structure to find the mother, partner tau or tau + neutrino and assosiated final and production versions. + Once a TauolaParticlePair object has been created in this way + it is ready to be decayed via decayTauPairs(). */ + TauolaParticlePair(std::vector &particle_list); + + /** Call the decay method of each 'final' tau. Then calculate + the spin correlation weight from the particles polarimetric + vectors. Decays are accepted or rejected based on the spin + weight. Rejected decays are redecayed. */ + void decayTauPair(); + + /** Does this pair contain the particle "particle". Note: it only + checks the "final" particles. */ + bool contains(TauolaParticle * particle); + + /** Return the tau+ particle */ + TauolaParticle * getTauPlus(std::vector particles); + + /** Return the tau- particle */ + TauolaParticle * getTauMinus(std::vector particles); + + /** Return the first grandmother of the tau- + which is an anti-quark or anti-lepton. */ + TauolaParticle * getGrandmotherPlus(std::vector particles); + + /** Return the first grandmother of the tau- + which is a quark or lepton. */ + TauolaParticle * getGrandmotherMinus(std::vector particles); + + /** Print information about the mother and tau pair (at production and final). */ + void print(); + + /** Check that the 4 momentum in conserved at the verticle of + each decayed tau. */ + void checkMomentumConservation(); + + private: + + /** Default constructor is private, so that only friend class can use it. */ + TauolaParticlePair() {} + + /** Store born variables in Tauola class, so the user can retrieve + them using Tauola::getBornKinematics. */ + static void setBornKinematics(int incoming_pdg_id, int outgoing_pdg_id, double invariant_mass_squared, double cosTheta); + + /** Pointers to taus (or tau and neutrino) as they + are before being decayed. */ + std::vector m_final_particles; + + /** Pointers to taus (or tau and neutrino) as they + are after production. */ + std::vector m_production_particles; + + /** Pointer to mothers of the tau pair. */ + TauolaParticle* m_mother; + + /** Is there an entry in the event record for the tau pair's mother? */ + bool m_mother_exists; + + /** vector of pointers to the taus grandparents */ + std::vector m_grandmothers; + + /** If SANC tables are present, use them to recalculate the matrix Rij. */ + void recalculateRij(int incoming_pdg_id, int outgoing_pdg_id, double invariant_mass_squared, double cosTheta); + + /** Rotate the whole system using the given angle theta. */ + void rotateSystem(vector grandmothers, + vector taus, + double theta, + int axis, + int axis2=TauolaParticle::Z_AXIS); + + + /** Boost the outgoing tau and partner and the incoming grandparents of + the tau to the mothers rest frame. The mother is not boosted. + The axis are rotated so that the particle given by "z_axis_particle" is aligned + on the z-axis. If "alignment" is -1 is will be aligned in the negative z direction. + otherwise it is aligned in the positive direction. rotaion_angle(1-3) are + returned to allow reversal of the transformation (through the method + boostFromMotherToLabFrame).*/ + void boostFromLabToTauPairFrame(double * rotation_angle1, + double * rotation_angle2, + double * rotation_angle3, + TauolaParticle * mother, + vector grandmothers, + vector taus); + + /** Reverses the transformation of boostFromLabToMothersFrame. **/ + void boostFromTauPairToLabFrame(double rotation_angle1, + double rotation_angle2, + double rotation_angle3, + TauolaParticle * mother, + vector grandmothers, + vector taus); + + /** The density matric m_R is filled based on the mothers type and kinematics + of the event in the mothers rest frame. */ + void initializeDensityMatrix(); + + /** create a particle which m_mother points to. This is based on the + daughters 4-momentum and particle type. A Z or W is assumed if the + configuration of taus and neutrinos is correct. This particle is not + written into the event record, but it used by the fillDenistyMatrix + method for spin correlations */ + TauolaParticle * makeTemporaryMother(vector taus); + + /**Needs to be changed*/ + //void ANGULU(int *IDE, int *IDF, double *SVAR, double *COSTHE); + /**Needs to be changed*/ + double getZPolarization(int *incoming_pdg_id, + int *outgoing_pdg_id, + double *invMass, + double *cosTheta); + + /** Private function, calculates virtuality between two particles. */ + double getVirtuality(TauolaParticle * p1, TauolaParticle*p2, bool flip); + + /** Add particle to beam. */ + void addToBeam(TauolaParticle * pcle, + std::vector * candidates_same, + std::vector * candidates_opp); + + + /** frames in which it is defined are fixed by the methods + boostFromLabToMotherFrame and boostFromMotherToLabFrame. + Modification to m_R and boostFrom/ToMotherFrame must be done + coherently. */ + double m_R[4][4]; //density matrix +}; + +//Temporary +//Pz is still calculated using the FORTRAN routine in tauola_extra.f +//This should be migrated to C++ at some stage. +extern "C" { + extern double plzap0_(int *incoming_pdg_id, + int *outgoing_pdg_id, + double *invMass, + double *cosTheta); +} + +} // namespace Tauolapp +#endif + diff --git a/TEvtGen/Tauola/f_Decay.cxx b/TEvtGen/Tauola/f_Decay.cxx new file mode 100644 index 00000000000..0996e7a19a3 --- /dev/null +++ b/TEvtGen/Tauola/f_Decay.cxx @@ -0,0 +1,36 @@ +#include "f_Decay.h" + +namespace Tauolapp +{ + +void TauolaDecay(int sign_type, double *polx, double* poly, + double * polz, double * poln){ + + taupos_.npa=1; //tau position in particle list + taupos_.npb=1; + + double pol[4]={0}; + dekay_(&sign_type, pol); + *polx=pol[0]; + *poly=pol[1]; + *polz=pol[2]; + *poln=pol[3]; + + // std::cout << "Polarimetric: "< +#include + +namespace Tauolapp +{ + +extern "C" { + + extern struct{//positions of taus in the LUND common block + int npa; + int npb; + } taupos_; + + //extern void dexay_(int *state, double pol[4]); + extern void dekay_(int *state, double pol[4]); + + extern void taupi0_(double pp[4],int *k); + extern void tauk0s_(double pp[4],int *k); + extern void taueta_(double pp[4],int *k); +} + +/** Invokes DEKAY with "1" or "2" to get the polarization information. */ +void TauolaDecay(int sign_type, double *polx, double *poly, + double *polz, double *poln); + +/** Invokes DEKAY with "11" or "12" to produce the decay. */ +void TauolaWriteDecayToEventRecord(int sign_type); + +} // namespace Tauolapp +#endif diff --git a/TEvtGen/Tauola/f_FilHep.cxx b/TEvtGen/Tauola/f_FilHep.cxx new file mode 100644 index 00000000000..98ba5fb3729 --- /dev/null +++ b/TEvtGen/Tauola/f_FilHep.cxx @@ -0,0 +1,118 @@ +#include "f_FilHep.h" +#include "Tauola.h" +#include "Log.h" + +namespace Tauolapp +{ + +// NOTE: Not executed by release examples +float sgn( float a){ + return a/fabs(a); +} + +// NOTE: Not executed by release examples +void filhepmc_print_details(int * n, int * status, int * pdg_id, + int * mother_first, int * mother_last, + int * daughter_first, int * daughter_last, + float p4[4], float * p_inv_mass, bool * photos_flag){ + + Log::RedirectOutput(Log::Info()); + std::cout<<"*******************"<createNewParticle(*pdg_id,*status,*p_inv_mass, + p4[0],p4[1],p4[2],p4[3] ); + + //boost along Z direction (Z defined as tau boost dir from tauola) + if(Tauola::isUsingDecayOneBoost()) + { + Tauola::decayOneBoost(tau_mother,new_particle); + } + else + { + if(tau_mother->getP(TauolaParticle::Z_AXIS)>0) + new_particle->boostAlongZ(tau_mother->getP(),tau_mother->getE()); + else + new_particle->boostAlongZ(-tau_mother->getP(),tau_mother->getE()); + } + + + //Get rotation angles for transformation to lab frame. + /** double theta = tau_mother->getRotationAngle(TauolaParticle::Y_AXIS); + tau_mother->rotate(TauolaParticle::Y_AXIS,theta); + double phi = tau_mother->getRotationAngle(TauolaParticle::X_AXIS); + tau_mother->rotate(TauolaParticle::Y_AXIS,-theta); + + //rotate coordinate system to lab frame. + new_particle->rotate(TauolaParticle::X_AXIS,-phi); + new_particle->rotate(TauolaParticle::Y_AXIS,-theta);**/ + + //Add to list + DecayList::updateList(new_particle, abs_n); + + //Get vector of mothers as TauolaParticles + vector mothers; + for(int i=*mother_first; i <= *mother_last && *mother_first!=0; i++){ + i=DecayList::getAbsoluteIndex(i,abs_n); + mothers.push_back(DecayList::getParticle(i)); + } + + //Get vector of daughters as TauolaParticles + vector daughters; + for(int i=*daughter_first; i <= *daughter_last && *daughter_first!=0; i++){ + + // NOTE: Not executed by release examples + // because daughter_first is always equal to 0 + i=DecayList::getAbsoluteIndex(i,abs_n); + daughters.push_back(DecayList::getParticle(i)); + } + + //Add particle to event structure + new_particle->setMothers(mothers); + new_particle->setDaughters(daughters); + +} + +/** Simplified defintion. Only calculates mass (ams) from 4 momentum(p) */ +void tralo4_(float * kto, float p[4], float q[4], float * ams){ + + float tmp = p[3]*p[3] - p[1]*p[1] - p[2]*p[2] - p[0]*p[0]; + + if (tmp!=0.0) tmp = tmp/sqrt(fabs(tmp)); + + *ams = tmp; +} + +} // namespace Tauolapp diff --git a/TEvtGen/Tauola/f_FilHep.h b/TEvtGen/Tauola/f_FilHep.h new file mode 100644 index 00000000000..d4ee959ce7c --- /dev/null +++ b/TEvtGen/Tauola/f_FilHep.h @@ -0,0 +1,39 @@ +#ifndef _f_FilHep_h_included_ +#define _f_FilHep_h_included_ + +/** + * This file contains an interface between TAUOLA FORTRAN routines + * and the C++ event. These methods, are defined so they can be called + * by tauola (in tauola.f). They will never be called by the C++ code. + * + * @author Nadia Davidson + * @date 17 June 2008 + */ + +#include +#include +#include +#include + +#include "TauolaParticle.h" +#include "DecayList.h" + +using namespace std; + +namespace Tauolapp +{ + +/** Fill a particle into the TauolaEvent. This relies heavily + on the static data structure DecayList */ +extern "C" void filhep_(int * n, int * status, int * pdg_id, + int * mother_first, int * mother_last, + int * daughter_first, int * daughter_last, + float p4[4], float * p_inv_mass, bool * photos_flag); + +/** This function defines lorentz transformationfrom + first (kto=1) or second (kto=2) tau to laboratory frame. + It's heavily used in Fortran code. */ +extern "C" void tralo4_(float * kto, float p[4], float q[4], float * ams); + +} // namespace Tauolapp +#endif diff --git a/TEvtGen/Tauola/f_Init.cxx b/TEvtGen/Tauola/f_Init.cxx new file mode 100644 index 00000000000..5dd67d2688a --- /dev/null +++ b/TEvtGen/Tauola/f_Init.cxx @@ -0,0 +1,51 @@ +#include "f_Init.h" +#include "Log.h" +#include +using std::endl; + +namespace Tauolapp +{ + +void f_interface_tauolaInitialize(int pdg_id, int firstDecayMode, + int secondDecayMode, bool rad, + double rad_cut_off, double iniphy){ + + double pol[4]={0,0,0,0}; //dummy + + jaki_.jak1=firstDecayMode; + jaki_.jak2=secondDecayMode; + + taurad_.itdkrc=rad; + taurad_.xk0dec=rad_cut_off; //<-this one was causing nan's + idfc_.idff=pdg_id; + + inimas_(); + initdk_(); + float iniphy_param = iniphy; + iniphy_(&iniphy_param); + + int init_state=-1; + // dexay_(&init_state,pol); + dekay_(&init_state,pol); +} + +double f_getTauMass(){ + return (double) parmas_.amtau; +} + +void f_interface_tauolaInitialise(int pdg_id, int firstDecayMode, + int secondDecayMode, bool rad, + double rad_cut_off, double iniphy) +{ + Log::Warning() <<"Deprecated routine 'f_interface_tauolaInitialise'"< PS, rho0, rho-, rho+, omega. + AMPL(1) = CMPLX(PKORB(3,31)*COEF1,0.) + AMPL(2) = CMPLX(PKORB(3,32)*COEF1,0.)*CEXP(CMPLX(0.,PKORB(3,42))) + AMPL(3) = CMPLX(PKORB(3,33)*COEF1,0.)*CEXP(CMPLX(0.,PKORB(3,43))) + AMPL(4) = CMPLX(PKORB(3,34)*COEF1,0.)*CEXP(CMPLX(0.,PKORB(3,44))) + AMPL(5) = CMPLX(PKORB(3,35)*COEF2,0.)*CEXP(CMPLX(0.,PKORB(3,45))) +C Amplitudes for (pi0pi0pi0pi-) -> PS, rho-. + AMPL(6) = CMPLX(PKORB(3,36)*COEF1) + AMPL(7) = CMPLX(PKORB(3,37)*COEF1) +C +C rho' contributions to rho' -> pi-omega: + ALF0 = CMPLX(PKORB(3,51),0.0) + ALF1 = CMPLX(PKORB(3,52)*AMRO**2,0.0) + ALF2 = CMPLX(PKORB(3,53)*AMRO2**2,0.0) + ALF3 = CMPLX(PKORB(3,54)*AMRO3**2,0.0) +C rho' contribtions to rho' -> rhopipi: + LAM0 = CMPLX(PKORB(3,55),0.0) + LAM1 = CMPLX(PKORB(3,56)*AMRO**2,0.0) + LAM2 = CMPLX(PKORB(3,57)*AMRO2**2,0.0) + LAM3 = CMPLX(PKORB(3,58)*AMRO3**2,0.0) +C rho contributions to rhopipi, rho -> 2pi: + BET1 = CMPLX(PKORB(3,59)*AMRO**2,0.0) + BET2 = CMPLX(PKORB(3,60)*AMRO2**2,0.0) + BET3 = CMPLX(PKORB(3,61)*AMRO3**2,0.0) +C + END IF +C************************************************** +C +C --- initialization of four vectors + DO 7 K=1,4 + DO 8 L=1,4 + 8 AA(K,L)=0.0 + HADCUR(K)=CMPLX(0.0) + PAA(K)=PIM1(K)+PIM2(K)+PIM3(K)+PIM4(K) + PP(1,K)=PIM1(K) + PP(2,K)=PIM2(K) + PP(3,K)=PIM3(K) + 7 PP(4,K)=PIM4(K) +C + IF (MNUM.EQ.1) THEN +C =================================================================== +C pi- pi- p0 pi+ case ==== +C =================================================================== + QQ=PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2 + +C Add M(4pi)-dependence to rhopipi channels: + FORM4= LAM0+LAM1*BWIGN(QQ,AMRO,GAMRO) + * +LAM2*BWIGN(QQ,AMRO2,GAMRO2) + * +LAM3*BWIGN(QQ,AMRO3,GAMRO3) + +C --- loop over five contributions of the rho-pi-pi + DO 201 K1=1,3 + DO 201 K2=3,4 +C + IF (K2.EQ.K1) THEN + GOTO 201 + ELSEIF (K2.EQ.3) THEN +C rho- + AMPR = AMPL(3) + AMPA = AMPIZ + ELSEIF (K1.EQ.3) THEN +C rho+ + AMPR = AMPL(4) + AMPA = AMPIZ + ELSE +C rho0 + AMPR = AMPL(2) + AMPA = AMPI + END IF +C + SK=(PP(K1,4)+PP(K2,4))**2-(PP(K1,3)+PP(K2,3))**2 + $ -(PP(K1,2)+PP(K2,2))**2-(PP(K1,1)+PP(K2,1))**2 + +C -- definition of AA matrix +C -- cronecker delta + DO 202 I=1,4 + DO 203 J=1,4 + 203 AA(I,J)=0.0 + 202 AA(I,I)=1.0 +C ... and the rest ... + DO 204 L=1,4 + IF (L.NE.K1.AND.L.NE.K2) THEN + DENOM=(PAA(4)-PP(L,4))**2-(PAA(3)-PP(L,3))**2 + $ -(PAA(2)-PP(L,2))**2-(PAA(1)-PP(L,1))**2 + DO 205 I=1,4 + DO 205 J=1,4 + SIG= 1.0 + IF(J.NE.4) SIG=-SIG + AA(I,J)=AA(I,J) + $ -SIG*(PAA(I)-2.0*PP(L,I))*(PAA(J)-PP(L,J))/DENOM + 205 CONTINUE + ENDIF + 204 CONTINUE +C +C --- lets add something to HADCURR +C FORM1= FPIKM(SQRT(SK),AMPI,AMPI) *FPIKM(SQRT(QQ),AMPI,AMPI) +C FORM1= AMPL(1)+AMPR*FPIKM(SQRT(SK),AMPI,AMPI) + + FORM2PI= BET1*BWIGM(SK,AMRO,GAMRO,AMPA,AMPI) + 1 +BET2*BWIGM(SK,AMRO2,GAMRO2,AMPA,AMPI) + 2 +BET3*BWIGM(SK,AMRO3,GAMRO3,AMPA,AMPI) + FORM1= AMPL(1)+AMPR*FORM2PI +C + DO 206 I=1,4 + DO 206 J=1,4 + HADCUR(I)=HADCUR(I)+FORM1*FORM4*AA(I,J)*(PP(K1,J)-PP(K2,J)) + 206 CONTINUE +C --- end of the rho-pi-pi current (5 possibilities) + 201 CONTINUE +C +C =================================================================== +C Now modify the coefficient for the omega-pi current: = +C =================================================================== + IF (AMPL(5).EQ.CMPLX(0.,0.)) GOTO 311 + +C Overall rho+rhoprime for the 4pi system: +C FORM2=AMPL(5)*(BWIGN(QQ,AMRO,GAMRO)+ELPHA*BWIGN(QQ,AMROP,GAMROP)) +C Modified M(4pi)-dependence: + FORM2=AMPL(5)*(ALF0+ALF1*BWIGN(QQ,AMRO,GAMRO) + * +ALF2*BWIGN(QQ,AMRO2,GAMRO2) + * +ALF3*BWIGN(QQ,AMRO3,GAMRO3)) +C +C --- there are two possibilities for omega current +C --- PA PB are corresponding first and second pi-s + DO 301 KK=1,2 + DO 302 I=1,4 + PA(I)=PP(KK,I) + PB(I)=PP(3-KK,I) + 302 CONTINUE +C --- lorentz invariants + QQA=0.0 + SS23=0.0 + SS24=0.0 + SS34=0.0 + QP1P2=0.0 + QP1P3=0.0 + QP1P4=0.0 + P1P2 =0.0 + P1P3 =0.0 + P1P4 =0.0 + DO 303 K=1,4 + SIGN=-1.0 + IF (K.EQ.4) SIGN= 1.0 + QQA=QQA+SIGN*(PAA(K)-PA(K))**2 + SS23=SS23+SIGN*(PB(K) +PIM3(K))**2 + SS24=SS24+SIGN*(PB(K) +PIM4(K))**2 + SS34=SS34+SIGN*(PIM3(K)+PIM4(K))**2 + QP1P2=QP1P2+SIGN*(PAA(K)-PA(K))*PB(K) + QP1P3=QP1P3+SIGN*(PAA(K)-PA(K))*PIM3(K) + QP1P4=QP1P4+SIGN*(PAA(K)-PA(K))*PIM4(K) + P1P2=P1P2+SIGN*PA(K)*PB(K) + P1P3=P1P3+SIGN*PA(K)*PIM3(K) + P1P4=P1P4+SIGN*PA(K)*PIM4(K) + 303 CONTINUE +C +C omega -> rho pi for the 3pi system: +C FORM3=BWIGN(QQA,AMOM,GAMOM)*(BWIGN(SS23,AMRO,GAMRO)+ +C $ BWIGN(SS24,AMRO,GAMRO)+BWIGN(SS34,AMRO,GAMRO)) +C No omega -> rho pi; just straight omega: + FORM3=BWIGN(QQA,AMOM,GAMOM) +C + DO 304 K=1,4 + HADCUR(K)=HADCUR(K)+FORM2*FORM3*( + $ PB (K)*(QP1P3*P1P4-QP1P4*P1P3) + $ +PIM3(K)*(QP1P4*P1P2-QP1P2*P1P4) + $ +PIM4(K)*(QP1P2*P1P3-QP1P3*P1P2) ) + 304 CONTINUE + 301 CONTINUE + 311 CONTINUE +C + ELSE +C =================================================================== +C pi0 pi0 p0 pi- case ==== +C =================================================================== + QQ=PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2 + +C --- loop over three contribution of the non-omega current + DO 101 K=1,3 + SK=(PP(K,4)+PIM4(4))**2-(PP(K,3)+PIM4(3))**2 + $ -(PP(K,2)+PIM4(2))**2-(PP(K,1)+PIM4(1))**2 + +C -- definition of AA matrix +C -- cronecker delta + DO 102 I=1,4 + DO 103 J=1,4 + 103 AA(I,J)=0.0 + 102 AA(I,I)=1.0 +C +C ... and the rest ... + DO 104 L=1,3 + IF (L.NE.K) THEN + DENOM=(PAA(4)-PP(L,4))**2-(PAA(3)-PP(L,3))**2 + $ -(PAA(2)-PP(L,2))**2-(PAA(1)-PP(L,1))**2 + DO 105 I=1,4 + DO 105 J=1,4 + SIG=1.0 + IF(J.NE.4) SIG=-SIG + AA(I,J)=AA(I,J) + $ -SIG*(PAA(I)-2.0*PP(L,I))*(PAA(J)-PP(L,J))/DENOM + 105 CONTINUE + ENDIF + 104 CONTINUE + +C --- lets add something to HADCURR +C FORM1= FPIKM(SQRT(SK),AMPI,AMPI) *FPIKMD(SQRT(QQ),AMPI,AMPI) +CCCCCCCCCCCCC FORM1=WIGFOR(SK,AMRO,GAMRO) (tests) +C FORM1= FPIKM(SQRT(SK),AMPI,AMPI) *FPIKM(SQRT(QQ),AMPI,AMPI) + FORM1 = AMPL(6)+AMPL(7)*FPIKM(SQRT(SK),AMPI,AMPI) + + DO 106 I=1,4 + DO 106 J=1,4 + HADCUR(I)=HADCUR(I)+FORM1*AA(I,J)*(PP(K,J)-PP(4,J)) + 106 CONTINUE +C --- end of the non omega current (3 possibilities) + 101 CONTINUE + + ENDIF + END + + + diff --git a/TEvtGen/Tauola/tauola-fortran/f3pi.f b/TEvtGen/Tauola/tauola-fortran/f3pi.f new file mode 100644 index 00000000000..5c6cde48250 --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/f3pi.f @@ -0,0 +1,406 @@ + + +*AJW 1 version of a1 form factor + COMPLEX FUNCTION F3PI(IFORM,QQ,SA,SB) +C....................................................................... +C. +C. F3PI - 1 version of a1 form factor, used in TAUOLA +C. +C. Inputs : None +C. : +C. Outputs : None +C. +C. COMMON : None +C. +C. Calls : +C. Called : by FORM1-FORM3 in $C_CVSSRC/korb/koralb/formf.F +C. Author : Alan Weinstein 2/98 +C. +C. Detailed description +C. First determine whether we are doing pi-2pi0 or 3pi. +C. Then implement full form-factor from fit: +C. [(rho-pi S-wave) + (rho-prim-pi S-wave) + +C. (rho-pi D-wave) + (rho-prim-pi D-wave) + +C. (f2 pi D-wave) + (sigmapi S-wave) + (f0pi S-wave)] +C. based on fit to pi-2pi0 by M. Schmidler, CBX 97-64-Update (4/22/98) +C. All the parameters in this routine are hard-coded!! +C. +C....................................................................... + + + +* -------------------- Argument declarations --------------- + + INTEGER IFORM + REAL QQ,SA,SB +* -------------------- EXTERNAL declarations --------------- +* + REAL PKORB + COMPLEX BWIGML +* -------------------- SEQUENCE declarations --------------- +* +* -------------------- Local declarations --------------- +* + CHARACTER*(*) CRNAME + PARAMETER( CRNAME = 'F3PI' ) +* + INTEGER IFIRST,IDK + REAL MRO,GRO,MRP,GRP,MF2,GF2,MF0,GF0,MSG,GSG + REAL M1,M2,M3,M1SQ,M2SQ,M3SQ,MPIZ,MPIC + REAL S1,S2,S3,R,PI + REAL F134,F150,F15A,F15B,F167 + REAL F34A,F34B,F35,F35A,F35B,F36A,F36B + COMPLEX BT1,BT2,BT3,BT4,BT5,BT6,BT7 + COMPLEX FRO1,FRO2,FRP1,FRP2 + COMPLEX FF21,FF22,FF23,FSG1,FSG2,FSG3,FF01,FF02,FF03 + COMPLEX FA1A1P,FORMA1 + +* -------------------- SAVE declarations --------------- +* +* -------------------- DATA initializations --------------- +* + DATA IFIRST/0/ +* ----------------- Executable code starts here ------------ +* +C. Hard-code the fit parameters: + IF (IFIRST.EQ.0) THEN + IFIRST = 1 +C rho, rhoprime, f2(1275), f0(1186), sigma(made up!) + MRO = 0.7743 + GRO = 0.1491 + MRP = 1.370 + GRP = 0.386 + MF2 = 1.275 + GF2 = 0.185 + MF0 = 1.186 + GF0 = 0.350 + MSG = 0.860 + GSG = 0.880 + MPIZ = PKORB(1,7) + MPIC = PKORB(1,8) + +C Fit coefficients for each of the contributions: + PI = 3.14159 + BT1 = CMPLX(1.,0.) + BT2 = CMPLX(0.12,0.)*CEXP(CMPLX(0., 0.99*PI)) + BT3 = CMPLX(0.37,0.)*CEXP(CMPLX(0.,-0.15*PI)) + BT4 = CMPLX(0.87,0.)*CEXP(CMPLX(0., 0.53*PI)) + BT5 = CMPLX(0.71,0.)*CEXP(CMPLX(0., 0.56*PI)) + BT6 = CMPLX(2.10,0.)*CEXP(CMPLX(0., 0.23*PI)) + BT7 = CMPLX(0.77,0.)*CEXP(CMPLX(0.,-0.54*PI)) + + PRINT *,' In F3pi: add (rho-pi S-wave) + (rhop-pi S-wave) +' + PRINT *,' (rho-pi D-wave) + (rhop-pi D-wave) +' + PRINT *,' (f2 pi D-wave) + (sigmapi S-wave) + (f0pi S-wave)' + END IF + +C Initialize to 0: + F3PI = CMPLX(0.,0.) + +C. First determine whether we are doing pi-2pi0 or 3pi. +C PKORB is set up to remember what flavor of 3pi it gave to KORALB, +C since KORALB doesnt bother to remember!! + R = PKORB(4,11) + IF (R.EQ.0.) THEN +C it is 2pi0pi- + IDK = 1 + M1 = MPIZ + M2 = MPIZ + M3 = MPIC + ELSE +C it is 3pi + IDK = 2 + M1 = MPIC + M2 = MPIC + M3 = MPIC + END IF + M1SQ = M1*M1 + M2SQ = M2*M2 + M3SQ = M3*M3 + +C. Then implement full form-factor from fit: +C. [(rho-pi S-wave) + (rho-prim-pi S-wave) + +C. (rho-pi D-wave) + (rho-prim-pi D-wave) + +C. (f2 pi D-wave) + (sigmapi S-wave) + (f0pi S-wave)] +C. based on fit to pi-2pi0 by M. Schmidler, CBX 97-64-Update (4/22/98) + +C Note that for FORM1, the arguments are S1, S2; +C for FORM2, the arguments are S2, S1; +C for FORM3, the arguments are S3, S1. +C Here, we implement FORM1 and FORM2 at the same time, +C so the above switch is just what we need! + + IF (IFORM.EQ.1.OR.IFORM.EQ.2) THEN + S1 = SA + S2 = SB + S3 = QQ-SA-SB+M1SQ+M2SQ+M3SQ + IF (S3.LE.0..OR.S2.LE.0.) RETURN + + IF (IDK.EQ.1) THEN +C it is 2pi0pi- +C Lorentz invariants for all the contributions: + F134 = -(1./3.)*((S3-M3SQ)-(S1-M1SQ)) + F150 = (1./18.)*(QQ-M3SQ+S3)*(2.*M1SQ+2.*M2SQ-S3)/S3 + F167 = (2./3.) + +C Breit Wigners for all the contributions: + FRO1 = BWIGML(S1,MRO,GRO,M2,M3,1) + FRP1 = BWIGML(S1,MRP,GRP,M2,M3,1) + FRO2 = BWIGML(S2,MRO,GRO,M3,M1,1) + FRP2 = BWIGML(S2,MRP,GRP,M3,M1,1) + FF23 = BWIGML(S3,MF2,GF2,M1,M2,2) + FSG3 = BWIGML(S3,MSG,GSG,M1,M2,0) + FF03 = BWIGML(S3,MF0,GF0,M1,M2,0) + + F3PI = BT1*FRO1+BT2*FRP1+ + 1 BT3*CMPLX(F134,0.)*FRO2+BT4*CMPLX(F134,0.)*FRP2+ + 1 BT5*CMPLX(F150,0.)*FF23+ + 1 BT6*CMPLX(F167,0.)*FSG3+BT7*CMPLX(F167,0.)*FF03 + +C F3PI = FPIKM(SQRT(S1),M2,M3) + ELSEIF (IDK.EQ.2) THEN +C it is 3pi +C Lorentz invariants for all the contributions: + F134 = -(1./3.)*((S3-M3SQ)-(S1-M1SQ)) + F15A = -(1./2.)*((S2-M2SQ)-(S3-M3SQ)) + F15B = -(1./18.)*(QQ-M2SQ+S2)*(2.*M1SQ+2.*M3SQ-S2)/S2 + F167 = -(2./3.) + +C Breit Wigners for all the contributions: + FRO1 = BWIGML(S1,MRO,GRO,M2,M3,1) + FRP1 = BWIGML(S1,MRP,GRP,M2,M3,1) + FRO2 = BWIGML(S2,MRO,GRO,M3,M1,1) + FRP2 = BWIGML(S2,MRP,GRP,M3,M1,1) + FF21 = BWIGML(S1,MF2,GF2,M2,M3,2) + FF22 = BWIGML(S2,MF2,GF2,M3,M1,2) + FSG2 = BWIGML(S2,MSG,GSG,M3,M1,0) + FF02 = BWIGML(S2,MF0,GF0,M3,M1,0) + + F3PI = BT1*FRO1+BT2*FRP1+ + 1 BT3*CMPLX(F134,0.)*FRO2+BT4*CMPLX(F134,0.)*FRP2 + 1 -BT5*CMPLX(F15A,0.)*FF21-BT5*CMPLX(F15B,0.)*FF22 + 1 -BT6*CMPLX(F167,0.)*FSG2-BT7*CMPLX(F167,0.)*FF02 + +C F3PI = FPIKM(SQRT(S1),M2,M3) + END IF + + ELSE IF (IFORM.EQ.3) THEN + S3 = SA + S1 = SB + S2 = QQ-SA-SB+M1SQ+M2SQ+M3SQ + IF (S1.LE.0..OR.S2.LE.0.) RETURN + + IF (IDK.EQ.1) THEN +C it is 2pi0pi- +C Lorentz invariants for all the contributions: + F34A = (1./3.)*((S2-M2SQ)-(S3-M3SQ)) + F34B = (1./3.)*((S3-M3SQ)-(S1-M1SQ)) + F35 =-(1./2.)*((S1-M1SQ)-(S2-M2SQ)) + +C Breit Wigners for all the contributions: + FRO1 = BWIGML(S1,MRO,GRO,M2,M3,1) + FRP1 = BWIGML(S1,MRP,GRP,M2,M3,1) + FRO2 = BWIGML(S2,MRO,GRO,M3,M1,1) + FRP2 = BWIGML(S2,MRP,GRP,M3,M1,1) + FF23 = BWIGML(S3,MF2,GF2,M1,M2,2) + + F3PI = + 1 BT3*(CMPLX(F34A,0.)*FRO1+CMPLX(F34B,0.)*FRO2)+ + 1 BT4*(CMPLX(F34A,0.)*FRP1+CMPLX(F34B,0.)*FRP2)+ + 1 BT5*CMPLX(F35,0.)*FF23 + +C F3PI = CMPLX(0.,0.) + ELSEIF (IDK.EQ.2) THEN +C it is 3pi +C Lorentz invariants for all the contributions: + F34A = (1./3.)*((S2-M2SQ)-(S3-M3SQ)) + F34B = (1./3.)*((S3-M3SQ)-(S1-M1SQ)) + F35A = -(1./18.)*(QQ-M1SQ+S1)*(2.*M2SQ+2.*M3SQ-S1)/S1 + F35B = (1./18.)*(QQ-M2SQ+S2)*(2.*M3SQ+2.*M1SQ-S2)/S2 + F36A = -(2./3.) + F36B = (2./3.) + +C Breit Wigners for all the contributions: + FRO1 = BWIGML(S1,MRO,GRO,M2,M3,1) + FRP1 = BWIGML(S1,MRP,GRP,M2,M3,1) + FRO2 = BWIGML(S2,MRO,GRO,M3,M1,1) + FRP2 = BWIGML(S2,MRP,GRP,M3,M1,1) + FF21 = BWIGML(S1,MF2,GF2,M2,M3,2) + FF22 = BWIGML(S2,MF2,GF2,M3,M1,2) + FSG1 = BWIGML(S1,MSG,GSG,M2,M3,0) + FSG2 = BWIGML(S2,MSG,GSG,M3,M1,0) + FF01 = BWIGML(S1,MF0,GF0,M2,M3,0) + FF02 = BWIGML(S2,MF0,GF0,M3,M1,0) + + F3PI = + 1 BT3*(CMPLX(F34A,0.)*FRO1+CMPLX(F34B,0.)*FRO2)+ + 1 BT4*(CMPLX(F34A,0.)*FRP1+CMPLX(F34B,0.)*FRP2) + 1 -BT5*(CMPLX(F35A,0.)*FF21+CMPLX(F35B,0.)*FF22) + 1 -BT6*(CMPLX(F36A,0.)*FSG1+CMPLX(F36B,0.)*FSG2) + 1 -BT7*(CMPLX(F36A,0.)*FF01+CMPLX(F36B,0.)*FF02) + +C F3PI = CMPLX(0.,0.) + END IF + END IF + +C Add overall a1/a1prime: + FORMA1 = FA1A1P(QQ) + F3PI = F3PI*FORMA1 + + RETURN + END +C ********************************************************** + COMPLEX FUNCTION BWIGML(S,M,G,M1,M2,L) +C ********************************************************** +C L-WAVE BREIT-WIGNER +C ********************************************************** + REAL S,M,G,M1,M2 + INTEGER L,IPOW + REAL MSQ,W,WGS,MP,MM,QS,QM + + MP = (M1+M2)**2 + MM = (M1-M2)**2 + MSQ = M*M + W = SQRT(S) + WGS = 0.0 + IF (W.GT.(M1+M2)) THEN + QS=SQRT(ABS((S -MP)*(S -MM)))/W + QM=SQRT(ABS((MSQ -MP)*(MSQ -MM)))/M + IPOW = 2*L+1 + WGS=G*(MSQ/W)*(QS/QM)**IPOW + ENDIF + + BWIGML=CMPLX(MSQ,0.)/CMPLX(MSQ-S,-WGS) + + RETURN + END +C======================================================================= + COMPLEX FUNCTION FA1A1P(XMSQ) +C ================================================================== +C complex form-factor for a1+a1prime. AJW 1/98 +C ================================================================== + + REAL XMSQ + REAL PKORB,WGA1 + REAL XM1,XG1,XM2,XG2,XM1SQ,XM2SQ,GG1,GG2,GF,FG1,FG2 + COMPLEX BET,F1,F2 + INTEGER IFIRST/0/ + + IF (IFIRST.EQ.0) THEN + IFIRST = 1 + +C The user may choose masses and widths that differ from nominal: + XM1 = PKORB(1,10) + XG1 = PKORB(2,10) + XM2 = PKORB(1,17) + XG2 = PKORB(2,17) + BET = CMPLX(PKORB(3,17),0.) +C scale factors relative to nominal: + GG1 = XM1*XG1/(1.3281*0.806) + GG2 = XM2*XG2/(1.3281*0.806) + + XM1SQ = XM1*XM1 + XM2SQ = XM2*XM2 + END IF + + GF = WGA1(XMSQ) + FG1 = GG1*GF + FG2 = GG2*GF + F1 = CMPLX(-XM1SQ,0.0)/CMPLX(XMSQ-XM1SQ,FG1) + F2 = CMPLX(-XM2SQ,0.0)/CMPLX(XMSQ-XM2SQ,FG2) + FA1A1P = F1+BET*F2 + + RETURN + END +C======================================================================= + FUNCTION WGA1(QQ) + +C mass-dependent M*Gamma of a1 through its decays to +C. [(rho-pi S-wave) + (rho-pi D-wave) + +C. (f2 pi D-wave) + (f0pi S-wave)] +C. AND simple K*K S-wave + + REAL QQ,WGA1 + DOUBLE PRECISION MKST,MK,MK1SQ,MK2SQ,C3PI,CKST + DOUBLE PRECISION S,WGA1C,WGA1N,WG3PIC,WG3PIN,GKST + INTEGER IFIRST +C----------------------------------------------------------------------- +C + IF (IFIRST.NE.987) THEN + IFIRST = 987 +C +C Contribution to M*Gamma(m(3pi)^2) from S-wave K*K: + MKST = 0.894D0 + MK = 0.496D0 + MK1SQ = (MKST+MK)**2 + MK2SQ = (MKST-MK)**2 +C coupling constants squared: + C3PI = 0.2384D0**2 + CKST = 4.7621D0**2*C3PI + END IF + +C----------------------------------------------------------------------- +C Parameterization of numerical integral of total width of a1 to 3pi. +C From M. Schmidtler, CBX-97-64-Update. + S = DBLE(QQ) + WG3PIC = WGA1C(S) + WG3PIN = WGA1N(S) + +C Contribution to M*Gamma(m(3pi)^2) from S-wave K*K, if above threshold + GKST = 0.D0 + IF (S.GT.MK1SQ) GKST = SQRT((S-MK1SQ)*(S-MK2SQ))/(2.*S) + + WGA1 = SNGL(C3PI*(WG3PIC+WG3PIN)+CKST*GKST) + + RETURN + END +C======================================================================= + DOUBLE PRECISION FUNCTION WGA1C(S) +C +C parameterization of m*Gamma(m^2) for pi-2pi0 system +C + DOUBLE PRECISION S,STH,Q0,Q1,Q2,P0,P1,P2,P3,P4,G1_IM +C + PARAMETER(Q0 = 5.80900D0,Q1 = -3.00980D0,Q2 = 4.57920D0, + 1 P0 = -13.91400D0,P1 = 27.67900D0,P2 = -13.39300D0, + 2 P3 = 3.19240D0,P4 = -0.10487D0) +C + PARAMETER (STH = 0.1753D0) +C--------------------------------------------------------------------- + + IF(S.LT.STH) THEN + G1_IM = 0.D0 + ELSEIF((S.GT.STH).AND.(S.LT.0.823D0)) THEN + G1_IM = Q0*(S-STH)**3*(1. + Q1*(S-STH) + Q2*(S-STH)**2) + ELSE + G1_IM = P0 + P1*S + P2*S**2+ P3*S**3 + P4*S**4 + ENDIF + + WGA1C = G1_IM + RETURN + END +C======================================================================= + DOUBLE PRECISION FUNCTION WGA1N(S) +C +C parameterization of m*Gamma(m^2) for pi-pi+pi- system +C + DOUBLE PRECISION S,STH,Q0,Q1,Q2,P0,P1,P2,P3,P4,G1_IM +C + PARAMETER(Q0 = 6.28450D0,Q1 = -2.95950D0,Q2 = 4.33550D0, + 1 P0 = -15.41100D0,P1 = 32.08800D0,P2 = -17.66600D0, + 2 P3 = 4.93550D0,P4 = -0.37498D0) +C + PARAMETER (STH = 0.1676D0) +C--------------------------------------------------------------------- + + IF(S.LT.STH) THEN + G1_IM = 0.D0 + ELSEIF((S.GT.STH).AND.(S.LT.0.823D0)) THEN + G1_IM = Q0*(S-STH)**3*(1. + Q1*(S-STH) + Q2*(S-STH)**2) + ELSE + G1_IM = P0 + P1*S + P2*S**2+ P3*S**3 + P4*S**4 + ENDIF + + WGA1N = G1_IM + RETURN + END diff --git a/TEvtGen/Tauola/tauola-fortran/formf.f b/TEvtGen/Tauola/tauola-fortran/formf.f new file mode 100644 index 00000000000..f0b5f007a84 --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/formf.f @@ -0,0 +1,1231 @@ + + + FUNCTION FORMOM(XMAA,XMOM) +C ================================================================== +C formfactorfor pi-pi0 gamma final state +C R. Decker, Z. Phys C36 (1987) 487. +C ================================================================== + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON /TESTA1/ KEYA1 + COMPLEX BWIGN,FORMOM + DATA ICONT /1/ +* THIS INLINE FUNCT. CALCULATES THE SCALAR PART OF THE PROPAGATOR + BWIGN(XM,AM,GAMMA)=1./CMPLX(XM**2-AM**2,GAMMA*AM) +* HADRON CURRENT + FRO =0.266*AMRO**2 + ELPHA=- 0.1 + AMROP = 1.7 + GAMROP= 0.26 + AMOM =0.782 + GAMOM =0.0085 + AROMEG= 1.0 + GCOUP=12.924 + GCOUP=GCOUP*AROMEG + FQED =SQRT(4.0*3.1415926535/137.03604) + FORMOM=FQED*FRO**2/SQRT(2.0)*GCOUP**2*BWIGN(XMOM,AMOM,GAMOM) + $ *(BWIGN(XMAA,AMRO,GAMRO)+ELPHA*BWIGN(XMAA,AMROP,GAMROP)) + $ *(BWIGN( 0.0,AMRO,GAMRO)+ELPHA*BWIGN( 0.0,AMROP,GAMROP)) + END + + + +C======================================================================= + COMPLEX FUNCTION FK1AB(XMSQ,INDX) +C ================================================================== +C complex form-factor for a1+a1prime. AJW 1/98 +C ================================================================== + + COMPLEX F1,F2,AMPA,AMPB + INTEGER IFIRST,INDX + DATA IFIRST/0/ + + IF (IFIRST.EQ.0) THEN + IFIRST = 1 + XM1 = PKORB(1,19) + XG1 = PKORB(2,19) + XM2 = PKORB(1,20) + XG2 = PKORB(2,20) + + XM1SQ = XM1*XM1 + GF1 = GFUN(XM1SQ) + GG1 = XM1*XG1/GF1 + XM2SQ = XM2*XM2 + GF2 = GFUN(XM2SQ) + GG2 = XM2*XG2/GF2 + END IF + + IF (INDX.EQ.1) THEN + AMPA = CMPLX(PKORB(3,81),0.) + AMPB = CMPLX(PKORB(3,82),0.) + ELSE IF (INDX.EQ.2) THEN + AMPA = CMPLX(PKORB(3,83),0.) + AMPB = CMPLX(PKORB(3,84),0.) + ELSEIF (INDX.EQ.3) THEN + AMPA = CMPLX(PKORB(3,85),0.) + AMPB = CMPLX(PKORB(3,86),0.) + ELSEIF (INDX.EQ.4) THEN + AMPA = CMPLX(PKORB(3,87),0.) + AMPB = CMPLX(PKORB(3,88),0.) + END IF + + GF = GFUN(XMSQ) + FG1 = GG1*GF + FG2 = GG2*GF + F1 = CMPLX(-XM1SQ,0.0)/CMPLX(XMSQ-XM1SQ,FG1) + F2 = CMPLX(-XM2SQ,0.0)/CMPLX(XMSQ-XM2SQ,FG2) + FK1AB = AMPA*F1+AMPB*F2 + + RETURN + END + + FUNCTION FORM1(MNUM,QQ,S1,SDWA) +C ================================================================== +C formfactorfor F1 for 3 scalar final state +C R. Fisher, J. Wess and F. Wagner Z. Phys C3 (1980) 313 +C H. Georgi, Weak interactions and modern particle theory, +C The Benjamin/Cummings Pub. Co., Inc. 1984. +C R. Decker, E. Mirkes, R. Sauer, Z. Was Karlsruhe preprint TTP92-25 +C and erratum !!!!!! +C ================================================================== +C + COMPLEX FORM1,WIGNER,WIGFOR,FPIKM,BWIGM + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON /IPChT/ IVER + INTEGER IVER + + COMPLEX FORMA1,FORMK1,FORMRO,FORMKS + COMPLEX FA1A1P,FK1AB,F3PI,F3PI_RCHT +C + IF (MNUM.EQ.0) THEN +C ------------ 3 pi hadronic state (a1) +C FORMRO = FPIKM(SQRT(S1),AMPI,AMPI) +C FORMRO = F3PI(1,QQ,S1,SDWA) +C FORMA1 = FA1A1P(QQ) +C FORM1 = FORMA1*FORMRO + IF (IVER.EQ.0) THEN + FORM1 = F3PI(1,QQ,S1,SDWA) + ELSE + FORM1 = F3PI_RCHT(1,QQ,S1,SDWA) + ENDIF + + ELSEIF (MNUM.EQ.1) THEN +C ------------ K- pi- K+ (K*0 K-) + FORMKS = BWIGM(S1,AMKST,GAMKST,AMPI,AMK) + FORMA1 = FA1A1P(QQ) + FORM1 = FORMA1*FORMKS + + ELSEIF (MNUM.EQ.2) THEN +C ------------ K0 pi- K0B (K*- K0) + FORMKS = BWIGM(S1,AMKST,GAMKST,AMPI,AMK) + FORMA1 = FA1A1P(QQ) + FORM1 = FORMA1*FORMKS + + ELSEIF (MNUM.EQ.3) THEN +C ------------ K- pi0 K0 (K*0 K-) + FORMKS = BWIGM(S1,AMKST,GAMKST,AMPI,AMK) + FORMA1 = FA1A1P(QQ) + FORM1 = FORMA1*FORMKS + + ELSEIF (MNUM.EQ.4) THEN +C ------------ pi0 pi0 K- (K*-pi0) + FORMKS = BWIGM(S1,AMKST,GAMKST,AMPI,AMK) + FORMK1 = FK1AB(QQ,3) + FORM1 = FORMK1*FORMKS + + ELSEIF (MNUM.EQ.5) THEN +C ------------ K- pi- pi+ (rho0 K-) + FORMK1 = FK1AB(QQ,4) + FORMRO = FPIKM(SQRT(S1),AMPI,AMPI) + FORM1 = FORMK1*FORMRO + + ELSEIF (MNUM.EQ.6) THEN +C ------------ pi- K0B pi0 (pi- K*0B) + FORMK1 = FK1AB(QQ,1) + FORMKS = BWIGM(S1,AMKST,GAMKST,AMK,AMPI) + FORM1 = FORMK1*FORMKS + + ELSEIF (MNUM.EQ.7) THEN +C -------------- eta pi- pi0 final state + FORM1=0.0 + ENDIF + END + FUNCTION FORM2(MNUM,QQ,S1,SDWA) +C ================================================================== +C formfactorfor F2 for 3 scalar final state +C R. Fisher, J. Wess and F. Wagner Z. Phys C3 (1980) 313 +C H. Georgi, Weak interactions and modern particle theory, +C The Benjamin/Cummings Pub. Co., Inc. 1984. +C R. Decker, E. Mirkes, R. Sauer, Z. Was Karlsruhe preprint TTP92-25 +C and erratum !!!!!! +C ================================================================== +C + COMPLEX FORM2,WIGNER,WIGFOR,FPIKM,BWIGM + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON /IPChT/ IVER + INTEGER IVER + + COMPLEX FORMA1,FORMK1,FORMRO,FORMKS + COMPLEX FA1A1P,FK1AB,F3PI,F3PI_RCHT + + IF (MNUM.EQ.0) THEN +C ------------ 3 pi hadronic state (a1) +C FORMRO = FPIKM(SQRT(S1),AMPI,AMPI) +C FORMRO = F3PI(2,QQ,S1,SDWA) +C FORMA1 = FA1A1P(QQ) +C FORM2 = FORMA1*FORMRO +C FORM2 = F3PI(2,QQ,S1,SDWA) + IF (IVER.EQ.0) THEN + FORM2 = F3PI(2,QQ,S1,SDWA) + ELSE + FORM2 = F3PI_RCHT(2,QQ,S1,SDWA) + ENDIF + ELSEIF (MNUM.EQ.1) THEN +C ------------ K- pi- K+ (rho0 pi-) + FORMRO = FPIKM(SQRT(S1),AMK,AMK) + FORMA1 = FA1A1P(QQ) + FORM2 = FORMA1*FORMRO + + ELSEIF (MNUM.EQ.2) THEN +C ------------ K0 pi- K0B (rho0 pi-) + FORMRO = FPIKM(SQRT(S1),AMK,AMK) + FORMA1 = FA1A1P(QQ) + FORM2 = FORMA1*FORMRO + + ELSEIF (MNUM.EQ.3) THEN +C ------------ K- pi0 K0 (rho- pi0) + FORMRO = FPIKM(SQRT(S1),AMK,AMK) + FORMA1 = FA1A1P(QQ) + FORM2 = FORMA1*FORMRO + + ELSEIF (MNUM.EQ.4) THEN +C ------------ pi0 pi0 K- (K*-pi0) + FORMKS = BWIGM(S1,AMKST,GAMKST,AMPI,AMK) + FORMK1 = FK1AB(QQ,3) + FORM2 = FORMK1*FORMKS + + ELSEIF (MNUM.EQ.5) THEN +C ------------ K- pi- pi+ (K*0B pi-) + FORMKS = BWIGM(S1,AMKST,GAMKST,AMPI,AMK) + FORMK1 = FK1AB(QQ,1) + FORM2 = FORMK1*FORMKS +C + ELSEIF (MNUM.EQ.6) THEN +C ------------ pi- K0B pi0 (rho- K0B) + FORMRO = FPIKM(SQRT(S1),AMPI,AMPI) + FORMK1 = FK1AB(QQ,2) + FORM2 = FORMK1*FORMRO +C + ELSEIF (MNUM.EQ.7) THEN +C -------------- eta pi- pi0 final state + FORM2=0.0 + ENDIF +C + END + COMPLEX FUNCTION BWIGM(S,M,G,XM1,XM2) +C ********************************************************** +C P-WAVE BREIT-WIGNER FOR RHO +C ********************************************************** + REAL S,M,G,XM1,XM2 + REAL PI,QS,QM,W,GS + DATA INIT /0/ +C ------------ PARAMETERS -------------------- + IF (INIT.EQ.0) THEN + INIT=1 + PI=3.141592654 +C ------- BREIT-WIGNER ----------------------- + ENDIF + IF (S.GT.(XM1+XM2)**2) THEN + QS=SQRT(ABS((S -(XM1+XM2)**2)*(S -(XM1-XM2)**2)))/SQRT(S) + QM=SQRT(ABS((M**2-(XM1+XM2)**2)*(M**2-(XM1-XM2)**2)))/M + W=SQRT(S) + GS=G*(M/W)**2*(QS/QM)**3 + ELSE + GS=0.0 + ENDIF + BWIGM=M**2/CMPLX(M**2-S,-SQRT(S)*GS) + RETURN + END + COMPLEX FUNCTION FPIKM(W,XM1,XM2) +C ********************************************************** +C PION FORM FACTOR +C ********************************************************** + COMPLEX BWIGM + REAL ROM,ROG,ROM1,ROG1,BETA1,PI,PIM,S,W + EXTERNAL BWIG + DATA INIT /0/ +C +C ------------ PARAMETERS -------------------- + IF (INIT.EQ.0 ) THEN + INIT=1 + PI=3.141592654 + PIM=.140 + ROM=0.773 + ROG=0.145 + ROM1=1.370 + ROG1=0.510 + BETA1=-0.145 + ENDIF +C ----------------------------------------------- + S=W**2 + FPIKM=(BWIGM(S,ROM,ROG,XM1,XM2)+BETA1*BWIGM(S,ROM1,ROG1,XM1,XM2)) + & /(1+BETA1) + RETURN + END + COMPLEX FUNCTION FPIKMD(W,XM1,XM2) +C ********************************************************** +C PION FORM FACTOR +C ********************************************************** + COMPLEX BWIGM + REAL ROM,ROG,ROM1,ROG1,PI,PIM,S,W + EXTERNAL BWIG + DATA INIT /0/ +C +C ------------ PARAMETERS -------------------- + IF (INIT.EQ.0 ) THEN + INIT=1 + PI=3.141592654 + PIM=.140 + ROM=0.773 + ROG=0.145 + ROM1=1.500 + ROG1=0.220 + ROM2=1.750 + ROG2=0.120 + BETA=6.5 + DELTA=-26.0 + ENDIF +C ----------------------------------------------- + S=W**2 + FPIKMD=(DELTA*BWIGM(S,ROM,ROG,XM1,XM2) + $ +BETA*BWIGM(S,ROM1,ROG1,XM1,XM2) + $ + BWIGM(S,ROM2,ROG2,XM1,XM2)) + & /(1+BETA+DELTA) + RETURN + END + + FUNCTION FORM3(MNUM,QQ,S1,SDWA) +C ================================================================== +C formfactorfor F3 for 3 scalar final state +C R. Fisher, J. Wess and F. Wagner Z. Phys C3 (1980) 313 +C H. Georgi, Weak interactions and modern particle theory, +C The Benjamin/Cummings Pub. Co., Inc. 1984. +C R. Decker, E. Mirkes, R. Sauer, Z. Was Karlsruhe preprint TTP92-25 +C and erratum !!!!!! +C ================================================================== +C + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON /IPChT/ IVER + INTEGER IVER + COMPLEX FORM3,BWIGM + COMPLEX FORMA1,FORMK1,FORMRO,FORMKS + COMPLEX FA1A1P,FK1AB,F3PI,F3PI_RCHT +C + IF (MNUM.EQ.0) THEN +C ------------ 3 pi hadronic state (a1) +C FORMRO = FPIKM(SQRT(S1),AMPI,AMPI) +C FORMRO = F3PI(3,QQ,S1,SDWA) +C FORMA1 = FA1A1P(QQ) +C FORM3 = FORMA1*FORMRO + IF (IVER.EQ.0) THEN + FORM3 = F3PI(3,QQ,S1,SDWA) + ELSE + FORM3 = (0.,0.) + ENDIF + + ELSEIF (MNUM.EQ.3) THEN +C ------------ K- pi0 K0 (K*- K0) + FORMKS = BWIGM(S1,AMKST,GAMKST,AMPIZ,AMK) + FORMA1 = FA1A1P(QQ) + FORM3 = FORMA1*FORMKS + + ELSEIF (MNUM.EQ.6) THEN +C ------------ pi- K0B pi0 (K*- pi0) + FORMKS = BWIGM(S1,AMKST,GAMKST,AMK,AMPI) + FORMK1 = FK1AB(QQ,3) + FORM3 = FORMK1*FORMKS + + ELSE + FORM3=CMPLX(0.,0.) + ENDIF + END + FUNCTION FORM4(MNUM,QQ,S1,S2,S3) +C ================================================================== +C formfactorfor F4 for 3 scalar final state +C R. Decker, in preparation +C R. Decker, E. Mirkes, R. Sauer, Z. Was Karlsruhe preprint TTP92-25 +C and erratum !!!!!! +C ================================================================== +C + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON /IPChT/ IVER + INTEGER IVER + + COMPLEX FORM4,WIGNER,FPIKM,F3PI_RCHT + REAL*4 M +C ---- this formfactor is switched off for cleo version + FORM4=CMPLX(0.0,0.0) + IF (MNUM.EQ.0) THEN +C ------------ 3 pi hadronic state (a1) +C FORMRO = FPIKM(SQRT(S1),AMPI,AMPI) +C FORMRO = F3PI(3,QQ,S1,SDWA) +C FORMA1 = FA1A1P(QQ) +C FORM3 = FORMA1*FORMRO +C FORM4 = CMPLX(-1., 0.) + IF (IVER.EQ.1) FORM4 = F3PI_RCHT(4,QQ,S1,S2)* CMPLX(0., 1.) + ENDIF + + + END + FUNCTION FORM5(MNUM,QQ,S1,S2) +C ================================================================== +C formfactorfor F5 for 3 scalar final state +C G. Kramer, W. Palmer, S. Pinsky, Phys. Rev. D30 (1984) 89. +C G. Kramer, W. Palmer Z. Phys. C25 (1984) 195. +C R. Decker, E. Mirkes, R. Sauer, Z. Was Karlsruhe preprint TTP92-25 +C and erratum !!!!!! +C ================================================================== +C + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMPLEX FORM5,WIGNER,FPIKM,FPIKMD,BWIGM + IF (MNUM.EQ.0) THEN +C ------------ 3 pi hadronic state (a1) + FORM5=0.0 + ELSEIF (MNUM.EQ.1) THEN +C ------------ K- pi- K+ + ELPHA=-0.2 + FORM5=FPIKMD(SQRT(QQ),AMPI,AMPI)/(1+ELPHA) + $ *( FPIKM(SQRT(S2),AMPI,AMPI) + $ +ELPHA*BWIGM(S1,AMKST,GAMKST,AMPI,AMK)) + ELSEIF (MNUM.EQ.2) THEN +C ------------ K0 pi- K0B + ELPHA=-0.2 + FORM5=FPIKMD(SQRT(QQ),AMPI,AMPI)/(1+ELPHA) + $ *( FPIKM(SQRT(S2),AMPI,AMPI) + $ +ELPHA*BWIGM(S1,AMKST,GAMKST,AMPI,AMK)) + ELSEIF (MNUM.EQ.3) THEN +C ------------ K- K0 pi0 + FORM5=0.0 + ELSEIF (MNUM.EQ.4) THEN +C ------------ pi0 pi0 K- + FORM5=0.0 + ELSEIF (MNUM.EQ.5) THEN +C ------------ K- pi- pi+ + ELPHA=-0.2 + FORM5=BWIGM(QQ,AMKST,GAMKST,AMPI,AMK)/(1+ELPHA) + $ *( FPIKM(SQRT(S1),AMPI,AMPI) + $ +ELPHA*BWIGM(S2,AMKST,GAMKST,AMPI,AMK)) + ELSEIF (MNUM.EQ.6) THEN +C ------------ pi- K0B pi0 + ELPHA=-0.2 + FORM5=BWIGM(QQ,AMKST,GAMKST,AMPI,AMKZ)/(1+ELPHA) + $ *( FPIKM(SQRT(S2),AMPI,AMPI) + $ +ELPHA*BWIGM(S1,AMKST,GAMKST,AMPI,AMK)) + ELSEIF (MNUM.EQ.7) THEN +C -------------- eta pi- pi0 final state + FORM5=FPIKMD(SQRT(QQ),AMPI,AMPI)*FPIKM(SQRT(S1),AMPI,AMPI) + ENDIF +C + END + SUBROUTINE CURRX(MNUM,PIM1,PIM2,PIM3,PIM4,HADCUR) +C ================================================================== +C hadronic current for 4 pi final state +C R. Fisher, J. Wess and F. Wagner Z. Phys C3 (1980) 313 +C R. Decker Z. Phys C36 (1987) 487. +C M. Gell-Mann, D. Sharp, W. Wagner Phys. Rev. Lett 8 (1962) 261. +C ================================================================== + + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL +C ARBITRARY FIXING OF THE FOUR PI X-SECTION NORMALIZATION + COMMON /ARBIT/ ARFLAT,AROMEG + REAL PIM1(4),PIM2(4),PIM3(4),PIM4(4),PAA(4) + COMPLEX HADCUR(4),FORM1,FORM2,FORM3,FPIKM + COMPLEX BWIGN + REAL PA(4),PB(4) + REAL AA(4,4),PP(4,4) + DATA PI /3.141592653589793238462643/ + DATA FPI /93.3E-3/ + BWIGN(A,XM,XG)=1.0/CMPLX(A-XM**2,XM*XG) +C +C --- masses and constants + G1=12.924 + G2=1475.98 + G =G1*G2 + ELPHA=-.1 + AMROP=1.7 + GAMROP=0.26 + AMOM=.782 + GAMOM=0.0085 + ARFLAT=1.0 + AROMEG=1.0 +C + FRO=0.266*AMRO**2 + COEF1=2.0*SQRT(3.0)/FPI**2*ARFLAT + COEF2=FRO*G*AROMEG +C --- initialization of four vectors + DO 7 K=1,4 + DO 8 L=1,4 + 8 AA(K,L)=0.0 + HADCUR(K)=CMPLX(0.0) + PAA(K)=PIM1(K)+PIM2(K)+PIM3(K)+PIM4(K) + PP(1,K)=PIM1(K) + PP(2,K)=PIM2(K) + PP(3,K)=PIM3(K) + 7 PP(4,K)=PIM4(K) +C + IF (MNUM.EQ.1) THEN +C =================================================================== +C pi- pi- p0 pi+ case ==== +C =================================================================== + QQ=PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2 +C --- loop over thre contribution of the non-omega current + DO 201 K=1,3 + SK=(PP(K,4)+PIM4(4))**2-(PP(K,3)+PIM4(3))**2 + $ -(PP(K,2)+PIM4(2))**2-(PP(K,1)+PIM4(1))**2 +C -- definition of AA matrix +C -- cronecker delta + DO 202 I=1,4 + DO 203 J=1,4 + 203 AA(I,J)=0.0 + 202 AA(I,I)=1.0 +C ... and the rest ... + DO 204 L=1,3 + IF (L.NE.K) THEN + DENOM=(PAA(4)-PP(L,4))**2-(PAA(3)-PP(L,3))**2 + $ -(PAA(2)-PP(L,2))**2-(PAA(1)-PP(L,1))**2 + DO 205 I=1,4 + DO 205 J=1,4 + SIG= 1.0 + IF(J.NE.4) SIG=-SIG + AA(I,J)=AA(I,J) + $ -SIG*(PAA(I)-2.0*PP(L,I))*(PAA(J)-PP(L,J))/DENOM + 205 CONTINUE + ENDIF + 204 CONTINUE +C --- lets add something to HADCURR + FORM1= FPIKM(SQRT(SK),AMPI,AMPI) *FPIKM(SQRT(QQ),AMPI,AMPI) +C FORM1= FPIKM(SQRT(SK),AMPI,AMPI) *FPIKMD(SQRT(QQ),AMPI,AMPI) +CCCCCCCCCCCCCCCCC FORM1=WIGFOR(SK,AMRO,GAMRO) (tests) +C + FIX=1.0 + IF (K.EQ.3) FIX=-2.0 + DO 206 I=1,4 + DO 206 J=1,4 + HADCUR(I)= + $ HADCUR(I)+CMPLX(FIX*COEF1)*FORM1*AA(I,J)*(PP(K,J)-PP(4,J)) + 206 CONTINUE +C --- end of the non omega current (3 possibilities) + 201 CONTINUE +C +C +C --- there are two possibilities for omega current +C --- PA PB are corresponding first and second pi-s + DO 301 KK=1,2 + DO 302 I=1,4 + PA(I)=PP(KK,I) + PB(I)=PP(3-KK,I) + 302 CONTINUE +C --- lorentz invariants + QQA=0.0 + SS23=0.0 + SS24=0.0 + SS34=0.0 + QP1P2=0.0 + QP1P3=0.0 + QP1P4=0.0 + P1P2 =0.0 + P1P3 =0.0 + P1P4 =0.0 + DO 303 K=1,4 + SIGN=-1.0 + IF (K.EQ.4) SIGN= 1.0 + QQA=QQA+SIGN*(PAA(K)-PA(K))**2 + SS23=SS23+SIGN*(PB(K) +PIM3(K))**2 + SS24=SS24+SIGN*(PB(K) +PIM4(K))**2 + SS34=SS34+SIGN*(PIM3(K)+PIM4(K))**2 + QP1P2=QP1P2+SIGN*(PAA(K)-PA(K))*PB(K) + QP1P3=QP1P3+SIGN*(PAA(K)-PA(K))*PIM3(K) + QP1P4=QP1P4+SIGN*(PAA(K)-PA(K))*PIM4(K) + P1P2=P1P2+SIGN*PA(K)*PB(K) + P1P3=P1P3+SIGN*PA(K)*PIM3(K) + P1P4=P1P4+SIGN*PA(K)*PIM4(K) + 303 CONTINUE +C + FORM2=COEF2*(BWIGN(QQ,AMRO,GAMRO)+ELPHA*BWIGN(QQ,AMROP,GAMROP)) +C FORM3=BWIGN(QQA,AMOM,GAMOM)*(BWIGN(SS23,AMRO,GAMRO)+ +C $ BWIGN(SS24,AMRO,GAMRO)+BWIGN(SS34,AMRO,GAMRO)) + FORM3=BWIGN(QQA,AMOM,GAMOM) +C + DO 304 K=1,4 + HADCUR(K)=HADCUR(K)+FORM2*FORM3*( + $ PB (K)*(QP1P3*P1P4-QP1P4*P1P3) + $ +PIM3(K)*(QP1P4*P1P2-QP1P2*P1P4) + $ +PIM4(K)*(QP1P2*P1P3-QP1P3*P1P2) ) + 304 CONTINUE + 301 CONTINUE +C + ELSE +C =================================================================== +C pi0 pi0 p0 pi- case ==== +C =================================================================== + QQ=PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2 + DO 101 K=1,3 +C --- loop over thre contribution of the non-omega current + SK=(PP(K,4)+PIM4(4))**2-(PP(K,3)+PIM4(3))**2 + $ -(PP(K,2)+PIM4(2))**2-(PP(K,1)+PIM4(1))**2 +C -- definition of AA matrix +C -- cronecker delta + DO 102 I=1,4 + DO 103 J=1,4 + 103 AA(I,J)=0.0 + 102 AA(I,I)=1.0 +C +C ... and the rest ... + DO 104 L=1,3 + IF (L.NE.K) THEN + DENOM=(PAA(4)-PP(L,4))**2-(PAA(3)-PP(L,3))**2 + $ -(PAA(2)-PP(L,2))**2-(PAA(1)-PP(L,1))**2 + DO 105 I=1,4 + DO 105 J=1,4 + SIG=1.0 + IF(J.NE.4) SIG=-SIG + AA(I,J)=AA(I,J) + $ -SIG*(PAA(I)-2.0*PP(L,I))*(PAA(J)-PP(L,J))/DENOM + 105 CONTINUE + ENDIF + 104 CONTINUE +C --- lets add something to HADCURR + FORM1= FPIKM(SQRT(SK),AMPI,AMPI) *FPIKM(SQRT(QQ),AMPI,AMPI) +C FORM1= FPIKM(SQRT(SK),AMPI,AMPI) *FPIKMD(SQRT(QQ),AMPI,AMPI) +CCCCCCCCCCCCC FORM1=WIGFOR(SK,AMRO,GAMRO) (tests) + DO 106 I=1,4 + DO 106 J=1,4 + HADCUR(I)= + $ HADCUR(I)+CMPLX(COEF1)*FORM1*AA(I,J)*(PP(K,J)-PP(4,J)) + 106 CONTINUE +C --- end of the non omega current (3 possibilities) + 101 CONTINUE + ENDIF + END + FUNCTION WIGFOR(S,XM,XGAM) + COMPLEX WIGFOR,WIGNOR + WIGNOR=CMPLX(-XM**2,XM*XGAM) + WIGFOR=WIGNOR/CMPLX(S-XM**2,XM*XGAM) + END + SUBROUTINE CURINF +C HERE the form factors of M. Finkemeier et al. start +C it ends with the string: M. Finkemeier et al. END + COMMON /INOUT/ INUT, IOUT + WRITE (UNIT = IOUT,FMT = 99) + WRITE (UNIT = IOUT,FMT = 98) +c print *, 'here is curinf' + 99 FORMAT( + . /, ' *************************************************** ', + . /, ' YOU ARE USING THE 4 PION DECAY MODE FORM FACTORS ', + . /, ' WHICH HAVE BEEN DESCRIBED IN:', + . /, ' R. DECKER, M. FINKEMEIER, P. HEILIGER AND H.H. JONSSON', + . /, ' "TAU DECAYS INTO FOUR PIONS" ', + . /, ' UNIVERSITAET KARLSRUHE PREPRINT TTP 94-13 (1994);', + . /, ' LNF-94/066(IR); HEP-PH/9410260 ', + . /, ' ', + . /, ' PLEASE NOTE THAT THIS ROUTINE IS USING PARAMETERS', + . /, ' RELATED TO THE 3 PION DECAY MODE (A1 MODE), SUCH AS', + . /, ' THE A1 MASS AND WIDTH (TAKEN FROM THE COMMON /PARMAS/)', + . /, ' AND THE 2 PION VECTOR RESONANCE FORM FACTOR (BY USING', + . /, ' THE ROUTINE FPIKM)' , + . /, ' THUS IF YOU DECIDE TO CHANGE ANY OF THESE, YOU WILL' , + . /, ' HAVE TO REFIT THE 4 PION PARAMETERS IN THE COMMON' ) + 98 FORMAT( + . ' BLOCK /TAU4PI/, OR YOU MIGHT GET A BAD DISCRIPTION' , + . /, ' OF TAU -> 4 PIONS' , + . /, ' for these formfactors set in routine CHOICE for', + . /, ' mnum.eq.102 -- AMRX=1.42 and GAMRX=.21', + . /, ' mnum.eq.101 -- AMRX=1.3 and GAMRX=.46 PROB1,PROB2=0.2', + . /, ' to optimize phase space parametrization', + . /, ' *************************************************** ', + . /, ' coded by M. Finkemeier and P. Heiliger, 29. sept. 1994', + . /, ' incorporated to TAUOLA by Z. Was 17. jan. 1995', +c . /, ' fitted on (day/month/year) by ... ', +c . /, ' to .... data ', + . /, ' changed by: Z. Was on 17.01.95', + . /, ' changes by: M. Finkemeier on 30.01.95' ) + END +C + SUBROUTINE CURINI + COMMON /TAU4PI/ GOMEGA,GAMMA1,GAMMA2,ROM1,ROG1,BETA1, + . ROM2,ROG2,BETA2 + REAL*4 GOMEGA,GAMMA1,GAMMA2,ROM1,ROG1,BETA1, + . ROM2,ROG2,BETA2 + GOMEGA = 1.4 + GAMMA1 = 0.38 + GAMMA2 = 0.38 + ROM1 = 1.35 + ROG1 = 0.3 + BETA1 = 0.08 + ROM2 = 1.70 + ROG2 = 0.235 + BETA2 = -0.0075 + END + COMPLEX FUNCTION BWIGA1(QA) +C ================================================================ +C breit-wigner enhancement of a1 +C ================================================================ + COMPLEX WIGNER + COMMON / PARMAS/ AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU, + % AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1, + % AMK,AMKZ,AMKST,GAMKST + +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU, + % AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1, + % AMK,AMKZ,AMKST,GAMKST + + WIGNER(A,B,C)=CMPLX(1.0,0.0)/CMPLX(A-B**2,B*C) + GAMAX=GAMA1*GFUN(QA)/GFUN(AMA1**2) + BWIGA1=-AMA1**2*WIGNER(QA,AMA1,GAMAX) + RETURN + END + COMPLEX FUNCTION BWIGEPS(QEPS) +C ============================================================= +C breit-wigner enhancement of epsilon +C ============================================================= + REAL QEPS,MEPS,GEPS + MEPS=1.300 + GEPS=.600 + BWIGEPS=CMPLX(MEPS**2,-MEPS*GEPS)/ + % CMPLX(MEPS**2-QEPS,-MEPS*GEPS) + RETURN + END + COMPLEX FUNCTION FRHO4(W,XM1,XM2) +C =========================================================== +C rho-type resonance factor with higher radials, to be used +C by CURR for the four pion mode +C =========================================================== + COMPLEX BWIGM + COMMON /TAU4PI/ GOMEGA,GAMMA1,GAMMA2,ROM1,ROG1,BETA1, + . ROM2,ROG2,BETA2 + REAL*4 GOMEGA,GAMMA1,GAMMA2,ROM1,ROG1,BETA1, + . ROM2,ROG2,BETA2 + REAL ROM,ROG,PI,PIM,S,W + EXTERNAL BWIG + DATA INIT /0/ +C +C ------------ PARAMETERS -------------------- + IF (INIT.EQ.0 ) THEN + INIT=1 + PI=3.141592654 + PIM=.140 + ROM=0.773 + ROG=0.145 + ENDIF +C ----------------------------------------------- + S=W**2 +c print *,'rom2,rog2 =',rom2,rog2 + FRHO4=(BWIGM(S,ROM,ROG,XM1,XM2)+BETA1*BWIGM(S,ROM1,ROG1,XM1,XM2) + & +BETA2*BWIGM(S,ROM2,ROG2,XM1,XM2)) + & /(1+BETA1+BETA2) + RETURN + END + SUBROUTINE CURR(MNUM,PIM1,PIM2,PIM3,PIM4,HADCUR) +C ================================================================== +C Hadronic current for 4 pi final state, according to: +C R. Decker, M. Finkemeier, P. Heiliger, H.H.Jonsson, TTP94-13 +C +C See also: +C R. Fisher, J. Wess and F. Wagner Z. Phys C3 (1980) 313 +C R. Decker Z. Phys C36 (1987) 487. +C M. Gell-Mann, D. Sharp, W. Wagner Phys. Rev. Lett 8 (1962) 261. +C ================================================================== + + COMMON /TAU4PI/ GOMEGA,GAMMA1,GAMMA2,ROM1,ROG1,BETA1, + . ROM2,ROG2,BETA2 + REAL*4 GOMEGA,GAMMA1,GAMMA2,ROM1,ROG1,BETA1, + . ROM2,ROG2,BETA2 + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL PIM1(4),PIM2(4),PIM3(4),PIM4(4),PAA(4) + COMPLEX HADCUR(4),FORM1,FORM2,FORM3,FPIKM + COMPLEX BWIGN,FRHO4 + COMPLEX BWIGEPS,BWIGA1 + COMPLEX HCOMP1(4),HCOMP2(4),HCOMP3(4),HCOMP4(4) + + COMPLEX T243,T213,T143,T123,T341,T342 + COMPLEX T124,T134,T214,T234,T314,T324 + COMPLEX S2413,S2314,S1423,S1324,S34 + COMPLEX S2431,S3421 + COMPLEX BRACK1,BRACK2,BRACK3,BRACK4A,BRACK4B,BRACK4 + + REAL QMP1,QMP2,QMP3,QMP4 + REAL PS43,PS41,PS42,PS34,PS14,PS13,PS24,PS23 + REAL PS21,PS31 + + REAL PD243,PD241,PD213,PD143,PD142 + REAL PD123,PD341,PD342,PD413,PD423 + REAL PD124,PD134,PD214,PD234,PD314,PD324 + REAL QP1,QP2,QP3,QP4 + + REAL PA(4),PB(4) + REAL AA(4,4),PP(4,4) + DATA PI /3.141592653589793238462643/ + DATA FPI /93.3E-3/ + DATA INIT /0/ + BWIGN(A,XM,XG)=1.0/CMPLX(A-XM**2,XM*XG) +C + IF (INIT.EQ.0) THEN + CALL CURINI + CALL CURINF + INIT = 1 + ENDIF +C +C --- MASSES AND CONSTANTS + G1=12.924 + G2=1475.98 * GOMEGA + G =G1*G2 + ELPHA=-.1 + AMROP=1.7 + GAMROP=0.26 + AMOM=.782 + GAMOM=0.0085 + ARFLAT=1.0 + AROMEG=1.0 +C + FRO=0.266*AMRO**2 + COEF1=2.0*SQRT(3.0)/FPI**2*ARFLAT + COEF2=FRO*G*AROMEG +C --- INITIALIZATION OF FOUR VECTORS + DO 7 K=1,4 + DO 8 L=1,4 + 8 AA(K,L)=0.0 + HADCUR(K)=CMPLX(0.0) + PAA(K)=PIM1(K)+PIM2(K)+PIM3(K)+PIM4(K) + PP(1,K)=PIM1(K) + PP(2,K)=PIM2(K) + PP(3,K)=PIM3(K) + 7 PP(4,K)=PIM4(K) +C + IF (MNUM.EQ.1) THEN +C =================================================================== +C PI- PI- P0 PI+ CASE ==== +C =================================================================== + QQ=PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2 + +C FIRST DEFINITION OF SCALAR PRODUCTS OF MOMENTUM VECTORS + +C DEFINE (Q-PI)**2 AS QPI: + + QMP1=(PIM2(4)+PIM3(4)+PIM4(4))**2-(PIM2(3)+PIM3(3)+PIM4(3))**2 + % -(PIM2(2)+PIM3(2)+PIM4(2))**2-(PIM2(1)+PIM3(1)+PIM4(1))**2 + + QMP2=(PIM1(4)+PIM3(4)+PIM4(4))**2-(PIM1(3)+PIM3(3)+PIM4(3))**2 + % -(PIM1(2)+PIM3(2)+PIM4(2))**2-(PIM1(1)+PIM3(1)+PIM4(1))**2 + + QMP3=(PIM1(4)+PIM2(4)+PIM4(4))**2-(PIM1(3)+PIM2(3)+PIM4(3))**2 + % -(PIM1(2)+PIM2(2)+PIM4(2))**2-(PIM1(1)+PIM2(1)+PIM4(1))**2 + + QMP4=(PIM1(4)+PIM2(4)+PIM3(4))**2-(PIM1(3)+PIM2(3)+PIM3(3))**2 + % -(PIM1(2)+PIM2(2)+PIM3(2))**2-(PIM1(1)+PIM2(1)+PIM3(1))**2 + + +C DEFINE (PI+PK)**2 AS PSIK: + + PS43=(PIM4(4)+PIM3(4))**2-(PIM4(3)+PIM3(3))**2 + % -(PIM4(2)+PIM3(2))**2-(PIM4(1)+PIM3(1))**2 + + PS41=(PIM4(4)+PIM1(4))**2-(PIM4(3)+PIM1(3))**2 + % -(PIM4(2)+PIM1(2))**2-(PIM4(1)+PIM1(1))**2 + + PS42=(PIM4(4)+PIM2(4))**2-(PIM4(3)+PIM2(3))**2 + % -(PIM4(2)+PIM2(2))**2-(PIM4(1)+PIM2(1))**2 + + PS34=PS43 + + PS14=PS41 + + PS13=(PIM1(4)+PIM3(4))**2-(PIM1(3)+PIM3(3))**2 + % -(PIM1(2)+PIM3(2))**2-(PIM1(1)+PIM3(1))**2 + + PS24=PS42 + + PS23=(PIM2(4)+PIM3(4))**2-(PIM2(3)+PIM3(3))**2 + % -(PIM2(2)+PIM3(2))**2-(PIM2(1)+PIM3(1))**2 + + PD243=PIM2(4)*(PIM4(4)-PIM3(4))-PIM2(3)*(PIM4(3)-PIM3(3)) + % -PIM2(2)*(PIM4(2)-PIM3(2))-PIM2(1)*(PIM4(1)-PIM3(1)) + + PD241=PIM2(4)*(PIM4(4)-PIM1(4))-PIM2(3)*(PIM4(3)-PIM1(3)) + % -PIM2(2)*(PIM4(2)-PIM1(2))-PIM2(1)*(PIM4(1)-PIM1(1)) + + PD213=PIM2(4)*(PIM1(4)-PIM3(4))-PIM2(3)*(PIM1(3)-PIM3(3)) + % -PIM2(2)*(PIM1(2)-PIM3(2))-PIM2(1)*(PIM1(1)-PIM3(1)) + + PD143=PIM1(4)*(PIM4(4)-PIM3(4))-PIM1(3)*(PIM4(3)-PIM3(3)) + % -PIM1(2)*(PIM4(2)-PIM3(2))-PIM1(1)*(PIM4(1)-PIM3(1)) + + PD142=PIM1(4)*(PIM4(4)-PIM2(4))-PIM1(3)*(PIM4(3)-PIM2(3)) + % -PIM1(2)*(PIM4(2)-PIM2(2))-PIM1(1)*(PIM4(1)-PIM2(1)) + + PD123=PIM1(4)*(PIM2(4)-PIM3(4))-PIM1(3)*(PIM2(3)-PIM3(3)) + % -PIM1(2)*(PIM2(2)-PIM3(2))-PIM1(1)*(PIM2(1)-PIM3(1)) + + PD341=PIM3(4)*(PIM4(4)-PIM1(4))-PIM3(3)*(PIM4(3)-PIM1(3)) + % -PIM3(2)*(PIM4(2)-PIM1(2))-PIM3(1)*(PIM4(1)-PIM1(1)) + + PD342=PIM3(4)*(PIM4(4)-PIM2(4))-PIM3(3)*(PIM4(3)-PIM2(3)) + % -PIM3(2)*(PIM4(2)-PIM2(2))-PIM3(1)*(PIM4(1)-PIM2(1)) + + PD413=PIM4(4)*(PIM1(4)-PIM3(4))-PIM4(3)*(PIM1(3)-PIM3(3)) + % -PIM4(2)*(PIM1(2)-PIM3(2))-PIM4(1)*(PIM1(1)-PIM3(1)) + + PD423=PIM4(4)*(PIM2(4)-PIM3(4))-PIM4(3)*(PIM2(3)-PIM3(3)) + % -PIM4(2)*(PIM2(2)-PIM3(2))-PIM4(1)*(PIM2(1)-PIM3(1)) + +C DEFINE Q*PI = QPI: + + QP1=PIM1(4)*(PIM1(4)+PIM2(4)+PIM3(4)+PIM4(4)) + % -PIM1(3)*(PIM1(3)+PIM2(3)+PIM3(3)+PIM4(3)) + % -PIM1(2)*(PIM1(2)+PIM2(2)+PIM3(2)+PIM4(2)) + % -PIM1(1)*(PIM1(1)+PIM2(1)+PIM3(1)+PIM4(1)) + + QP2=PIM2(4)*(PIM1(4)+PIM2(4)+PIM3(4)+PIM4(4)) + % -PIM2(3)*(PIM1(3)+PIM2(3)+PIM3(3)+PIM4(3)) + % -PIM2(2)*(PIM1(2)+PIM2(2)+PIM3(2)+PIM4(2)) + % -PIM2(1)*(PIM1(1)+PIM2(1)+PIM3(1)+PIM4(1)) + + QP3=PIM3(4)*(PIM1(4)+PIM2(4)+PIM3(4)+PIM4(4)) + % -PIM3(3)*(PIM1(3)+PIM2(3)+PIM3(3)+PIM4(3)) + % -PIM3(2)*(PIM1(2)+PIM2(2)+PIM3(2)+PIM4(2)) + % -PIM3(1)*(PIM1(1)+PIM2(1)+PIM3(1)+PIM4(1)) + + QP4=PIM4(4)*(PIM1(4)+PIM2(4)+PIM3(4)+PIM4(4)) + % -PIM4(3)*(PIM1(3)+PIM2(3)+PIM3(3)+PIM4(3)) + % -PIM4(2)*(PIM1(2)+PIM2(2)+PIM3(2)+PIM4(2)) + % -PIM4(1)*(PIM1(1)+PIM2(1)+PIM3(1)+PIM4(1)) + + + +C DEFINE T(PI;PJ,PK)= TIJK: + + T243=BWIGA1(QMP2)*FPIKM(SQRT(PS43),AMPI,AMPI)*GAMMA1 + T213=BWIGA1(QMP2)*FPIKM(SQRT(PS13),AMPI,AMPI)*GAMMA1 + T143=BWIGA1(QMP1)*FPIKM(SQRT(PS43),AMPI,AMPI)*GAMMA1 + T123=BWIGA1(QMP1)*FPIKM(SQRT(PS23),AMPI,AMPI)*GAMMA1 + T341=BWIGA1(QMP3)*FPIKM(SQRT(PS41),AMPI,AMPI)*GAMMA1 + T342=BWIGA1(QMP3)*FPIKM(SQRT(PS42),AMPI,AMPI)*GAMMA1 + +C DEFINE S(I,J;K,L)= SIJKL: + + S2413=FRHO4(SQRT(PS24),AMPI,AMPI)*GAMMA2 + S2314=FRHO4(SQRT(PS23),AMPI,AMPI)*BWIGEPS(PS14)*GAMMA2 + S1423=FRHO4(SQRT(PS14),AMPI,AMPI)*GAMMA2 + S1324=FRHO4(SQRT(PS13),AMPI,AMPI)*BWIGEPS(PS24)*GAMMA2 + S34=FRHO4(SQRT(PS34),AMPI,AMPI)*GAMMA2 + +C DEFINITION OF AMPLITUDE, FIRST THE [] BRACKETS: + + BRACK1=2.*T143+2.*T243+T123+T213 + % +T341*(PD241/QMP3-1.)+T342*(PD142/QMP3-1.) + % +3./4.*(S1423+S2413-S2314-S1324)-3.*S34 + + BRACK2=2.*T143*PD243/QMP1+3.*T213 + % +T123*(2.*PD423/QMP1+1.)+T341*(PD241/QMP3+3.) + % +T342*(PD142/QMP3+1.) + % -3./4.*(S2314+3.*S1324+3.*S1423+S2413) + + BRACK3=2.*T243*PD143/QMP2+3.*T123 + % +T213*(2.*PD413/QMP2+1.)+T341*(PD241/QMP3+1.) + % +T342*(PD142/QMP3+3.) + % -3./4.*(3.*S2314+S1324+S1423+3.*S2413) + + BRACK4A=2.*T143*(PD243/QQ*(QP1/QMP1+1.)+PD143/QQ) + % +2.*T243*(PD143/QQ*(QP2/QMP2+1.)+PD243/QQ) + % +T123+T213 + % +2.*T123*(PD423/QQ*(QP1/QMP1+1.)+PD123/QQ) + % +2.*T213*(PD413/QQ*(QP2/QMP2+1.)+PD213/QQ) + % +T341*(PD241/QMP3+1.-2.*PD241/QQ*(QP3/QMP3+1.) + % -2.*PD341/QQ) + % +T342*(PD142/QMP3+1.-2.*PD142/QQ*(QP3/QMP3+1.) + % -2.*PD342/QQ) + + BRACK4B=-3./4.*(S2314*(2.*(QP2-QP3)/QQ+1.) + % +S1324*(2.*(QP1-QP3)/QQ+1.) + % +S1423*(2.*(QP1-QP4)/QQ+1.) + % +S2413*(2.*(QP2-QP4)/QQ+1.) + % +4.*S34*(QP4-QP3)/QQ) + + BRACK4=BRACK4A+BRACK4B + + DO 208 K=1,4 + + HCOMP1(K)=(PIM3(K)-PIM4(K))*BRACK1 + HCOMP2(K)=PIM1(K)*BRACK2 + HCOMP3(K)=PIM2(K)*BRACK3 + HCOMP4(K)=(PIM1(K)+PIM2(K)+PIM3(K)+PIM4(K))*BRACK4 + + 208 CONTINUE + + DO 209 I=1,4 + + HADCUR(I)=HCOMP1(I)-HCOMP2(I)-HCOMP3(I)+HCOMP4(I) + HADCUR(I)=-COEF1*FRHO4(SQRT(QQ),AMPI,AMPI)*HADCUR(I) + + 209 CONTINUE + + +C --- END OF THE NON OMEGA CURRENT (3 POSSIBILITIES) + 201 CONTINUE +C +C +C --- THERE ARE TWO POSSIBILITIES FOR OMEGA CURRENT +C --- PA PB ARE CORRESPONDING FIRST AND SECOND PI-S + DO 301 KK=1,2 + DO 302 I=1,4 + PA(I)=PP(KK,I) + PB(I)=PP(3-KK,I) + 302 CONTINUE +C --- LORENTZ INVARIANTS + QQA=0.0 + SS23=0.0 + SS24=0.0 + SS34=0.0 + QP1P2=0.0 + QP1P3=0.0 + QP1P4=0.0 + P1P2 =0.0 + P1P3 =0.0 + P1P4 =0.0 + DO 303 K=1,4 + SIGN=-1.0 + IF (K.EQ.4) SIGN= 1.0 + QQA=QQA+SIGN*(PAA(K)-PA(K))**2 + SS23=SS23+SIGN*(PB(K) +PIM3(K))**2 + SS24=SS24+SIGN*(PB(K) +PIM4(K))**2 + SS34=SS34+SIGN*(PIM3(K)+PIM4(K))**2 + QP1P2=QP1P2+SIGN*(PAA(K)-PA(K))*PB(K) + QP1P3=QP1P3+SIGN*(PAA(K)-PA(K))*PIM3(K) + QP1P4=QP1P4+SIGN*(PAA(K)-PA(K))*PIM4(K) + P1P2=P1P2+SIGN*PA(K)*PB(K) + P1P3=P1P3+SIGN*PA(K)*PIM3(K) + P1P4=P1P4+SIGN*PA(K)*PIM4(K) + 303 CONTINUE +C + FORM2=COEF2*(BWIGN(QQ,AMRO,GAMRO)+ELPHA*BWIGN(QQ,AMROP,GAMROP)) +C FORM3=BWIGN(QQA,AMOM,GAMOM)*(BWIGN(SS23,AMRO,GAMRO)+ +C $ BWIGN(SS24,AMRO,GAMRO)+BWIGN(SS34,AMRO,GAMRO)) + FORM3=BWIGN(QQA,AMOM,GAMOM) +C + DO 304 K=1,4 + HADCUR(K)=HADCUR(K)+FORM2*FORM3*( + $ PB (K)*(QP1P3*P1P4-QP1P4*P1P3) + $ +PIM3(K)*(QP1P4*P1P2-QP1P2*P1P4) + $ +PIM4(K)*(QP1P2*P1P3-QP1P3*P1P2) ) + 304 CONTINUE + 301 CONTINUE +C + ELSE +C =================================================================== +C PI0 PI0 P0 PI- CASE ==== +C =================================================================== + QQ=PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2 + + +C FIRST DEFINITION OF SCALAR PRODUCTS OF MOMENTUM VECTORS + +C DEFINE (Q-PI)**2 AS QPI: + + QMP1=(PIM2(4)+PIM3(4)+PIM4(4))**2-(PIM2(3)+PIM3(3)+PIM4(3))**2 + % -(PIM2(2)+PIM3(2)+PIM4(2))**2-(PIM2(1)+PIM3(1)+PIM4(1))**2 + + QMP2=(PIM1(4)+PIM3(4)+PIM4(4))**2-(PIM1(3)+PIM3(3)+PIM4(3))**2 + % -(PIM1(2)+PIM3(2)+PIM4(2))**2-(PIM1(1)+PIM3(1)+PIM4(1))**2 + + QMP3=(PIM1(4)+PIM2(4)+PIM4(4))**2-(PIM1(3)+PIM2(3)+PIM4(3))**2 + % -(PIM1(2)+PIM2(2)+PIM4(2))**2-(PIM1(1)+PIM2(1)+PIM4(1))**2 + + QMP4=(PIM1(4)+PIM2(4)+PIM3(4))**2-(PIM1(3)+PIM2(3)+PIM3(3))**2 + % -(PIM1(2)+PIM2(2)+PIM3(2))**2-(PIM1(1)+PIM2(1)+PIM3(1))**2 + + +C DEFINE (PI+PK)**2 AS PSIK: + + PS14=(PIM1(4)+PIM4(4))**2-(PIM1(3)+PIM4(3))**2 + % -(PIM1(2)+PIM4(2))**2-(PIM1(1)+PIM4(1))**2 + + PS21=(PIM2(4)+PIM1(4))**2-(PIM2(3)+PIM1(3))**2 + % -(PIM2(2)+PIM1(2))**2-(PIM2(1)+PIM1(1))**2 + + PS23=(PIM2(4)+PIM3(4))**2-(PIM2(3)+PIM3(3))**2 + % -(PIM2(2)+PIM3(2))**2-(PIM2(1)+PIM3(1))**2 + + PS24=(PIM2(4)+PIM4(4))**2-(PIM2(3)+PIM4(3))**2 + % -(PIM2(2)+PIM4(2))**2-(PIM2(1)+PIM4(1))**2 + + PS31=(PIM3(4)+PIM1(4))**2-(PIM3(3)+PIM1(3))**2 + % -(PIM3(2)+PIM1(2))**2-(PIM3(1)+PIM1(1))**2 + + PS34=(PIM3(4)+PIM4(4))**2-(PIM3(3)+PIM4(3))**2 + % -(PIM3(2)+PIM4(2))**2-(PIM3(1)+PIM4(1))**2 + + + + PD324=PIM3(4)*(PIM2(4)-PIM4(4))-PIM3(3)*(PIM2(3)-PIM4(3)) + % -PIM3(2)*(PIM2(2)-PIM4(2))-PIM3(1)*(PIM2(1)-PIM4(1)) + + PD314=PIM3(4)*(PIM1(4)-PIM4(4))-PIM3(3)*(PIM1(3)-PIM4(3)) + % -PIM3(2)*(PIM1(2)-PIM4(2))-PIM3(1)*(PIM1(1)-PIM4(1)) + + PD234=PIM2(4)*(PIM3(4)-PIM4(4))-PIM2(3)*(PIM3(3)-PIM4(3)) + % -PIM2(2)*(PIM3(2)-PIM4(2))-PIM2(1)*(PIM3(1)-PIM4(1)) + + PD214=PIM2(4)*(PIM1(4)-PIM4(4))-PIM2(3)*(PIM1(3)-PIM4(3)) + % -PIM2(2)*(PIM1(2)-PIM4(2))-PIM2(1)*(PIM1(1)-PIM4(1)) + + PD134=PIM1(4)*(PIM3(4)-PIM4(4))-PIM1(3)*(PIM3(3)-PIM4(3)) + % -PIM1(2)*(PIM3(2)-PIM4(2))-PIM1(1)*(PIM3(1)-PIM4(1)) + + PD124=PIM1(4)*(PIM2(4)-PIM4(4))-PIM1(3)*(PIM2(3)-PIM4(3)) + % -PIM1(2)*(PIM2(2)-PIM4(2))-PIM1(1)*(PIM2(1)-PIM4(1)) + +C DEFINE Q*PI = QPI: + + QP1=PIM1(4)*(PIM1(4)+PIM2(4)+PIM3(4)+PIM4(4)) + % -PIM1(3)*(PIM1(3)+PIM2(3)+PIM3(3)+PIM4(3)) + % -PIM1(2)*(PIM1(2)+PIM2(2)+PIM3(2)+PIM4(2)) + % -PIM1(1)*(PIM1(1)+PIM2(1)+PIM3(1)+PIM4(1)) + + QP2=PIM2(4)*(PIM1(4)+PIM2(4)+PIM3(4)+PIM4(4)) + % -PIM2(3)*(PIM1(3)+PIM2(3)+PIM3(3)+PIM4(3)) + % -PIM2(2)*(PIM1(2)+PIM2(2)+PIM3(2)+PIM4(2)) + % -PIM2(1)*(PIM1(1)+PIM2(1)+PIM3(1)+PIM4(1)) + + QP3=PIM3(4)*(PIM1(4)+PIM2(4)+PIM3(4)+PIM4(4)) + % -PIM3(3)*(PIM1(3)+PIM2(3)+PIM3(3)+PIM4(3)) + % -PIM3(2)*(PIM1(2)+PIM2(2)+PIM3(2)+PIM4(2)) + % -PIM3(1)*(PIM1(1)+PIM2(1)+PIM3(1)+PIM4(1)) + + QP4=PIM4(4)*(PIM1(4)+PIM2(4)+PIM3(4)+PIM4(4)) + % -PIM4(3)*(PIM1(3)+PIM2(3)+PIM3(3)+PIM4(3)) + % -PIM4(2)*(PIM1(2)+PIM2(2)+PIM3(2)+PIM4(2)) + % -PIM4(1)*(PIM1(1)+PIM2(1)+PIM3(1)+PIM4(1)) + + +C DEFINE T(PI;PJ,PK)= TIJK: + + T324=BWIGA1(QMP3)*FPIKM(SQRT(PS24),AMPI,AMPI)*GAMMA1 + T314=BWIGA1(QMP3)*FPIKM(SQRT(PS14),AMPI,AMPI)*GAMMA1 + T234=BWIGA1(QMP2)*FPIKM(SQRT(PS34),AMPI,AMPI)*GAMMA1 + T214=BWIGA1(QMP2)*FPIKM(SQRT(PS14),AMPI,AMPI)*GAMMA1 + T134=BWIGA1(QMP1)*FPIKM(SQRT(PS34),AMPI,AMPI)*GAMMA1 + T124=BWIGA1(QMP1)*FPIKM(SQRT(PS24),AMPI,AMPI)*GAMMA1 + +C DEFINE S(I,J;K,L)= SIJKL: + + S1423=FRHO4(SQRT(PS14),AMPI,AMPI)*BWIGEPS(PS23)*GAMMA2 + S2431=FRHO4(SQRT(PS24),AMPI,AMPI)*BWIGEPS(PS31)*GAMMA2 + S3421=FRHO4(SQRT(PS34),AMPI,AMPI)*BWIGEPS(PS21)*GAMMA2 + + +C DEFINITION OF AMPLITUDE, FIRST THE [] BRACKETS: + + BRACK1=T234+T324+2.*T314+T134+2.*T214+T124 + % +T134*PD234/QMP1+T124*PD324/QMP1 + % -3./2.*(S3421+S2431+2.*S1423) + + + BRACK2=T234*(1.+2.*PD134/QMP2)+3.*T324+3.*T124 + % +T134*(1.-PD234/QMP1)+2.*T214*PD314/QMP2 + % -T124*PD324/QMP1 + % -3./2.*(S3421+3.*S2431) + + BRACK3=T324*(1.+2.*PD124/QMP3)+3.*T234+3.*T134 + % +T124*(1.-PD324/QMP1)+2.*T314*PD214/QMP3 + % -T134*PD234/QMP1 + % -3./2.*(3.*S3421+S2431) + + BRACK4A=2.*T234*(1./2.+PD134/QQ*(QP2/QMP2+1.)+PD234/QQ) + % +2.*T324*(1./2.+PD124/QQ*(QP3/QMP3+1.)+PD324/QQ) + % +2.*T134*(1./2.+PD234/QQ*(QP1/QMP1+1.) + % -1./2.*PD234/QMP1+PD134/QQ) + % +2.*T124*(1./2.+PD324/QQ*(QP1/QMP1+1.) + % -1./2.*PD324/QMP1+PD124/QQ) + % +2.*T214*(PD314/QQ*(QP2/QMP2+1.)+PD214/QQ) + % +2.*T314*(PD214/QQ*(QP3/QMP3+1.)+PD314/QQ) + + BRACK4B=-3./2.*(S3421*(2.*(QP3-QP4)/QQ+1.) + % +S2431*(2.*(QP2-QP4)/QQ+1.) + % +S1423*2.*(QP1-QP4)/QQ) + + + BRACK4=BRACK4A+BRACK4B + + DO 308 K=1,4 + + HCOMP1(K)=(PIM1(K)-PIM4(K))*BRACK1 + HCOMP2(K)=PIM2(K)*BRACK2 + HCOMP3(K)=PIM3(K)*BRACK3 + HCOMP4(K)=(PIM1(K)+PIM2(K)+PIM3(K)+PIM4(K))*BRACK4 + + 308 CONTINUE + + DO 309 I=1,4 + + HADCUR(I)=HCOMP1(I)+HCOMP2(I)+HCOMP3(I)-HCOMP4(I) + HADCUR(I)=COEF1*FRHO4(SQRT(QQ),AMPI,AMPI)*HADCUR(I) + + 309 CONTINUE + + 101 CONTINUE + ENDIF +C M. Finkemeier et al. END + END diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/README b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/README new file mode 100644 index 00000000000..ebed37ca014 --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/README @@ -0,0 +1,117 @@ + +INTRODUCTION: +------------ + +The RChL-currents directory should be placed as subdirectory of +TAUOLA/tauola/new-currents directory. + +It contains files which need to be compiled +and loaded with TAUOLA to replace its native hadronic currents with +the new ones. + +Technical details on modification for native tauola code are given +at the end of this README + +Directory RChL-currents/tabler/a1 includes program used for +calculation of numerical table(s) (tables are encapsulated in FORTRAN code +file initA1Tab.f) used by the formfactors. + +Directory RChL-currents/tabler/k0pi_scalar contains the table +(tables are encapsulated in FORTRAN code +file initKpiScalTab.f) that is the scalar form factor used in the Kpi current. +initKpiScalTab.f is based on absF0KPi.dat sent by M. Jamin. + +Directory RChL-currents/cross-check include programs for the tests and +the results of TAUOLA run with the RChL version for the channels, at present +for 2 and some 3 scalar modes, that means with JAK= 4,5,7,14,15,16,22 + +Directory RChL-currents/backup is temporary + +Physics documentation is given in sub-directory RChL-currents/paper. +In particular detailed description of the currents is given in +the paper, section ... + + +Content of all mentioned above sub-directories is not loaded +(thus is not needed) for creation of TAUOLA library +(to be created by makefile in TAUOLA/tauola directory). + + + +LIST OF FILES: +------------- + +The files listed below are stored in RChL-currents directory. +On top of each file brief info is given. It includes main physics +reference paper, our documentation chapter no and +input/output parameters. + +1. f3pi_rcht.f +current for the 3pi (both \pi+\pi-\pi- and \pi0\pi0\pi-) channels + +2. fkkpi.f +current for the channels K+K-pi- and K0 \bar K0 pi- + +3. fkk0pi0.f +current for the channel K0 K- pi0 + + +4. wid_a1_fit.f +Calculates the value \Gamma(a1->3 scalars) at the fixed Q2 interpolating +the value from the table initA1Tab.f. +It is needed by f3pi_rcht.f fkkpi.f fkk0pi0.f + +5. initA1Tab.f is a table used by wid_a1_fit.f + initA1Tab.f is a copy of the table /tabler/a1/wida1_qq_tot_2e5.out + +6. frho_pi.f +current for pi- pi0 channel + +7. fkpipl.f +current for both K0 pi- and K0 pi0 channels. + +8. initKpiScalTab.f +is a table with the scalar Kpi form factor. It is called in fkpipl.f +if the dipswitch FFKPISCAL is fixed to be FFKPISCAL = 1 + +9. ff_scal_kpi.f +Calculates the value of the Kpi scalar form factor for FFKPISCAL = 1 +in value_parameter.f (M. Jamin parametrization) + at the fixed Q2 interpolating the value from the table initKpiScalTab.f. + +10. fkpisc_pass.f +an adopted private code of E. Passermar for teh scalar Kpi form factor, +it runs when FFKPISCAL = 2 + +11. fk0k.f +current for K-K0 channel + +12. funct_rpt.f +Functions used in calculation of form factors, that is in f3pi_rcht.f, +fkkpi.f, fkk0pi0.f, frho_pi.f, fkpipl.f, fk0k.f + +13. value_parameter.f +fixes the value of dipswitches as well as the values of the model parameters +(masses and width of the resonances, constant of decays etc.). +Numerical values of latest depend on the mode. +##### +Note: dipswitches may affect choices for non-RChL currents as well +##### + +14. parameter.inc : declaration masses of resonances and other parameters +used in all above currents. + +15. funct_declar.inc : declaration of the functions determined in funct_rpt.f + + +MODIFICATION FOR TAUOLA/tauola +------------------------------ + +To load the currents update only the following files of native tauola +need to be updated: +tauola/makefile tauola/f3pi.f tauola/formf.f tauola/tauola.f . + +At present svn diff methods should be used for details. For users +help from the authors is necessary. + +Once project reach maturity extracts from these diffs will be copied here. \ No newline at end of file diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/funct_declar.inc b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/funct_declar.inc new file mode 100644 index 00000000000..01a13ed1180 --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/funct_declar.inc @@ -0,0 +1,17 @@ +C============================================================================== +C declaration of function in funct_rpt +C============================================================================== + COMPLEX ALP1_RPT,BETA_RPT,ALP3_R,BETA3_RR,ALP1R_1 + & ,ALP1R_2,ALP2R_1,ALP2R_2,ALP1R_3,ALP2R_3 + & ,A_RCHT,JPQ1_FUNCT,JPQ2_FUNCT,compsqrt,complog + & ,HKPI,FKPIPL_GS,FKPIEXP,FKPIPL,FKPIPL_TOT + & ,DINT_DELKP,R0scal_3pi,R2scal_3pi,ALP1_RPT_RHO1 + & ,BETA_RPT_RHO1,BWsig,FFsig + + REAL GRHO_RCHT,GRHO1_RCHT,LAMB_RCHT,ALP_R,BETA_R + & ,ALP_RR,BETA_RR,GGMKST,DR,CRR,GRHO_RCHT_NOSU2 + & ,GRHO1_RCHT_NOSU2,QQ_KPI,GGMKSTPR, FKPIPL_DISP + & ,DECOUL,COUL3PART,fattcoul,frepcoul + + DOUBLE PRECISION SIGP,FKPISC_PASS + diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/parameter.inc b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/parameter.inc new file mode 100644 index 00000000000..12962a0a1c7 --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/parameter.inc @@ -0,0 +1,67 @@ +C============================================================================== +C common blocks and constants +C============================================================================== + + COMMON/RCHT_3PI/ FPI_RPT,FV_RPT,GV_RPT,FA_RPT,BETA_RHO,FK_RPT + & ,FV1_RPT,GV1_RPT + DOUBLE PRECISION FPI_RPT,FV_RPT,GV_RPT,FA_RPT,BETA_RHO,FK_RPT + & ,FV1_RPT,GV1_RPT + + COMMON/MASS_RES/ MRO,GRO,MRHO1,GRHO1,MMA1,MKSP,MKS0 + & ,MF2,GF2,MF0,GF0,MSG,GSG,MOM,GOM,MPHI,GPHI + & ,MKST,MSIG,GSIG + DOUBLE PRECISION MRO,GRO,MRHO1,GRHO1,MMA1,MKSP,MKS0 + & ,MF2,GF2,MF0,GF0,MSG,GSG,MOM,GOM,MPHI,GPHI + & ,MKST,MSIG,GSIG + + COMMON/MASS_STABLE/ MPIZ,MPIC,MMPI_AV,MKZ,MKC,MMK,MTAU,MNUTA + & ,META + DOUBLE PRECISION MPIZ,MPIC,MMPI_AV,MKZ,MKC,MMK,MTAU,MNUTA + & ,META + + DOUBLE PRECISION PI + DATA PI /3.141592653589793238462643D0/ + + COMPLEX i + DATA i/(0.,1.)/ + + COMMON/PAR_KKPI/ G2,G13,G4,G5,C125,C1256,C1235,C4,D123,D3 + REAL G2,G13,G4,G5,C125,C1256,C1235,C4,D123,D3 + + COMMON/RES_MIXING_RCHT/ THETA + REAL THETA + + COMMON/PAR_RHOPRIME/ COEF_GA,COEF_DE,phi_1,phi_2,grho2,mrho2 + DOUBLE PRECISION COEF_GA,COEF_DE,phi_1,phi_2,grho2,mrho2 + + COMMON/PAR_KPI/ MKSTPR,GAMMA_KST,GAMMA_KSTPR,GAMMA_RCHT,Ht0 + & ,lap_KPI,lapp_KPI,c1_KPI,c2_KPI + DOUBLE PRECISION MKSTPR,GAMMA_KST,GAMMA_KSTPR,GAMMA_RCHT,Ht0 + & ,lap_KPI,lapp_KPI,c1_KPI,c2_KPI + + COMMON/VERSION_VECFF/ FFVEC,FFKPIVEC,FFKKVEC,FFKPISCAL,FF3PISCAL + & ,FF3PIRHOPR,FFKKPIRHOPR,FFKKPIKPR,FF2PIRHO + & ,FCOUL + INTEGER FFVEC,FFKPIVEC,FFKKVEC,FFKPISCAL,FF3PISCAL + & ,FF3PIRHOPR,FFKKPIRHOPR,FFKKPIKPR,FF2PIRHO + & ,FCOUL + + COMMON/FF0SCKPI/ F00 + REAL F00 + + COMMON/KPISC_EM/ lnC,lambda0 + DOUBLE PRECISION lnC,lambda0 + + COMMON/SCAL_3PI/ a00_3piscal,b00_3piscal,c00_3piscal + & ,d00_3piscal,x00_3piscal,a02_3piscal + & ,b02_3piscal,c02_3piscal,d02_3piscal + & ,x02_3piscal,ALPHA0_3PI,ALPHA1_3PI + & ,GAMMA0_3PI,GAMMA1_3PI,MMF0 + & ,alpsig,betasig,gamsig,delsig,rsigma + + DOUBLE PRECISION a00_3piscal,b00_3piscal,c00_3piscal + & ,d00_3piscal,x00_3piscal,a02_3piscal + & ,b02_3piscal,c02_3piscal,d02_3piscal + & ,x02_3piscal,ALPHA0_3PI,ALPHA1_3PI + & ,GAMMA0_3PI,GAMMA1_3PI,MMF0 + & ,alpsig,betasig,gamsig,delsig,rsigma \ No newline at end of file diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_3pi/f3pi_rcht.f b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_3pi/f3pi_rcht.f new file mode 100644 index 00000000000..203c3aaaf28 --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_3pi/f3pi_rcht.f @@ -0,0 +1,245 @@ +C JAK = 5 +C + COMPLEX FUNCTION F3PI_RCHT(IFORM,QQ,SA,SB) + IMPLICIT NONE + INTEGER IFORM + REAL QQ,SA,SB +C....................................................................... +C. +C. F3PI - RchT version of the hadronic curent used in TAUOLA +C. References: [1] arXiv:0911.4436 (hep-ph) P. Roig et al. +C. eqs (5)-(9), (32) gives the main part of the current +C (the part without the sigma contribution) +C. [2] arXiv:1203.3955, +C. the manual for the 3pi current without the sigma contribution +C. [3] http://annapurna.ifj.edu.pl/~wasm/RChL/RChLa1.pdf +C eq (3) the sigma meson contribution to the 3 pi current +C. Inputs : QQ,SA,SB - invariant masses**2 [GeV**2] +C. : IFORM formfactor no. +C. Outputs : F3PI_RCHT formfactor value +C. +C. COMMON : RCHT_3PI content is defined in this routine +C. +C. Calls : functions from file ./funct_rpt.f, ./fa1rchl.f +C. Called : from file ../formf.f +C. Author : O.S +C. Created : +C. Modified : 1. Feb 2011 +C a part with scalars added on the 1st May 2012 +C....................................................................... + include '../parameter.inc' + include '../funct_declar.inc' + + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS + REAL*4 BRA1,BRK0,BRK0B,BRKS + INTEGER J3PI + REAL wid_a1_fit +* + CHARACTER*(*) CRNAME + PARAMETER( CRNAME = 'F3PI' ) +* + INTEGER IDK + DOUBLE PRECISION M1,M2,M3,M1SQ,M2SQ,M3SQ + REAL GGMA1 + REAL S1,S2,S3,FACT_RPT +* + REAL R_RPT,KAP_RPT,FACT_ADD_RPT + COMPLEX ALP21_RPT,ALP22_RPT,ALP11_RPT,ALP12_RPT + $ ,BETA1_RPT,BETA2_RPT,BETA1_RPT_RHO1,ALP11_RPT_RHO1 + $ ,ALP21_RPT_RHO1,ALP22_RPT_RHO1 + COMPLEX FA1RCHL + INTEGER IFIRST + DATA IFIRST/0/ + +C. GENERAL INITIALIZATION +C. ====================== + + IF (IFIRST.EQ.0) THEN + IFIRST = 1 + PRINT *,' In F3pi: chpt + 1 resonance + 2 resonance (RchT)' + END IF + +C****************************************** +C Initilisation of the mass of the particles +C***************************************** + call rchl_parameters(5) + +C. We impose isospin symmetry requesting that charged and neutral pion mass +C. are equal. This may need to be changed MMPI_AV = (2.*MPIC+MPIZ)/3. + + M1 = MMPI_AV + M2 = MMPI_AV + M3 = MMPI_AV + + +C. normalization factor to compensate on different +C. convention for normalization constant used in TAUOLA and +C. TAUOLA documentation on one side and paper [1] on other. + FACT_ADD_RPT = 1./FPI_RPT + + + +C. FUNCTION VALUE, GENERAL CASE +C. ============================ + +C Function value set to 0 + F3PI_RCHT = CMPLX(0.,0.) + +C. First determine whether we are doing pi-2pi0 or 3pi. +C. we CH3PI GET information (eg from phase space geneator of tauola.f) +C. whether it is 3 prong J3pi=1 or 1 prong J3pi=2 final state of 3 pion. + CALL CH3PIGET(J3pi) + + IF (J3pi.EQ.2) THEN ! it is pi 2pi0 + IDK = 1 + R_RPT = -1. + KAP_RPT = 0.5 + ELSE IF(J3pi.EQ.1) THEN ! it is 3pi + IDK = 2 + R_RPT = 1. + KAP_RPT = 1. + END IF + + M1SQ = M1*M1 + M2SQ = M2*M2 + M3SQ = M3*M3 + + +C. Calculation, IFORM = 1 or 2. +C. VECTOR 3 PION FORM FACTORS +C. ============================ + IF (IFORM.EQ.1.OR.IFORM.EQ.2) THEN + S1 = SA ! t variable in [2] (!!! vec1 = v2 !!!) + S2 = SB ! s variable in [2] + S3 = QQ-SA-SB+M1SQ+M2SQ+M3SQ + + IF (S3.LE.0..OR.S2.LE.0.) RETURN + +C. FUNCTIONS BETA_RPT, ALP1_RPT are coded in ./funct_rpt.f +C. they are defined in Eq (6) of [2] + BETA1_RPT = BETA_RPT(QQ,S1,S2,M1SQ,M2SQ,M3SQ,MRO,MRHO1,GRHO1) + ALP11_RPT = ALP1_RPT(QQ,S1,S2,M1SQ,M2SQ,M3SQ,MRO,MRHO1,GRHO1) + + F3pi_RCHT = - 2.*SQRT(2.)/(3.*FPI_RPT) - + $ SQRT(2.)*FV_RPT*GV_RPT/(3.*FPI_RPT**3)*ALP11_RPT + + $ 4.*FA_RPT*GV_RPT/(3.*FPI_RPT**3)*BETA1_RPT*QQ + $ *FA1RCHL(QQ) + +C. FA1RCHL(QQ) is the a1 propagator, is it coded in ./fa1rchl.f + + + F3pi_RCHT = F3pi_RCHT * R_RPT + +C. +C. The contribution from the scalar (sigma) resonance +C. + IF(FF3PISCAL.EQ.1) THEN +C. This parametrization does not fit + IF(J3PI.EQ.1) THEN + F3pi_RCHT = F3pi_RCHT + ( + & sqrt(2.)*(R0scal_3pi(QQ,S1)+R0scal_3pi(QQ,S2)) + + & (R2scal_3pi(QQ,S1)+R2scal_3pi(QQ,S2)) + & ) + ELSE IF(J3PI.EQ.2) THEN + F3pi_RCHT = F3pi_RCHT - ( + & (R0scal_3pi(QQ,S1)+R0scal_3pi(QQ,S2)) - + & sqrt(2.)*(R2scal_3pi(QQ,S1)+R2scal_3pi(QQ,S2)) + & ) + ENDIF + ELSE IF(FF3PISCAL.EQ.2) THEN +C. A new parametrization 10.02.2013 for the scalar contribution +C. analytical formulae in [3], eqs (3)-(6), +C. functions BWsig(Mm,Gg,Qx), FFsig(QQ,Qx) coded in ./funct_rpt.f +C. + IF(J3PI.EQ.1) THEN + F3pi_RCHT = F3pi_RCHT + + & SQRT(2.)*FV_RPT*GV_RPT/(3.*FPI_RPT**3)* + & (alpsig*BWsig(MSIG,GSIG,S1)*FFsig(QQ,S1) + + & betasig*BWsig(MSIG,GSIG,S2)*FFsig(QQ,S2)) + & +4.*FA_RPT*GV_RPT/(3.*FPI_RPT**3)* + & (gamsig*BWsig(MSIG,GSIG,S1)*FFsig(QQ,S1) + + & delsig*BWsig(MSIG,GSIG,S2)*FFsig(QQ,S2)) + $ *FA1RCHL(QQ) + ELSE IF(J3PI.EQ.2) THEN + F3pi_RCHT = F3pi_RCHT - ( + & SQRT(2.)*FV_RPT*GV_RPT/(3.*FPI_RPT**3)* + & alpsig*BWsig(MSIG,GSIG,S3)*FFsig(QQ,S3) + & +4.*FA_RPT*GV_RPT/(3.*FPI_RPT**3)* + & gamsig*BWsig(MSIG,GSIG,S3)*FFsig(QQ,S3) + $ *FA1RCHL(QQ) ) + ENDIF + +C. +C. The Coulomb interaction effects for the final pions +C. only for pi-pi+pi- should be included +C. Functions fattcoul(m1,m2,s),frepcoul(m1,m2,s) are coded in ./funct_rpt.f +C. + IF (FCOUL.EQ.1.AND.(J3pi.EQ.1)) THEN ! it is 3pi + F3PI_RCHT = F3PI_RCHT*sqrt(fattcoul(m2,m3,s1) + & *fattcoul(m1,m3,s2)*frepcoul(m1,m2,s3)) + END IF + ENDIF + + +C. +C. The factor 1/FACT_ADD_RPT = FPI_RPT comes to compensate an additional factor +C. in the hadronic current F3pi_rcht above compare with eq (6) in [2] + + + F3pi_RCHT = F3pi_RCHT/FACT_ADD_RPT + +C. Calculation, for IFORM = 3 is not needed +C. ======================= +C. F3PI_RCHT is set to zero in ../formf.f. + +C. Calculation, IFORM = 4. +C. PSEUDOSCALAR 3 PION FORM FACTOR +C. ======================= + ELSEIF (IFORM.EQ.4) THEN + S1 = SA + S2 = SB + S3 = QQ-SA-SB+M1SQ+M2SQ+M3SQ + + IF (S3.LE.0..OR.S2.LE.0.) RETURN + +C. Functions ALP21_RPT, ALP22_RPT are Eq(10) in [2] +C. GRHO_RCHT, GRHO1_RCHT s1 or s2 dependent widths of rho or rho1 +C. coded in ./funct_rpt.f + ALP21_RPT = 3.*GV_RPT*S1*M1SQ*(S3-S2)/ + & (FV_RPT*QQ*(QQ-M1SQ)*(1.+BETA_RHO))* + & (1./(S1-MRO**2+i*MRO*GRHO_RCHT(S1,MRO))+ + & BETA_RHO/(S1-MRHO1**2+i*MRHO1*GRHO1_RCHT(S1,MRHO1,GRHO1))) + ALP22_RPT = 3.*GV_RPT*S2*M1SQ*(S3-S1)/ + & (FV_RPT*QQ*(QQ-M1SQ)*(1.+BETA_RHO))* + & (1./(S2-MRO**2+i*MRO*GRHO_RCHT(S2,MRO))+ + & BETA_RHO/(S2-MRHO1**2+i*MRHO1*GRHO1_RCHT(S2,MRHO1,GRHO1))) + +C. PSEUDOSCALAR 3 PION FORM FACTOR. Eqs (9) in [2] + F3PI_RCHT = SQRT(2.)/(3.*FPI_RPT*QQ*(QQ-M1SQ))* + & M1SQ*(3.*(S3-M3SQ)-QQ*(1.+2.*KAP_RPT*R_RPT)) + + F3PI_RCHT = F3PI_RCHT - sqrt(2.)*FV_RPT*GV_RPT/(3.*FPI_RPT**3)* + & ( ALP21_RPT + ALP22_RPT) + +C. +C. The factor 1/FACT_ADD_RPT = FPI_RPT comes to compensate an additional factor +C. in the hadronic current F3pi_rcht above compare with eq (9) in [2] + F3PI_RCHT = R_RPT * F3PI_RCHT/FACT_ADD_RPT + +C. +C. The Coulomb interaction effects for the final pions +C. only for pi-pi+pi- should be included +C. Functions fattcoul(m1,m2,s),frepcoul(m1,m2,s) are coded in ./funct_rpt.f +C. + IF (FCOUL.EQ.1.AND.(J3pi.EQ.1)) THEN ! it is 3pi + F3PI_RCHT = F3PI_RCHT*sqrt(fattcoul(m2,m3,s1) + & *fattcoul(m1,m3,s2)*frepcoul(m1,m2,s3)) + END IF + + END IF + + RETURN + END + diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_3pi/funct_3pi.f b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_3pi/funct_3pi.f new file mode 100644 index 00000000000..4abc1ae589d --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_3pi/funct_3pi.f @@ -0,0 +1,160 @@ +C ********************************************************** +C library of functions used in calculation of currents +C references: +C [1] arXiv:0911.4436 (hep-ph) D. Gomez Dumm et al. (tau -> 3pi nu) +C [2] arXiv:0911.2640 (hep-ph) D. Gomezz Dumm et al. (tau -> KKpi nu) +C [3] arXiv:0807.4883 (hep-ph) D. R. Boito et al. (tau -> Kpi nu) +C [4] P. Roig, talk at (tau -> 2 pi nu) +C [5] arXiv:0803.2039 (hep-ph) E. Arganda et al., Appendix B (tau -> KK nu) +C ********************************************************** + + FUNCTION ALP1_RPT(Q,S,T,M1SQ,M2SQ,M3SQ, + $ MMM,MMM2,GGG) + IMPLICIT NONE + REAL Q,S,T + DOUBLE PRECISION M1SQ,M2SQ,M3SQ, + & MMM,MMM2,GGG +C ********************************************************** +C COMPLEX FUNCTION ALP1_RPT; +C one-resonance contribution to +C F3pi_rcht(iform=1,2) at f3pi_rcht.f; +C corrected formula (8) of REF [1] including rho1, +C the factor sqrt(2)*FV_RPT*GV_RPT/(3.*FPI_RPT**3) is included in +C F3pi_rcht(iform1=1,2) at f3pi_rcht.f +C ********************************************************** + REAL U + include '../parameter.inc' + include '../funct_declar.inc' + + U= Q-S-T+M1SQ+M2SQ+M3SQ + ALP1_RPT = - 3.*S/(1.+BETA_RHO)* + $ (1./(S-MMM**2+i*MMM*GRHO_RCHT(S,MMM))+ + $ BETA_RHO/(S-MMM2**2+i*MMM2*GRHO1_RCHT(S,MMM2,GGG))) + $ +(2.*GV_RPT/FV_RPT-1.)* + $ ((2.*Q-2.*S-U)/(1.+BETA_RHO)* + $ (1./(S-MMM**2+i*MMM*GRHO_RCHT(S,MMM))+ + $ BETA_RHO/(S-MMM2**2+i*MMM2*GRHO1_RCHT(S,MMM2,GGG)))+ + $ (U-S)/(1.+BETA_RHO)* + $ (1./(T-MMM**2+i*MMM*GRHO_RCHT(T,MMM))+ + $ BETA_RHO/(T-MMM2**2+i*MMM2*GRHO1_RCHT(T,MMM2,GGG)))) + + RETURN + + END + + + + FUNCTION BETA_RPT(Q,S,T,M1SQ,M2SQ,M3SQ,MMM,MMM2,GGG) + IMPLICIT NONE + REAL Q,S,T + DOUBLE PRECISION M1SQ,M2SQ,M3SQ,MMM,MMM2,GGG +C ********************************************************** +C COMPLEX FUNCTION BETA_RPT ; two-resonance contribution to +C F3pi_rcht(iform=1,2) at f3pi_rcht.f; +C corrected formula (8) of REF [1] including rho1, +C the factor 4*FA_RPT*GV_RPT/(3.*FPI_RPT**3)*QQ/D_a1(QQ) +C is included in F3pi_rcht(iform1=1,2) at f3pi_rcht.f +C ********************************************************** + include '../parameter.inc' + include '../funct_declar.inc' + + REAL U,LAM0_RPT,LAM1_RPT,LAM2_RPT,FF1_RPT,FF2_RPT,FF_REL + + FF_REL = FPI_RPT*FPI_RPT/(FV_RPT*FV_RPT) + + LAM1_RPT = FPI_RPT*FPI_RPT/(2.D0*SQRT(2.D0)*FA_RPT*GV_RPT) + LAM2_RPT = -(1.-2.*FF_REL)*LAM1_RPT + LAM0_RPT = (LAM1_RPT + LAM2_RPT)/4. + + U= Q-S-T+M1SQ+M2SQ+M3SQ + + FF1_RPT = -LAM0_RPT*M1SQ/Q +LAM1_RPT*S/Q+LAM2_RPT + FF2_RPT = -LAM0_RPT*M1SQ/Q +LAM1_RPT*T/Q+LAM2_RPT + + BETA_RPT = -3.*(LAM1_RPT+LAM2_RPT)*S/(1.+BETA_RHO)* + $ (1./(S-MMM**2+i*MMM*GRHO_RCHT(S,MMM))+ + $ BETA_RHO/(S-MMM2**2+i*MMM2*GRHO1_RCHT(S,MMM2,GGG)))+ + $ FF1_RPT*(2.*Q+S-U)/(1.+BETA_RHO)* + $ (1./(S-MMM**2+i*MMM*GRHO_RCHT(S,MMM))+ + $ BETA_RHO/(S-MMM2**2+i*MMM2*GRHO1_RCHT(S,MMM2,GGG)))+ + $ FF2_RPT*(U-S)/(1.+BETA_RHO)* + $ (1./(T-MMM**2+i*MMM*GRHO_RCHT(T,MMM))+ + $ BETA_RHO/(T-MMM2**2+i*MMM2*GRHO1_RCHT(T,MMM2,GGG))) + + RETURN + + END + + FUNCTION ALP1_RPT_RHO1(Q,S,T,M1SQ,M2SQ,M3SQ, + $ MMM,MMM2,GGG) + IMPLICIT NONE + REAL Q,S,T + DOUBLE PRECISION M1SQ,M2SQ,M3SQ, + & MMM,MMM2,GGG +C ********************************************************** +C COMPLEX FUNCTION ALP1_RPT_RHO1; +C one-resonance contribution to +C F3pi_rcht(iform=1,2) at f3pi_rcht.f; +C corrected formula (8) of REF [1] including rho1, +C the factor sqrt(2)*FV_RPT*GV_RPT/(3.*FPI_RPT**3) is included in +C F3pi_rcht(iform1=1,2) at f3pi_rcht.f +C ********************************************************** + REAL U + include '../parameter.inc' + include '../funct_declar.inc' + + U= Q-S-T+M1SQ+M2SQ+M3SQ + ALP1_RPT_RHO1 = - 3.*S + $ /(S-MMM2**2+i*MMM2*GRHO1_RCHT(S,MMM2,GGG)) + $ +(2.*GV1_RPT/FV1_RPT-1.)* + $ ( (2.*Q-2.*S-U) + $ /(S-MMM2**2+i*MMM2*GRHO1_RCHT(S,MMM2,GGG))+ + $ (U-S)/(T-MMM2**2+i*MMM2*GRHO1_RCHT(T,MMM2,GGG)) ) + + RETURN + + END + + + + FUNCTION BETA_RPT_RHO1(Q,S,T,M1SQ,M2SQ,M3SQ,MMM,MMM2,GGG) + IMPLICIT NONE + REAL Q,S,T + DOUBLE PRECISION M1SQ,M2SQ,M3SQ,MMM,MMM2,GGG +C ********************************************************** +C COMPLEX FUNCTION BETA_RPT_RHO1 ; two-resonance contribution to +C F3pi_rcht(iform=1,2) at f3pi_rcht.f; +C corrected formula (8) of REF [1] including rho1, +C the factor 4*FA_RPT*GV_RPT/(3.*FPI_RPT**3)*QQ/D_a1(QQ) +C is included in F3pi_rcht(iform1=1,2) at f3pi_rcht.f +C ********************************************************** + include '../parameter.inc' + include '../funct_declar.inc' + + REAL U,LAM0_RPT,LAM1_RPT,LAM2_RPT,FF1_RPT,FF2_RPT,FF_REL + + FF_REL = FPI_RPT*FPI_RPT/(FV1_RPT*FV1_RPT) + + LAM1_RPT = FPI_RPT*FPI_RPT/(2.D0*SQRT(2.D0)*FA_RPT*GV1_RPT) + LAM2_RPT = -(1.-2.*FF_REL)*LAM1_RPT + LAM0_RPT = (LAM1_RPT + LAM2_RPT)/4. + + U= Q-S-T+M1SQ+M2SQ+M3SQ + + FF1_RPT = -LAM0_RPT*M1SQ/Q +LAM1_RPT*S/Q+LAM2_RPT + FF2_RPT = -LAM0_RPT*M1SQ/Q +LAM1_RPT*T/Q+LAM2_RPT + + BETA_RPT_RHO1 = -3.*(LAM1_RPT+LAM2_RPT)*S + $ /(S-MMM2**2+i*MMM2*GRHO1_RCHT(S,MMM2,GGG)) + + $ FF1_RPT*(2.*Q+S-U) + $ /(S-MMM2**2+i*MMM2*GRHO1_RCHT(S,MMM2,GGG))+ + $ FF2_RPT*(U-S) + $ /(T-MMM2**2+i*MMM2*GRHO1_RCHT(T,MMM2,GGG)) + + RETURN + + END + + + + diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/FA1RCHL.f b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/FA1RCHL.f new file mode 100644 index 00000000000..c3e599dbbf2 --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/FA1RCHL.f @@ -0,0 +1,63 @@ + COMPLEX FUNCTION FA1RCHL(QQ) + IMPLICIT NONE + REAL QQ + DOUBLE PRECISION M1,M2,M3 + REAL GGMA1 + REAL wid_a1_fit +C....................................................................... +C. +C. FA1CHL - RchT version of the A1 propagator +C. +C. Inputs : QQ - invariant masses**2 [GeV**2] +C. Outputs : FA1RCHL formfactor value at QQ +C. +C. COMMON : RCHT_3PI content is defined in this routine +C. +C. Calls : functions from file ./wid_a1_fit.f +C. Called : from file f3pi_rcht.f, fkkpi.f, fkk0pi0.f +C************************************************************************ + include '../parameter.inc' + include '../funct_declar.inc' +C****************************************** +C Initilisation of the mass of the particles +C***************************************** + call rchl_parameters(5) + +c$$$C we impose isospin symmetry requesting that charged and neutral pion mass +c$$$C are equal. This may need to be changed +c$$$ MMPI_AV = (2.*MPIC+MPIZ)/3. + + M1 = MMPI_AV + M2 = MMPI_AV + M3 = MMPI_AV +c +C Function wid_a1_fit.f calculates the energy dependence of +C the a1 meson width +C + IF(QQ.GE.(M1+M2+M3)**2) THEN + GGMA1 = wid_a1_fit(QQ) + ELSE + GGMA1 = 0. + ENDIF + + + FA1RCHL = 1./(QQ-MMA1*MMA1+i*MMA1*GGMA1) + + RETURN + END + +C to switch on/off remotely option for scalar contr. +C to FORM1 FORM2 of 3 pi mode. + subroutine getFF3PISCAL(INUM) + INTEGER INUM + include '../parameter.inc' + INUM=FF3PISCAL + return + end + + subroutine setFF3PISCAL(INUM) + INTEGER INUM + include '../parameter.inc' + FF3PISCAL=INUM + return + end diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/ffwid3pi.f b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/ffwid3pi.f new file mode 100644 index 00000000000..47584346d4c --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/ffwid3pi.f @@ -0,0 +1,184 @@ + DOUBLE PRECISION FUNCTION FFWID3PI(QQ,S1,S3) + IMPLICIT NONE + DOUBLE PRECISION QQ,S1,S3 +C ************************************************************** +C Input: QQ S1 S3 ! mpi-pi-pi+**2 mpi-pi+**2 mpi-pi-**2 +C Calls: functions FORM1, FORM2, FORM4 +C Uses constants: tau mass, pi mass, normalization constant. +C Load: Initialized tauola library, +C Output: d\Gamma(tau --> 3pi nu)/(dQQ dS1 dS3) +C Remark: If QQ S1 S3 are outside of the phase space +C function FFWID3PI returns zero. +C ************************************************************** + COMPLEX F1,F2,F4, FORM1,FORM2, FORM4 + DOUBLE PRECISION V11,V12,V22,GGF2,VUD2,ABS1,QQMIN, + & QQMAX,S3MAX,S3MIN,S1MIN,S1MAX + REAL XQQ,XS1,XS3, XS2,RQQ + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + DOUBLE PRECISION XLAM,X,Y,Z + DOUBLE PRECISION XAMPI2 + DOUBLE PRECISION GETFPIRPT + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + DOUBLE PRECISION PI + DATA PI /3.141592653589793238462643D0/ + INTEGER IMODE,IDUM,IFRCHL + REAL RRQ,RCHLWIDA1PI + + + XLAM(X,Y,Z)= sqrt(abs((x-y-z)**2 - 4.*y*z)) + + ABS1 = 1.d-5 + + + GGF2 = GFERMI**2 + VUD2 = CCABIB**2 + + +C TO CHANGE THE VARIABLES TO SINGLE PRECISION +C INPUT FOR FORM1,FORM2,FORM4 IS SINGLE PRECISION + + XQQ = QQ + XS1 = S1 + XS2 = QQ -S1-S3 + 3.*AMPI**2 + XS3 = S3 + XAMPI2 = AMPI**2 +C Limits for PHASE SPACE +C Limits for QQ + QQMIN = 9.D0*AMPI**2 + QQMAX = (AMTAU-AMNUTA)**2 + +C Limits for S1 + S1MAX=(DSQRT(QQ) - AMPI)**2 -ABS1 + S1MIN=4.D0*AMPI**2 +ABS1 + +C LIMIT FOR XS3 + S3MAX = (QQ - AMPI**2)**2 - + & ( XLAM(QQ,S1,XAMPI2) + & - XLAM(S1,XAMPI2,XAMPI2) )**2 + S3MIN = (QQ - AMPI**2)**2 - + & (XLAM(QQ,S1,XAMPI2) + & + XLAM(S1,XAMPI2,XAMPI2) )**2 + + S3MAX = S3MAX/4./S1 + S3MIN = S3MIN/4./S1 + +C Check on PHASE SPACE +C + IF((XS2.LE.0.) .OR.(S3MAX.LE.S3MIN) + & .OR.(XS1.LE.S1MIN).OR.(XS1.GE.S1MAX) + & .OR.(XS3.LE.S3MIN).OR.(XS3.GE.S3MAX) + & .OR.(QQ.LE.QQMIN).OR.(QQ.GE.QQMAX) + & ) THEN + FFWID3PI = 0.D0 + RETURN + ENDIF + +C + V11 = -XS1+4.D0*AMPI**2 -(XS2-XS3)**2/(4.D0*XQQ) + V22 = -XS2+4.D0*AMPI**2 - (XS3-XS1)**2/(4.D0*XQQ) + V12 = 0.5D0*(XS3-XS1-XS2+4.D0*AMPI**2)-0.25D0*(XS3-XS2)*(XS3-XS1)/XQQ + + + F1 = FORM1(0,XQQ,XS1,XS2) + F2 = FORM2(0,XQQ,XS2,XS1) + F4 = FORM4(0,XQQ,XS2,XS1,XS3) + +C formula 3.46 of [3] + FFWID3PI = ABS(F1*CONJG(F1))*V11+ABS(F2*CONJG(F2))*V22+ + $ 2.D0*REAL(F1*CONJG(F2))*V12 + + CALL IFGFACT(2,IMODE,IDUM) + CALL INIRChLget(IFRCHL) + IF (IMODE.EQ.0) THEN +C VERSION A: The 3 pion contribution to the a1 width +C factor of a1 phase space and zeroing a1 propagator etc.is +C done in RCHLWIDA1PI + RQQ=QQ + IF (IFRCHL.EQ.1) THEN +C CASE OF RCHL + FFWID3PI = RCHLWIDA1PI(RQQ,FFWID3PI) + ELSE +C NOT READY YET + WRITE(*,*) 'FFWID3PI is not ready for non rchl currents' + STOP + ENDIF +C to get the total a1 width the contribution from (KKPI)- and K-K0pi0 +C channels have to be added + ELSE +C VERSION B: calculation of 3 pion spectra in tau to 3pi nu channel. + +C factor for phase space of tau to XQQ nu decay and contribution from F4 +C (formula 3.21 of [3]) + + FFWID3PI = (- FFWID3PI/3.D0*(1.D0+2.D0*XQQ/(AMTAU**2))+ + $ XQQ*ABS(F4*CONJG(F4)))*(AMTAU**2/XQQ-1.D0)**2 + +C Flux factor and normalization const. + FFWID3PI = + & GGF2*VUD2/(128.D0*(2.D0*PI)**5*AMTAU)/2.d0 + & *FFWID3PI + IF (IFRCHL.EQ.1) THEN +C CASE OF RCHL +C RChL normalization constant + FFWID3PI =FFWID3PI/GETFPIRPT(1)**2 + ELSE +C NOT READY YET + WRITE(*,*) 'FFWID3PI is not ready for non rchl currents' + STOP + ENDIF + + ENDIF + + RETURN + END + + REAL FUNCTION RCHLWIDA1PI(RQQ,FFWID3PI) +C The 3 pion contribution to the a1 width +C (in [3] simple pretabulation is used through formula 3.48) +C for calculation of g(QQ) of 3.45 3.46 of [3] in RChL style +C a1 propagator has to be taken with the zero width. + + IMPLICIT NONE + COMPLEX FA1RCHL + REAL RQQ + DOUBLE PRECISION FFWID3PI + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + DOUBLE PRECISION XLAM,X,Y,Z + DOUBLE PRECISION XAMPI2 + DOUBLE PRECISION GETFPIRPT + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + + COMMON/RCHT_3PI/ FPI_RPT,FV_RPT,GV_RPT,FA_RPT,BETA_RHO,FK_RPT + & ,FV1_RPT,GV1_RPT + DOUBLE PRECISION FPI_RPT,FV_RPT,GV_RPT,FA_RPT,BETA_RHO,FK_RPT + & ,FV1_RPT,GV1_RPT + DOUBLE PRECISION PI + DATA PI /3.141592653589793238462643D0/ + +C AMA1 should be replaced by variable from the rchl namespace. + RCHLWIDA1PI=- 1.0/REAL(FA1RCHL(RQQ)*CONJG(FA1RCHL(RQQ)))/RQQ**2 + $ /(96.D0*8.D0*PI**3*AMA1)/(FA_RPT**2*FPI_RPT**2) + $ *FFWID3PI/2.d0 + END + + DOUBLE PRECISION FUNCTION GETFPIRPT(I) + IMPLICIT NONE + COMMON/RCHT_3PI/ FPI_RPT,FV_RPT,GV_RPT,FA_RPT,BETA_RHO,FK_RPT + & ,FV1_RPT,GV1_RPT + DOUBLE PRECISION FPI_RPT,FV_RPT,GV_RPT,FA_RPT,BETA_RHO,FK_RPT + & ,FV1_RPT,GV1_RPT + INTEGER I + GETFPIRPT=FPI_RPT + END diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/funct_rpt.f b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/funct_rpt.f new file mode 100644 index 00000000000..d2dffe3e978 --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/funct_rpt.f @@ -0,0 +1,377 @@ + +C ********************************************************** +C library of functions used in calculation of currents +C references: +C [1] arXiv:0911.4436 (hep-ph) D. Gomez Dumm et al. (tau -> 3pi nu) +C [2] arXiv:0911.2640 (hep-ph) D. Gomezz Dumm et al. (tau -> KKpi nu) +C [3] arXiv:0807.4883 (hep-ph) D. R. Boito et al. (tau -> Kpi nu) +C [4] P. Roig, talk at (tau -> 2 pi nu) +C [5] arXiv:0803.2039 (hep-ph) E. Arganda et al., Appendix B (tau -> KK nu) +C ********************************************************** + FUNCTION GRHO_RCHT(XS,XMMM) + IMPLICIT NONE + REAL XS + DOUBLE PRECISION XMMM +C ********************************************************** +C REAL FUNCTION Gamma Rho ; energy-dependent width of rho meson +c in SU(2) limit mpi=mpi0, mk=mk0; +C formula (14) of REF [1] +C ********************************************************** + include '../parameter.inc' + include '../funct_declar.inc' + + REAL MMPI_AV2,MMK_2 + + MMPI_AV2 = MMPI_AV**2 + MMK_2 = MMK**2 + + IF(XS.GE.(4.*MMK_2)) THEN + GRHO_RCHT=XMMM*XS*((1.-4.*MMPI_AV2/XS)**1.5 + $ +0.5*(1.-4.*MMK_2/XS)**1.5) + $ /(96.*PI*FPI_RPT**2) + ELSE IF((XS.GE.(4.*MMPI_AV2)).AND.(XS.LE.(4.*MMK_2))) THEN + GRHO_RCHT=XMMM*XS*(1.-4.*MMPI_AV2/XS)**1.5 + $ /(96.*PI*FPI_RPT**2) + ELSE + GRHO_RCHT = 0. + ENDIF + + RETURN + + END + + + FUNCTION GRHO1_RCHT(XS,XMMM,XGGG) + IMPLICIT NONE + REAL XS + DOUBLE PRECISION XMMM,XGGG +C ********************************************************** +C REAL FUNCTION Gamma Rho1 ; energy-dependent width of rho1 meson; +c in SU(2) limit mpi=mpi0; only rho' -> 2pi loop; +C formula (33) of REF [1] +C ********************************************************** + include '../parameter.inc' + include '../funct_declar.inc' + + REAL MMPI_AV2 + MMPI_AV2 = MMPI_AV**2 + + IF (XS.GE.(4.*MMPI_AV2)) THEN + GRHO1_RCHT=XGGG*SQRT(XMMM**2/XS)* + & ((XS-4.*MMPI_AV2)/(XMMM**2-4.*MMPI_AV2))**1.5 + ELSE + GRHO1_RCHT = 0. + ENDIF + + RETURN + END + + + + FUNCTION SIGP(SS) + IMPLICIT NONE + DOUBLE PRECISION SS +C*********************************************************** +C DOUBLRE PRECISION FUNCTION +c of two body phase space threshold: equal mass scalars +C*********************************************************** + REAL TT + include '../parameter.inc' + include '../funct_declar.inc' + + TT = 1. - 4.*MMPI_AV**2/SS + + IF (TT.GE.0) THEN + SIGP = SQRT(TT) + ELSE + SIGP = 0. + ENDIF + + RETURN + END + + + + + FUNCTION LAMB_RCHT(X1,X2,X3) + IMPLICIT NONE + REAL X1,X2,X3,ARG_RCHT +C*********************************************************** +C REAL FUNCTION LAMDA of three body phase space +C*********************************************************** + include '../funct_declar.inc' + + ARG_RCHT = (X1-X2-X3)**2 - 4.*X3*X2 + IF(ARG_RCHT.GE.0.) THEN + LAMB_RCHT = ARG_RCHT + ELSE + LAMB_RCHT = 0. + ENDIF + + RETURN + END + + + +C******************** FUNCTIONS FOR 2 SCALAR MODES *********************** + + + +C**************************************************************** + FUNCTION R0SCAL_3PI(QX,SX) +C**************************************************************** +C Complex Function: R_0 function (Pablo notes) +C for the scalar contribution for three pion modes +C Called by f3pi_rcht.f +C ********************************************************** + IMPLICIT NONE + REAL QX,SX,delta0_3piscal,xsx,xst + DOUBLE PRECISION XM1,XM2,DSX + include '../funct_declar.inc' + include '../parameter.inc' +c$$$ a00_3piscal = 0.220 +c$$$ b00_3piscal = 0.268/mmpi_av**2 +c$$$ c00_3piscal = -0.0139/mmpi_av**4 +c$$$ d00_3piscal = -0.00139/mmpi_av**6 +c$$$ x00_3piscal = 36.77*mmpi_av**2 +c$$$c MMF0 = 0.98 +c$$$ + dsx = sx + xsx = sx/4.*sigp(dsx)**2 + xst = sqrt(sx) + + if(sx.le.0.7) then + delta0_3piscal = sigp(dsx)*(a00_3piscal + b00_3piscal*xsx + + & c00_3piscal*xsx**2 + d00_3piscal*xsx**3) + + delta0_3piscal = delta0_3piscal* + & (4*mmpi_av**2 - x00_3piscal)/(sx-x00_3piscal) + else if (xst.le.1.21) then + delta0_3piscal = -10572.0+50658.0*xst-87903.0*xst**2+66886.0*xst**3 + & -18699.0*xst**4 + delta0_3piscal = delta0_3piscal*pi/180.0 + else + delta0_3piscal = 255.0*pi/180.0 + endif + + + delta0_3piscal = atan(delta0_3piscal) + + R0SCAL_3PI = ALPHA0_3PI/QX + + & ALPHA1_3PI/QX**2*(SX - MMF0**2) + + R0SCAL_3PI = R0SCAL_3PI*(cos(delta0_3piscal) + + & i*sin(delta0_3piscal)) + + RETURN + END + +C**************************************************************** + FUNCTION R2SCAL_3PI(QX,SX) +C**************************************************************** +C Complex Function: R_2 function (Pablo notes) +C for the scalar contribution for three pion modes +C Called by f3pi_rcht.f +C ********************************************************** + IMPLICIT NONE + REAL QX,SX,delta2_3piscal,xsx,xst + DOUBLE PRECISION XM1,XM2,DSX + include '../funct_declar.inc' + include '../parameter.inc' +c$$$ a02_3piscal = -0.0444 +c$$$ b02_3piscal = -0.0857/mmpi_av**2 +c$$$ c02_3piscal = -0.00221/mmpi_av**4 +c$$$ d02_3piscal = -0.000129/mmpi_av**6 +c$$$ x02_3piscal = -21.62*mmpi_av**2 +c$$$c MMF0 = 0.98 + + dsx = sx + xsx = sx/4.*sigp(dsx)**2 + xst = sqrt(sx) + + if(sx.le.0.7) then + delta2_3piscal = sigp(dsx)*(a02_3piscal + b02_3piscal*xsx + + & c02_3piscal*xsx**2 + d02_3piscal*xsx**3) + + delta2_3piscal = delta2_3piscal* + & (4*mmpi_av**2 - x02_3piscal)/(sx-x02_3piscal) + else if(xst.le.1.21) then + delta2_3piscal = 282.9-1314.9*xst+2153.4*xst**2-1574.5d0*xst**3+ + & 428.06d0*xst**4 + delta2_3piscal = delta2_3piscal*pi/180.0 + else + delta2_3piscal = -27.0*pi/180.0 + endif + + delta2_3piscal = atan(delta2_3piscal) + + R2SCAL_3PI = GAMMA0_3PI/QX + + & GAMMA1_3PI/QX**2*(SX - MMF0**2) + + R2SCAL_3PI = R2SCAL_3PI*(cos(delta2_3piscal) + + & i*sin(delta2_3piscal)) + + RETURN + END + + + + +C************************************************************************* +C Functions for sigma contributions +C************************************************************************* + FUNCTION FFsig(QX,XX) +C ********************************************************** +C Complex Function: +C Called by f3pi_rcht.f +C ********************************************************** + IMPLICIT NONE + REAL QX,XX,mm2 + DOUBLE PRECISION XM1,XM2,xphi + include '../funct_declar.inc' + include '../parameter.inc' + + mm2 = MMPI_AV**2 + + xphi = - rsigma**2* LAMB_RCHT(QX,XX,mm2)/(8.*QX) + + FFsig = dexp(xphi) + + + RETURN + END + + + +C************************************************************************* + FUNCTION BWsig(XM,XG,XQ) +C ********************************************************** +C Complex Function: S-wave Breit-Wigner +C Called by f3pi_rcht.f +C ********************************************************** + IMPLICIT NONE + REAL XQ + DOUBLE PRECISION XM,XG,XM2,XXQ,GAMMA + include '../funct_declar.inc' + include '../parameter.inc' + + XXQ = XQ + XM2 = XM**2 + GAMMA = XG*SIGP(XXQ)/SIGP(XM2) + BWsig = XM*XM/CMPLX(XM*XM-XQ, -XM*GAMMA) + + + RETURN + END + +C************************************************************************* + FUNCTION DECOUL(mm1,mm3,ss2) +C ********************************************************** +C Real Function: Coulomb interaction effects of two particles +C with mm1 and mm2 +C Called by f3pi_rcht.f +C ********************************************************** + IMPLICIT NONE + REAL ss2 + DOUBLE PRECISION mm1,mm3,betam1m3 + + include '../funct_declar.inc' + include '../parameter.inc' +C******************************************* +C COMMON block fixed in SUBROUTINE INIPHY +c******************************************* + COMMON / QEDPRM /ALFINV,ALFPI,XK0 + REAL*8 ALFINV,ALFPI,XK0 + betam1m3 = 1.d0 - (mm1 +mm3)**2/ss2 + betam1m3 = dsqrt(betam1m3) + + if(ss2.gt.(mm1+mm3)**2) + & decoul = pi/2.d0/betam1m3/ALFINV + + RETURN + END + +C************************************************************************* + FUNCTION COUL3PART(mm1,mm2,mm3,ss1,ss2,ss3) +C ********************************************************** +C Real Function: Coulomb interaction effects of two particles +C with mm1 and mm2 +C Called by f3pi_rcht.f +C ********************************************************** + IMPLICIT NONE + REAL ss3,ss2,ss1 + DOUBLE PRECISION mm1,mm2,mm3 + include '../funct_declar.inc' + include '../parameter.inc' + + coul3part = decoul(mm1,mm3,ss2) + decoul(mm2,mm3,ss1) + & - decoul(mm1,mm2,ss3) + + coul3part = exp(coul3part) + + RETURN + END +C************************************************************************* + FUNCTION fattcoul(mm1,mm3,ss2) +C ********************************************************** +C Real Function: Coulomb attraction of two particles +C with mm1 and mm3 +C Called by f3pi_rcht.f +C ********************************************************** + IMPLICIT NONE + REAL ss2 + DOUBLE PRECISION mm1,mm3,betam1m3 + + include '../funct_declar.inc' + include '../parameter.inc' +C******************************************* +C COMMON block fixed in SUBROUTINE INIPHY +c******************************************* + COMMON / QEDPRM /ALFINV,ALFPI,XK0 + REAL*8 ALFINV,ALFPI,XK0 + if(ss2.gt.(mm1+mm3)**2) then + betam1m3 = 2.*dsqrt(1.d0 - (mm1 +mm3)**2/ss2) + & /(1.+ (1.d0 - (mm1 +mm3)**2/ss2)) + + + fattcoul = 2.*pi/betam1m3/ALFINV + & /(1.-exp(-2.*pi/betam1m3/ALFINV)) + else + fattcoul = 1 + endif + + RETURN + END + +C************************************************************************* +C************************************************************************* + FUNCTION frepcoul(mm1,mm3,ss2) +C ********************************************************** +C Real Function: Coulomb repuslcion of two particles +C with mm1 and mm3 +C Called by f3pi_rcht.f +C ********************************************************** + IMPLICIT NONE + REAL ss2 + DOUBLE PRECISION mm1,mm3,betam1m3 + + include '../funct_declar.inc' + include '../parameter.inc' +C******************************************* +C COMMON block fixed in SUBROUTINE INIPHY +c******************************************* + COMMON / QEDPRM /ALFINV,ALFPI,XK0 + REAL*8 ALFINV,ALFPI,XK0 + if(ss2.gt.(mm1+mm3)**2) then + betam1m3 = 2.*dsqrt(1.d0 - (mm1 +mm3)**2/ss2) + & /(1.+ (1.d0 - (mm1 +mm3)**2/ss2)) + + frepcoul = 2.*pi/betam1m3/ALFINV + & /(-1.+exp(2.*pi/betam1m3/ALFINV)) + else + frepcoul = 1 + endif + RETURN + END + +C************************************************************************* diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/gaus_integr.f b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/gaus_integr.f new file mode 100644 index 00000000000..037653e33a7 --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/gaus_integr.f @@ -0,0 +1,527 @@ +* THIS IS ITERATIVE INTEGRATION PROCEDURE +* ORIGINATES PROBABLY FROM CERN LIBRARY +* IT SUBDIVIDES INEGRATION RANGE UNTIL REQUIRED PRECISION IS REACHED +* PRECISION IS A DIFFERENCE FROM 8 AND 16 POINT GAUSS ITEGR. RESULT +* EEPS POSITIVE TREATED AS ABSOLUTE PRECISION +* EEPS NEGATIVE TREATED AS RELATIVE PRECISION + DOUBLE PRECISION FUNCTION GAUS(F,A,B,EEPS) +* ************************* + IMPLICIT REAL*8(A-H,O-Z) + EXTERNAL F + DIMENSION W(12),X(12) + DATA CONST /1.0D-19/ + DATA W + 1/0.10122 85362 90376, 0.22238 10344 53374, 0.31370 66458 77887, + 2 0.36268 37833 78362, 0.02715 24594 11754, 0.06225 35239 38648, + 3 0.09515 85116 82493, 0.12462 89712 55534, 0.14959 59888 16577, + 4 0.16915 65193 95003, 0.18260 34150 44924, 0.18945 06104 55069/ + DATA X + 1/0.96028 98564 97536, 0.79666 64774 13627, 0.52553 24099 16329, + 2 0.18343 46424 95650, 0.98940 09349 91650, 0.94457 50230 73233, + 3 0.86563 12023 87832, 0.75540 44083 55003, 0.61787 62444 02644, + 4 0.45801 67776 57227, 0.28160 35507 79259, 0.09501 25098 37637/ + +C----------------------------------------------------------------------------- +C NEW INTEGRATION METHOD - constant step size (provided by fourth parameter) +C comment out following 5 lines to return to old solutions of advantages too +C----------------------------------------------------------------------------- + RESULT=0 + EPS=0 +c CALL STEPGAUSS(F,A,B,6,RESULT,EPS) + CALL CHANGEGAUSS(F,A,B,2,RESULT,EPS) + GAUS=RESULT + RETURN +C----------------------------------------------------------------------------- +C PREVIOUS INTEGRATION METHOD - step size depends on EPSSQ +C----------------------------------------------------------------------------- + EPS=dABS(EEPS) + DELTA=CONST*dABS(A-B) + GAUS=0.d0 + AA=A + 5 Y=B-AA + IF(dABS(Y) .LE. DELTA) RETURN + 2 BB=AA+Y + C1=0.5d0*(AA+BB) + C2=C1-AA + S8=0.d0 + S16=0.d0 + DO 1 I=1,4 + U=X(I)*C2 + 1 S8=S8+W(I)*(F(C1+U)+F(C1-U)) + DO 3 I=5,12 + U=X(I)*C2 + 3 S16=S16+W(I)*(F(C1+U)+F(C1-U)) + S8=S8*C2 + S16=S16*C2 + IF(EEPS.LT.0D0) THEN + IF(dABS(S16-S8) .GT. EPS*dABS(S16)) GO TO 4 + ELSE + IF(dABS(S16-S8) .GT. EPS) GO TO 4 + ENDIF + GAUS=GAUS+S16 + AA=BB + GO TO 5 + 4 Y=0.5d0*Y + IF(dABS(Y) .GT. DELTA) GOTO 2 + PRINT 7 + GAUS=0.d0 + RETURN + 7 FORMAT(1X,36HGAUS ... TOO HIGH ACCURACY REQUIRED) + END + + + DOUBLE PRECISION FUNCTION GAUS2(F,A,B,EEPS) +* ************************* + IMPLICIT REAL*8(A-H,O-Z) + EXTERNAL F + DIMENSION W(12),X(12) + DATA CONST /1.0D-19/ + DATA W + 1/0.10122 85362 90376, 0.22238 10344 53374, 0.31370 66458 77887, + 2 0.36268 37833 78362, 0.02715 24594 11754, 0.06225 35239 38648, + 3 0.09515 85116 82493, 0.12462 89712 55534, 0.14959 59888 16577, + 4 0.16915 65193 95003, 0.18260 34150 44924, 0.18945 06104 55069/ + DATA X + 1/0.96028 98564 97536, 0.79666 64774 13627, 0.52553 24099 16329, + 2 0.18343 46424 95650, 0.98940 09349 91650, 0.94457 50230 73233, + 3 0.86563 12023 87832, 0.75540 44083 55003, 0.61787 62444 02644, + 4 0.45801 67776 57227, 0.28160 35507 79259, 0.09501 25098 37637/ + +C----------------------------------------------------------------------------- +C NEW INTEGRATION METHOD - constant step size (provided by fourth parameter) +C comment out following 5 lines to return to old solutions of advantages too +C----------------------------------------------------------------------------- + RESULT=0 + EPS=0 +c CALL STEPGAUSS2(F,A,B,6,RESULT,EPS) + CALL CHANGEGAUSS2(F,A,B,2,RESULT,EPS) + GAUS2=RESULT + RETURN +C----------------------------------------------------------------------------- +C PREVIOUS INTEGRATION METHOD - step size depends on EPSSQ +C----------------------------------------------------------------------------- + EPS=dABS(EEPS) + DELTA=CONST*dABS(A-B) + GAUS2=0.D0 + AA=A + 5 Y=B-AA + IF(dABS(Y) .LE. DELTA) RETURN + 2 BB=AA+Y + C1=0.5d0*(AA+BB) + C2=C1-AA + S8=0.d0 + S16=0.d0 + DO 1 I=1,4 + U=X(I)*C2 + 1 S8=S8+W(I)*(F(C1+U)+F(C1-U)) + DO 3 I=5,12 + U=X(I)*C2 + 3 S16=S16+W(I)*(F(C1+U)+F(C1-U)) + S8=S8*C2 + S16=S16*C2 + IF(EEPS.LT.0D0) THEN + IF(dABS(S16-S8) .GT. EPS*dABS(S16)) GO TO 4 + ELSE + IF(dABS(S16-S8) .GT. EPS) GO TO 4 + ENDIF + GAUS2=GAUS2+S16 + AA=BB + GO TO 5 + 4 Y=0.5d0*Y + IF(dABS(Y) .GT. DELTA) GOTO 2 + PRINT 7 + GAUS2=0.D0 + RETURN + 7 FORMAT(1X,36HGAUS2 ... TOO HIGH ACCURACY REQUIRED) + END + + DOUBLE PRECISION FUNCTION GAUS3(F,A,B,EEPS) +* ************************* + IMPLICIT REAL*8(A-H,O-Z) + EXTERNAL F + DIMENSION W(12),X(12) + DATA CONST /1.0D-19/ + DATA W + 1/0.10122 85362 90376, 0.22238 10344 53374, 0.31370 66458 77887, + 2 0.36268 37833 78362, 0.02715 24594 11754, 0.06225 35239 38648, + 3 0.09515 85116 82493, 0.12462 89712 55534, 0.14959 59888 16577, + 4 0.16915 65193 95003, 0.18260 34150 44924, 0.18945 06104 55069/ + DATA X + 1/0.96028 98564 97536, 0.79666 64774 13627, 0.52553 24099 16329, + 2 0.18343 46424 95650, 0.98940 09349 91650, 0.94457 50230 73233, + 3 0.86563 12023 87832, 0.75540 44083 55003, 0.61787 62444 02644, + 4 0.45801 67776 57227, 0.28160 35507 79259, 0.09501 25098 37637/ + +C----------------------------------------------------------------------------- +C NEW INTEGRATION METHOD - constant step size (provided by fourth parameter) +C comment out following 5 lines to return to old solutions of advantages too +C----------------------------------------------------------------------------- + RESULT=0 + EPS=0 +c CALL STEPGAUSS3(F,A,B,6,RESULT,EPS) + CALL CHANGEGAUSS3(F,A,B,2,RESULT,EPS) + GAUS3=RESULT + RETURN +C----------------------------------------------------------------------------- +C PREVIOUS INTEGRATION METHOD - step size depends on EPSSQ +C----------------------------------------------------------------------------- + EPS=dABS(EEPS) + DELTA=CONST*dABS(A-B) + GAUS3=0.D0 + AA=A + 5 Y=B-AA + IF(dABS(Y) .LE. DELTA) RETURN + 2 BB=AA+Y + C1=0.5d0*(AA+BB) + C2=C1-AA + S8=0.d0 + S16=0.d0 + DO 1 I=1,4 + U=X(I)*C2 + 1 S8=S8+W(I)*(F(C1+U)+F(C1-U)) + DO 3 I=5,12 + U=X(I)*C2 + 3 S16=S16+W(I)*(F(C1+U)+F(C1-U)) + S8=S8*C2 + S16=S16*C2 + IF(EEPS.LT.0D0) THEN + IF(dABS(S16-S8) .GT. EPS*dABS(S16)) GO TO 4 + ELSE + IF(dABS(S16-S8) .GT. EPS) GO TO 4 + ENDIF + GAUS3=GAUS3+S16 + AA=BB + GO TO 5 + 4 Y=0.5d0*Y + IF(dABS(Y) .GT. DELTA) GOTO 2 + PRINT 7 + GAUS3=0.D0 + RETURN + 7 FORMAT(1X,36HGAUS3 ... TOO HIGH ACCURACY REQUIRED) + END + +C-------------------------------------------------------------------------------------------------- +C-------------------------------------------------------------------------------------------------- +C-------------------------------------------------------------------------------------------------- +C OBSOLETE 1.13 901108 3.40 CERN PROGRAM LIBRARY OBSOLETE PAM +C CERN OBSOLETE PROGRAMS AND SUBROUTINES PAM-FILE. +C MANY OF THE ROUTINES ARE FOR ONE FORTRAN DIALECT ONLY. +C THE FLAG PATCH F77 SHOULD BE USED FOR THE FORTRAN 77 VERSIONS +C SHOULD THEY EXIST - IF NOT FORTRAN 4 WILL BE OBTAINED. +C THE CERN LIBRARIES GENLIB AND KERNLIB ARE USUALLY REQUIRED. +C OBSOLETE ROUTINES OF THE PROGRAM LIBRARY ARE OFTEN REQUIRED. +C + SUBROUTINE STEPGAUSS(F,A,B,LAMBDA,RESULT,EPS) + implicit real*8 (a-h,o-z) + DIMENSION W(12),X(12) + DATA W + 1/0.10122 85362 90376, 0.22238 10344 53374, 0.31370 66458 77887, + 2 0.36268 37833 78362, 0.02715 24594 11754, 0.06225 35239 38648, + 3 0.09515 85116 82493, 0.12462 89712 55534, 0.14959 59888 16577, + 4 0.16915 65193 95003, 0.18260 34150 44924, 0.18945 06104 55069/ + DATA X + 1/0.96028 98564 97536, 0.79666 64774 13627, 0.52553 24099 16329, + 2 0.18343 46424 95650, 0.98940 09349 91650, 0.94457 50230 73233, + 3 0.86563 12023 87832, 0.75540 44083 55003, 0.61787 62444 02644, + 4 0.45801 67776 57227, 0.28160 35507 79259, 0.09501 25098 37637/ + RESULT=0. + EPS=0. + AU=A + C=(B-A)/FLOAT(LAMBDA) + DO 1 I = 1,LAMBDA + FI=I + AO=A+FI*C + C1=0.5*(AU+AO) + C2=C1-AU + S8=0. + S16=0. + DO 2 J = 1,4 + U=X(J)*C2 + 2 S8=S8+W(J)*(F(C1+U)+F(C1-U)) + DO 3 J = 5,12 + U=X(J)*C2 + 3 S16=S16+W(J)*(F(C1+U)+F(C1-U)) + RESULT=RESULT+C2*S16 + EPS=EPS+ABS(C2*(S16-S8)) + 1 AU=AO + RETURN + END + + SUBROUTINE STEPGAUSS2(F,A,B,LAMBDA,RESULT,EPS) + implicit real*8 (a-h,o-z) + DIMENSION W(12),X(12) + DATA W + 1/0.10122 85362 90376, 0.22238 10344 53374, 0.31370 66458 77887, + 2 0.36268 37833 78362, 0.02715 24594 11754, 0.06225 35239 38648, + 3 0.09515 85116 82493, 0.12462 89712 55534, 0.14959 59888 16577, + 4 0.16915 65193 95003, 0.18260 34150 44924, 0.18945 06104 55069/ + DATA X + 1/0.96028 98564 97536, 0.79666 64774 13627, 0.52553 24099 16329, + 2 0.18343 46424 95650, 0.98940 09349 91650, 0.94457 50230 73233, + 3 0.86563 12023 87832, 0.75540 44083 55003, 0.61787 62444 02644, + 4 0.45801 67776 57227, 0.28160 35507 79259, 0.09501 25098 37637/ + RESULT=0. + EPS=0. + AU=A + C=(B-A)/FLOAT(LAMBDA) + DO 1 I = 1,LAMBDA + FI=I + AO=A+FI*C + C1=0.5*(AU+AO) + C2=C1-AU + S8=0. + S16=0. + DO 2 J = 1,4 + U=X(J)*C2 + 2 S8=S8+W(J)*(F(C1+U)+F(C1-U)) + DO 3 J = 5,12 + U=X(J)*C2 + 3 S16=S16+W(J)*(F(C1+U)+F(C1-U)) + RESULT=RESULT+C2*S16 + EPS=EPS+ABS(C2*(S16-S8)) + 1 AU=AO + RETURN + END + + SUBROUTINE STEPGAUSS3(F,A,B,LAMBDA,RESULT,EPS) + implicit real*8 (a-h,o-z) + DIMENSION W(12),X(12) + DATA W + 1/0.10122 85362 90376, 0.22238 10344 53374, 0.31370 66458 77887, + 2 0.36268 37833 78362, 0.02715 24594 11754, 0.06225 35239 38648, + 3 0.09515 85116 82493, 0.12462 89712 55534, 0.14959 59888 16577, + 4 0.16915 65193 95003, 0.18260 34150 44924, 0.18945 06104 55069/ + DATA X + 1/0.96028 98564 97536, 0.79666 64774 13627, 0.52553 24099 16329, + 2 0.18343 46424 95650, 0.98940 09349 91650, 0.94457 50230 73233, + 3 0.86563 12023 87832, 0.75540 44083 55003, 0.61787 62444 02644, + 4 0.45801 67776 57227, 0.28160 35507 79259, 0.09501 25098 37637/ + RESULT=0. + EPS=0. + AU=A + C=(B-A)/FLOAT(LAMBDA) + DO 1 I = 1,LAMBDA + FI=I + AO=A+FI*C + C1=0.5*(AU+AO) + C2=C1-AU + S8=0. + S16=0. + DO 2 J = 1,4 + U=X(J)*C2 + 2 S8=S8+W(J)*(F(C1+U)+F(C1-U)) + DO 3 J = 5,12 + U=X(J)*C2 + 3 S16=S16+W(J)*(F(C1+U)+F(C1-U)) + RESULT=RESULT+C2*S16 + EPS=EPS+ABS(C2*(S16-S8)) + 1 AU=AO + RETURN + END + +******************************************************************************* +* FUNCTIONS FOR CHANGE OF VARIABLES ******************************************* +******************************************************************************* + DOUBLE PRECISION FUNCTION F_CHANGE(X,F,AMS1,AMS2) + IMPLICIT NONE + EXTERNAL F + DOUBLE PRECISION F + DOUBLE PRECISION X, NEW_X + DOUBLE PRECISION AMS1,AMS2 + DOUBLE PRECISION ALP1,ALP2,ALP + DOUBLE PRECISION AMRX,GAMRX + DATA AMRX/0.77/,GAMRX/1.8/ + + ALP1 = ATAN((AMS1-AMRX**2)/AMRX/GAMRX) ! integration range for ALP + ALP2 = ATAN((AMS2-AMRX**2)/AMRX/GAMRX) ! integration range for ALP + ALP = ALP1 + X*(ALP2-ALP1) ! change of variables + + NEW_X = AMRX**2+AMRX*GAMRX*TAN(ALP) ! second change of variables + + F_CHANGE = F(NEW_X) + +! Jacobian for change of variables + F_CHANGE = F_CHANGE * (ALP2-ALP1) * ((NEW_X-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX) + + RETURN + END + + DOUBLE PRECISION FUNCTION F_CHANGE2(X,F,AMS1,AMS2) + IMPLICIT NONE + EXTERNAL F + DOUBLE PRECISION F + DOUBLE PRECISION X, NEW_X + DOUBLE PRECISION AMS1,AMS2 + DOUBLE PRECISION ALP1,ALP2,ALP + DOUBLE PRECISION AMRX,GAMRX + DATA AMRX/0.77/,GAMRX/1.8/ + + ALP1 = ATAN((AMS1-AMRX**2)/AMRX/GAMRX) ! integration range for ALP + ALP2 = ATAN((AMS2-AMRX**2)/AMRX/GAMRX) ! integration range for ALP + ALP = ALP1 + X*(ALP2-ALP1) ! change of variables + + NEW_X = AMRX**2+AMRX*GAMRX*TAN(ALP) ! second change of variables + + F_CHANGE2 = F(NEW_X) + +! Jacobian for change of variables + F_CHANGE2 = F_CHANGE2 * (ALP2-ALP1) * ((NEW_X-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX) + + RETURN + END + + DOUBLE PRECISION FUNCTION F_CHANGE3(X,F,AMS1,AMS2) + IMPLICIT NONE + EXTERNAL F + DOUBLE PRECISION F + DOUBLE PRECISION X, NEW_X + DOUBLE PRECISION AMS1,AMS2 + DOUBLE PRECISION ALP1,ALP2,ALP + DOUBLE PRECISION AMRX,GAMRX + DATA AMRX/0.77/,GAMRX/1.8/ + + ALP1 = ATAN((AMS1-AMRX**2)/AMRX/GAMRX) ! integration range for ALP + ALP2 = ATAN((AMS2-AMRX**2)/AMRX/GAMRX) ! integration range for ALP + ALP = ALP1 + X*(ALP2-ALP1) ! change of variables + + NEW_X = AMRX**2+AMRX*GAMRX*TAN(ALP) ! second change of variables + + F_CHANGE3 = F(NEW_X) + +! Jacobian for change of variables + F_CHANGE3 = F_CHANGE3 * (ALP2-ALP1) * ((NEW_X-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX) + + RETURN + END + +******************************************************************************* +* INTEGRATION WITH CHANGED VARIABLES ****************************************** +******************************************************************************* + SUBROUTINE CHANGEGAUSS(F,AMS1,AMS2,LAMBDA,RESULT,EPS) + implicit real*8 (a-h,o-z) + EXTERNAL F,F2 + DIMENSION W(12),X(12) + DATA W + 1/0.10122 85362 90376, 0.22238 10344 53374, 0.31370 66458 77887, + 2 0.36268 37833 78362, 0.02715 24594 11754, 0.06225 35239 38648, + 3 0.09515 85116 82493, 0.12462 89712 55534, 0.14959 59888 16577, + 4 0.16915 65193 95003, 0.18260 34150 44924, 0.18945 06104 55069/ + DATA X + 1/0.96028 98564 97536, 0.79666 64774 13627, 0.52553 24099 16329, + 2 0.18343 46424 95650, 0.98940 09349 91650, 0.94457 50230 73233, + 3 0.86563 12023 87832, 0.75540 44083 55003, 0.61787 62444 02644, + 4 0.45801 67776 57227, 0.28160 35507 79259, 0.09501 25098 37637/ + RESULT=0. + EPS=0. + +! Range is changed from [AMS1,AMS2] to [0,1] +! F, AMS1 and AMS2 are parameters of F_CHANGE + A=0 + B=1 + + AU=A + C=(B-A)/FLOAT(LAMBDA) + DO 1 I = 1,LAMBDA + FI=I + AO=A+FI*C + C1=0.5*(AU+AO) + C2=C1-AU + S8=0. + S16=0. + DO 2 J = 1,4 + U=X(J)*C2 + 2 S8=S8+W(J)*(F_CHANGE(C1+U,F,AMS1,AMS2)+F_CHANGE(C1-U,F,AMS1,AMS2)) + DO 3 J = 5,12 + U=X(J)*C2 + 3 S16=S16+W(J)*(F_CHANGE(C1+U,F,AMS1,AMS2)+F_CHANGE(C1-U,F,AMS1,AMS2)) + RESULT=RESULT+C2*S16 + EPS=EPS+ABS(C2*(S16-S8)) + 1 AU=AO + RETURN + END + + SUBROUTINE CHANGEGAUSS2(F,AMS1,AMS2,LAMBDA,RESULT,EPS) + implicit real*8 (a-h,o-z) + EXTERNAL F,F2 + DIMENSION W(12),X(12) + DATA W + 1/0.10122 85362 90376, 0.22238 10344 53374, 0.31370 66458 77887, + 2 0.36268 37833 78362, 0.02715 24594 11754, 0.06225 35239 38648, + 3 0.09515 85116 82493, 0.12462 89712 55534, 0.14959 59888 16577, + 4 0.16915 65193 95003, 0.18260 34150 44924, 0.18945 06104 55069/ + DATA X + 1/0.96028 98564 97536, 0.79666 64774 13627, 0.52553 24099 16329, + 2 0.18343 46424 95650, 0.98940 09349 91650, 0.94457 50230 73233, + 3 0.86563 12023 87832, 0.75540 44083 55003, 0.61787 62444 02644, + 4 0.45801 67776 57227, 0.28160 35507 79259, 0.09501 25098 37637/ + RESULT=0. + EPS=0. + +! Range is changed from [AMS1,AMS2] to [0,1] +! F, AMS1 and AMS2 are parameters of F_CHANGE + A=0 + B=1 + + AU=A + C=(B-A)/FLOAT(LAMBDA) + DO 1 I = 1,LAMBDA + FI=I + AO=A+FI*C + C1=0.5*(AU+AO) + C2=C1-AU + S8=0. + S16=0. + DO 2 J = 1,4 + U=X(J)*C2 + 2 S8=S8+W(J)*(F_CHANGE2(C1+U,F,AMS1,AMS2)+F_CHANGE2(C1-U,F,AMS1,AMS2)) + DO 3 J = 5,12 + U=X(J)*C2 + 3 S16=S16+W(J)*(F_CHANGE2(C1+U,F,AMS1,AMS2)+F_CHANGE2(C1-U,F,AMS1,AMS2)) + RESULT=RESULT+C2*S16 + EPS=EPS+ABS(C2*(S16-S8)) + 1 AU=AO + RETURN + END + + SUBROUTINE CHANGEGAUSS3(F,AMS1,AMS2,LAMBDA,RESULT,EPS) + implicit real*8 (a-h,o-z) + EXTERNAL F,F2 + DIMENSION W(12),X(12) + DATA W + 1/0.10122 85362 90376, 0.22238 10344 53374, 0.31370 66458 77887, + 2 0.36268 37833 78362, 0.02715 24594 11754, 0.06225 35239 38648, + 3 0.09515 85116 82493, 0.12462 89712 55534, 0.14959 59888 16577, + 4 0.16915 65193 95003, 0.18260 34150 44924, 0.18945 06104 55069/ + DATA X + 1/0.96028 98564 97536, 0.79666 64774 13627, 0.52553 24099 16329, + 2 0.18343 46424 95650, 0.98940 09349 91650, 0.94457 50230 73233, + 3 0.86563 12023 87832, 0.75540 44083 55003, 0.61787 62444 02644, + 4 0.45801 67776 57227, 0.28160 35507 79259, 0.09501 25098 37637/ + RESULT=0. + EPS=0. + +! Range is changed from [AMS1,AMS2] to [0,1] +! F, AMS1 and AMS2 are parameters of F_CHANGE + A=0 + B=1 + + AU=A + C=(B-A)/FLOAT(LAMBDA) + DO 1 I = 1,LAMBDA + FI=I + AO=A+FI*C + C1=0.5*(AU+AO) + C2=C1-AU + S8=0. + S16=0. + DO 2 J = 1,4 + U=X(J)*C2 + 2 S8=S8+W(J)*(F_CHANGE3(C1+U,F,AMS1,AMS2)+F_CHANGE3(C1-U,F,AMS1,AMS2)) + DO 3 J = 5,12 + U=X(J)*C2 + 3 S16=S16+W(J)*(F_CHANGE3(C1+U,F,AMS1,AMS2)+F_CHANGE3(C1-U,F,AMS1,AMS2)) + RESULT=RESULT+C2*S16 + EPS=EPS+ABS(C2*(S16-S8)) + 1 AU=AO + RETURN + END diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/gfact.f b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/gfact.f new file mode 100644 index 00000000000..704e3a157e1 --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/gfact.f @@ -0,0 +1,192 @@ + DOUBLE PRECISION FUNCTION GFACT(QQ) + IMPLICIT NONE +C factor G to be used as inteligent retabulation as in paper +C Kuhn Santamaria + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + DOUBLE PRECISION DGAMQQ,QQ,THR,THU,TH0,LAM + INTEGER II,INIT,INUM + DOUBLE PRECISION AF4,AF5,AA1,AA2,AA4 + DOUBLE PRECISION F1,F2,F3,F4,F5 + DOUBLE PRECISION AA,BB,CC,DD,A,B,C,D,X + SAVE A,B,C,D,AF4,AF5,AA,BB,CC,DD,THR,THU,TH0 + + CALL IFGFACT(1,II,INIT) + IF(INIT.EQ.0) THEN + THR=(AMPI+AMRO)**2 + TH0=9*AMPI**2 + THU=THR + CALL getFF3PISCAL(INUM) ! we switch off part of the contr to 3 pi mode + CALL setFF3PISCAL(0) +C below THR , we calculate at distance 1/4 1/2 and 1 between +C minimum and maximum for this range + LAM=(THR-TH0)/4 + AA1=DGAMQQ(TH0+ LAM) + AA2=DGAMQQ(TH0+2*LAM) + AA4=DGAMQQ(TH0+4*LAM) +C above THR we calculate at THR times 1 2 3 and 4 for higher range + F1=DGAMQQ(THU) + F2=DGAMQQ(1.5*THU) + F3=DGAMQQ(2.*THU) + F4=DGAMQQ(3*THU) + F5=DGAMQQ(3.5*THU) + CALL setFF3PISCAL(INUM) ! we switch back part of the contr to 3 pi mode + +C we calculate coefs for expansion ( polynomial of order 2 once +C X**2 factorized out, X=QQ-TH0 ) + + AA1 = AA1/LAM**2 ! RESCALING due to factorized X**2 + AA2 = AA2/(2.*LAM)**2 ! + AA4 = AA4/(4.*LAM)**2 ! + + BB=1./8.*(10.*AA2-AA4-16.*AA1) + AA=(8.*AA1-AA2-4.*BB)/6. + CC=AA1-AA-BB + AA=AA/LAM + BB=BB/LAM**2 + CC=CC/LAM**3 +C calulate coefs, assuming it is polynomial order 3 note negative pwrs + D=-9*(-4*F3-F1+4*F2+F4) + C=3*(F4+F1-2*F3-11./18.*D) + A=F3-F1+0.5*C+0.75*D + B=F1-A-C-D + A=A/THU + B=B + C=C*THU + D=D*THU**2 + AF4=F4 + AF5=F5 +c write(*,*) "A=",AA,"B=",-BB,"C=",CC,"D=",A,"E=",-B,"F=",C +c write(*,*) "G=",-D,"H=",AF4,"P=",AF5-AF4 + ENDIF + IF (QQ.GT.3*THU) THEN + GFACT=AF4+(AF5-AF4)*(QQ-3*THU)*2/THU + ELSEIF (QQ.GT.THR) THEN + GFACT=A*QQ+B+C/QQ+D/QQ**2 + ELSEIF(QQ.LE.TH0) THEN + GFACT=0.0 + ELSE + X=QQ-TH0 + GFACT=AA*X+BB*X**2+CC*X**3 + GFACT=X**2*GFACT + ENDIF + END + + + DOUBLE PRECISION FUNCTION DGAMQQ(XQQB) +C ************************************************************** +C calculates \tau^- -> pi^- pi^- pi^+ nu width as function of QQ (XQQB) +C formulas (19) of ref [2a] integration over S1 +C limit of integration (21) of ref [2a] see also [4] +C called from main function +C ************************************************************** + IMPLICIT NONE + COMMON/PRECINT/ EPSSQ,ABS1 + DOUBLE PRECISION EPSSQ,ABS1 + COMMON /EXTERNAL/ XQQA + DOUBLE PRECISION XQQA + EXTERNAL GAUS,DGAMQQS1 + DOUBLE PRECISION GAUS,DGAMQQS1 + DOUBLE PRECISION XQQB,EPS,UPS1,DOWNS1 + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + + XQQA = XQQB + EPS = EPSSQ/3.D0 + UPS1=(DSQRT(XQQB) - AMPI)**2-ABS1 ! limits on S1 + DOWNS1=4.D0*AMPI**2+ABS1 + + DGAMQQ = GAUS(DGAMQQS1,DOWNS1,UPS1,EPS) + + RETURN + END + + + + DOUBLE PRECISION FUNCTION DGAMQQS1(S1) + IMPLICIT NONE + DOUBLE PRECISION S1 +C ************************************************************** +C calculates \tau^- -> pi^- pi^- pi^+ nu width +C as function of QQ,S1 +C GAUS integrant in DGAMQQ (XQQA- hidden argument) +C calculates tau^- -> pi^- pi^- pi^+ nu spectrum as function of S1 +C formulas (19) of ref [2a] see also [4] +C limit of integration (21) of ref [2a] +C ************************************************************** + EXTERNAL GAUS2,FFWID3PI,DGAMQQS1S3 + DOUBLE PRECISION GAUS2,FFWID3PI,DGAMQQS1S3 + COMMON /INTERNAL/ S1A + DOUBLE PRECISION S1A + COMMON /EXTERNAL/ XQQA + DOUBLE PRECISION XQQA + COMMON/PRECINT/ EPSSQ,ABS1 + DOUBLE PRECISION EPSSQ,ABS1 + DOUBLE PRECISION EPS,UPS3,DOWNS3 + DOUBLE PRECISION XLAM,X,Y,Z + DOUBLE PRECISION XAMPI2 + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + + Xlam(x,y,z) = sqrt(abs((x-y-z)**2 - 4.*y*z)) + S1A = S1 + EPS = EPSSQ/9.D0 + XAMPI2=AMPI**2 + + UPS3 = (XQQA - AMPI**2)**2 - ! limits on S3 + & ( XLAM(XQQA,S1,XAMPI2) + & - XLAM(S1,XAMPI2,XAMPI2) )**2 + DOWNS3 = (XQQA - AMPI**2)**2 - + & (XLAM(XQQA,S1,XAMPI2) + & + XLAM(S1,XAMPI2,XAMPI2) )**2 + + UPS3 = UPS3/4./S1 + DOWNS3 = DOWNS3/4./S1 + + DGAMQQS1 = GAUS2(DGAMQQS1S3,DOWNS3,UPS3,EPS) + + RETURN + END + + + DOUBLE PRECISION FUNCTION DGAMQQS1S3(XS3) + IMPLICIT NONE +C ************************************************************** +C calculates \tau^- -> pi^- pi^- pi^+ nu width +C as function of QQ,S1,S3 +C ************************************************************** +C EXTERNAL GAUS2,FFWID3PI + DOUBLE PRECISION FFWID3PI,XS3 + COMMON /INTERNAL/ XS1A + DOUBLE PRECISION XS1A + COMMON /EXTERNAL/ XQQA + DOUBLE PRECISION XQQA + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + + + DGAMQQS1S3 = FFWID3PI(XQQA,XS1A,XS3) + + RETURN + + END diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/initA1Tab.f b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/initA1Tab.f new file mode 100644 index 00000000000..382cc03e04f --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/initA1Tab.f @@ -0,0 +1,2010 @@ + SUBROUTINE InitA1TAB(qk_min ,w_qmin ) + PARAMETER (Nq=1001) + real*8 qk_min(Nq),w_qmin(Nq) + + ! this routine was automatically created by a1-tabler + + qk_min( 1)=0.171492857E+00 + w_qmin( 1)=0.000000000E+00 + qk_min( 2)=0.174479093E+00 + w_qmin( 2)=0.629755564E-07 + qk_min( 3)=0.177465328E+00 + w_qmin( 3)=0.492358834E-06 + qk_min( 4)=0.180451564E+00 + w_qmin( 4)=0.162470857E-05 + qk_min( 5)=0.183437800E+00 + w_qmin( 5)=0.376709625E-05 + qk_min( 6)=0.186424036E+00 + w_qmin( 6)=0.720012925E-05 + qk_min( 7)=0.189410272E+00 + w_qmin( 7)=0.121806627E-04 + qk_min( 8)=0.192396508E+00 + w_qmin( 8)=0.189441916E-04 + qk_min( 9)=0.195382744E+00 + w_qmin( 9)=0.277070270E-04 + qk_min( 10)=0.198368980E+00 + w_qmin( 10)=0.386681867E-04 + qk_min( 11)=0.201355216E+00 + w_qmin( 11)=0.520111478E-04 + qk_min( 12)=0.204341452E+00 + w_qmin( 12)=0.679053591E-04 + qk_min( 13)=0.207327688E+00 + w_qmin( 13)=0.865076882E-04 + qk_min( 14)=0.210313924E+00 + w_qmin( 14)=0.107963592E-03 + qk_min( 15)=0.213300160E+00 + w_qmin( 15)=0.132408251E-03 + qk_min( 16)=0.216286396E+00 + w_qmin( 16)=0.159967766E-03 + qk_min( 17)=0.219272632E+00 + w_qmin( 17)=0.190759703E-03 + qk_min( 18)=0.222258868E+00 + w_qmin( 18)=0.224894342E-03 + qk_min( 19)=0.225245104E+00 + w_qmin( 19)=0.262475065E-03 + qk_min( 20)=0.228231340E+00 + w_qmin( 20)=0.303599320E-03 + qk_min( 21)=0.231217576E+00 + w_qmin( 21)=0.348358980E-03 + qk_min( 22)=0.234203812E+00 + w_qmin( 22)=0.396841130E-03 + qk_min( 23)=0.237190048E+00 + w_qmin( 23)=0.449128509E-03 + qk_min( 24)=0.240176284E+00 + w_qmin( 24)=0.505299824E-03 + qk_min( 25)=0.243162520E+00 + w_qmin( 25)=0.565430276E-03 + qk_min( 26)=0.246148756E+00 + w_qmin( 26)=0.629592245E-03 + qk_min( 27)=0.249134992E+00 + w_qmin( 27)=0.697855178E-03 + qk_min( 28)=0.252121228E+00 + w_qmin( 28)=0.770286144E-03 + qk_min( 29)=0.255107464E+00 + w_qmin( 29)=0.846949458E-03 + qk_min( 30)=0.258093700E+00 + w_qmin( 30)=0.927908699E-03 + qk_min( 31)=0.261079936E+00 + w_qmin( 31)=0.101322560E-02 + qk_min( 32)=0.264066172E+00 + w_qmin( 32)=0.110295947E-02 + qk_min( 33)=0.267052408E+00 + w_qmin( 33)=0.119716975E-02 + qk_min( 34)=0.270038643E+00 + w_qmin( 34)=0.129591394E-02 + qk_min( 35)=0.273024879E+00 + w_qmin( 35)=0.139924978E-02 + qk_min( 36)=0.276011115E+00 + w_qmin( 36)=0.150723308E-02 + qk_min( 37)=0.278997351E+00 + w_qmin( 37)=0.161992059E-02 + qk_min( 38)=0.281983587E+00 + w_qmin( 38)=0.173736751E-02 + qk_min( 39)=0.284969823E+00 + w_qmin( 39)=0.185962999E-02 + qk_min( 40)=0.287956059E+00 + w_qmin( 40)=0.198676282E-02 + qk_min( 41)=0.290942295E+00 + w_qmin( 41)=0.211882209E-02 + qk_min( 42)=0.293928531E+00 + w_qmin( 42)=0.225586359E-02 + qk_min( 43)=0.296914767E+00 + w_qmin( 43)=0.239794313E-02 + qk_min( 44)=0.299901003E+00 + w_qmin( 44)=0.254511773E-02 + qk_min( 45)=0.302887239E+00 + w_qmin( 45)=0.269744335E-02 + qk_min( 46)=0.305873475E+00 + w_qmin( 46)=0.285497820E-02 + qk_min( 47)=0.308859711E+00 + w_qmin( 47)=0.301777964E-02 + qk_min( 48)=0.311845947E+00 + w_qmin( 48)=0.318590749E-02 + qk_min( 49)=0.314832183E+00 + w_qmin( 49)=0.335942016E-02 + qk_min( 50)=0.317818419E+00 + w_qmin( 50)=0.353837928E-02 + qk_min( 51)=0.320804655E+00 + w_qmin( 51)=0.372284553E-02 + qk_min( 52)=0.323790891E+00 + w_qmin( 52)=0.391288143E-02 + qk_min( 53)=0.326777127E+00 + w_qmin( 53)=0.410855094E-02 + qk_min( 54)=0.329763363E+00 + w_qmin( 54)=0.430991813E-02 + qk_min( 55)=0.332749599E+00 + w_qmin( 55)=0.451704899E-02 + qk_min( 56)=0.335735835E+00 + w_qmin( 56)=0.473001097E-02 + qk_min( 57)=0.338722071E+00 + w_qmin( 57)=0.494887236E-02 + qk_min( 58)=0.341708307E+00 + w_qmin( 58)=0.517370225E-02 + qk_min( 59)=0.344694543E+00 + w_qmin( 59)=0.540457306E-02 + qk_min( 60)=0.347680779E+00 + w_qmin( 60)=0.564155599E-02 + qk_min( 61)=0.350667015E+00 + w_qmin( 61)=0.588472630E-02 + qk_min( 62)=0.353653251E+00 + w_qmin( 62)=0.613416049E-02 + qk_min( 63)=0.356639487E+00 + w_qmin( 63)=0.638993469E-02 + qk_min( 64)=0.359625722E+00 + w_qmin( 64)=0.665212895E-02 + qk_min( 65)=0.362611958E+00 + w_qmin( 65)=0.692082301E-02 + qk_min( 66)=0.365598194E+00 + w_qmin( 66)=0.719610191E-02 + qk_min( 67)=0.368584430E+00 + w_qmin( 67)=0.747804819E-02 + qk_min( 68)=0.371570666E+00 + w_qmin( 68)=0.776674972E-02 + qk_min( 69)=0.374556902E+00 + w_qmin( 69)=0.806229452E-02 + qk_min( 70)=0.377543138E+00 + w_qmin( 70)=0.836477374E-02 + qk_min( 71)=0.380529374E+00 + w_qmin( 71)=0.867427853E-02 + qk_min( 72)=0.383515610E+00 + w_qmin( 72)=0.899090516E-02 + qk_min( 73)=0.386501846E+00 + w_qmin( 73)=0.931475228E-02 + qk_min( 74)=0.389488082E+00 + w_qmin( 74)=0.964591670E-02 + qk_min( 75)=0.392474318E+00 + w_qmin( 75)=0.998450149E-02 + qk_min( 76)=0.395460554E+00 + w_qmin( 76)=0.103306093E-01 + qk_min( 77)=0.398446790E+00 + w_qmin( 77)=0.106843494E-01 + qk_min( 78)=0.401433026E+00 + w_qmin( 78)=0.110458285E-01 + qk_min( 79)=0.404419262E+00 + w_qmin( 79)=0.114151601E-01 + qk_min( 80)=0.407405498E+00 + w_qmin( 80)=0.117924571E-01 + qk_min( 81)=0.410391734E+00 + w_qmin( 81)=0.121778394E-01 + qk_min( 82)=0.413377970E+00 + w_qmin( 82)=0.125714246E-01 + qk_min( 83)=0.416364206E+00 + w_qmin( 83)=0.129733356E-01 + qk_min( 84)=0.419350442E+00 + w_qmin( 84)=0.133837007E-01 + qk_min( 85)=0.422336678E+00 + w_qmin( 85)=0.138026463E-01 + qk_min( 86)=0.425322914E+00 + w_qmin( 86)=0.142303061E-01 + qk_min( 87)=0.428309150E+00 + w_qmin( 87)=0.146668143E-01 + qk_min( 88)=0.431295386E+00 + w_qmin( 88)=0.151123120E-01 + qk_min( 89)=0.434281622E+00 + w_qmin( 89)=0.155669372E-01 + qk_min( 90)=0.437267858E+00 + w_qmin( 90)=0.160308391E-01 + qk_min( 91)=0.440254094E+00 + w_qmin( 91)=0.165041642E-01 + qk_min( 92)=0.443240330E+00 + w_qmin( 92)=0.169870675E-01 + qk_min( 93)=0.446226566E+00 + w_qmin( 93)=0.174797039E-01 + qk_min( 94)=0.449212802E+00 + w_qmin( 94)=0.179822341E-01 + qk_min( 95)=0.452199037E+00 + w_qmin( 95)=0.184948231E-01 + qk_min( 96)=0.455185273E+00 + w_qmin( 96)=0.190176372E-01 + qk_min( 97)=0.458171509E+00 + w_qmin( 97)=0.195508546E-01 + qk_min( 98)=0.461157745E+00 + w_qmin( 98)=0.200946463E-01 + qk_min( 99)=0.464143981E+00 + w_qmin( 99)=0.206491980E-01 + qk_min( 100)=0.467130217E+00 + w_qmin( 100)=0.212146893E-01 + qk_min( 101)=0.470116453E+00 + w_qmin( 101)=0.217913198E-01 + qk_min( 102)=0.473102689E+00 + w_qmin( 102)=0.223792750E-01 + qk_min( 103)=0.476088925E+00 + w_qmin( 103)=0.229787614E-01 + qk_min( 104)=0.479075161E+00 + w_qmin( 104)=0.235899856E-01 + qk_min( 105)=0.482061397E+00 + w_qmin( 105)=0.242131536E-01 + qk_min( 106)=0.485047633E+00 + w_qmin( 106)=0.248484858E-01 + qk_min( 107)=0.488033869E+00 + w_qmin( 107)=0.254961973E-01 + qk_min( 108)=0.491020105E+00 + w_qmin( 108)=0.261565231E-01 + qk_min( 109)=0.494006341E+00 + w_qmin( 109)=0.268296892E-01 + qk_min( 110)=0.496992577E+00 + w_qmin( 110)=0.275159405E-01 + qk_min( 111)=0.499978813E+00 + w_qmin( 111)=0.282155152E-01 + qk_min( 112)=0.502965049E+00 + w_qmin( 112)=0.289286682E-01 + qk_min( 113)=0.505951285E+00 + w_qmin( 113)=0.296556595E-01 + qk_min( 114)=0.508937521E+00 + w_qmin( 114)=0.303967464E-01 + qk_min( 115)=0.511923757E+00 + w_qmin( 115)=0.311522080E-01 + qk_min( 116)=0.514909993E+00 + w_qmin( 116)=0.319223193E-01 + qk_min( 117)=0.517896229E+00 + w_qmin( 117)=0.327073638E-01 + qk_min( 118)=0.520882465E+00 + w_qmin( 118)=0.335076407E-01 + qk_min( 119)=0.523868701E+00 + w_qmin( 119)=0.343234413E-01 + qk_min( 120)=0.526854937E+00 + w_qmin( 120)=0.351550793E-01 + qk_min( 121)=0.529841173E+00 + w_qmin( 121)=0.360028709E-01 + qk_min( 122)=0.532827409E+00 + w_qmin( 122)=0.368671391E-01 + qk_min( 123)=0.535813645E+00 + w_qmin( 123)=0.377482165E-01 + qk_min( 124)=0.538799881E+00 + w_qmin( 124)=0.386464530E-01 + qk_min( 125)=0.541786116E+00 + w_qmin( 125)=0.395621863E-01 + qk_min( 126)=0.544772352E+00 + w_qmin( 126)=0.404957853E-01 + qk_min( 127)=0.547758588E+00 + w_qmin( 127)=0.414476179E-01 + qk_min( 128)=0.550744824E+00 + w_qmin( 128)=0.424180670E-01 + qk_min( 129)=0.553731060E+00 + w_qmin( 129)=0.434075151E-01 + qk_min( 130)=0.556717296E+00 + w_qmin( 130)=0.444163612E-01 + qk_min( 131)=0.559703532E+00 + w_qmin( 131)=0.454450215E-01 + qk_min( 132)=0.562689768E+00 + w_qmin( 132)=0.464939133E-01 + qk_min( 133)=0.565676004E+00 + w_qmin( 133)=0.475634622E-01 + qk_min( 134)=0.568662240E+00 + w_qmin( 134)=0.486541189E-01 + qk_min( 135)=0.571648476E+00 + w_qmin( 135)=0.497663408E-01 + qk_min( 136)=0.574634712E+00 + w_qmin( 136)=0.509005855E-01 + qk_min( 137)=0.577620948E+00 + w_qmin( 137)=0.520573344E-01 + qk_min( 138)=0.580607184E+00 + w_qmin( 138)=0.532370803E-01 + qk_min( 139)=0.583593420E+00 + w_qmin( 139)=0.544403257E-01 + qk_min( 140)=0.586579656E+00 + w_qmin( 140)=0.556675790E-01 + qk_min( 141)=0.589565892E+00 + w_qmin( 141)=0.569193795E-01 + qk_min( 142)=0.592552128E+00 + w_qmin( 142)=0.581962668E-01 + qk_min( 143)=0.595538364E+00 + w_qmin( 143)=0.594988003E-01 + qk_min( 144)=0.598524600E+00 + w_qmin( 144)=0.608275376E-01 + qk_min( 145)=0.601510836E+00 + w_qmin( 145)=0.621830754E-01 + qk_min( 146)=0.604497072E+00 + w_qmin( 146)=0.635660133E-01 + qk_min( 147)=0.607483308E+00 + w_qmin( 147)=0.649769525E-01 + qk_min( 148)=0.610469544E+00 + w_qmin( 148)=0.664165334E-01 + qk_min( 149)=0.613455780E+00 + w_qmin( 149)=0.678853833E-01 + qk_min( 150)=0.616442016E+00 + w_qmin( 150)=0.693841730E-01 + qk_min( 151)=0.619428252E+00 + w_qmin( 151)=0.709135700E-01 + qk_min( 152)=0.622414488E+00 + w_qmin( 152)=0.724742457E-01 + qk_min( 153)=0.625400724E+00 + w_qmin( 153)=0.740669312E-01 + qk_min( 154)=0.628386960E+00 + w_qmin( 154)=0.756923306E-01 + qk_min( 155)=0.631373196E+00 + w_qmin( 155)=0.773511675E-01 + qk_min( 156)=0.634359431E+00 + w_qmin( 156)=0.790441825E-01 + qk_min( 157)=0.637345667E+00 + w_qmin( 157)=0.807721648E-01 + qk_min( 158)=0.640331903E+00 + w_qmin( 158)=0.825358806E-01 + qk_min( 159)=0.643318139E+00 + w_qmin( 159)=0.843360846E-01 + qk_min( 160)=0.646304375E+00 + w_qmin( 160)=0.861736137E-01 + qk_min( 161)=0.649290611E+00 + w_qmin( 161)=0.880492855E-01 + qk_min( 162)=0.652276847E+00 + w_qmin( 162)=0.899639046E-01 + qk_min( 163)=0.655263083E+00 + w_qmin( 163)=0.919183180E-01 + qk_min( 164)=0.658249319E+00 + w_qmin( 164)=0.939133758E-01 + qk_min( 165)=0.661235555E+00 + w_qmin( 165)=0.959499343E-01 + qk_min( 166)=0.664221791E+00 + w_qmin( 166)=0.980288583E-01 + qk_min( 167)=0.667208027E+00 + w_qmin( 167)=0.100150999E+00 + qk_min( 168)=0.670194263E+00 + w_qmin( 168)=0.102317274E+00 + qk_min( 169)=0.673180499E+00 + w_qmin( 169)=0.104528527E+00 + qk_min( 170)=0.676166735E+00 + w_qmin( 170)=0.106785656E+00 + qk_min( 171)=0.679152971E+00 + w_qmin( 171)=0.109089540E+00 + qk_min( 172)=0.682139207E+00 + w_qmin( 172)=0.111441042E+00 + qk_min( 173)=0.685125443E+00 + w_qmin( 173)=0.113841040E+00 + qk_min( 174)=0.688111679E+00 + w_qmin( 174)=0.116290378E+00 + qk_min( 175)=0.691097915E+00 + w_qmin( 175)=0.118789907E+00 + qk_min( 176)=0.694084151E+00 + w_qmin( 176)=0.121340451E+00 + qk_min( 177)=0.697070387E+00 + w_qmin( 177)=0.123942829E+00 + qk_min( 178)=0.700056623E+00 + w_qmin( 178)=0.126597840E+00 + qk_min( 179)=0.703042859E+00 + w_qmin( 179)=0.129306173E+00 + qk_min( 180)=0.706029095E+00 + w_qmin( 180)=0.132068605E+00 + qk_min( 181)=0.709015331E+00 + w_qmin( 181)=0.134885806E+00 + qk_min( 182)=0.712001567E+00 + w_qmin( 182)=0.137758367E+00 + qk_min( 183)=0.714987803E+00 + w_qmin( 183)=0.140686902E+00 + qk_min( 184)=0.717974039E+00 + w_qmin( 184)=0.143671942E+00 + qk_min( 185)=0.720960275E+00 + w_qmin( 185)=0.146713860E+00 + qk_min( 186)=0.723946510E+00 + w_qmin( 186)=0.149813125E+00 + qk_min( 187)=0.726932746E+00 + w_qmin( 187)=0.152970028E+00 + qk_min( 188)=0.729918982E+00 + w_qmin( 188)=0.156184758E+00 + qk_min( 189)=0.732905218E+00 + w_qmin( 189)=0.159457427E+00 + qk_min( 190)=0.735891454E+00 + w_qmin( 190)=0.162788087E+00 + qk_min( 191)=0.738877690E+00 + w_qmin( 191)=0.166176643E+00 + qk_min( 192)=0.741863926E+00 + w_qmin( 192)=0.169622853E+00 + qk_min( 193)=0.744850162E+00 + w_qmin( 193)=0.173126448E+00 + qk_min( 194)=0.747836398E+00 + w_qmin( 194)=0.176686927E+00 + qk_min( 195)=0.750822634E+00 + w_qmin( 195)=0.180303670E+00 + qk_min( 196)=0.753808870E+00 + w_qmin( 196)=0.183975975E+00 + qk_min( 197)=0.756795106E+00 + w_qmin( 197)=0.187702937E+00 + qk_min( 198)=0.759781342E+00 + w_qmin( 198)=0.191483510E+00 + qk_min( 199)=0.762767578E+00 + w_qmin( 199)=0.195316488E+00 + qk_min( 200)=0.765753814E+00 + w_qmin( 200)=0.199200519E+00 + qk_min( 201)=0.768740050E+00 + w_qmin( 201)=0.203134049E+00 + qk_min( 202)=0.771726286E+00 + w_qmin( 202)=0.207115438E+00 + qk_min( 203)=0.774712522E+00 + w_qmin( 203)=0.211142814E+00 + qk_min( 204)=0.777698758E+00 + w_qmin( 204)=0.215214139E+00 + qk_min( 205)=0.780684994E+00 + w_qmin( 205)=0.219327332E+00 + qk_min( 206)=0.783671230E+00 + w_qmin( 206)=0.223479985E+00 + qk_min( 207)=0.786657466E+00 + w_qmin( 207)=0.227669736E+00 + qk_min( 208)=0.789643702E+00 + w_qmin( 208)=0.231893987E+00 + qk_min( 209)=0.792629938E+00 + w_qmin( 209)=0.236149965E+00 + qk_min( 210)=0.795616174E+00 + w_qmin( 210)=0.240434886E+00 + qk_min( 211)=0.798602410E+00 + w_qmin( 211)=0.244745863E+00 + qk_min( 212)=0.801588646E+00 + w_qmin( 212)=0.249079798E+00 + qk_min( 213)=0.804574882E+00 + w_qmin( 213)=0.253433668E+00 + qk_min( 214)=0.807561118E+00 + w_qmin( 214)=0.257804281E+00 + qk_min( 215)=0.810547354E+00 + w_qmin( 215)=0.262188468E+00 + qk_min( 216)=0.813533590E+00 + w_qmin( 216)=0.266583002E+00 + qk_min( 217)=0.816519825E+00 + w_qmin( 217)=0.270984691E+00 + qk_min( 218)=0.819506061E+00 + w_qmin( 218)=0.275390257E+00 + qk_min( 219)=0.822492297E+00 + w_qmin( 219)=0.279796413E+00 + qk_min( 220)=0.825478533E+00 + w_qmin( 220)=0.284200109E+00 + qk_min( 221)=0.828464769E+00 + w_qmin( 221)=0.288598073E+00 + qk_min( 222)=0.831451005E+00 + w_qmin( 222)=0.292987345E+00 + qk_min( 223)=0.834437241E+00 + w_qmin( 223)=0.297364830E+00 + qk_min( 224)=0.837423477E+00 + w_qmin( 224)=0.301727636E+00 + qk_min( 225)=0.840409713E+00 + w_qmin( 225)=0.306072843E+00 + qk_min( 226)=0.843395949E+00 + w_qmin( 226)=0.310397878E+00 + qk_min( 227)=0.846382185E+00 + w_qmin( 227)=0.314699925E+00 + qk_min( 228)=0.849368421E+00 + w_qmin( 228)=0.318976548E+00 + qk_min( 229)=0.852354657E+00 + w_qmin( 229)=0.323225378E+00 + qk_min( 230)=0.855340893E+00 + w_qmin( 230)=0.327444127E+00 + qk_min( 231)=0.858327129E+00 + w_qmin( 231)=0.331630590E+00 + qk_min( 232)=0.861313365E+00 + w_qmin( 232)=0.335782836E+00 + qk_min( 233)=0.864299601E+00 + w_qmin( 233)=0.339898887E+00 + qk_min( 234)=0.867285837E+00 + w_qmin( 234)=0.343977060E+00 + qk_min( 235)=0.870272073E+00 + w_qmin( 235)=0.348015655E+00 + qk_min( 236)=0.873258309E+00 + w_qmin( 236)=0.352013175E+00 + qk_min( 237)=0.876244545E+00 + w_qmin( 237)=0.355968259E+00 + qk_min( 238)=0.879230781E+00 + w_qmin( 238)=0.359879663E+00 + qk_min( 239)=0.882217017E+00 + w_qmin( 239)=0.363746132E+00 + qk_min( 240)=0.885203253E+00 + w_qmin( 240)=0.367566742E+00 + qk_min( 241)=0.888189489E+00 + w_qmin( 241)=0.371340555E+00 + qk_min( 242)=0.891175725E+00 + w_qmin( 242)=0.375066698E+00 + qk_min( 243)=0.894161961E+00 + w_qmin( 243)=0.378744459E+00 + qk_min( 244)=0.897148197E+00 + w_qmin( 244)=0.382373302E+00 + qk_min( 245)=0.900134433E+00 + w_qmin( 245)=0.385952648E+00 + qk_min( 246)=0.903120669E+00 + w_qmin( 246)=0.389481991E+00 + qk_min( 247)=0.906106904E+00 + w_qmin( 247)=0.392961024E+00 + qk_min( 248)=0.909093140E+00 + w_qmin( 248)=0.396389433E+00 + qk_min( 249)=0.912079376E+00 + w_qmin( 249)=0.399767068E+00 + qk_min( 250)=0.915065612E+00 + w_qmin( 250)=0.403093691E+00 + qk_min( 251)=0.918051848E+00 + w_qmin( 251)=0.406369271E+00 + qk_min( 252)=0.921038084E+00 + w_qmin( 252)=0.409593802E+00 + qk_min( 253)=0.924024320E+00 + w_qmin( 253)=0.412767258E+00 + qk_min( 254)=0.927010556E+00 + w_qmin( 254)=0.415889743E+00 + qk_min( 255)=0.929996792E+00 + w_qmin( 255)=0.418961428E+00 + qk_min( 256)=0.932983028E+00 + w_qmin( 256)=0.421982410E+00 + qk_min( 257)=0.935969264E+00 + w_qmin( 257)=0.424952958E+00 + qk_min( 258)=0.938955500E+00 + w_qmin( 258)=0.427873267E+00 + qk_min( 259)=0.941941736E+00 + w_qmin( 259)=0.430743698E+00 + qk_min( 260)=0.944927972E+00 + w_qmin( 260)=0.433564510E+00 + qk_min( 261)=0.947914208E+00 + w_qmin( 261)=0.436336023E+00 + qk_min( 262)=0.950900444E+00 + w_qmin( 262)=0.439058676E+00 + qk_min( 263)=0.953886680E+00 + w_qmin( 263)=0.441732832E+00 + qk_min( 264)=0.956872916E+00 + w_qmin( 264)=0.444358892E+00 + qk_min( 265)=0.959859152E+00 + w_qmin( 265)=0.446937204E+00 + qk_min( 266)=0.962845388E+00 + w_qmin( 266)=0.449468407E+00 + qk_min( 267)=0.965831624E+00 + w_qmin( 267)=0.451952818E+00 + qk_min( 268)=0.968817860E+00 + w_qmin( 268)=0.454390902E+00 + qk_min( 269)=0.971804096E+00 + w_qmin( 269)=0.456783271E+00 + qk_min( 270)=0.974790332E+00 + w_qmin( 270)=0.459130352E+00 + qk_min( 271)=0.977776568E+00 + w_qmin( 271)=0.461432624E+00 + qk_min( 272)=0.980762804E+00 + w_qmin( 272)=0.463690551E+00 + qk_min( 273)=0.983749040E+00 + w_qmin( 273)=0.465904807E+00 + qk_min( 274)=0.986735276E+00 + w_qmin( 274)=0.468075779E+00 + qk_min( 275)=0.989721512E+00 + w_qmin( 275)=0.470204073E+00 + qk_min( 276)=0.992707748E+00 + w_qmin( 276)=0.472290120E+00 + qk_min( 277)=0.995693984E+00 + w_qmin( 277)=0.474334590E+00 + qk_min( 278)=0.998680219E+00 + w_qmin( 278)=0.476337904E+00 + qk_min( 279)=0.100166646E+01 + w_qmin( 279)=0.478300583E+00 + qk_min( 280)=0.100465269E+01 + w_qmin( 280)=0.480223343E+00 + qk_min( 281)=0.100763893E+01 + w_qmin( 281)=0.482106413E+00 + qk_min( 282)=0.101062516E+01 + w_qmin( 282)=0.483950519E+00 + qk_min( 283)=0.101361140E+01 + w_qmin( 283)=0.485756267E+00 + qk_min( 284)=0.101659764E+01 + w_qmin( 284)=0.487523890E+00 + qk_min( 285)=0.101958387E+01 + w_qmin( 285)=0.489254119E+00 + qk_min( 286)=0.102257011E+01 + w_qmin( 286)=0.490947531E+00 + qk_min( 287)=0.102555634E+01 + w_qmin( 287)=0.492604494E+00 + qk_min( 288)=0.102854258E+01 + w_qmin( 288)=0.494225644E+00 + qk_min( 289)=0.103152882E+01 + w_qmin( 289)=0.495811230E+00 + qk_min( 290)=0.103451505E+01 + w_qmin( 290)=0.497361969E+00 + qk_min( 291)=0.103750129E+01 + w_qmin( 291)=0.498878451E+00 + qk_min( 292)=0.104048752E+01 + w_qmin( 292)=0.500360890E+00 + qk_min( 293)=0.104347376E+01 + w_qmin( 293)=0.501809882E+00 + qk_min( 294)=0.104645999E+01 + w_qmin( 294)=0.503226110E+00 + qk_min( 295)=0.104944623E+01 + w_qmin( 295)=0.504609696E+00 + qk_min( 296)=0.105243247E+01 + w_qmin( 296)=0.505961288E+00 + qk_min( 297)=0.105541870E+01 + w_qmin( 297)=0.507281527E+00 + qk_min( 298)=0.105840494E+01 + w_qmin( 298)=0.508570536E+00 + qk_min( 299)=0.106139117E+01 + w_qmin( 299)=0.509828925E+00 + qk_min( 300)=0.106437741E+01 + w_qmin( 300)=0.511057261E+00 + qk_min( 301)=0.106736365E+01 + w_qmin( 301)=0.512255761E+00 + qk_min( 302)=0.107034988E+01 + w_qmin( 302)=0.513425076E+00 + qk_min( 303)=0.107333612E+01 + w_qmin( 303)=0.514565403E+00 + qk_min( 304)=0.107632235E+01 + w_qmin( 304)=0.515677265E+00 + qk_min( 305)=0.107930859E+01 + w_qmin( 305)=0.516761289E+00 + qk_min( 306)=0.108229483E+01 + w_qmin( 306)=0.517817503E+00 + qk_min( 307)=0.108528106E+01 + w_qmin( 307)=0.518846546E+00 + qk_min( 308)=0.108826730E+01 + w_qmin( 308)=0.519848956E+00 + qk_min( 309)=0.109125353E+01 + w_qmin( 309)=0.520824818E+00 + qk_min( 310)=0.109423977E+01 + w_qmin( 310)=0.521774666E+00 + qk_min( 311)=0.109722601E+01 + w_qmin( 311)=0.522699091E+00 + qk_min( 312)=0.110021224E+01 + w_qmin( 312)=0.523598083E+00 + qk_min( 313)=0.110319848E+01 + w_qmin( 313)=0.524472371E+00 + qk_min( 314)=0.110618471E+01 + w_qmin( 314)=0.525322030E+00 + qk_min( 315)=0.110917095E+01 + w_qmin( 315)=0.526147561E+00 + qk_min( 316)=0.111215719E+01 + w_qmin( 316)=0.526949538E+00 + qk_min( 317)=0.111514342E+01 + w_qmin( 317)=0.527727861E+00 + qk_min( 318)=0.111812966E+01 + w_qmin( 318)=0.528483162E+00 + qk_min( 319)=0.112111589E+01 + w_qmin( 319)=0.529215940E+00 + qk_min( 320)=0.112410213E+01 + w_qmin( 320)=0.529926124E+00 + qk_min( 321)=0.112708837E+01 + w_qmin( 321)=0.530614345E+00 + qk_min( 322)=0.113007460E+01 + w_qmin( 322)=0.531281004E+00 + qk_min( 323)=0.113306084E+01 + w_qmin( 323)=0.531926110E+00 + qk_min( 324)=0.113604707E+01 + w_qmin( 324)=0.532550319E+00 + qk_min( 325)=0.113903331E+01 + w_qmin( 325)=0.533153644E+00 + qk_min( 326)=0.114201955E+01 + w_qmin( 326)=0.533736493E+00 + qk_min( 327)=0.114500578E+01 + w_qmin( 327)=0.534299452E+00 + qk_min( 328)=0.114799202E+01 + w_qmin( 328)=0.534842376E+00 + qk_min( 329)=0.115097825E+01 + w_qmin( 329)=0.535365735E+00 + qk_min( 330)=0.115396449E+01 + w_qmin( 330)=0.535870152E+00 + qk_min( 331)=0.115695073E+01 + w_qmin( 331)=0.536355393E+00 + qk_min( 332)=0.115993696E+01 + w_qmin( 332)=0.536821972E+00 + qk_min( 333)=0.116292320E+01 + w_qmin( 333)=0.537270389E+00 + qk_min( 334)=0.116590943E+01 + w_qmin( 334)=0.537700432E+00 + qk_min( 335)=0.116889567E+01 + w_qmin( 335)=0.538112944E+00 + qk_min( 336)=0.117188191E+01 + w_qmin( 336)=0.538507669E+00 + qk_min( 337)=0.117486814E+01 + w_qmin( 337)=0.538885100E+00 + qk_min( 338)=0.117785438E+01 + w_qmin( 338)=0.539245715E+00 + qk_min( 339)=0.118084061E+01 + w_qmin( 339)=0.539589356E+00 + qk_min( 340)=0.118382685E+01 + w_qmin( 340)=0.539916440E+00 + qk_min( 341)=0.118681309E+01 + w_qmin( 341)=0.540227405E+00 + qk_min( 342)=0.118979932E+01 + w_qmin( 342)=0.540522272E+00 + qk_min( 343)=0.119278556E+01 + w_qmin( 343)=0.540801246E+00 + qk_min( 344)=0.119577179E+01 + w_qmin( 344)=0.541064908E+00 + qk_min( 345)=0.119875803E+01 + w_qmin( 345)=0.541313059E+00 + qk_min( 346)=0.120174427E+01 + w_qmin( 346)=0.541546322E+00 + qk_min( 347)=0.120473050E+01 + w_qmin( 347)=0.541764479E+00 + qk_min( 348)=0.120771674E+01 + w_qmin( 348)=0.541968063E+00 + qk_min( 349)=0.121070297E+01 + w_qmin( 349)=0.542157403E+00 + qk_min( 350)=0.121368921E+01 + w_qmin( 350)=0.542332339E+00 + qk_min( 351)=0.121667545E+01 + w_qmin( 351)=0.542493333E+00 + qk_min( 352)=0.121966168E+01 + w_qmin( 352)=0.542640711E+00 + qk_min( 353)=0.122264792E+01 + w_qmin( 353)=0.542774338E+00 + qk_min( 354)=0.122563415E+01 + w_qmin( 354)=0.542894618E+00 + qk_min( 355)=0.122862039E+01 + w_qmin( 355)=0.543001938E+00 + qk_min( 356)=0.123160662E+01 + w_qmin( 356)=0.543096128E+00 + qk_min( 357)=0.123459286E+01 + w_qmin( 357)=0.543177701E+00 + qk_min( 358)=0.123757910E+01 + w_qmin( 358)=0.543246522E+00 + qk_min( 359)=0.124056533E+01 + w_qmin( 359)=0.543302958E+00 + qk_min( 360)=0.124355157E+01 + w_qmin( 360)=0.543347446E+00 + qk_min( 361)=0.124653780E+01 + w_qmin( 361)=0.543379671E+00 + qk_min( 362)=0.124952404E+01 + w_qmin( 362)=0.543400084E+00 + qk_min( 363)=0.125251028E+01 + w_qmin( 363)=0.543409059E+00 + qk_min( 364)=0.125549651E+01 + w_qmin( 364)=0.543406400E+00 + qk_min( 365)=0.125848275E+01 + w_qmin( 365)=0.543392428E+00 + qk_min( 366)=0.126146898E+01 + w_qmin( 366)=0.543367507E+00 + qk_min( 367)=0.126445522E+01 + w_qmin( 367)=0.543331472E+00 + qk_min( 368)=0.126744146E+01 + w_qmin( 368)=0.543284860E+00 + qk_min( 369)=0.127042769E+01 + w_qmin( 369)=0.543227392E+00 + qk_min( 370)=0.127341393E+01 + w_qmin( 370)=0.543159509E+00 + qk_min( 371)=0.127640016E+01 + w_qmin( 371)=0.543081523E+00 + qk_min( 372)=0.127938640E+01 + w_qmin( 372)=0.542993193E+00 + qk_min( 373)=0.128237264E+01 + w_qmin( 373)=0.542894873E+00 + qk_min( 374)=0.128535887E+01 + w_qmin( 374)=0.542786982E+00 + qk_min( 375)=0.128834511E+01 + w_qmin( 375)=0.542669147E+00 + qk_min( 376)=0.129133134E+01 + w_qmin( 376)=0.542541860E+00 + qk_min( 377)=0.129431758E+01 + w_qmin( 377)=0.542405370E+00 + qk_min( 378)=0.129730382E+01 + w_qmin( 378)=0.542259464E+00 + qk_min( 379)=0.130029005E+01 + w_qmin( 379)=0.542104674E+00 + qk_min( 380)=0.130327629E+01 + w_qmin( 380)=0.541940738E+00 + qk_min( 381)=0.130626252E+01 + w_qmin( 381)=0.541767974E+00 + qk_min( 382)=0.130924876E+01 + w_qmin( 382)=0.541586815E+00 + qk_min( 383)=0.131223500E+01 + w_qmin( 383)=0.541396898E+00 + qk_min( 384)=0.131522123E+01 + w_qmin( 384)=0.541198618E+00 + qk_min( 385)=0.131820747E+01 + w_qmin( 385)=0.540992289E+00 + qk_min( 386)=0.132119370E+01 + w_qmin( 386)=0.540777604E+00 + qk_min( 387)=0.132417994E+01 + w_qmin( 387)=0.540554936E+00 + qk_min( 388)=0.132716618E+01 + w_qmin( 388)=0.540324661E+00 + qk_min( 389)=0.133015241E+01 + w_qmin( 389)=0.540086396E+00 + qk_min( 390)=0.133313865E+01 + w_qmin( 390)=0.539840736E+00 + qk_min( 391)=0.133612488E+01 + w_qmin( 391)=0.539587426E+00 + qk_min( 392)=0.133911112E+01 + w_qmin( 392)=0.539326728E+00 + qk_min( 393)=0.134209736E+01 + w_qmin( 393)=0.539058968E+00 + qk_min( 394)=0.134508359E+01 + w_qmin( 394)=0.538783923E+00 + qk_min( 395)=0.134806983E+01 + w_qmin( 395)=0.538501861E+00 + qk_min( 396)=0.135105606E+01 + w_qmin( 396)=0.538213123E+00 + qk_min( 397)=0.135404230E+01 + w_qmin( 397)=0.537917360E+00 + qk_min( 398)=0.135702854E+01 + w_qmin( 398)=0.537614984E+00 + qk_min( 399)=0.136001477E+01 + w_qmin( 399)=0.537306213E+00 + qk_min( 400)=0.136300101E+01 + w_qmin( 400)=0.536990875E+00 + qk_min( 401)=0.136598724E+01 + w_qmin( 401)=0.536669385E+00 + qk_min( 402)=0.136897348E+01 + w_qmin( 402)=0.536341436E+00 + qk_min( 403)=0.137195972E+01 + w_qmin( 403)=0.536007425E+00 + qk_min( 404)=0.137494595E+01 + w_qmin( 404)=0.535667621E+00 + qk_min( 405)=0.137793219E+01 + w_qmin( 405)=0.535321655E+00 + qk_min( 406)=0.138091842E+01 + w_qmin( 406)=0.534969909E+00 + qk_min( 407)=0.138390466E+01 + w_qmin( 407)=0.534612668E+00 + qk_min( 408)=0.138689090E+01 + w_qmin( 408)=0.534249689E+00 + qk_min( 409)=0.138987713E+01 + w_qmin( 409)=0.533881140E+00 + qk_min( 410)=0.139286337E+01 + w_qmin( 410)=0.533507407E+00 + qk_min( 411)=0.139584960E+01 + w_qmin( 411)=0.533128187E+00 + qk_min( 412)=0.139883584E+01 + w_qmin( 412)=0.532744012E+00 + qk_min( 413)=0.140182208E+01 + w_qmin( 413)=0.532354469E+00 + qk_min( 414)=0.140480831E+01 + w_qmin( 414)=0.531959918E+00 + qk_min( 415)=0.140779455E+01 + w_qmin( 415)=0.531560676E+00 + qk_min( 416)=0.141078078E+01 + w_qmin( 416)=0.531156400E+00 + qk_min( 417)=0.141376702E+01 + w_qmin( 417)=0.530747389E+00 + qk_min( 418)=0.141675325E+01 + w_qmin( 418)=0.530333888E+00 + qk_min( 419)=0.141973949E+01 + w_qmin( 419)=0.529915692E+00 + qk_min( 420)=0.142272573E+01 + w_qmin( 420)=0.529492975E+00 + qk_min( 421)=0.142571196E+01 + w_qmin( 421)=0.529066088E+00 + qk_min( 422)=0.142869820E+01 + w_qmin( 422)=0.528634723E+00 + qk_min( 423)=0.143168443E+01 + w_qmin( 423)=0.528199314E+00 + qk_min( 424)=0.143467067E+01 + w_qmin( 424)=0.527759608E+00 + qk_min( 425)=0.143765691E+01 + w_qmin( 425)=0.527315821E+00 + qk_min( 426)=0.144064314E+01 + w_qmin( 426)=0.526868363E+00 + qk_min( 427)=0.144362938E+01 + w_qmin( 427)=0.526416729E+00 + qk_min( 428)=0.144661561E+01 + w_qmin( 428)=0.525961361E+00 + qk_min( 429)=0.144960185E+01 + w_qmin( 429)=0.525502422E+00 + qk_min( 430)=0.145258809E+01 + w_qmin( 430)=0.525039686E+00 + qk_min( 431)=0.145557432E+01 + w_qmin( 431)=0.524573407E+00 + qk_min( 432)=0.145856056E+01 + w_qmin( 432)=0.524103775E+00 + qk_min( 433)=0.146154679E+01 + w_qmin( 433)=0.523630614E+00 + qk_min( 434)=0.146453303E+01 + w_qmin( 434)=0.523154084E+00 + qk_min( 435)=0.146751927E+01 + w_qmin( 435)=0.522674555E+00 + qk_min( 436)=0.147050550E+01 + w_qmin( 436)=0.522191583E+00 + qk_min( 437)=0.147349174E+01 + w_qmin( 437)=0.521705726E+00 + qk_min( 438)=0.147647797E+01 + w_qmin( 438)=0.521216638E+00 + qk_min( 439)=0.147946421E+01 + w_qmin( 439)=0.520724590E+00 + qk_min( 440)=0.148245045E+01 + w_qmin( 440)=0.520229833E+00 + qk_min( 441)=0.148543668E+01 + w_qmin( 441)=0.519732090E+00 + qk_min( 442)=0.148842292E+01 + w_qmin( 442)=0.519231598E+00 + qk_min( 443)=0.149140915E+01 + w_qmin( 443)=0.518728584E+00 + qk_min( 444)=0.149439539E+01 + w_qmin( 444)=0.518222796E+00 + qk_min( 445)=0.149738163E+01 + w_qmin( 445)=0.517714472E+00 + qk_min( 446)=0.150036786E+01 + w_qmin( 446)=0.517203847E+00 + qk_min( 447)=0.150335410E+01 + w_qmin( 447)=0.516690634E+00 + qk_min( 448)=0.150634033E+01 + w_qmin( 448)=0.516175256E+00 + qk_min( 449)=0.150932657E+01 + w_qmin( 449)=0.515657396E+00 + qk_min( 450)=0.151231281E+01 + w_qmin( 450)=0.515137294E+00 + qk_min( 451)=0.151529904E+01 + w_qmin( 451)=0.514615279E+00 + qk_min( 452)=0.151828528E+01 + w_qmin( 452)=0.514091024E+00 + qk_min( 453)=0.152127151E+01 + w_qmin( 453)=0.513564681E+00 + qk_min( 454)=0.152425775E+01 + w_qmin( 454)=0.513036626E+00 + qk_min( 455)=0.152724399E+01 + w_qmin( 455)=0.512506443E+00 + qk_min( 456)=0.153023022E+01 + w_qmin( 456)=0.511974495E+00 + qk_min( 457)=0.153321646E+01 + w_qmin( 457)=0.511440948E+00 + qk_min( 458)=0.153620269E+01 + w_qmin( 458)=0.510905468E+00 + qk_min( 459)=0.153918893E+01 + w_qmin( 459)=0.510368563E+00 + qk_min( 460)=0.154217517E+01 + w_qmin( 460)=0.509829851E+00 + qk_min( 461)=0.154516140E+01 + w_qmin( 461)=0.509289616E+00 + qk_min( 462)=0.154814764E+01 + w_qmin( 462)=0.508748070E+00 + qk_min( 463)=0.155113387E+01 + w_qmin( 463)=0.508204964E+00 + qk_min( 464)=0.155412011E+01 + w_qmin( 464)=0.507660398E+00 + qk_min( 465)=0.155710635E+01 + w_qmin( 465)=0.507114773E+00 + qk_min( 466)=0.156009258E+01 + w_qmin( 466)=0.506567686E+00 + qk_min( 467)=0.156307882E+01 + w_qmin( 467)=0.506019400E+00 + qk_min( 468)=0.156606505E+01 + w_qmin( 468)=0.505470120E+00 + qk_min( 469)=0.156905129E+01 + w_qmin( 469)=0.504919604E+00 + qk_min( 470)=0.157203753E+01 + w_qmin( 470)=0.504368231E+00 + qk_min( 471)=0.157502376E+01 + w_qmin( 471)=0.503815639E+00 + qk_min( 472)=0.157801000E+01 + w_qmin( 472)=0.503262117E+00 + qk_min( 473)=0.158099623E+01 + w_qmin( 473)=0.502707951E+00 + qk_min( 474)=0.158398247E+01 + w_qmin( 474)=0.502152789E+00 + qk_min( 475)=0.158696871E+01 + w_qmin( 475)=0.501596826E+00 + qk_min( 476)=0.158995494E+01 + w_qmin( 476)=0.501040318E+00 + qk_min( 477)=0.159294118E+01 + w_qmin( 477)=0.500482902E+00 + qk_min( 478)=0.159592741E+01 + w_qmin( 478)=0.499924909E+00 + qk_min( 479)=0.159891365E+01 + w_qmin( 479)=0.499366604E+00 + qk_min( 480)=0.160189988E+01 + w_qmin( 480)=0.498807513E+00 + qk_min( 481)=0.160488612E+01 + w_qmin( 481)=0.498248118E+00 + qk_min( 482)=0.160787236E+01 + w_qmin( 482)=0.497688151E+00 + qk_min( 483)=0.161085859E+01 + w_qmin( 483)=0.497127798E+00 + qk_min( 484)=0.161384483E+01 + w_qmin( 484)=0.496567364E+00 + qk_min( 485)=0.161683106E+01 + w_qmin( 485)=0.496006401E+00 + qk_min( 486)=0.161981730E+01 + w_qmin( 486)=0.495445240E+00 + qk_min( 487)=0.162280354E+01 + w_qmin( 487)=0.494884131E+00 + qk_min( 488)=0.162578977E+01 + w_qmin( 488)=0.494322710E+00 + qk_min( 489)=0.162877601E+01 + w_qmin( 489)=0.493761162E+00 + qk_min( 490)=0.163176224E+01 + w_qmin( 490)=0.493199736E+00 + qk_min( 491)=0.163474848E+01 + w_qmin( 491)=0.492638233E+00 + qk_min( 492)=0.163773472E+01 + w_qmin( 492)=0.492076930E+00 + qk_min( 493)=0.164072095E+01 + w_qmin( 493)=0.491515523E+00 + qk_min( 494)=0.164370719E+01 + w_qmin( 494)=0.490954318E+00 + qk_min( 495)=0.164669342E+01 + w_qmin( 495)=0.490393470E+00 + qk_min( 496)=0.164967966E+01 + w_qmin( 496)=0.489832666E+00 + qk_min( 497)=0.165266590E+01 + w_qmin( 497)=0.489272158E+00 + qk_min( 498)=0.165565213E+01 + w_qmin( 498)=0.488712218E+00 + qk_min( 499)=0.165863837E+01 + w_qmin( 499)=0.488152449E+00 + qk_min( 500)=0.166162460E+01 + w_qmin( 500)=0.487593148E+00 + qk_min( 501)=0.166461084E+01 + w_qmin( 501)=0.487034420E+00 + qk_min( 502)=0.166759708E+01 + w_qmin( 502)=0.486476058E+00 + qk_min( 503)=0.167058331E+01 + w_qmin( 503)=0.485918525E+00 + qk_min( 504)=0.167356955E+01 + w_qmin( 504)=0.485361316E+00 + qk_min( 505)=0.167655578E+01 + w_qmin( 505)=0.484804867E+00 + qk_min( 506)=0.167954202E+01 + w_qmin( 506)=0.484249219E+00 + qk_min( 507)=0.168252826E+01 + w_qmin( 507)=0.483694177E+00 + qk_min( 508)=0.168551449E+01 + w_qmin( 508)=0.483139964E+00 + qk_min( 509)=0.168850073E+01 + w_qmin( 509)=0.482586753E+00 + qk_min( 510)=0.169148696E+01 + w_qmin( 510)=0.482034212E+00 + qk_min( 511)=0.169447320E+01 + w_qmin( 511)=0.481482667E+00 + qk_min( 512)=0.169745944E+01 + w_qmin( 512)=0.480932319E+00 + qk_min( 513)=0.170044567E+01 + w_qmin( 513)=0.480382781E+00 + qk_min( 514)=0.170343191E+01 + w_qmin( 514)=0.479834505E+00 + qk_min( 515)=0.170641814E+01 + w_qmin( 515)=0.479287223E+00 + qk_min( 516)=0.170940438E+01 + w_qmin( 516)=0.478741097E+00 + qk_min( 517)=0.171239062E+01 + w_qmin( 517)=0.478196318E+00 + qk_min( 518)=0.171537685E+01 + w_qmin( 518)=0.477652681E+00 + qk_min( 519)=0.171836309E+01 + w_qmin( 519)=0.477110392E+00 + qk_min( 520)=0.172134932E+01 + w_qmin( 520)=0.476569620E+00 + qk_min( 521)=0.172433556E+01 + w_qmin( 521)=0.476030097E+00 + qk_min( 522)=0.172732180E+01 + w_qmin( 522)=0.475492019E+00 + qk_min( 523)=0.173030803E+01 + w_qmin( 523)=0.474955653E+00 + qk_min( 524)=0.173329427E+01 + w_qmin( 524)=0.474420744E+00 + qk_min( 525)=0.173628050E+01 + w_qmin( 525)=0.473887491E+00 + qk_min( 526)=0.173926674E+01 + w_qmin( 526)=0.473355784E+00 + qk_min( 527)=0.174225298E+01 + w_qmin( 527)=0.472825855E+00 + qk_min( 528)=0.174523921E+01 + w_qmin( 528)=0.472297828E+00 + qk_min( 529)=0.174822545E+01 + w_qmin( 529)=0.471771411E+00 + qk_min( 530)=0.175121168E+01 + w_qmin( 530)=0.471246842E+00 + qk_min( 531)=0.175419792E+01 + w_qmin( 531)=0.470724461E+00 + qk_min( 532)=0.175718416E+01 + w_qmin( 532)=0.470203938E+00 + qk_min( 533)=0.176017039E+01 + w_qmin( 533)=0.469685388E+00 + qk_min( 534)=0.176315663E+01 + w_qmin( 534)=0.469169078E+00 + qk_min( 535)=0.176614286E+01 + w_qmin( 535)=0.468654804E+00 + qk_min( 536)=0.176912910E+01 + w_qmin( 536)=0.468142913E+00 + qk_min( 537)=0.177211533E+01 + w_qmin( 537)=0.467633090E+00 + qk_min( 538)=0.177510157E+01 + w_qmin( 538)=0.467125676E+00 + qk_min( 539)=0.177808781E+01 + w_qmin( 539)=0.466620768E+00 + qk_min( 540)=0.178107404E+01 + w_qmin( 540)=0.466118218E+00 + qk_min( 541)=0.178406028E+01 + w_qmin( 541)=0.465618229E+00 + qk_min( 542)=0.178704651E+01 + w_qmin( 542)=0.465120957E+00 + qk_min( 543)=0.179003275E+01 + w_qmin( 543)=0.464626218E+00 + qk_min( 544)=0.179301899E+01 + w_qmin( 544)=0.464134308E+00 + qk_min( 545)=0.179600522E+01 + w_qmin( 545)=0.463645353E+00 + qk_min( 546)=0.179899146E+01 + w_qmin( 546)=0.463159109E+00 + qk_min( 547)=0.180197769E+01 + w_qmin( 547)=0.462676061E+00 + qk_min( 548)=0.180496393E+01 + w_qmin( 548)=0.462195894E+00 + qk_min( 549)=0.180795017E+01 + w_qmin( 549)=0.461718899E+00 + qk_min( 550)=0.181093640E+01 + w_qmin( 550)=0.461245308E+00 + qk_min( 551)=0.181392264E+01 + w_qmin( 551)=0.460774970E+00 + qk_min( 552)=0.181690887E+01 + w_qmin( 552)=0.460308043E+00 + qk_min( 553)=0.181989511E+01 + w_qmin( 553)=0.459844769E+00 + qk_min( 554)=0.182288135E+01 + w_qmin( 554)=0.459385040E+00 + qk_min( 555)=0.182586758E+01 + w_qmin( 555)=0.458928991E+00 + qk_min( 556)=0.182885382E+01 + w_qmin( 556)=0.458477051E+00 + qk_min( 557)=0.183184005E+01 + w_qmin( 557)=0.458028918E+00 + qk_min( 558)=0.183482629E+01 + w_qmin( 558)=0.457584775E+00 + qk_min( 559)=0.183781253E+01 + w_qmin( 559)=0.457145134E+00 + qk_min( 560)=0.184079876E+01 + w_qmin( 560)=0.456709548E+00 + qk_min( 561)=0.184378500E+01 + w_qmin( 561)=0.456278691E+00 + qk_min( 562)=0.184677123E+01 + w_qmin( 562)=0.455852184E+00 + qk_min( 563)=0.184975747E+01 + w_qmin( 563)=0.455430482E+00 + qk_min( 564)=0.185274371E+01 + w_qmin( 564)=0.455013800E+00 + qk_min( 565)=0.185572994E+01 + w_qmin( 565)=0.454601965E+00 + qk_min( 566)=0.185871618E+01 + w_qmin( 566)=0.454195356E+00 + qk_min( 567)=0.186170241E+01 + w_qmin( 567)=0.453794181E+00 + qk_min( 568)=0.186468865E+01 + w_qmin( 568)=0.453398279E+00 + qk_min( 569)=0.186767489E+01 + w_qmin( 569)=0.453007960E+00 + qk_min( 570)=0.187066112E+01 + w_qmin( 570)=0.452623488E+00 + qk_min( 571)=0.187364736E+01 + w_qmin( 571)=0.452244727E+00 + qk_min( 572)=0.187663359E+01 + w_qmin( 572)=0.451872140E+00 + qk_min( 573)=0.187961983E+01 + w_qmin( 573)=0.451505427E+00 + qk_min( 574)=0.188260607E+01 + w_qmin( 574)=0.451144991E+00 + qk_min( 575)=0.188559230E+01 + w_qmin( 575)=0.450790965E+00 + qk_min( 576)=0.188857854E+01 + w_qmin( 576)=0.450443152E+00 + qk_min( 577)=0.189156477E+01 + w_qmin( 577)=0.450101827E+00 + qk_min( 578)=0.189455101E+01 + w_qmin( 578)=0.449767107E+00 + qk_min( 579)=0.189753725E+01 + w_qmin( 579)=0.449438788E+00 + qk_min( 580)=0.190052348E+01 + w_qmin( 580)=0.449116874E+00 + qk_min( 581)=0.190350972E+01 + w_qmin( 581)=0.448801707E+00 + qk_min( 582)=0.190649595E+01 + w_qmin( 582)=0.448492636E+00 + qk_min( 583)=0.190948219E+01 + w_qmin( 583)=0.448190064E+00 + qk_min( 584)=0.191246843E+01 + w_qmin( 584)=0.447893625E+00 + qk_min( 585)=0.191545466E+01 + w_qmin( 585)=0.447603192E+00 + qk_min( 586)=0.191844090E+01 + w_qmin( 586)=0.447318726E+00 + qk_min( 587)=0.192142713E+01 + w_qmin( 587)=0.447039829E+00 + qk_min( 588)=0.192441337E+01 + w_qmin( 588)=0.446766438E+00 + qk_min( 589)=0.192739961E+01 + w_qmin( 589)=0.446498400E+00 + qk_min( 590)=0.193038584E+01 + w_qmin( 590)=0.446235093E+00 + qk_min( 591)=0.193337208E+01 + w_qmin( 591)=0.445976490E+00 + qk_min( 592)=0.193635831E+01 + w_qmin( 592)=0.445722525E+00 + qk_min( 593)=0.193934455E+01 + w_qmin( 593)=0.445472463E+00 + qk_min( 594)=0.194233079E+01 + w_qmin( 594)=0.445226434E+00 + qk_min( 595)=0.194531702E+01 + w_qmin( 595)=0.444983799E+00 + qk_min( 596)=0.194830326E+01 + w_qmin( 596)=0.444744462E+00 + qk_min( 597)=0.195128949E+01 + w_qmin( 597)=0.444508317E+00 + qk_min( 598)=0.195427573E+01 + w_qmin( 598)=0.444274700E+00 + qk_min( 599)=0.195726196E+01 + w_qmin( 599)=0.444043671E+00 + qk_min( 600)=0.196024820E+01 + w_qmin( 600)=0.443815056E+00 + qk_min( 601)=0.196323444E+01 + w_qmin( 601)=0.443588401E+00 + qk_min( 602)=0.196622067E+01 + w_qmin( 602)=0.443363527E+00 + qk_min( 603)=0.196920691E+01 + w_qmin( 603)=0.443140523E+00 + qk_min( 604)=0.197219314E+01 + w_qmin( 604)=0.442918871E+00 + qk_min( 605)=0.197517938E+01 + w_qmin( 605)=0.442698666E+00 + qk_min( 606)=0.197816562E+01 + w_qmin( 606)=0.442479554E+00 + qk_min( 607)=0.198115185E+01 + w_qmin( 607)=0.442261491E+00 + qk_min( 608)=0.198413809E+01 + w_qmin( 608)=0.442044628E+00 + qk_min( 609)=0.198712432E+01 + w_qmin( 609)=0.441828483E+00 + qk_min( 610)=0.199011056E+01 + w_qmin( 610)=0.441613110E+00 + qk_min( 611)=0.199309680E+01 + w_qmin( 611)=0.441398474E+00 + qk_min( 612)=0.199608303E+01 + w_qmin( 612)=0.441184405E+00 + qk_min( 613)=0.199906927E+01 + w_qmin( 613)=0.440970956E+00 + qk_min( 614)=0.200205550E+01 + w_qmin( 614)=0.440758017E+00 + qk_min( 615)=0.200504174E+01 + w_qmin( 615)=0.440545795E+00 + qk_min( 616)=0.200802798E+01 + w_qmin( 616)=0.440333851E+00 + qk_min( 617)=0.201101421E+01 + w_qmin( 617)=0.440122243E+00 + qk_min( 618)=0.201400045E+01 + w_qmin( 618)=0.439911113E+00 + qk_min( 619)=0.201698668E+01 + w_qmin( 619)=0.439700340E+00 + qk_min( 620)=0.201997292E+01 + w_qmin( 620)=0.439490007E+00 + qk_min( 621)=0.202295916E+01 + w_qmin( 621)=0.439280374E+00 + qk_min( 622)=0.202594539E+01 + w_qmin( 622)=0.439070781E+00 + qk_min( 623)=0.202893163E+01 + w_qmin( 623)=0.438861636E+00 + qk_min( 624)=0.203191786E+01 + w_qmin( 624)=0.438652871E+00 + qk_min( 625)=0.203490410E+01 + w_qmin( 625)=0.438444506E+00 + qk_min( 626)=0.203789034E+01 + w_qmin( 626)=0.438236817E+00 + qk_min( 627)=0.204087657E+01 + w_qmin( 627)=0.438029311E+00 + qk_min( 628)=0.204386281E+01 + w_qmin( 628)=0.437822142E+00 + qk_min( 629)=0.204684904E+01 + w_qmin( 629)=0.437615533E+00 + qk_min( 630)=0.204983528E+01 + w_qmin( 630)=0.437409289E+00 + qk_min( 631)=0.205282152E+01 + w_qmin( 631)=0.437203640E+00 + qk_min( 632)=0.205580775E+01 + w_qmin( 632)=0.436998714E+00 + qk_min( 633)=0.205879399E+01 + w_qmin( 633)=0.436794000E+00 + qk_min( 634)=0.206178022E+01 + w_qmin( 634)=0.436589930E+00 + qk_min( 635)=0.206476646E+01 + w_qmin( 635)=0.436386245E+00 + qk_min( 636)=0.206775270E+01 + w_qmin( 636)=0.436183265E+00 + qk_min( 637)=0.207073893E+01 + w_qmin( 637)=0.435981103E+00 + qk_min( 638)=0.207372517E+01 + w_qmin( 638)=0.435779330E+00 + qk_min( 639)=0.207671140E+01 + w_qmin( 639)=0.435578204E+00 + qk_min( 640)=0.207969764E+01 + w_qmin( 640)=0.435377642E+00 + qk_min( 641)=0.208268388E+01 + w_qmin( 641)=0.435177798E+00 + qk_min( 642)=0.208567011E+01 + w_qmin( 642)=0.434978644E+00 + qk_min( 643)=0.208865635E+01 + w_qmin( 643)=0.434780538E+00 + qk_min( 644)=0.209164258E+01 + w_qmin( 644)=0.434582760E+00 + qk_min( 645)=0.209462882E+01 + w_qmin( 645)=0.434385882E+00 + qk_min( 646)=0.209761506E+01 + w_qmin( 646)=0.434189713E+00 + qk_min( 647)=0.210060129E+01 + w_qmin( 647)=0.433994294E+00 + qk_min( 648)=0.210358753E+01 + w_qmin( 648)=0.433799996E+00 + qk_min( 649)=0.210657376E+01 + w_qmin( 649)=0.433606223E+00 + qk_min( 650)=0.210956000E+01 + w_qmin( 650)=0.433413285E+00 + qk_min( 651)=0.211254624E+01 + w_qmin( 651)=0.433221235E+00 + qk_min( 652)=0.211553247E+01 + w_qmin( 652)=0.433030134E+00 + qk_min( 653)=0.211851871E+01 + w_qmin( 653)=0.432839735E+00 + qk_min( 654)=0.212150494E+01 + w_qmin( 654)=0.432650622E+00 + qk_min( 655)=0.212449118E+01 + w_qmin( 655)=0.432462082E+00 + qk_min( 656)=0.212747742E+01 + w_qmin( 656)=0.432274568E+00 + qk_min( 657)=0.213046365E+01 + w_qmin( 657)=0.432087939E+00 + qk_min( 658)=0.213344989E+01 + w_qmin( 658)=0.431902265E+00 + qk_min( 659)=0.213643612E+01 + w_qmin( 659)=0.431717845E+00 + qk_min( 660)=0.213942236E+01 + w_qmin( 660)=0.431534055E+00 + qk_min( 661)=0.214240859E+01 + w_qmin( 661)=0.431351397E+00 + qk_min( 662)=0.214539483E+01 + w_qmin( 662)=0.431169650E+00 + qk_min( 663)=0.214838107E+01 + w_qmin( 663)=0.430988927E+00 + qk_min( 664)=0.215136730E+01 + w_qmin( 664)=0.430809172E+00 + qk_min( 665)=0.215435354E+01 + w_qmin( 665)=0.430630735E+00 + qk_min( 666)=0.215733977E+01 + w_qmin( 666)=0.430453213E+00 + qk_min( 667)=0.216032601E+01 + w_qmin( 667)=0.430276570E+00 + qk_min( 668)=0.216331225E+01 + w_qmin( 668)=0.430100990E+00 + qk_min( 669)=0.216629848E+01 + w_qmin( 669)=0.429926630E+00 + qk_min( 670)=0.216928472E+01 + w_qmin( 670)=0.429753425E+00 + qk_min( 671)=0.217227095E+01 + w_qmin( 671)=0.429581112E+00 + qk_min( 672)=0.217525719E+01 + w_qmin( 672)=0.429409943E+00 + qk_min( 673)=0.217824343E+01 + w_qmin( 673)=0.429239857E+00 + qk_min( 674)=0.218122966E+01 + w_qmin( 674)=0.429070807E+00 + qk_min( 675)=0.218421590E+01 + w_qmin( 675)=0.428902973E+00 + qk_min( 676)=0.218720213E+01 + w_qmin( 676)=0.428736351E+00 + qk_min( 677)=0.219018837E+01 + w_qmin( 677)=0.428570846E+00 + qk_min( 678)=0.219317461E+01 + w_qmin( 678)=0.428406256E+00 + qk_min( 679)=0.219616084E+01 + w_qmin( 679)=0.428242836E+00 + qk_min( 680)=0.219914708E+01 + w_qmin( 680)=0.428080605E+00 + qk_min( 681)=0.220213331E+01 + w_qmin( 681)=0.427919878E+00 + qk_min( 682)=0.220511955E+01 + w_qmin( 682)=0.427759946E+00 + qk_min( 683)=0.220810579E+01 + w_qmin( 683)=0.427601150E+00 + qk_min( 684)=0.221109202E+01 + w_qmin( 684)=0.427443439E+00 + qk_min( 685)=0.221407826E+01 + w_qmin( 685)=0.427287027E+00 + qk_min( 686)=0.221706449E+01 + w_qmin( 686)=0.427131635E+00 + qk_min( 687)=0.222005073E+01 + w_qmin( 687)=0.426977770E+00 + qk_min( 688)=0.222303697E+01 + w_qmin( 688)=0.426824760E+00 + qk_min( 689)=0.222602320E+01 + w_qmin( 689)=0.426672886E+00 + qk_min( 690)=0.222900944E+01 + w_qmin( 690)=0.426522195E+00 + qk_min( 691)=0.223199567E+01 + w_qmin( 691)=0.426372740E+00 + qk_min( 692)=0.223498191E+01 + w_qmin( 692)=0.426224617E+00 + qk_min( 693)=0.223796815E+01 + w_qmin( 693)=0.426077496E+00 + qk_min( 694)=0.224095438E+01 + w_qmin( 694)=0.425931487E+00 + qk_min( 695)=0.224394062E+01 + w_qmin( 695)=0.425786782E+00 + qk_min( 696)=0.224692685E+01 + w_qmin( 696)=0.425643151E+00 + qk_min( 697)=0.224991309E+01 + w_qmin( 697)=0.425500645E+00 + qk_min( 698)=0.225289933E+01 + w_qmin( 698)=0.425359677E+00 + qk_min( 699)=0.225588556E+01 + w_qmin( 699)=0.425219639E+00 + qk_min( 700)=0.225887180E+01 + w_qmin( 700)=0.425080800E+00 + qk_min( 701)=0.226185803E+01 + w_qmin( 701)=0.424943155E+00 + qk_min( 702)=0.226484427E+01 + w_qmin( 702)=0.424806756E+00 + qk_min( 703)=0.226783051E+01 + w_qmin( 703)=0.424671810E+00 + qk_min( 704)=0.227081674E+01 + w_qmin( 704)=0.424537798E+00 + qk_min( 705)=0.227380298E+01 + w_qmin( 705)=0.424404996E+00 + qk_min( 706)=0.227678921E+01 + w_qmin( 706)=0.424273362E+00 + qk_min( 707)=0.227977545E+01 + w_qmin( 707)=0.424143043E+00 + qk_min( 708)=0.228276169E+01 + w_qmin( 708)=0.424013824E+00 + qk_min( 709)=0.228574792E+01 + w_qmin( 709)=0.423886073E+00 + qk_min( 710)=0.228873416E+01 + w_qmin( 710)=0.423759328E+00 + qk_min( 711)=0.229172039E+01 + w_qmin( 711)=0.423633786E+00 + qk_min( 712)=0.229470663E+01 + w_qmin( 712)=0.423509341E+00 + qk_min( 713)=0.229769287E+01 + w_qmin( 713)=0.423386290E+00 + qk_min( 714)=0.230067910E+01 + w_qmin( 714)=0.423264588E+00 + qk_min( 715)=0.230366534E+01 + w_qmin( 715)=0.423143812E+00 + qk_min( 716)=0.230665157E+01 + w_qmin( 716)=0.423024215E+00 + qk_min( 717)=0.230963781E+01 + w_qmin( 717)=0.422905902E+00 + qk_min( 718)=0.231262405E+01 + w_qmin( 718)=0.422788711E+00 + qk_min( 719)=0.231561028E+01 + w_qmin( 719)=0.422672726E+00 + qk_min( 720)=0.231859652E+01 + w_qmin( 720)=0.422558089E+00 + qk_min( 721)=0.232158275E+01 + w_qmin( 721)=0.422444571E+00 + qk_min( 722)=0.232456899E+01 + w_qmin( 722)=0.422332205E+00 + qk_min( 723)=0.232755522E+01 + w_qmin( 723)=0.422220969E+00 + qk_min( 724)=0.233054146E+01 + w_qmin( 724)=0.422110965E+00 + qk_min( 725)=0.233352770E+01 + w_qmin( 725)=0.422002384E+00 + qk_min( 726)=0.233651393E+01 + w_qmin( 726)=0.421894768E+00 + qk_min( 727)=0.233950017E+01 + w_qmin( 727)=0.421788434E+00 + qk_min( 728)=0.234248640E+01 + w_qmin( 728)=0.421683337E+00 + qk_min( 729)=0.234547264E+01 + w_qmin( 729)=0.421579294E+00 + qk_min( 730)=0.234845888E+01 + w_qmin( 730)=0.421476620E+00 + qk_min( 731)=0.235144511E+01 + w_qmin( 731)=0.421375333E+00 + qk_min( 732)=0.235443135E+01 + w_qmin( 732)=0.421275019E+00 + qk_min( 733)=0.235741758E+01 + w_qmin( 733)=0.421176101E+00 + qk_min( 734)=0.236040382E+01 + w_qmin( 734)=0.421078203E+00 + qk_min( 735)=0.236339006E+01 + w_qmin( 735)=0.420981495E+00 + qk_min( 736)=0.236637629E+01 + w_qmin( 736)=0.420886382E+00 + qk_min( 737)=0.236936253E+01 + w_qmin( 737)=0.420792297E+00 + qk_min( 738)=0.237234876E+01 + w_qmin( 738)=0.420699280E+00 + qk_min( 739)=0.237533500E+01 + w_qmin( 739)=0.420607569E+00 + qk_min( 740)=0.237832124E+01 + w_qmin( 740)=0.420516928E+00 + qk_min( 741)=0.238130747E+01 + w_qmin( 741)=0.420427695E+00 + qk_min( 742)=0.238429371E+01 + w_qmin( 742)=0.420339885E+00 + qk_min( 743)=0.238727994E+01 + w_qmin( 743)=0.420252997E+00 + qk_min( 744)=0.239026618E+01 + w_qmin( 744)=0.420167183E+00 + qk_min( 745)=0.239325242E+01 + w_qmin( 745)=0.420082598E+00 + qk_min( 746)=0.239623865E+01 + w_qmin( 746)=0.419999125E+00 + qk_min( 747)=0.239922489E+01 + w_qmin( 747)=0.419917219E+00 + qk_min( 748)=0.240221112E+01 + w_qmin( 748)=0.419835982E+00 + qk_min( 749)=0.240519736E+01 + w_qmin( 749)=0.419756184E+00 + qk_min( 750)=0.240818360E+01 + w_qmin( 750)=0.419677361E+00 + qk_min( 751)=0.241116983E+01 + w_qmin( 751)=0.419599736E+00 + qk_min( 752)=0.241415607E+01 + w_qmin( 752)=0.419523267E+00 + qk_min( 753)=0.241714230E+01 + w_qmin( 753)=0.419448087E+00 + qk_min( 754)=0.242012854E+01 + w_qmin( 754)=0.419373828E+00 + qk_min( 755)=0.242311478E+01 + w_qmin( 755)=0.419300734E+00 + qk_min( 756)=0.242610101E+01 + w_qmin( 756)=0.419228732E+00 + qk_min( 757)=0.242908725E+01 + w_qmin( 757)=0.419157933E+00 + qk_min( 758)=0.243207348E+01 + w_qmin( 758)=0.419088375E+00 + qk_min( 759)=0.243505972E+01 + w_qmin( 759)=0.419019684E+00 + qk_min( 760)=0.243804596E+01 + w_qmin( 760)=0.418952174E+00 + qk_min( 761)=0.244103219E+01 + w_qmin( 761)=0.418885790E+00 + qk_min( 762)=0.244401843E+01 + w_qmin( 762)=0.418820479E+00 + qk_min( 763)=0.244700466E+01 + w_qmin( 763)=0.418756407E+00 + qk_min( 764)=0.244999090E+01 + w_qmin( 764)=0.418693566E+00 + qk_min( 765)=0.245297714E+01 + w_qmin( 765)=0.418631618E+00 + qk_min( 766)=0.245596337E+01 + w_qmin( 766)=0.418570856E+00 + qk_min( 767)=0.245894961E+01 + w_qmin( 767)=0.418511290E+00 + qk_min( 768)=0.246193584E+01 + w_qmin( 768)=0.418452610E+00 + qk_min( 769)=0.246492208E+01 + w_qmin( 769)=0.418395480E+00 + qk_min( 770)=0.246790832E+01 + w_qmin( 770)=0.418339268E+00 + qk_min( 771)=0.247089455E+01 + w_qmin( 771)=0.418284168E+00 + qk_min( 772)=0.247388079E+01 + w_qmin( 772)=0.418230108E+00 + qk_min( 773)=0.247686702E+01 + w_qmin( 773)=0.418177159E+00 + qk_min( 774)=0.247985326E+01 + w_qmin( 774)=0.418125396E+00 + qk_min( 775)=0.248283950E+01 + w_qmin( 775)=0.418074852E+00 + qk_min( 776)=0.248582573E+01 + w_qmin( 776)=0.418025387E+00 + qk_min( 777)=0.248881197E+01 + w_qmin( 777)=0.417976794E+00 + qk_min( 778)=0.249179820E+01 + w_qmin( 778)=0.417929350E+00 + qk_min( 779)=0.249478444E+01 + w_qmin( 779)=0.417883051E+00 + qk_min( 780)=0.249777068E+01 + w_qmin( 780)=0.417838039E+00 + qk_min( 781)=0.250075691E+01 + w_qmin( 781)=0.417793664E+00 + qk_min( 782)=0.250374315E+01 + w_qmin( 782)=0.417750561E+00 + qk_min( 783)=0.250672938E+01 + w_qmin( 783)=0.417708424E+00 + qk_min( 784)=0.250971562E+01 + w_qmin( 784)=0.417667126E+00 + qk_min( 785)=0.251270185E+01 + w_qmin( 785)=0.417627067E+00 + qk_min( 786)=0.251568809E+01 + w_qmin( 786)=0.417588083E+00 + qk_min( 787)=0.251867433E+01 + w_qmin( 787)=0.417549905E+00 + qk_min( 788)=0.252166056E+01 + w_qmin( 788)=0.417512662E+00 + qk_min( 789)=0.252464680E+01 + w_qmin( 789)=0.417476336E+00 + qk_min( 790)=0.252763303E+01 + w_qmin( 790)=0.417440995E+00 + qk_min( 791)=0.253061927E+01 + w_qmin( 791)=0.417406728E+00 + qk_min( 792)=0.253360551E+01 + w_qmin( 792)=0.417373123E+00 + qk_min( 793)=0.253659174E+01 + w_qmin( 793)=0.417340483E+00 + qk_min( 794)=0.253957798E+01 + w_qmin( 794)=0.417308720E+00 + qk_min( 795)=0.254256421E+01 + w_qmin( 795)=0.417277690E+00 + qk_min( 796)=0.254555045E+01 + w_qmin( 796)=0.417247521E+00 + qk_min( 797)=0.254853669E+01 + w_qmin( 797)=0.417218395E+00 + qk_min( 798)=0.255152292E+01 + w_qmin( 798)=0.417189876E+00 + qk_min( 799)=0.255450916E+01 + w_qmin( 799)=0.417162311E+00 + qk_min( 800)=0.255749539E+01 + w_qmin( 800)=0.417135566E+00 + qk_min( 801)=0.256048163E+01 + w_qmin( 801)=0.417109384E+00 + qk_min( 802)=0.256346787E+01 + w_qmin( 802)=0.417084383E+00 + qk_min( 803)=0.256645410E+01 + w_qmin( 803)=0.417059850E+00 + qk_min( 804)=0.256944034E+01 + w_qmin( 804)=0.417036166E+00 + qk_min( 805)=0.257242657E+01 + w_qmin( 805)=0.417013231E+00 + qk_min( 806)=0.257541281E+01 + w_qmin( 806)=0.416991167E+00 + qk_min( 807)=0.257839905E+01 + w_qmin( 807)=0.416969663E+00 + qk_min( 808)=0.258138528E+01 + w_qmin( 808)=0.416949225E+00 + qk_min( 809)=0.258437152E+01 + w_qmin( 809)=0.416929324E+00 + qk_min( 810)=0.258735775E+01 + w_qmin( 810)=0.416910287E+00 + qk_min( 811)=0.259034399E+01 + w_qmin( 811)=0.416891862E+00 + qk_min( 812)=0.259333023E+01 + w_qmin( 812)=0.416874231E+00 + qk_min( 813)=0.259631646E+01 + w_qmin( 813)=0.416857581E+00 + qk_min( 814)=0.259930270E+01 + w_qmin( 814)=0.416841411E+00 + qk_min( 815)=0.260228893E+01 + w_qmin( 815)=0.416826065E+00 + qk_min( 816)=0.260527517E+01 + w_qmin( 816)=0.416811573E+00 + qk_min( 817)=0.260826141E+01 + w_qmin( 817)=0.416797766E+00 + qk_min( 818)=0.261124764E+01 + w_qmin( 818)=0.416784748E+00 + qk_min( 819)=0.261423388E+01 + w_qmin( 819)=0.416772741E+00 + qk_min( 820)=0.261722011E+01 + w_qmin( 820)=0.416761080E+00 + qk_min( 821)=0.262020635E+01 + w_qmin( 821)=0.416750303E+00 + qk_min( 822)=0.262319259E+01 + w_qmin( 822)=0.416740399E+00 + qk_min( 823)=0.262617882E+01 + w_qmin( 823)=0.416731210E+00 + qk_min( 824)=0.262916506E+01 + w_qmin( 824)=0.416722860E+00 + qk_min( 825)=0.263215129E+01 + w_qmin( 825)=0.416715056E+00 + qk_min( 826)=0.263513753E+01 + w_qmin( 826)=0.416708245E+00 + qk_min( 827)=0.263812377E+01 + w_qmin( 827)=0.416701947E+00 + qk_min( 828)=0.264111000E+01 + w_qmin( 828)=0.416696476E+00 + qk_min( 829)=0.264409624E+01 + w_qmin( 829)=0.416691823E+00 + qk_min( 830)=0.264708247E+01 + w_qmin( 830)=0.416688036E+00 + qk_min( 831)=0.265006871E+01 + w_qmin( 831)=0.416684648E+00 + qk_min( 832)=0.265305495E+01 + w_qmin( 832)=0.416682209E+00 + qk_min( 833)=0.265604118E+01 + w_qmin( 833)=0.416680447E+00 + qk_min( 834)=0.265902742E+01 + w_qmin( 834)=0.416679214E+00 + qk_min( 835)=0.266201365E+01 + w_qmin( 835)=0.416679097E+00 + qk_min( 836)=0.266499989E+01 + w_qmin( 836)=0.416679330E+00 + qk_min( 837)=0.266798613E+01 + w_qmin( 837)=0.416680213E+00 + qk_min( 838)=0.267097236E+01 + w_qmin( 838)=0.416681818E+00 + qk_min( 839)=0.267395860E+01 + w_qmin( 839)=0.416684115E+00 + qk_min( 840)=0.267694483E+01 + w_qmin( 840)=0.416687081E+00 + qk_min( 841)=0.267993107E+01 + w_qmin( 841)=0.416690710E+00 + qk_min( 842)=0.268291730E+01 + w_qmin( 842)=0.416694802E+00 + qk_min( 843)=0.268590354E+01 + w_qmin( 843)=0.416699643E+00 + qk_min( 844)=0.268888978E+01 + w_qmin( 844)=0.416704850E+00 + qk_min( 845)=0.269187601E+01 + w_qmin( 845)=0.416710788E+00 + qk_min( 846)=0.269486225E+01 + w_qmin( 846)=0.416717432E+00 + qk_min( 847)=0.269784848E+01 + w_qmin( 847)=0.416724497E+00 + qk_min( 848)=0.270083472E+01 + w_qmin( 848)=0.416731992E+00 + qk_min( 849)=0.270382096E+01 + w_qmin( 849)=0.416740184E+00 + qk_min( 850)=0.270680719E+01 + w_qmin( 850)=0.416748775E+00 + qk_min( 851)=0.270979343E+01 + w_qmin( 851)=0.416757893E+00 + qk_min( 852)=0.271277966E+01 + w_qmin( 852)=0.416767655E+00 + qk_min( 853)=0.271576590E+01 + w_qmin( 853)=0.416777899E+00 + qk_min( 854)=0.271875214E+01 + w_qmin( 854)=0.416788451E+00 + qk_min( 855)=0.272173837E+01 + w_qmin( 855)=0.416799633E+00 + qk_min( 856)=0.272472461E+01 + w_qmin( 856)=0.416811034E+00 + qk_min( 857)=0.272771084E+01 + w_qmin( 857)=0.416823228E+00 + qk_min( 858)=0.273069708E+01 + w_qmin( 858)=0.416835674E+00 + qk_min( 859)=0.273368332E+01 + w_qmin( 859)=0.416848655E+00 + qk_min( 860)=0.273666955E+01 + w_qmin( 860)=0.416861949E+00 + qk_min( 861)=0.273965579E+01 + w_qmin( 861)=0.416875863E+00 + qk_min( 862)=0.274264202E+01 + w_qmin( 862)=0.416890002E+00 + qk_min( 863)=0.274562826E+01 + w_qmin( 863)=0.416904920E+00 + qk_min( 864)=0.274861450E+01 + w_qmin( 864)=0.416919949E+00 + qk_min( 865)=0.275160073E+01 + w_qmin( 865)=0.416935558E+00 + qk_min( 866)=0.275458697E+01 + w_qmin( 866)=0.416951582E+00 + qk_min( 867)=0.275757320E+01 + w_qmin( 867)=0.416967951E+00 + qk_min( 868)=0.276055944E+01 + w_qmin( 868)=0.416984879E+00 + qk_min( 869)=0.276354568E+01 + w_qmin( 869)=0.417002279E+00 + qk_min( 870)=0.276653191E+01 + w_qmin( 870)=0.417019985E+00 + qk_min( 871)=0.276951815E+01 + w_qmin( 871)=0.417038117E+00 + qk_min( 872)=0.277250438E+01 + w_qmin( 872)=0.417056789E+00 + qk_min( 873)=0.277549062E+01 + w_qmin( 873)=0.417075838E+00 + qk_min( 874)=0.277847686E+01 + w_qmin( 874)=0.417095599E+00 + qk_min( 875)=0.278146309E+01 + w_qmin( 875)=0.417115495E+00 + qk_min( 876)=0.278444933E+01 + w_qmin( 876)=0.417135994E+00 + qk_min( 877)=0.278743556E+01 + w_qmin( 877)=0.417156892E+00 + qk_min( 878)=0.279042180E+01 + w_qmin( 878)=0.417178162E+00 + qk_min( 879)=0.279340804E+01 + w_qmin( 879)=0.417200124E+00 + qk_min( 880)=0.279639427E+01 + w_qmin( 880)=0.417222614E+00 + qk_min( 881)=0.279938051E+01 + w_qmin( 881)=0.417245462E+00 + qk_min( 882)=0.280236674E+01 + w_qmin( 882)=0.417268802E+00 + qk_min( 883)=0.280535298E+01 + w_qmin( 883)=0.417292628E+00 + qk_min( 884)=0.280833922E+01 + w_qmin( 884)=0.417317034E+00 + qk_min( 885)=0.281132545E+01 + w_qmin( 885)=0.417342034E+00 + qk_min( 886)=0.281431169E+01 + w_qmin( 886)=0.417367399E+00 + qk_min( 887)=0.281729792E+01 + w_qmin( 887)=0.417393442E+00 + qk_min( 888)=0.282028416E+01 + w_qmin( 888)=0.417419853E+00 + qk_min( 889)=0.282327040E+01 + w_qmin( 889)=0.417446876E+00 + qk_min( 890)=0.282625663E+01 + w_qmin( 890)=0.417474595E+00 + qk_min( 891)=0.282924287E+01 + w_qmin( 891)=0.417502880E+00 + qk_min( 892)=0.283222910E+01 + w_qmin( 892)=0.417531699E+00 + qk_min( 893)=0.283521534E+01 + w_qmin( 893)=0.417560957E+00 + qk_min( 894)=0.283820158E+01 + w_qmin( 894)=0.417590881E+00 + qk_min( 895)=0.284118781E+01 + w_qmin( 895)=0.417621424E+00 + qk_min( 896)=0.284417405E+01 + w_qmin( 896)=0.417652705E+00 + qk_min( 897)=0.284716028E+01 + w_qmin( 897)=0.417684488E+00 + qk_min( 898)=0.285014652E+01 + w_qmin( 898)=0.417716795E+00 + qk_min( 899)=0.285313276E+01 + w_qmin( 899)=0.417749770E+00 + qk_min( 900)=0.285611899E+01 + w_qmin( 900)=0.417783415E+00 + qk_min( 901)=0.285910523E+01 + w_qmin( 901)=0.417817650E+00 + qk_min( 902)=0.286209146E+01 + w_qmin( 902)=0.417852756E+00 + qk_min( 903)=0.286507770E+01 + w_qmin( 903)=0.417888196E+00 + qk_min( 904)=0.286806393E+01 + w_qmin( 904)=0.417924287E+00 + qk_min( 905)=0.287105017E+01 + w_qmin( 905)=0.417961065E+00 + qk_min( 906)=0.287403641E+01 + w_qmin( 906)=0.417998507E+00 + qk_min( 907)=0.287702264E+01 + w_qmin( 907)=0.418036673E+00 + qk_min( 908)=0.288000888E+01 + w_qmin( 908)=0.418075365E+00 + qk_min( 909)=0.288299511E+01 + w_qmin( 909)=0.418114664E+00 + qk_min( 910)=0.288598135E+01 + w_qmin( 910)=0.418154584E+00 + qk_min( 911)=0.288896759E+01 + w_qmin( 911)=0.418195201E+00 + qk_min( 912)=0.289195382E+01 + w_qmin( 912)=0.418236414E+00 + qk_min( 913)=0.289494006E+01 + w_qmin( 913)=0.418278474E+00 + qk_min( 914)=0.289792629E+01 + w_qmin( 914)=0.418320916E+00 + qk_min( 915)=0.290091253E+01 + w_qmin( 915)=0.418363923E+00 + qk_min( 916)=0.290389877E+01 + w_qmin( 916)=0.418407579E+00 + qk_min( 917)=0.290688500E+01 + w_qmin( 917)=0.418451921E+00 + qk_min( 918)=0.290987124E+01 + w_qmin( 918)=0.418496849E+00 + qk_min( 919)=0.291285747E+01 + w_qmin( 919)=0.418542473E+00 + qk_min( 920)=0.291584371E+01 + w_qmin( 920)=0.418588574E+00 + qk_min( 921)=0.291882995E+01 + w_qmin( 921)=0.418635091E+00 + qk_min( 922)=0.292181618E+01 + w_qmin( 922)=0.418682232E+00 + qk_min( 923)=0.292480242E+01 + w_qmin( 923)=0.418730162E+00 + qk_min( 924)=0.292778865E+01 + w_qmin( 924)=0.418778683E+00 + qk_min( 925)=0.293077489E+01 + w_qmin( 925)=0.418827430E+00 + qk_min( 926)=0.293376113E+01 + w_qmin( 926)=0.418877012E+00 + qk_min( 927)=0.293674736E+01 + w_qmin( 927)=0.418926996E+00 + qk_min( 928)=0.293973360E+01 + w_qmin( 928)=0.418977476E+00 + qk_min( 929)=0.294271983E+01 + w_qmin( 929)=0.419028829E+00 + qk_min( 930)=0.294570607E+01 + w_qmin( 930)=0.419080234E+00 + qk_min( 931)=0.294869231E+01 + w_qmin( 931)=0.419132533E+00 + qk_min( 932)=0.295167854E+01 + w_qmin( 932)=0.419185102E+00 + qk_min( 933)=0.295466478E+01 + w_qmin( 933)=0.419238273E+00 + qk_min( 934)=0.295765101E+01 + w_qmin( 934)=0.419291930E+00 + qk_min( 935)=0.296063725E+01 + w_qmin( 935)=0.419346255E+00 + qk_min( 936)=0.296362349E+01 + w_qmin( 936)=0.419400775E+00 + qk_min( 937)=0.296660972E+01 + w_qmin( 937)=0.419455873E+00 + qk_min( 938)=0.296959596E+01 + w_qmin( 938)=0.419511534E+00 + qk_min( 939)=0.297258219E+01 + w_qmin( 939)=0.419567570E+00 + qk_min( 940)=0.297556843E+01 + w_qmin( 940)=0.419624267E+00 + qk_min( 941)=0.297855467E+01 + w_qmin( 941)=0.419681302E+00 + qk_min( 942)=0.298154090E+01 + w_qmin( 942)=0.419738750E+00 + qk_min( 943)=0.298452714E+01 + w_qmin( 943)=0.419796740E+00 + qk_min( 944)=0.298751337E+01 + w_qmin( 944)=0.419855138E+00 + qk_min( 945)=0.299049961E+01 + w_qmin( 945)=0.419913962E+00 + qk_min( 946)=0.299348585E+01 + w_qmin( 946)=0.419973372E+00 + qk_min( 947)=0.299647208E+01 + w_qmin( 947)=0.420033065E+00 + qk_min( 948)=0.299945832E+01 + w_qmin( 948)=0.420093276E+00 + qk_min( 949)=0.300244455E+01 + w_qmin( 949)=0.420153950E+00 + qk_min( 950)=0.300543079E+01 + w_qmin( 950)=0.420215081E+00 + qk_min( 951)=0.300841703E+01 + w_qmin( 951)=0.420276759E+00 + qk_min( 952)=0.301140326E+01 + w_qmin( 952)=0.420338767E+00 + qk_min( 953)=0.301438950E+01 + w_qmin( 953)=0.420401147E+00 + qk_min( 954)=0.301737573E+01 + w_qmin( 954)=0.420464001E+00 + qk_min( 955)=0.302036197E+01 + w_qmin( 955)=0.420527289E+00 + qk_min( 956)=0.302334821E+01 + w_qmin( 956)=0.420591146E+00 + qk_min( 957)=0.302633444E+01 + w_qmin( 957)=0.420655400E+00 + qk_min( 958)=0.302932068E+01 + w_qmin( 958)=0.420719993E+00 + qk_min( 959)=0.303230691E+01 + w_qmin( 959)=0.420785033E+00 + qk_min( 960)=0.303529315E+01 + w_qmin( 960)=0.420850599E+00 + qk_min( 961)=0.303827939E+01 + w_qmin( 961)=0.420916605E+00 + qk_min( 962)=0.304126562E+01 + w_qmin( 962)=0.420983049E+00 + qk_min( 963)=0.304425186E+01 + w_qmin( 963)=0.421049871E+00 + qk_min( 964)=0.304723809E+01 + w_qmin( 964)=0.421117200E+00 + qk_min( 965)=0.305022433E+01 + w_qmin( 965)=0.421185009E+00 + qk_min( 966)=0.305321056E+01 + w_qmin( 966)=0.421253111E+00 + qk_min( 967)=0.305619680E+01 + w_qmin( 967)=0.421321834E+00 + qk_min( 968)=0.305918304E+01 + w_qmin( 968)=0.421390933E+00 + qk_min( 969)=0.306216927E+01 + w_qmin( 969)=0.421460475E+00 + qk_min( 970)=0.306515551E+01 + w_qmin( 970)=0.421530529E+00 + qk_min( 971)=0.306814174E+01 + w_qmin( 971)=0.421600942E+00 + qk_min( 972)=0.307112798E+01 + w_qmin( 972)=0.421671707E+00 + qk_min( 973)=0.307411422E+01 + w_qmin( 973)=0.421743221E+00 + qk_min( 974)=0.307710045E+01 + w_qmin( 974)=0.421815057E+00 + qk_min( 975)=0.308008669E+01 + w_qmin( 975)=0.421887359E+00 + qk_min( 976)=0.308307292E+01 + w_qmin( 976)=0.421960061E+00 + qk_min( 977)=0.308605916E+01 + w_qmin( 977)=0.422033248E+00 + qk_min( 978)=0.308904540E+01 + w_qmin( 978)=0.422106903E+00 + qk_min( 979)=0.309203163E+01 + w_qmin( 979)=0.422181094E+00 + qk_min( 980)=0.309501787E+01 + w_qmin( 980)=0.422255771E+00 + qk_min( 981)=0.309800410E+01 + w_qmin( 981)=0.422330828E+00 + qk_min( 982)=0.310099034E+01 + w_qmin( 982)=0.422406359E+00 + qk_min( 983)=0.310397658E+01 + w_qmin( 983)=0.422482453E+00 + qk_min( 984)=0.310696281E+01 + w_qmin( 984)=0.422559102E+00 + qk_min( 985)=0.310994905E+01 + w_qmin( 985)=0.422636031E+00 + qk_min( 986)=0.311293528E+01 + w_qmin( 986)=0.422713635E+00 + qk_min( 987)=0.311592152E+01 + w_qmin( 987)=0.422791554E+00 + qk_min( 988)=0.311890776E+01 + w_qmin( 988)=0.422870031E+00 + qk_min( 989)=0.312189399E+01 + w_qmin( 989)=0.422949021E+00 + qk_min( 990)=0.312488023E+01 + w_qmin( 990)=0.423028519E+00 + qk_min( 991)=0.312786646E+01 + w_qmin( 991)=0.423108604E+00 + qk_min( 992)=0.313085270E+01 + w_qmin( 992)=0.423189024E+00 + qk_min( 993)=0.313383894E+01 + w_qmin( 993)=0.423269934E+00 + qk_min( 994)=0.313682517E+01 + w_qmin( 994)=0.423351608E+00 + qk_min( 995)=0.313981141E+01 + w_qmin( 995)=0.423433622E+00 + qk_min( 996)=0.314279764E+01 + w_qmin( 996)=0.423516074E+00 + qk_min( 997)=0.314578388E+01 + w_qmin( 997)=0.423599178E+00 + qk_min( 998)=0.314877012E+01 + w_qmin( 998)=0.423682779E+00 + qk_min( 999)=0.315175635E+01 + w_qmin( 999)=0.423766988E+00 + qk_min(1000)=0.315474259E+01 + w_qmin(1000)=0.423851339E+00 + qk_min(1001)=0.315772882E+01 + w_qmin(1001)=0.423936557E+00 + + END diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/initA1TabKKpi.f b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/initA1TabKKpi.f new file mode 100644 index 00000000000..eb17c7f03d3 --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/initA1TabKKpi.f @@ -0,0 +1,2010 @@ + SUBROUTINE InitA1TABKKpi(qk_min ,w_qmin ) + PARAMETER (Nq=1001) + real*8 qk_min(Nq),w_qmin(Nq) + + ! this routine was automatically created by a1-tabler + + qk_min( 1)=0.171492857E+00 + w_qmin( 1)=0.000000000E+00 + qk_min( 2)=0.174479093E+00 + w_qmin( 2)=0.000000000E+00 + qk_min( 3)=0.177465328E+00 + w_qmin( 3)=0.000000000E+00 + qk_min( 4)=0.180451564E+00 + w_qmin( 4)=0.000000000E+00 + qk_min( 5)=0.183437800E+00 + w_qmin( 5)=0.000000000E+00 + qk_min( 6)=0.186424036E+00 + w_qmin( 6)=0.000000000E+00 + qk_min( 7)=0.189410272E+00 + w_qmin( 7)=0.000000000E+00 + qk_min( 8)=0.192396508E+00 + w_qmin( 8)=0.000000000E+00 + qk_min( 9)=0.195382744E+00 + w_qmin( 9)=0.000000000E+00 + qk_min( 10)=0.198368980E+00 + w_qmin( 10)=0.000000000E+00 + qk_min( 11)=0.201355216E+00 + w_qmin( 11)=0.000000000E+00 + qk_min( 12)=0.204341452E+00 + w_qmin( 12)=0.000000000E+00 + qk_min( 13)=0.207327688E+00 + w_qmin( 13)=0.000000000E+00 + qk_min( 14)=0.210313924E+00 + w_qmin( 14)=0.000000000E+00 + qk_min( 15)=0.213300160E+00 + w_qmin( 15)=0.000000000E+00 + qk_min( 16)=0.216286396E+00 + w_qmin( 16)=0.000000000E+00 + qk_min( 17)=0.219272632E+00 + w_qmin( 17)=0.000000000E+00 + qk_min( 18)=0.222258868E+00 + w_qmin( 18)=0.000000000E+00 + qk_min( 19)=0.225245104E+00 + w_qmin( 19)=0.000000000E+00 + qk_min( 20)=0.228231340E+00 + w_qmin( 20)=0.000000000E+00 + qk_min( 21)=0.231217576E+00 + w_qmin( 21)=0.000000000E+00 + qk_min( 22)=0.234203812E+00 + w_qmin( 22)=0.000000000E+00 + qk_min( 23)=0.237190048E+00 + w_qmin( 23)=0.000000000E+00 + qk_min( 24)=0.240176284E+00 + w_qmin( 24)=0.000000000E+00 + qk_min( 25)=0.243162520E+00 + w_qmin( 25)=0.000000000E+00 + qk_min( 26)=0.246148756E+00 + w_qmin( 26)=0.000000000E+00 + qk_min( 27)=0.249134992E+00 + w_qmin( 27)=0.000000000E+00 + qk_min( 28)=0.252121228E+00 + w_qmin( 28)=0.000000000E+00 + qk_min( 29)=0.255107464E+00 + w_qmin( 29)=0.000000000E+00 + qk_min( 30)=0.258093700E+00 + w_qmin( 30)=0.000000000E+00 + qk_min( 31)=0.261079936E+00 + w_qmin( 31)=0.000000000E+00 + qk_min( 32)=0.264066172E+00 + w_qmin( 32)=0.000000000E+00 + qk_min( 33)=0.267052408E+00 + w_qmin( 33)=0.000000000E+00 + qk_min( 34)=0.270038643E+00 + w_qmin( 34)=0.000000000E+00 + qk_min( 35)=0.273024879E+00 + w_qmin( 35)=0.000000000E+00 + qk_min( 36)=0.276011115E+00 + w_qmin( 36)=0.000000000E+00 + qk_min( 37)=0.278997351E+00 + w_qmin( 37)=0.000000000E+00 + qk_min( 38)=0.281983587E+00 + w_qmin( 38)=0.000000000E+00 + qk_min( 39)=0.284969823E+00 + w_qmin( 39)=0.000000000E+00 + qk_min( 40)=0.287956059E+00 + w_qmin( 40)=0.000000000E+00 + qk_min( 41)=0.290942295E+00 + w_qmin( 41)=0.000000000E+00 + qk_min( 42)=0.293928531E+00 + w_qmin( 42)=0.000000000E+00 + qk_min( 43)=0.296914767E+00 + w_qmin( 43)=0.000000000E+00 + qk_min( 44)=0.299901003E+00 + w_qmin( 44)=0.000000000E+00 + qk_min( 45)=0.302887239E+00 + w_qmin( 45)=0.000000000E+00 + qk_min( 46)=0.305873475E+00 + w_qmin( 46)=0.000000000E+00 + qk_min( 47)=0.308859711E+00 + w_qmin( 47)=0.000000000E+00 + qk_min( 48)=0.311845947E+00 + w_qmin( 48)=0.000000000E+00 + qk_min( 49)=0.314832183E+00 + w_qmin( 49)=0.000000000E+00 + qk_min( 50)=0.317818419E+00 + w_qmin( 50)=0.000000000E+00 + qk_min( 51)=0.320804655E+00 + w_qmin( 51)=0.000000000E+00 + qk_min( 52)=0.323790891E+00 + w_qmin( 52)=0.000000000E+00 + qk_min( 53)=0.326777127E+00 + w_qmin( 53)=0.000000000E+00 + qk_min( 54)=0.329763363E+00 + w_qmin( 54)=0.000000000E+00 + qk_min( 55)=0.332749599E+00 + w_qmin( 55)=0.000000000E+00 + qk_min( 56)=0.335735835E+00 + w_qmin( 56)=0.000000000E+00 + qk_min( 57)=0.338722071E+00 + w_qmin( 57)=0.000000000E+00 + qk_min( 58)=0.341708307E+00 + w_qmin( 58)=0.000000000E+00 + qk_min( 59)=0.344694543E+00 + w_qmin( 59)=0.000000000E+00 + qk_min( 60)=0.347680779E+00 + w_qmin( 60)=0.000000000E+00 + qk_min( 61)=0.350667015E+00 + w_qmin( 61)=0.000000000E+00 + qk_min( 62)=0.353653251E+00 + w_qmin( 62)=0.000000000E+00 + qk_min( 63)=0.356639487E+00 + w_qmin( 63)=0.000000000E+00 + qk_min( 64)=0.359625722E+00 + w_qmin( 64)=0.000000000E+00 + qk_min( 65)=0.362611958E+00 + w_qmin( 65)=0.000000000E+00 + qk_min( 66)=0.365598194E+00 + w_qmin( 66)=0.000000000E+00 + qk_min( 67)=0.368584430E+00 + w_qmin( 67)=0.000000000E+00 + qk_min( 68)=0.371570666E+00 + w_qmin( 68)=0.000000000E+00 + qk_min( 69)=0.374556902E+00 + w_qmin( 69)=0.000000000E+00 + qk_min( 70)=0.377543138E+00 + w_qmin( 70)=0.000000000E+00 + qk_min( 71)=0.380529374E+00 + w_qmin( 71)=0.000000000E+00 + qk_min( 72)=0.383515610E+00 + w_qmin( 72)=0.000000000E+00 + qk_min( 73)=0.386501846E+00 + w_qmin( 73)=0.000000000E+00 + qk_min( 74)=0.389488082E+00 + w_qmin( 74)=0.000000000E+00 + qk_min( 75)=0.392474318E+00 + w_qmin( 75)=0.000000000E+00 + qk_min( 76)=0.395460554E+00 + w_qmin( 76)=0.000000000E+00 + qk_min( 77)=0.398446790E+00 + w_qmin( 77)=0.000000000E+00 + qk_min( 78)=0.401433026E+00 + w_qmin( 78)=0.000000000E+00 + qk_min( 79)=0.404419262E+00 + w_qmin( 79)=0.000000000E+00 + qk_min( 80)=0.407405498E+00 + w_qmin( 80)=0.000000000E+00 + qk_min( 81)=0.410391734E+00 + w_qmin( 81)=0.000000000E+00 + qk_min( 82)=0.413377970E+00 + w_qmin( 82)=0.000000000E+00 + qk_min( 83)=0.416364206E+00 + w_qmin( 83)=0.000000000E+00 + qk_min( 84)=0.419350442E+00 + w_qmin( 84)=0.000000000E+00 + qk_min( 85)=0.422336678E+00 + w_qmin( 85)=0.000000000E+00 + qk_min( 86)=0.425322914E+00 + w_qmin( 86)=0.000000000E+00 + qk_min( 87)=0.428309150E+00 + w_qmin( 87)=0.000000000E+00 + qk_min( 88)=0.431295386E+00 + w_qmin( 88)=0.000000000E+00 + qk_min( 89)=0.434281622E+00 + w_qmin( 89)=0.000000000E+00 + qk_min( 90)=0.437267858E+00 + w_qmin( 90)=0.000000000E+00 + qk_min( 91)=0.440254094E+00 + w_qmin( 91)=0.000000000E+00 + qk_min( 92)=0.443240330E+00 + w_qmin( 92)=0.000000000E+00 + qk_min( 93)=0.446226566E+00 + w_qmin( 93)=0.000000000E+00 + qk_min( 94)=0.449212802E+00 + w_qmin( 94)=0.000000000E+00 + qk_min( 95)=0.452199037E+00 + w_qmin( 95)=0.000000000E+00 + qk_min( 96)=0.455185273E+00 + w_qmin( 96)=0.000000000E+00 + qk_min( 97)=0.458171509E+00 + w_qmin( 97)=0.000000000E+00 + qk_min( 98)=0.461157745E+00 + w_qmin( 98)=0.000000000E+00 + qk_min( 99)=0.464143981E+00 + w_qmin( 99)=0.000000000E+00 + qk_min( 100)=0.467130217E+00 + w_qmin( 100)=0.000000000E+00 + qk_min( 101)=0.470116453E+00 + w_qmin( 101)=0.000000000E+00 + qk_min( 102)=0.473102689E+00 + w_qmin( 102)=0.000000000E+00 + qk_min( 103)=0.476088925E+00 + w_qmin( 103)=0.000000000E+00 + qk_min( 104)=0.479075161E+00 + w_qmin( 104)=0.000000000E+00 + qk_min( 105)=0.482061397E+00 + w_qmin( 105)=0.000000000E+00 + qk_min( 106)=0.485047633E+00 + w_qmin( 106)=0.000000000E+00 + qk_min( 107)=0.488033869E+00 + w_qmin( 107)=0.000000000E+00 + qk_min( 108)=0.491020105E+00 + w_qmin( 108)=0.000000000E+00 + qk_min( 109)=0.494006341E+00 + w_qmin( 109)=0.000000000E+00 + qk_min( 110)=0.496992577E+00 + w_qmin( 110)=0.000000000E+00 + qk_min( 111)=0.499978813E+00 + w_qmin( 111)=0.000000000E+00 + qk_min( 112)=0.502965049E+00 + w_qmin( 112)=0.000000000E+00 + qk_min( 113)=0.505951285E+00 + w_qmin( 113)=0.000000000E+00 + qk_min( 114)=0.508937521E+00 + w_qmin( 114)=0.000000000E+00 + qk_min( 115)=0.511923757E+00 + w_qmin( 115)=0.000000000E+00 + qk_min( 116)=0.514909993E+00 + w_qmin( 116)=0.000000000E+00 + qk_min( 117)=0.517896229E+00 + w_qmin( 117)=0.000000000E+00 + qk_min( 118)=0.520882465E+00 + w_qmin( 118)=0.000000000E+00 + qk_min( 119)=0.523868701E+00 + w_qmin( 119)=0.000000000E+00 + qk_min( 120)=0.526854937E+00 + w_qmin( 120)=0.000000000E+00 + qk_min( 121)=0.529841173E+00 + w_qmin( 121)=0.000000000E+00 + qk_min( 122)=0.532827409E+00 + w_qmin( 122)=0.000000000E+00 + qk_min( 123)=0.535813645E+00 + w_qmin( 123)=0.000000000E+00 + qk_min( 124)=0.538799881E+00 + w_qmin( 124)=0.000000000E+00 + qk_min( 125)=0.541786116E+00 + w_qmin( 125)=0.000000000E+00 + qk_min( 126)=0.544772352E+00 + w_qmin( 126)=0.000000000E+00 + qk_min( 127)=0.547758588E+00 + w_qmin( 127)=0.000000000E+00 + qk_min( 128)=0.550744824E+00 + w_qmin( 128)=0.000000000E+00 + qk_min( 129)=0.553731060E+00 + w_qmin( 129)=0.000000000E+00 + qk_min( 130)=0.556717296E+00 + w_qmin( 130)=0.000000000E+00 + qk_min( 131)=0.559703532E+00 + w_qmin( 131)=0.000000000E+00 + qk_min( 132)=0.562689768E+00 + w_qmin( 132)=0.000000000E+00 + qk_min( 133)=0.565676004E+00 + w_qmin( 133)=0.000000000E+00 + qk_min( 134)=0.568662240E+00 + w_qmin( 134)=0.000000000E+00 + qk_min( 135)=0.571648476E+00 + w_qmin( 135)=0.000000000E+00 + qk_min( 136)=0.574634712E+00 + w_qmin( 136)=0.000000000E+00 + qk_min( 137)=0.577620948E+00 + w_qmin( 137)=0.000000000E+00 + qk_min( 138)=0.580607184E+00 + w_qmin( 138)=0.000000000E+00 + qk_min( 139)=0.583593420E+00 + w_qmin( 139)=0.000000000E+00 + qk_min( 140)=0.586579656E+00 + w_qmin( 140)=0.000000000E+00 + qk_min( 141)=0.589565892E+00 + w_qmin( 141)=0.000000000E+00 + qk_min( 142)=0.592552128E+00 + w_qmin( 142)=0.000000000E+00 + qk_min( 143)=0.595538364E+00 + w_qmin( 143)=0.000000000E+00 + qk_min( 144)=0.598524600E+00 + w_qmin( 144)=0.000000000E+00 + qk_min( 145)=0.601510836E+00 + w_qmin( 145)=0.000000000E+00 + qk_min( 146)=0.604497072E+00 + w_qmin( 146)=0.000000000E+00 + qk_min( 147)=0.607483308E+00 + w_qmin( 147)=0.000000000E+00 + qk_min( 148)=0.610469544E+00 + w_qmin( 148)=0.000000000E+00 + qk_min( 149)=0.613455780E+00 + w_qmin( 149)=0.000000000E+00 + qk_min( 150)=0.616442016E+00 + w_qmin( 150)=0.000000000E+00 + qk_min( 151)=0.619428252E+00 + w_qmin( 151)=0.000000000E+00 + qk_min( 152)=0.622414488E+00 + w_qmin( 152)=0.000000000E+00 + qk_min( 153)=0.625400724E+00 + w_qmin( 153)=0.000000000E+00 + qk_min( 154)=0.628386960E+00 + w_qmin( 154)=0.000000000E+00 + qk_min( 155)=0.631373196E+00 + w_qmin( 155)=0.000000000E+00 + qk_min( 156)=0.634359431E+00 + w_qmin( 156)=0.000000000E+00 + qk_min( 157)=0.637345667E+00 + w_qmin( 157)=0.000000000E+00 + qk_min( 158)=0.640331903E+00 + w_qmin( 158)=0.000000000E+00 + qk_min( 159)=0.643318139E+00 + w_qmin( 159)=0.000000000E+00 + qk_min( 160)=0.646304375E+00 + w_qmin( 160)=0.000000000E+00 + qk_min( 161)=0.649290611E+00 + w_qmin( 161)=0.000000000E+00 + qk_min( 162)=0.652276847E+00 + w_qmin( 162)=0.000000000E+00 + qk_min( 163)=0.655263083E+00 + w_qmin( 163)=0.000000000E+00 + qk_min( 164)=0.658249319E+00 + w_qmin( 164)=0.000000000E+00 + qk_min( 165)=0.661235555E+00 + w_qmin( 165)=0.000000000E+00 + qk_min( 166)=0.664221791E+00 + w_qmin( 166)=0.000000000E+00 + qk_min( 167)=0.667208027E+00 + w_qmin( 167)=0.000000000E+00 + qk_min( 168)=0.670194263E+00 + w_qmin( 168)=0.000000000E+00 + qk_min( 169)=0.673180499E+00 + w_qmin( 169)=0.000000000E+00 + qk_min( 170)=0.676166735E+00 + w_qmin( 170)=0.000000000E+00 + qk_min( 171)=0.679152971E+00 + w_qmin( 171)=0.000000000E+00 + qk_min( 172)=0.682139207E+00 + w_qmin( 172)=0.000000000E+00 + qk_min( 173)=0.685125443E+00 + w_qmin( 173)=0.000000000E+00 + qk_min( 174)=0.688111679E+00 + w_qmin( 174)=0.000000000E+00 + qk_min( 175)=0.691097915E+00 + w_qmin( 175)=0.000000000E+00 + qk_min( 176)=0.694084151E+00 + w_qmin( 176)=0.000000000E+00 + qk_min( 177)=0.697070387E+00 + w_qmin( 177)=0.000000000E+00 + qk_min( 178)=0.700056623E+00 + w_qmin( 178)=0.000000000E+00 + qk_min( 179)=0.703042859E+00 + w_qmin( 179)=0.000000000E+00 + qk_min( 180)=0.706029095E+00 + w_qmin( 180)=0.000000000E+00 + qk_min( 181)=0.709015331E+00 + w_qmin( 181)=0.000000000E+00 + qk_min( 182)=0.712001567E+00 + w_qmin( 182)=0.000000000E+00 + qk_min( 183)=0.714987803E+00 + w_qmin( 183)=0.000000000E+00 + qk_min( 184)=0.717974039E+00 + w_qmin( 184)=0.000000000E+00 + qk_min( 185)=0.720960275E+00 + w_qmin( 185)=0.000000000E+00 + qk_min( 186)=0.723946510E+00 + w_qmin( 186)=0.000000000E+00 + qk_min( 187)=0.726932746E+00 + w_qmin( 187)=0.000000000E+00 + qk_min( 188)=0.729918982E+00 + w_qmin( 188)=0.000000000E+00 + qk_min( 189)=0.732905218E+00 + w_qmin( 189)=0.000000000E+00 + qk_min( 190)=0.735891454E+00 + w_qmin( 190)=0.000000000E+00 + qk_min( 191)=0.738877690E+00 + w_qmin( 191)=0.000000000E+00 + qk_min( 192)=0.741863926E+00 + w_qmin( 192)=0.000000000E+00 + qk_min( 193)=0.744850162E+00 + w_qmin( 193)=0.000000000E+00 + qk_min( 194)=0.747836398E+00 + w_qmin( 194)=0.000000000E+00 + qk_min( 195)=0.750822634E+00 + w_qmin( 195)=0.000000000E+00 + qk_min( 196)=0.753808870E+00 + w_qmin( 196)=0.000000000E+00 + qk_min( 197)=0.756795106E+00 + w_qmin( 197)=0.000000000E+00 + qk_min( 198)=0.759781342E+00 + w_qmin( 198)=0.000000000E+00 + qk_min( 199)=0.762767578E+00 + w_qmin( 199)=0.000000000E+00 + qk_min( 200)=0.765753814E+00 + w_qmin( 200)=0.000000000E+00 + qk_min( 201)=0.768740050E+00 + w_qmin( 201)=0.000000000E+00 + qk_min( 202)=0.771726286E+00 + w_qmin( 202)=0.000000000E+00 + qk_min( 203)=0.774712522E+00 + w_qmin( 203)=0.000000000E+00 + qk_min( 204)=0.777698758E+00 + w_qmin( 204)=0.000000000E+00 + qk_min( 205)=0.780684994E+00 + w_qmin( 205)=0.000000000E+00 + qk_min( 206)=0.783671230E+00 + w_qmin( 206)=0.000000000E+00 + qk_min( 207)=0.786657466E+00 + w_qmin( 207)=0.000000000E+00 + qk_min( 208)=0.789643702E+00 + w_qmin( 208)=0.000000000E+00 + qk_min( 209)=0.792629938E+00 + w_qmin( 209)=0.000000000E+00 + qk_min( 210)=0.795616174E+00 + w_qmin( 210)=0.000000000E+00 + qk_min( 211)=0.798602410E+00 + w_qmin( 211)=0.000000000E+00 + qk_min( 212)=0.801588646E+00 + w_qmin( 212)=0.000000000E+00 + qk_min( 213)=0.804574882E+00 + w_qmin( 213)=0.000000000E+00 + qk_min( 214)=0.807561118E+00 + w_qmin( 214)=0.000000000E+00 + qk_min( 215)=0.810547354E+00 + w_qmin( 215)=0.000000000E+00 + qk_min( 216)=0.813533590E+00 + w_qmin( 216)=0.000000000E+00 + qk_min( 217)=0.816519825E+00 + w_qmin( 217)=0.000000000E+00 + qk_min( 218)=0.819506061E+00 + w_qmin( 218)=0.000000000E+00 + qk_min( 219)=0.822492297E+00 + w_qmin( 219)=0.000000000E+00 + qk_min( 220)=0.825478533E+00 + w_qmin( 220)=0.000000000E+00 + qk_min( 221)=0.828464769E+00 + w_qmin( 221)=0.000000000E+00 + qk_min( 222)=0.831451005E+00 + w_qmin( 222)=0.000000000E+00 + qk_min( 223)=0.834437241E+00 + w_qmin( 223)=0.000000000E+00 + qk_min( 224)=0.837423477E+00 + w_qmin( 224)=0.000000000E+00 + qk_min( 225)=0.840409713E+00 + w_qmin( 225)=0.000000000E+00 + qk_min( 226)=0.843395949E+00 + w_qmin( 226)=0.000000000E+00 + qk_min( 227)=0.846382185E+00 + w_qmin( 227)=0.000000000E+00 + qk_min( 228)=0.849368421E+00 + w_qmin( 228)=0.000000000E+00 + qk_min( 229)=0.852354657E+00 + w_qmin( 229)=0.000000000E+00 + qk_min( 230)=0.855340893E+00 + w_qmin( 230)=0.000000000E+00 + qk_min( 231)=0.858327129E+00 + w_qmin( 231)=0.000000000E+00 + qk_min( 232)=0.861313365E+00 + w_qmin( 232)=0.000000000E+00 + qk_min( 233)=0.864299601E+00 + w_qmin( 233)=0.000000000E+00 + qk_min( 234)=0.867285837E+00 + w_qmin( 234)=0.000000000E+00 + qk_min( 235)=0.870272073E+00 + w_qmin( 235)=0.000000000E+00 + qk_min( 236)=0.873258309E+00 + w_qmin( 236)=0.000000000E+00 + qk_min( 237)=0.876244545E+00 + w_qmin( 237)=0.000000000E+00 + qk_min( 238)=0.879230781E+00 + w_qmin( 238)=0.000000000E+00 + qk_min( 239)=0.882217017E+00 + w_qmin( 239)=0.000000000E+00 + qk_min( 240)=0.885203253E+00 + w_qmin( 240)=0.000000000E+00 + qk_min( 241)=0.888189489E+00 + w_qmin( 241)=0.000000000E+00 + qk_min( 242)=0.891175725E+00 + w_qmin( 242)=0.000000000E+00 + qk_min( 243)=0.894161961E+00 + w_qmin( 243)=0.000000000E+00 + qk_min( 244)=0.897148197E+00 + w_qmin( 244)=0.000000000E+00 + qk_min( 245)=0.900134433E+00 + w_qmin( 245)=0.000000000E+00 + qk_min( 246)=0.903120669E+00 + w_qmin( 246)=0.000000000E+00 + qk_min( 247)=0.906106904E+00 + w_qmin( 247)=0.000000000E+00 + qk_min( 248)=0.909093140E+00 + w_qmin( 248)=0.000000000E+00 + qk_min( 249)=0.912079376E+00 + w_qmin( 249)=0.000000000E+00 + qk_min( 250)=0.915065612E+00 + w_qmin( 250)=0.000000000E+00 + qk_min( 251)=0.918051848E+00 + w_qmin( 251)=0.000000000E+00 + qk_min( 252)=0.921038084E+00 + w_qmin( 252)=0.000000000E+00 + qk_min( 253)=0.924024320E+00 + w_qmin( 253)=0.000000000E+00 + qk_min( 254)=0.927010556E+00 + w_qmin( 254)=0.000000000E+00 + qk_min( 255)=0.929996792E+00 + w_qmin( 255)=0.000000000E+00 + qk_min( 256)=0.932983028E+00 + w_qmin( 256)=0.000000000E+00 + qk_min( 257)=0.935969264E+00 + w_qmin( 257)=0.000000000E+00 + qk_min( 258)=0.938955500E+00 + w_qmin( 258)=0.000000000E+00 + qk_min( 259)=0.941941736E+00 + w_qmin( 259)=0.000000000E+00 + qk_min( 260)=0.944927972E+00 + w_qmin( 260)=0.000000000E+00 + qk_min( 261)=0.947914208E+00 + w_qmin( 261)=0.000000000E+00 + qk_min( 262)=0.950900444E+00 + w_qmin( 262)=0.000000000E+00 + qk_min( 263)=0.953886680E+00 + w_qmin( 263)=0.000000000E+00 + qk_min( 264)=0.956872916E+00 + w_qmin( 264)=0.000000000E+00 + qk_min( 265)=0.959859152E+00 + w_qmin( 265)=0.000000000E+00 + qk_min( 266)=0.962845388E+00 + w_qmin( 266)=0.000000000E+00 + qk_min( 267)=0.965831624E+00 + w_qmin( 267)=0.000000000E+00 + qk_min( 268)=0.968817860E+00 + w_qmin( 268)=0.000000000E+00 + qk_min( 269)=0.971804096E+00 + w_qmin( 269)=0.000000000E+00 + qk_min( 270)=0.974790332E+00 + w_qmin( 270)=0.000000000E+00 + qk_min( 271)=0.977776568E+00 + w_qmin( 271)=0.000000000E+00 + qk_min( 272)=0.980762804E+00 + w_qmin( 272)=0.000000000E+00 + qk_min( 273)=0.983749040E+00 + w_qmin( 273)=0.000000000E+00 + qk_min( 274)=0.986735276E+00 + w_qmin( 274)=0.000000000E+00 + qk_min( 275)=0.989721512E+00 + w_qmin( 275)=0.000000000E+00 + qk_min( 276)=0.992707748E+00 + w_qmin( 276)=0.000000000E+00 + qk_min( 277)=0.995693984E+00 + w_qmin( 277)=0.000000000E+00 + qk_min( 278)=0.998680219E+00 + w_qmin( 278)=0.000000000E+00 + qk_min( 279)=0.100166646E+01 + w_qmin( 279)=0.000000000E+00 + qk_min( 280)=0.100465269E+01 + w_qmin( 280)=0.000000000E+00 + qk_min( 281)=0.100763893E+01 + w_qmin( 281)=0.000000000E+00 + qk_min( 282)=0.101062516E+01 + w_qmin( 282)=0.000000000E+00 + qk_min( 283)=0.101361140E+01 + w_qmin( 283)=0.000000000E+00 + qk_min( 284)=0.101659764E+01 + w_qmin( 284)=0.000000000E+00 + qk_min( 285)=0.101958387E+01 + w_qmin( 285)=0.000000000E+00 + qk_min( 286)=0.102257011E+01 + w_qmin( 286)=0.000000000E+00 + qk_min( 287)=0.102555634E+01 + w_qmin( 287)=0.000000000E+00 + qk_min( 288)=0.102854258E+01 + w_qmin( 288)=0.000000000E+00 + qk_min( 289)=0.103152882E+01 + w_qmin( 289)=0.000000000E+00 + qk_min( 290)=0.103451505E+01 + w_qmin( 290)=0.000000000E+00 + qk_min( 291)=0.103750129E+01 + w_qmin( 291)=0.000000000E+00 + qk_min( 292)=0.104048752E+01 + w_qmin( 292)=0.000000000E+00 + qk_min( 293)=0.104347376E+01 + w_qmin( 293)=0.000000000E+00 + qk_min( 294)=0.104645999E+01 + w_qmin( 294)=0.000000000E+00 + qk_min( 295)=0.104944623E+01 + w_qmin( 295)=0.000000000E+00 + qk_min( 296)=0.105243247E+01 + w_qmin( 296)=0.000000000E+00 + qk_min( 297)=0.105541870E+01 + w_qmin( 297)=0.000000000E+00 + qk_min( 298)=0.105840494E+01 + w_qmin( 298)=0.000000000E+00 + qk_min( 299)=0.106139117E+01 + w_qmin( 299)=0.000000000E+00 + qk_min( 300)=0.106437741E+01 + w_qmin( 300)=0.000000000E+00 + qk_min( 301)=0.106736365E+01 + w_qmin( 301)=0.000000000E+00 + qk_min( 302)=0.107034988E+01 + w_qmin( 302)=0.000000000E+00 + qk_min( 303)=0.107333612E+01 + w_qmin( 303)=0.000000000E+00 + qk_min( 304)=0.107632235E+01 + w_qmin( 304)=0.000000000E+00 + qk_min( 305)=0.107930859E+01 + w_qmin( 305)=0.000000000E+00 + qk_min( 306)=0.108229483E+01 + w_qmin( 306)=0.000000000E+00 + qk_min( 307)=0.108528106E+01 + w_qmin( 307)=0.000000000E+00 + qk_min( 308)=0.108826730E+01 + w_qmin( 308)=0.000000000E+00 + qk_min( 309)=0.109125353E+01 + w_qmin( 309)=0.000000000E+00 + qk_min( 310)=0.109423977E+01 + w_qmin( 310)=0.000000000E+00 + qk_min( 311)=0.109722601E+01 + w_qmin( 311)=0.000000000E+00 + qk_min( 312)=0.110021224E+01 + w_qmin( 312)=0.000000000E+00 + qk_min( 313)=0.110319848E+01 + w_qmin( 313)=0.000000000E+00 + qk_min( 314)=0.110618471E+01 + w_qmin( 314)=0.000000000E+00 + qk_min( 315)=0.110917095E+01 + w_qmin( 315)=0.000000000E+00 + qk_min( 316)=0.111215719E+01 + w_qmin( 316)=0.000000000E+00 + qk_min( 317)=0.111514342E+01 + w_qmin( 317)=0.000000000E+00 + qk_min( 318)=0.111812966E+01 + w_qmin( 318)=0.000000000E+00 + qk_min( 319)=0.112111589E+01 + w_qmin( 319)=0.000000000E+00 + qk_min( 320)=0.112410213E+01 + w_qmin( 320)=0.000000000E+00 + qk_min( 321)=0.112708837E+01 + w_qmin( 321)=0.000000000E+00 + qk_min( 322)=0.113007460E+01 + w_qmin( 322)=0.000000000E+00 + qk_min( 323)=0.113306084E+01 + w_qmin( 323)=0.000000000E+00 + qk_min( 324)=0.113604707E+01 + w_qmin( 324)=0.000000000E+00 + qk_min( 325)=0.113903331E+01 + w_qmin( 325)=0.000000000E+00 + qk_min( 326)=0.114201955E+01 + w_qmin( 326)=0.000000000E+00 + qk_min( 327)=0.114500578E+01 + w_qmin( 327)=0.000000000E+00 + qk_min( 328)=0.114799202E+01 + w_qmin( 328)=0.000000000E+00 + qk_min( 329)=0.115097825E+01 + w_qmin( 329)=0.000000000E+00 + qk_min( 330)=0.115396449E+01 + w_qmin( 330)=0.000000000E+00 + qk_min( 331)=0.115695073E+01 + w_qmin( 331)=0.000000000E+00 + qk_min( 332)=0.115993696E+01 + w_qmin( 332)=0.000000000E+00 + qk_min( 333)=0.116292320E+01 + w_qmin( 333)=0.000000000E+00 + qk_min( 334)=0.116590943E+01 + w_qmin( 334)=0.000000000E+00 + qk_min( 335)=0.116889567E+01 + w_qmin( 335)=0.000000000E+00 + qk_min( 336)=0.117188191E+01 + w_qmin( 336)=0.000000000E+00 + qk_min( 337)=0.117486814E+01 + w_qmin( 337)=0.000000000E+00 + qk_min( 338)=0.117785438E+01 + w_qmin( 338)=0.000000000E+00 + qk_min( 339)=0.118084061E+01 + w_qmin( 339)=0.000000000E+00 + qk_min( 340)=0.118382685E+01 + w_qmin( 340)=0.000000000E+00 + qk_min( 341)=0.118681309E+01 + w_qmin( 341)=0.000000000E+00 + qk_min( 342)=0.118979932E+01 + w_qmin( 342)=0.000000000E+00 + qk_min( 343)=0.119278556E+01 + w_qmin( 343)=0.000000000E+00 + qk_min( 344)=0.119577179E+01 + w_qmin( 344)=0.000000000E+00 + qk_min( 345)=0.119875803E+01 + w_qmin( 345)=0.000000000E+00 + qk_min( 346)=0.120174427E+01 + w_qmin( 346)=0.000000000E+00 + qk_min( 347)=0.120473050E+01 + w_qmin( 347)=0.000000000E+00 + qk_min( 348)=0.120771674E+01 + w_qmin( 348)=0.000000000E+00 + qk_min( 349)=0.121070297E+01 + w_qmin( 349)=0.000000000E+00 + qk_min( 350)=0.121368921E+01 + w_qmin( 350)=0.000000000E+00 + qk_min( 351)=0.121667545E+01 + w_qmin( 351)=0.000000000E+00 + qk_min( 352)=0.121966168E+01 + w_qmin( 352)=0.000000000E+00 + qk_min( 353)=0.122264792E+01 + w_qmin( 353)=0.000000000E+00 + qk_min( 354)=0.122563415E+01 + w_qmin( 354)=0.000000000E+00 + qk_min( 355)=0.122862039E+01 + w_qmin( 355)=0.000000000E+00 + qk_min( 356)=0.123160662E+01 + w_qmin( 356)=0.000000000E+00 + qk_min( 357)=0.123459286E+01 + w_qmin( 357)=0.000000000E+00 + qk_min( 358)=0.123757910E+01 + w_qmin( 358)=0.000000000E+00 + qk_min( 359)=0.124056533E+01 + w_qmin( 359)=0.000000000E+00 + qk_min( 360)=0.124355157E+01 + w_qmin( 360)=0.000000000E+00 + qk_min( 361)=0.124653780E+01 + w_qmin( 361)=0.000000000E+00 + qk_min( 362)=0.124952404E+01 + w_qmin( 362)=0.000000000E+00 + qk_min( 363)=0.125251028E+01 + w_qmin( 363)=0.000000000E+00 + qk_min( 364)=0.125549651E+01 + w_qmin( 364)=0.000000000E+00 + qk_min( 365)=0.125848275E+01 + w_qmin( 365)=0.000000000E+00 + qk_min( 366)=0.126146898E+01 + w_qmin( 366)=0.000000000E+00 + qk_min( 367)=0.126445522E+01 + w_qmin( 367)=0.000000000E+00 + qk_min( 368)=0.126744146E+01 + w_qmin( 368)=0.000000000E+00 + qk_min( 369)=0.127042769E+01 + w_qmin( 369)=0.000000000E+00 + qk_min( 370)=0.127341393E+01 + w_qmin( 370)=0.000000000E+00 + qk_min( 371)=0.127640016E+01 + w_qmin( 371)=0.467385957E-11 + qk_min( 372)=0.127938640E+01 + w_qmin( 372)=0.336675634E-09 + qk_min( 373)=0.128237264E+01 + w_qmin( 373)=0.180589425E-08 + qk_min( 374)=0.128535887E+01 + w_qmin( 374)=0.521060960E-08 + qk_min( 375)=0.128834511E+01 + w_qmin( 375)=0.112917588E-07 + qk_min( 376)=0.129133134E+01 + w_qmin( 376)=0.207377627E-07 + qk_min( 377)=0.129431758E+01 + w_qmin( 377)=0.341888871E-07 + qk_min( 378)=0.129730382E+01 + w_qmin( 378)=0.522393827E-07 + qk_min( 379)=0.130029005E+01 + w_qmin( 379)=0.754446882E-07 + qk_min( 380)=0.130327629E+01 + w_qmin( 380)=0.104319866E-06 + qk_min( 381)=0.130626252E+01 + w_qmin( 381)=0.139349343E-06 + qk_min( 382)=0.130924876E+01 + w_qmin( 382)=0.180986475E-06 + qk_min( 383)=0.131223500E+01 + w_qmin( 383)=0.229654233E-06 + qk_min( 384)=0.131522123E+01 + w_qmin( 384)=0.285754285E-06 + qk_min( 385)=0.131820747E+01 + w_qmin( 385)=0.349669848E-06 + qk_min( 386)=0.132119370E+01 + w_qmin( 386)=0.421756559E-06 + qk_min( 387)=0.132417994E+01 + w_qmin( 387)=0.502363262E-06 + qk_min( 388)=0.132716618E+01 + w_qmin( 388)=0.591822610E-06 + qk_min( 389)=0.133015241E+01 + w_qmin( 389)=0.690452213E-06 + qk_min( 390)=0.133313865E+01 + w_qmin( 390)=0.798572685E-06 + qk_min( 391)=0.133612488E+01 + w_qmin( 391)=0.916480606E-06 + qk_min( 392)=0.133911112E+01 + w_qmin( 392)=0.104448389E-05 + qk_min( 393)=0.134209736E+01 + w_qmin( 393)=0.118288886E-05 + qk_min( 394)=0.134508359E+01 + w_qmin( 394)=0.133198624E-05 + qk_min( 395)=0.134806983E+01 + w_qmin( 395)=0.149208590E-05 + qk_min( 396)=0.135105606E+01 + w_qmin( 396)=0.166349876E-05 + qk_min( 397)=0.135404230E+01 + w_qmin( 397)=0.184652662E-05 + qk_min( 398)=0.135702854E+01 + w_qmin( 398)=0.204149727E-05 + qk_min( 399)=0.136001477E+01 + w_qmin( 399)=0.224874847E-05 + qk_min( 400)=0.136300101E+01 + w_qmin( 400)=0.246860209E-05 + qk_min( 401)=0.136598724E+01 + w_qmin( 401)=0.270143320E-05 + qk_min( 402)=0.136897348E+01 + w_qmin( 402)=0.294758441E-05 + qk_min( 403)=0.137195972E+01 + w_qmin( 403)=0.320745294E-05 + qk_min( 404)=0.137494595E+01 + w_qmin( 404)=0.348143917E-05 + qk_min( 405)=0.137793219E+01 + w_qmin( 405)=0.376994513E-05 + qk_min( 406)=0.138091842E+01 + w_qmin( 406)=0.407341659E-05 + qk_min( 407)=0.138390466E+01 + w_qmin( 407)=0.439231612E-05 + qk_min( 408)=0.138689090E+01 + w_qmin( 408)=0.472710275E-05 + qk_min( 409)=0.138987713E+01 + w_qmin( 409)=0.507828748E-05 + qk_min( 410)=0.139286337E+01 + w_qmin( 410)=0.544639815E-05 + qk_min( 411)=0.139584960E+01 + w_qmin( 411)=0.583197441E-05 + qk_min( 412)=0.139883584E+01 + w_qmin( 412)=0.623560306E-05 + qk_min( 413)=0.140182208E+01 + w_qmin( 413)=0.665787419E-05 + qk_min( 414)=0.140480831E+01 + w_qmin( 414)=0.709942081E-05 + qk_min( 415)=0.140779455E+01 + w_qmin( 415)=0.756091702E-05 + qk_min( 416)=0.141078078E+01 + w_qmin( 416)=0.804302920E-05 + qk_min( 417)=0.141376702E+01 + w_qmin( 417)=0.854648533E-05 + qk_min( 418)=0.141675325E+01 + w_qmin( 418)=0.907205680E-05 + qk_min( 419)=0.141973949E+01 + w_qmin( 419)=0.962050306E-05 + qk_min( 420)=0.142272573E+01 + w_qmin( 420)=0.101926529E-04 + qk_min( 421)=0.142571196E+01 + w_qmin( 421)=0.107893739E-04 + qk_min( 422)=0.142869820E+01 + w_qmin( 422)=0.114115273E-04 + qk_min( 423)=0.143168443E+01 + w_qmin( 423)=0.120600685E-04 + qk_min( 424)=0.143467067E+01 + w_qmin( 424)=0.127359231E-04 + qk_min( 425)=0.143765691E+01 + w_qmin( 425)=0.134401138E-04 + qk_min( 426)=0.144064314E+01 + w_qmin( 426)=0.141736967E-04 + qk_min( 427)=0.144362938E+01 + w_qmin( 427)=0.149377099E-04 + qk_min( 428)=0.144661561E+01 + w_qmin( 428)=0.157332917E-04 + qk_min( 429)=0.144960185E+01 + w_qmin( 429)=0.165616119E-04 + qk_min( 430)=0.145258809E+01 + w_qmin( 430)=0.174238532E-04 + qk_min( 431)=0.145557432E+01 + w_qmin( 431)=0.183212644E-04 + qk_min( 432)=0.145856056E+01 + w_qmin( 432)=0.192551614E-04 + qk_min( 433)=0.146154679E+01 + w_qmin( 433)=0.202268169E-04 + qk_min( 434)=0.146453303E+01 + w_qmin( 434)=0.212376507E-04 + qk_min( 435)=0.146751927E+01 + w_qmin( 435)=0.222890955E-04 + qk_min( 436)=0.147050550E+01 + w_qmin( 436)=0.233825795E-04 + qk_min( 437)=0.147349174E+01 + w_qmin( 437)=0.245196597E-04 + qk_min( 438)=0.147647797E+01 + w_qmin( 438)=0.257018674E-04 + qk_min( 439)=0.147946421E+01 + w_qmin( 439)=0.269308165E-04 + qk_min( 440)=0.148245045E+01 + w_qmin( 440)=0.282082199E-04 + qk_min( 441)=0.148543668E+01 + w_qmin( 441)=0.295357207E-04 + qk_min( 442)=0.148842292E+01 + w_qmin( 442)=0.309151355E-04 + qk_min( 443)=0.149140915E+01 + w_qmin( 443)=0.323482962E-04 + qk_min( 444)=0.149439539E+01 + w_qmin( 444)=0.338370198E-04 + qk_min( 445)=0.149738163E+01 + w_qmin( 445)=0.353832483E-04 + qk_min( 446)=0.150036786E+01 + w_qmin( 446)=0.369890317E-04 + qk_min( 447)=0.150335410E+01 + w_qmin( 447)=0.386563318E-04 + qk_min( 448)=0.150634033E+01 + w_qmin( 448)=0.403872831E-04 + qk_min( 449)=0.150932657E+01 + w_qmin( 449)=0.421839819E-04 + qk_min( 450)=0.151231281E+01 + w_qmin( 450)=0.440487213E-04 + qk_min( 451)=0.151529904E+01 + w_qmin( 451)=0.459837761E-04 + qk_min( 452)=0.151828528E+01 + w_qmin( 452)=0.479914037E-04 + qk_min( 453)=0.152127151E+01 + w_qmin( 453)=0.500740716E-04 + qk_min( 454)=0.152425775E+01 + w_qmin( 454)=0.522342430E-04 + qk_min( 455)=0.152724399E+01 + w_qmin( 455)=0.544743776E-04 + qk_min( 456)=0.153023022E+01 + w_qmin( 456)=0.567971198E-04 + qk_min( 457)=0.153321646E+01 + w_qmin( 457)=0.592052189E-04 + qk_min( 458)=0.153620269E+01 + w_qmin( 458)=0.617012423E-04 + qk_min( 459)=0.153918893E+01 + w_qmin( 459)=0.642881487E-04 + qk_min( 460)=0.154217517E+01 + w_qmin( 460)=0.669687132E-04 + qk_min( 461)=0.154516140E+01 + w_qmin( 461)=0.697458622E-04 + qk_min( 462)=0.154814764E+01 + w_qmin( 462)=0.726227948E-04 + qk_min( 463)=0.155113387E+01 + w_qmin( 463)=0.756024033E-04 + qk_min( 464)=0.155412011E+01 + w_qmin( 464)=0.786879653E-04 + qk_min( 465)=0.155710635E+01 + w_qmin( 465)=0.818828300E-04 + qk_min( 466)=0.156009258E+01 + w_qmin( 466)=0.851901657E-04 + qk_min( 467)=0.156307882E+01 + w_qmin( 467)=0.886134930E-04 + qk_min( 468)=0.156606505E+01 + w_qmin( 468)=0.921564139E-04 + qk_min( 469)=0.156905129E+01 + w_qmin( 469)=0.958223661E-04 + qk_min( 470)=0.157203753E+01 + w_qmin( 470)=0.996152064E-04 + qk_min( 471)=0.157502376E+01 + w_qmin( 471)=0.103538575E-03 + qk_min( 472)=0.157801000E+01 + w_qmin( 472)=0.107596429E-03 + qk_min( 473)=0.158099623E+01 + w_qmin( 473)=0.111792857E-03 + qk_min( 474)=0.158398247E+01 + w_qmin( 474)=0.116131714E-03 + qk_min( 475)=0.158696871E+01 + w_qmin( 475)=0.120617363E-03 + qk_min( 476)=0.158995494E+01 + w_qmin( 476)=0.125254114E-03 + qk_min( 477)=0.159294118E+01 + w_qmin( 477)=0.130046282E-03 + qk_min( 478)=0.159592741E+01 + w_qmin( 478)=0.134998333E-03 + qk_min( 479)=0.159891365E+01 + w_qmin( 479)=0.140115085E-03 + qk_min( 480)=0.160189988E+01 + w_qmin( 480)=0.145401211E-03 + qk_min( 481)=0.160488612E+01 + w_qmin( 481)=0.150861547E-03 + qk_min( 482)=0.160787236E+01 + w_qmin( 482)=0.156501094E-03 + qk_min( 483)=0.161085859E+01 + w_qmin( 483)=0.162324989E-03 + qk_min( 484)=0.161384483E+01 + w_qmin( 484)=0.168338617E-03 + qk_min( 485)=0.161683106E+01 + w_qmin( 485)=0.174547287E-03 + qk_min( 486)=0.161981730E+01 + w_qmin( 486)=0.180956528E-03 + qk_min( 487)=0.162280354E+01 + w_qmin( 487)=0.187572222E-03 + qk_min( 488)=0.162578977E+01 + w_qmin( 488)=0.194400044E-03 + qk_min( 489)=0.162877601E+01 + w_qmin( 489)=0.201446006E-03 + qk_min( 490)=0.163176224E+01 + w_qmin( 490)=0.208716558E-03 + qk_min( 491)=0.163474848E+01 + w_qmin( 491)=0.216217754E-03 + qk_min( 492)=0.163773472E+01 + w_qmin( 492)=0.223956400E-03 + qk_min( 493)=0.164072095E+01 + w_qmin( 493)=0.231938975E-03 + qk_min( 494)=0.164370719E+01 + w_qmin( 494)=0.240172480E-03 + qk_min( 495)=0.164669342E+01 + w_qmin( 495)=0.248664180E-03 + qk_min( 496)=0.164967966E+01 + w_qmin( 496)=0.257421259E-03 + qk_min( 497)=0.165266590E+01 + w_qmin( 497)=0.266451259E-03 + qk_min( 498)=0.165565213E+01 + w_qmin( 498)=0.275762188E-03 + qk_min( 499)=0.165863837E+01 + w_qmin( 499)=0.285361592E-03 + qk_min( 500)=0.166162460E+01 + w_qmin( 500)=0.295258054E-03 + qk_min( 501)=0.166461084E+01 + w_qmin( 501)=0.305460085E-03 + qk_min( 502)=0.166759708E+01 + w_qmin( 502)=0.315976296E-03 + qk_min( 503)=0.167058331E+01 + w_qmin( 503)=0.326815911E-03 + qk_min( 504)=0.167356955E+01 + w_qmin( 504)=0.337987974E-03 + qk_min( 505)=0.167655578E+01 + w_qmin( 505)=0.349502332E-03 + qk_min( 506)=0.167954202E+01 + w_qmin( 506)=0.361369081E-03 + qk_min( 507)=0.168252826E+01 + w_qmin( 507)=0.373598144E-03 + qk_min( 508)=0.168551449E+01 + w_qmin( 508)=0.386200398E-03 + qk_min( 509)=0.168850073E+01 + w_qmin( 509)=0.399186814E-03 + qk_min( 510)=0.169148696E+01 + w_qmin( 510)=0.412568599E-03 + qk_min( 511)=0.169447320E+01 + w_qmin( 511)=0.426357630E-03 + qk_min( 512)=0.169745944E+01 + w_qmin( 512)=0.440566135E-03 + qk_min( 513)=0.170044567E+01 + w_qmin( 513)=0.455206668E-03 + qk_min( 514)=0.170343191E+01 + w_qmin( 514)=0.470292258E-03 + qk_min( 515)=0.170641814E+01 + w_qmin( 515)=0.485836517E-03 + qk_min( 516)=0.170940438E+01 + w_qmin( 516)=0.501853310E-03 + qk_min( 517)=0.171239062E+01 + w_qmin( 517)=0.518357580E-03 + qk_min( 518)=0.171537685E+01 + w_qmin( 518)=0.535364141E-03 + qk_min( 519)=0.171836309E+01 + w_qmin( 519)=0.552888807E-03 + qk_min( 520)=0.172134932E+01 + w_qmin( 520)=0.570948256E-03 + qk_min( 521)=0.172433556E+01 + w_qmin( 521)=0.589558827E-03 + qk_min( 522)=0.172732180E+01 + w_qmin( 522)=0.608738722E-03 + qk_min( 523)=0.173030803E+01 + w_qmin( 523)=0.628506301E-03 + qk_min( 524)=0.173329427E+01 + w_qmin( 524)=0.648880463E-03 + qk_min( 525)=0.173628050E+01 + w_qmin( 525)=0.669881735E-03 + qk_min( 526)=0.173926674E+01 + w_qmin( 526)=0.691529804E-03 + qk_min( 527)=0.174225298E+01 + w_qmin( 527)=0.713847476E-03 + qk_min( 528)=0.174523921E+01 + w_qmin( 528)=0.736857210E-03 + qk_min( 529)=0.174822545E+01 + w_qmin( 529)=0.760582053E-03 + qk_min( 530)=0.175121168E+01 + w_qmin( 530)=0.785047285E-03 + qk_min( 531)=0.175419792E+01 + w_qmin( 531)=0.810279012E-03 + qk_min( 532)=0.175718416E+01 + w_qmin( 532)=0.836303084E-03 + qk_min( 533)=0.176017039E+01 + w_qmin( 533)=0.863148241E-03 + qk_min( 534)=0.176315663E+01 + w_qmin( 534)=0.890844941E-03 + qk_min( 535)=0.176614286E+01 + w_qmin( 535)=0.919422666E-03 + qk_min( 536)=0.176912910E+01 + w_qmin( 536)=0.948914732E-03 + qk_min( 537)=0.177211533E+01 + w_qmin( 537)=0.979354556E-03 + qk_min( 538)=0.177510157E+01 + w_qmin( 538)=0.101077768E-02 + qk_min( 539)=0.177808781E+01 + w_qmin( 539)=0.104322263E-02 + qk_min( 540)=0.178107404E+01 + w_qmin( 540)=0.107672683E-02 + qk_min( 541)=0.178406028E+01 + w_qmin( 541)=0.111133165E-02 + qk_min( 542)=0.178704651E+01 + w_qmin( 542)=0.114708143E-02 + qk_min( 543)=0.179003275E+01 + w_qmin( 543)=0.118402019E-02 + qk_min( 544)=0.179301899E+01 + w_qmin( 544)=0.122219555E-02 + qk_min( 545)=0.179600522E+01 + w_qmin( 545)=0.126165782E-02 + qk_min( 546)=0.179899146E+01 + w_qmin( 546)=0.130245871E-02 + qk_min( 547)=0.180197769E+01 + w_qmin( 547)=0.134465404E-02 + qk_min( 548)=0.180496393E+01 + w_qmin( 548)=0.138830074E-02 + qk_min( 549)=0.180795017E+01 + w_qmin( 549)=0.143345950E-02 + qk_min( 550)=0.181093640E+01 + w_qmin( 550)=0.148019468E-02 + qk_min( 551)=0.181392264E+01 + w_qmin( 551)=0.152857157E-02 + qk_min( 552)=0.181690887E+01 + w_qmin( 552)=0.157866061E-02 + qk_min( 553)=0.181989511E+01 + w_qmin( 553)=0.163053610E-02 + qk_min( 554)=0.182288135E+01 + w_qmin( 554)=0.168427316E-02 + qk_min( 555)=0.182586758E+01 + w_qmin( 555)=0.173995289E-02 + qk_min( 556)=0.182885382E+01 + w_qmin( 556)=0.179765952E-02 + qk_min( 557)=0.183184005E+01 + w_qmin( 557)=0.185747904E-02 + qk_min( 558)=0.183482629E+01 + w_qmin( 558)=0.191950230E-02 + qk_min( 559)=0.183781253E+01 + w_qmin( 559)=0.198382641E-02 + qk_min( 560)=0.184079876E+01 + w_qmin( 560)=0.205054436E-02 + qk_min( 561)=0.184378500E+01 + w_qmin( 561)=0.211976203E-02 + qk_min( 562)=0.184677123E+01 + w_qmin( 562)=0.219158092E-02 + qk_min( 563)=0.184975747E+01 + w_qmin( 563)=0.226610813E-02 + qk_min( 564)=0.185274371E+01 + w_qmin( 564)=0.234345373E-02 + qk_min( 565)=0.185572994E+01 + w_qmin( 565)=0.242372713E-02 + qk_min( 566)=0.185871618E+01 + w_qmin( 566)=0.250704165E-02 + qk_min( 567)=0.186170241E+01 + w_qmin( 567)=0.259350806E-02 + qk_min( 568)=0.186468865E+01 + w_qmin( 568)=0.268323895E-02 + qk_min( 569)=0.186767489E+01 + w_qmin( 569)=0.277634333E-02 + qk_min( 570)=0.187066112E+01 + w_qmin( 570)=0.287292872E-02 + qk_min( 571)=0.187364736E+01 + w_qmin( 571)=0.297309477E-02 + qk_min( 572)=0.187663359E+01 + w_qmin( 572)=0.307693952E-02 + qk_min( 573)=0.187961983E+01 + w_qmin( 573)=0.318454804E-02 + qk_min( 574)=0.188260607E+01 + w_qmin( 574)=0.329599762E-02 + qk_min( 575)=0.188559230E+01 + w_qmin( 575)=0.341135647E-02 + qk_min( 576)=0.188857854E+01 + w_qmin( 576)=0.353067138E-02 + qk_min( 577)=0.189156477E+01 + w_qmin( 577)=0.365398018E-02 + qk_min( 578)=0.189455101E+01 + w_qmin( 578)=0.378129690E-02 + qk_min( 579)=0.189753725E+01 + w_qmin( 579)=0.391261592E-02 + qk_min( 580)=0.190052348E+01 + w_qmin( 580)=0.404791404E-02 + qk_min( 581)=0.190350972E+01 + w_qmin( 581)=0.418713972E-02 + qk_min( 582)=0.190649595E+01 + w_qmin( 582)=0.433021438E-02 + qk_min( 583)=0.190948219E+01 + w_qmin( 583)=0.447704605E-02 + qk_min( 584)=0.191246843E+01 + w_qmin( 584)=0.462750363E-02 + qk_min( 585)=0.191545466E+01 + w_qmin( 585)=0.478143724E-02 + qk_min( 586)=0.191844090E+01 + w_qmin( 586)=0.493868030E-02 + qk_min( 587)=0.192142713E+01 + w_qmin( 587)=0.509903314E-02 + qk_min( 588)=0.192441337E+01 + w_qmin( 588)=0.526228436E-02 + qk_min( 589)=0.192739961E+01 + w_qmin( 589)=0.542820514E-02 + qk_min( 590)=0.193038584E+01 + w_qmin( 590)=0.559654903E-02 + qk_min( 591)=0.193337208E+01 + w_qmin( 591)=0.576706235E-02 + qk_min( 592)=0.193635831E+01 + w_qmin( 592)=0.593948743E-02 + qk_min( 593)=0.193934455E+01 + w_qmin( 593)=0.611355365E-02 + qk_min( 594)=0.194233079E+01 + w_qmin( 594)=0.628900004E-02 + qk_min( 595)=0.194531702E+01 + w_qmin( 595)=0.646555578E-02 + qk_min( 596)=0.194830326E+01 + w_qmin( 596)=0.664296362E-02 + qk_min( 597)=0.195128949E+01 + w_qmin( 597)=0.682098036E-02 + qk_min( 598)=0.195427573E+01 + w_qmin( 598)=0.699935510E-02 + qk_min( 599)=0.195726196E+01 + w_qmin( 599)=0.717785742E-02 + qk_min( 600)=0.196024820E+01 + w_qmin( 600)=0.735627661E-02 + qk_min( 601)=0.196323444E+01 + w_qmin( 601)=0.753439863E-02 + qk_min( 602)=0.196622067E+01 + w_qmin( 602)=0.771203465E-02 + qk_min( 603)=0.196920691E+01 + w_qmin( 603)=0.788901168E-02 + qk_min( 604)=0.197219314E+01 + w_qmin( 604)=0.806515833E-02 + qk_min( 605)=0.197517938E+01 + w_qmin( 605)=0.824033396E-02 + qk_min( 606)=0.197816562E+01 + w_qmin( 606)=0.841439593E-02 + qk_min( 607)=0.198115185E+01 + w_qmin( 607)=0.858722323E-02 + qk_min( 608)=0.198413809E+01 + w_qmin( 608)=0.875871271E-02 + qk_min( 609)=0.198712432E+01 + w_qmin( 609)=0.892875728E-02 + qk_min( 610)=0.199011056E+01 + w_qmin( 610)=0.909727135E-02 + qk_min( 611)=0.199309680E+01 + w_qmin( 611)=0.926418915E-02 + qk_min( 612)=0.199608303E+01 + w_qmin( 612)=0.942943341E-02 + qk_min( 613)=0.199906927E+01 + w_qmin( 613)=0.959294908E-02 + qk_min( 614)=0.200205550E+01 + w_qmin( 614)=0.975468924E-02 + qk_min( 615)=0.200504174E+01 + w_qmin( 615)=0.991462229E-02 + qk_min( 616)=0.200802798E+01 + w_qmin( 616)=0.100726954E-01 + qk_min( 617)=0.201101421E+01 + w_qmin( 617)=0.102288893E-01 + qk_min( 618)=0.201400045E+01 + w_qmin( 618)=0.103831838E-01 + qk_min( 619)=0.201698668E+01 + w_qmin( 619)=0.105355603E-01 + qk_min( 620)=0.201997292E+01 + w_qmin( 620)=0.106860098E-01 + qk_min( 621)=0.202295916E+01 + w_qmin( 621)=0.108345319E-01 + qk_min( 622)=0.202594539E+01 + w_qmin( 622)=0.109811024E-01 + qk_min( 623)=0.202893163E+01 + w_qmin( 623)=0.111257341E-01 + qk_min( 624)=0.203191786E+01 + w_qmin( 624)=0.112684298E-01 + qk_min( 625)=0.203490410E+01 + w_qmin( 625)=0.114091923E-01 + qk_min( 626)=0.203789034E+01 + w_qmin( 626)=0.115480445E-01 + qk_min( 627)=0.204087657E+01 + w_qmin( 627)=0.116849705E-01 + qk_min( 628)=0.204386281E+01 + w_qmin( 628)=0.118199965E-01 + qk_min( 629)=0.204684904E+01 + w_qmin( 629)=0.119531346E-01 + qk_min( 630)=0.204983528E+01 + w_qmin( 630)=0.120844006E-01 + qk_min( 631)=0.205282152E+01 + w_qmin( 631)=0.122138135E-01 + qk_min( 632)=0.205580775E+01 + w_qmin( 632)=0.123414023E-01 + qk_min( 633)=0.205879399E+01 + w_qmin( 633)=0.124671592E-01 + qk_min( 634)=0.206178022E+01 + w_qmin( 634)=0.125911196E-01 + qk_min( 635)=0.206476646E+01 + w_qmin( 635)=0.127132995E-01 + qk_min( 636)=0.206775270E+01 + w_qmin( 636)=0.128337247E-01 + qk_min( 637)=0.207073893E+01 + w_qmin( 637)=0.129524278E-01 + qk_min( 638)=0.207372517E+01 + w_qmin( 638)=0.130694050E-01 + qk_min( 639)=0.207671140E+01 + w_qmin( 639)=0.131846907E-01 + qk_min( 640)=0.207969764E+01 + w_qmin( 640)=0.132983123E-01 + qk_min( 641)=0.208268388E+01 + w_qmin( 641)=0.134102859E-01 + qk_min( 642)=0.208567011E+01 + w_qmin( 642)=0.135206395E-01 + qk_min( 643)=0.208865635E+01 + w_qmin( 643)=0.136294069E-01 + qk_min( 644)=0.209164258E+01 + w_qmin( 644)=0.137365862E-01 + qk_min( 645)=0.209462882E+01 + w_qmin( 645)=0.138422124E-01 + qk_min( 646)=0.209761506E+01 + w_qmin( 646)=0.139463108E-01 + qk_min( 647)=0.210060129E+01 + w_qmin( 647)=0.140489012E-01 + qk_min( 648)=0.210358753E+01 + w_qmin( 648)=0.141500199E-01 + qk_min( 649)=0.210657376E+01 + w_qmin( 649)=0.142496662E-01 + qk_min( 650)=0.210956000E+01 + w_qmin( 650)=0.143478715E-01 + qk_min( 651)=0.211254624E+01 + w_qmin( 651)=0.144446632E-01 + qk_min( 652)=0.211553247E+01 + w_qmin( 652)=0.145400583E-01 + qk_min( 653)=0.211851871E+01 + w_qmin( 653)=0.146340828E-01 + qk_min( 654)=0.212150494E+01 + w_qmin( 654)=0.147267691E-01 + qk_min( 655)=0.212449118E+01 + w_qmin( 655)=0.148181103E-01 + qk_min( 656)=0.212747742E+01 + w_qmin( 656)=0.149081453E-01 + qk_min( 657)=0.213046365E+01 + w_qmin( 657)=0.149968931E-01 + qk_min( 658)=0.213344989E+01 + w_qmin( 658)=0.150843719E-01 + qk_min( 659)=0.213643612E+01 + w_qmin( 659)=0.151706188E-01 + qk_min( 660)=0.213942236E+01 + w_qmin( 660)=0.152556261E-01 + qk_min( 661)=0.214240859E+01 + w_qmin( 661)=0.153394238E-01 + qk_min( 662)=0.214539483E+01 + w_qmin( 662)=0.154220366E-01 + qk_min( 663)=0.214838107E+01 + w_qmin( 663)=0.155034801E-01 + qk_min( 664)=0.215136730E+01 + w_qmin( 664)=0.155837748E-01 + qk_min( 665)=0.215435354E+01 + w_qmin( 665)=0.156629538E-01 + qk_min( 666)=0.215733977E+01 + w_qmin( 666)=0.157410074E-01 + qk_min( 667)=0.216032601E+01 + w_qmin( 667)=0.158179681E-01 + qk_min( 668)=0.216331225E+01 + w_qmin( 668)=0.158938541E-01 + qk_min( 669)=0.216629848E+01 + w_qmin( 669)=0.159686826E-01 + qk_min( 670)=0.216928472E+01 + w_qmin( 670)=0.160424840E-01 + qk_min( 671)=0.217227095E+01 + w_qmin( 671)=0.161152479E-01 + qk_min( 672)=0.217525719E+01 + w_qmin( 672)=0.161870103E-01 + qk_min( 673)=0.217824343E+01 + w_qmin( 673)=0.162577788E-01 + qk_min( 674)=0.218122966E+01 + w_qmin( 674)=0.163275787E-01 + qk_min( 675)=0.218421590E+01 + w_qmin( 675)=0.163964232E-01 + qk_min( 676)=0.218720213E+01 + w_qmin( 676)=0.164643391E-01 + qk_min( 677)=0.219018837E+01 + w_qmin( 677)=0.165313205E-01 + qk_min( 678)=0.219317461E+01 + w_qmin( 678)=0.165973881E-01 + qk_min( 679)=0.219616084E+01 + w_qmin( 679)=0.166625641E-01 + qk_min( 680)=0.219914708E+01 + w_qmin( 680)=0.167268572E-01 + qk_min( 681)=0.220213331E+01 + w_qmin( 681)=0.167903009E-01 + qk_min( 682)=0.220511955E+01 + w_qmin( 682)=0.168528775E-01 + qk_min( 683)=0.220810579E+01 + w_qmin( 683)=0.169146152E-01 + qk_min( 684)=0.221109202E+01 + w_qmin( 684)=0.169755246E-01 + qk_min( 685)=0.221407826E+01 + w_qmin( 685)=0.170356213E-01 + qk_min( 686)=0.221706449E+01 + w_qmin( 686)=0.170949171E-01 + qk_min( 687)=0.222005073E+01 + w_qmin( 687)=0.171534415E-01 + qk_min( 688)=0.222303697E+01 + w_qmin( 688)=0.172111728E-01 + qk_min( 689)=0.222602320E+01 + w_qmin( 689)=0.172681398E-01 + qk_min( 690)=0.222900944E+01 + w_qmin( 690)=0.173243582E-01 + qk_min( 691)=0.223199567E+01 + w_qmin( 691)=0.173798301E-01 + qk_min( 692)=0.223498191E+01 + w_qmin( 692)=0.174345971E-01 + qk_min( 693)=0.223796815E+01 + w_qmin( 693)=0.174886299E-01 + qk_min( 694)=0.224095438E+01 + w_qmin( 694)=0.175419632E-01 + qk_min( 695)=0.224394062E+01 + w_qmin( 695)=0.175946025E-01 + qk_min( 696)=0.224692685E+01 + w_qmin( 696)=0.176465629E-01 + qk_min( 697)=0.224991309E+01 + w_qmin( 697)=0.176978608E-01 + qk_min( 698)=0.225289933E+01 + w_qmin( 698)=0.177485202E-01 + qk_min( 699)=0.225588556E+01 + w_qmin( 699)=0.177985286E-01 + qk_min( 700)=0.225887180E+01 + w_qmin( 700)=0.178478959E-01 + qk_min( 701)=0.226185803E+01 + w_qmin( 701)=0.178966537E-01 + qk_min( 702)=0.226484427E+01 + w_qmin( 702)=0.179448012E-01 + qk_min( 703)=0.226783051E+01 + w_qmin( 703)=0.179923681E-01 + qk_min( 704)=0.227081674E+01 + w_qmin( 704)=0.180393329E-01 + qk_min( 705)=0.227380298E+01 + w_qmin( 705)=0.180857222E-01 + qk_min( 706)=0.227678921E+01 + w_qmin( 706)=0.181315403E-01 + qk_min( 707)=0.227977545E+01 + w_qmin( 707)=0.181767980E-01 + qk_min( 708)=0.228276169E+01 + w_qmin( 708)=0.182215072E-01 + qk_min( 709)=0.228574792E+01 + w_qmin( 709)=0.182656858E-01 + qk_min( 710)=0.228873416E+01 + w_qmin( 710)=0.183093106E-01 + qk_min( 711)=0.229172039E+01 + w_qmin( 711)=0.183524032E-01 + qk_min( 712)=0.229470663E+01 + w_qmin( 712)=0.183949727E-01 + qk_min( 713)=0.229769287E+01 + w_qmin( 713)=0.184370255E-01 + qk_min( 714)=0.230067910E+01 + w_qmin( 714)=0.184785801E-01 + qk_min( 715)=0.230366534E+01 + w_qmin( 715)=0.185196119E-01 + qk_min( 716)=0.230665157E+01 + w_qmin( 716)=0.185601483E-01 + qk_min( 717)=0.230963781E+01 + w_qmin( 717)=0.186001946E-01 + qk_min( 718)=0.231262405E+01 + w_qmin( 718)=0.186397515E-01 + qk_min( 719)=0.231561028E+01 + w_qmin( 719)=0.186788294E-01 + qk_min( 720)=0.231859652E+01 + w_qmin( 720)=0.187174615E-01 + qk_min( 721)=0.232158275E+01 + w_qmin( 721)=0.187556096E-01 + qk_min( 722)=0.232456899E+01 + w_qmin( 722)=0.187933082E-01 + qk_min( 723)=0.232755522E+01 + w_qmin( 723)=0.188305624E-01 + qk_min( 724)=0.233054146E+01 + w_qmin( 724)=0.188673824E-01 + qk_min( 725)=0.233352770E+01 + w_qmin( 725)=0.189037949E-01 + qk_min( 726)=0.233651393E+01 + w_qmin( 726)=0.189397778E-01 + qk_min( 727)=0.233950017E+01 + w_qmin( 727)=0.189753492E-01 + qk_min( 728)=0.234248640E+01 + w_qmin( 728)=0.190105254E-01 + qk_min( 729)=0.234547264E+01 + w_qmin( 729)=0.190453153E-01 + qk_min( 730)=0.234845888E+01 + w_qmin( 730)=0.190797269E-01 + qk_min( 731)=0.235144511E+01 + w_qmin( 731)=0.191137845E-01 + qk_min( 732)=0.235443135E+01 + w_qmin( 732)=0.191474604E-01 + qk_min( 733)=0.235741758E+01 + w_qmin( 733)=0.191807822E-01 + qk_min( 734)=0.236040382E+01 + w_qmin( 734)=0.192137587E-01 + qk_min( 735)=0.236339006E+01 + w_qmin( 735)=0.192463875E-01 + qk_min( 736)=0.236637629E+01 + w_qmin( 736)=0.192786988E-01 + qk_min( 737)=0.236936253E+01 + w_qmin( 737)=0.193106570E-01 + qk_min( 738)=0.237234876E+01 + w_qmin( 738)=0.193422911E-01 + qk_min( 739)=0.237533500E+01 + w_qmin( 739)=0.193736007E-01 + qk_min( 740)=0.237832124E+01 + w_qmin( 740)=0.194045867E-01 + qk_min( 741)=0.238130747E+01 + w_qmin( 741)=0.194352575E-01 + qk_min( 742)=0.238429371E+01 + w_qmin( 742)=0.194656293E-01 + qk_min( 743)=0.238727994E+01 + w_qmin( 743)=0.194956639E-01 + qk_min( 744)=0.239026618E+01 + w_qmin( 744)=0.195253908E-01 + qk_min( 745)=0.239325242E+01 + w_qmin( 745)=0.195548023E-01 + qk_min( 746)=0.239623865E+01 + w_qmin( 746)=0.195839100E-01 + qk_min( 747)=0.239922489E+01 + w_qmin( 747)=0.196127197E-01 + qk_min( 748)=0.240221112E+01 + w_qmin( 748)=0.196412099E-01 + qk_min( 749)=0.240519736E+01 + w_qmin( 749)=0.196693885E-01 + qk_min( 750)=0.240818360E+01 + w_qmin( 750)=0.196972667E-01 + qk_min( 751)=0.241116983E+01 + w_qmin( 751)=0.197248463E-01 + qk_min( 752)=0.241415607E+01 + w_qmin( 752)=0.197521245E-01 + qk_min( 753)=0.241714230E+01 + w_qmin( 753)=0.197791298E-01 + qk_min( 754)=0.242012854E+01 + w_qmin( 754)=0.198058300E-01 + qk_min( 755)=0.242311478E+01 + w_qmin( 755)=0.198322465E-01 + qk_min( 756)=0.242610101E+01 + w_qmin( 756)=0.198583839E-01 + qk_min( 757)=0.242908725E+01 + w_qmin( 757)=0.198842496E-01 + qk_min( 758)=0.243207348E+01 + w_qmin( 758)=0.199098720E-01 + qk_min( 759)=0.243505972E+01 + w_qmin( 759)=0.199352178E-01 + qk_min( 760)=0.243804596E+01 + w_qmin( 760)=0.199603180E-01 + qk_min( 761)=0.244103219E+01 + w_qmin( 761)=0.199851764E-01 + qk_min( 762)=0.244401843E+01 + w_qmin( 762)=0.200098100E-01 + qk_min( 763)=0.244700466E+01 + w_qmin( 763)=0.200342154E-01 + qk_min( 764)=0.244999090E+01 + w_qmin( 764)=0.200584302E-01 + qk_min( 765)=0.245297714E+01 + w_qmin( 765)=0.200824225E-01 + qk_min( 766)=0.245596337E+01 + w_qmin( 766)=0.201062163E-01 + qk_min( 767)=0.245894961E+01 + w_qmin( 767)=0.201298320E-01 + qk_min( 768)=0.246193584E+01 + w_qmin( 768)=0.201532643E-01 + qk_min( 769)=0.246492208E+01 + w_qmin( 769)=0.201765465E-01 + qk_min( 770)=0.246790832E+01 + w_qmin( 770)=0.201996489E-01 + qk_min( 771)=0.247089455E+01 + w_qmin( 771)=0.202225967E-01 + qk_min( 772)=0.247388079E+01 + w_qmin( 772)=0.202453918E-01 + qk_min( 773)=0.247686702E+01 + w_qmin( 773)=0.202680411E-01 + qk_min( 774)=0.247985326E+01 + w_qmin( 774)=0.202905521E-01 + qk_min( 775)=0.248283950E+01 + w_qmin( 775)=0.203129378E-01 + qk_min( 776)=0.248582573E+01 + w_qmin( 776)=0.203351772E-01 + qk_min( 777)=0.248881197E+01 + w_qmin( 777)=0.203572820E-01 + qk_min( 778)=0.249179820E+01 + w_qmin( 778)=0.203792539E-01 + qk_min( 779)=0.249478444E+01 + w_qmin( 779)=0.204011005E-01 + qk_min( 780)=0.249777068E+01 + w_qmin( 780)=0.204228238E-01 + qk_min( 781)=0.250075691E+01 + w_qmin( 781)=0.204444094E-01 + qk_min( 782)=0.250374315E+01 + w_qmin( 782)=0.204658525E-01 + qk_min( 783)=0.250672938E+01 + w_qmin( 783)=0.204871663E-01 + qk_min( 784)=0.250971562E+01 + w_qmin( 784)=0.205083419E-01 + qk_min( 785)=0.251270185E+01 + w_qmin( 785)=0.205293734E-01 + qk_min( 786)=0.251568809E+01 + w_qmin( 786)=0.205502826E-01 + qk_min( 787)=0.251867433E+01 + w_qmin( 787)=0.205710219E-01 + qk_min( 788)=0.252166056E+01 + w_qmin( 788)=0.205916076E-01 + qk_min( 789)=0.252464680E+01 + w_qmin( 789)=0.206120492E-01 + qk_min( 790)=0.252763303E+01 + w_qmin( 790)=0.206323276E-01 + qk_min( 791)=0.253061927E+01 + w_qmin( 791)=0.206524614E-01 + qk_min( 792)=0.253360551E+01 + w_qmin( 792)=0.206724200E-01 + qk_min( 793)=0.253659174E+01 + w_qmin( 793)=0.206922093E-01 + qk_min( 794)=0.253957798E+01 + w_qmin( 794)=0.207118259E-01 + qk_min( 795)=0.254256421E+01 + w_qmin( 795)=0.207312799E-01 + qk_min( 796)=0.254555045E+01 + w_qmin( 796)=0.207505596E-01 + qk_min( 797)=0.254853669E+01 + w_qmin( 797)=0.207696884E-01 + qk_min( 798)=0.255152292E+01 + w_qmin( 798)=0.207886275E-01 + qk_min( 799)=0.255450916E+01 + w_qmin( 799)=0.208073986E-01 + qk_min( 800)=0.255749539E+01 + w_qmin( 800)=0.208260043E-01 + qk_min( 801)=0.256048163E+01 + w_qmin( 801)=0.208444481E-01 + qk_min( 802)=0.256346787E+01 + w_qmin( 802)=0.208627364E-01 + qk_min( 803)=0.256645410E+01 + w_qmin( 803)=0.208808634E-01 + qk_min( 804)=0.256944034E+01 + w_qmin( 804)=0.208988348E-01 + qk_min( 805)=0.257242657E+01 + w_qmin( 805)=0.209166573E-01 + qk_min( 806)=0.257541281E+01 + w_qmin( 806)=0.209343399E-01 + qk_min( 807)=0.257839905E+01 + w_qmin( 807)=0.209518904E-01 + qk_min( 808)=0.258138528E+01 + w_qmin( 808)=0.209693308E-01 + qk_min( 809)=0.258437152E+01 + w_qmin( 809)=0.209866286E-01 + qk_min( 810)=0.258735775E+01 + w_qmin( 810)=0.210038226E-01 + qk_min( 811)=0.259034399E+01 + w_qmin( 811)=0.210209134E-01 + qk_min( 812)=0.259333023E+01 + w_qmin( 812)=0.210379105E-01 + qk_min( 813)=0.259631646E+01 + w_qmin( 813)=0.210548386E-01 + qk_min( 814)=0.259930270E+01 + w_qmin( 814)=0.210716804E-01 + qk_min( 815)=0.260228893E+01 + w_qmin( 815)=0.210884458E-01 + qk_min( 816)=0.260527517E+01 + w_qmin( 816)=0.211051674E-01 + qk_min( 817)=0.260826141E+01 + w_qmin( 817)=0.211218344E-01 + qk_min( 818)=0.261124764E+01 + w_qmin( 818)=0.211384647E-01 + qk_min( 819)=0.261423388E+01 + w_qmin( 819)=0.211550795E-01 + qk_min( 820)=0.261722011E+01 + w_qmin( 820)=0.211716577E-01 + qk_min( 821)=0.262020635E+01 + w_qmin( 821)=0.211882200E-01 + qk_min( 822)=0.262319259E+01 + w_qmin( 822)=0.212047806E-01 + qk_min( 823)=0.262617882E+01 + w_qmin( 823)=0.212213377E-01 + qk_min( 824)=0.262916506E+01 + w_qmin( 824)=0.212379084E-01 + qk_min( 825)=0.263215129E+01 + w_qmin( 825)=0.212544766E-01 + qk_min( 826)=0.263513753E+01 + w_qmin( 826)=0.212710628E-01 + qk_min( 827)=0.263812377E+01 + w_qmin( 827)=0.212876624E-01 + qk_min( 828)=0.264111000E+01 + w_qmin( 828)=0.213042839E-01 + qk_min( 829)=0.264409624E+01 + w_qmin( 829)=0.213209307E-01 + qk_min( 830)=0.264708247E+01 + w_qmin( 830)=0.213376112E-01 + qk_min( 831)=0.265006871E+01 + w_qmin( 831)=0.213542997E-01 + qk_min( 832)=0.265305495E+01 + w_qmin( 832)=0.213710178E-01 + qk_min( 833)=0.265604118E+01 + w_qmin( 833)=0.213877536E-01 + qk_min( 834)=0.265902742E+01 + w_qmin( 834)=0.214045146E-01 + qk_min( 835)=0.266201365E+01 + w_qmin( 835)=0.214212992E-01 + qk_min( 836)=0.266499989E+01 + w_qmin( 836)=0.214380876E-01 + qk_min( 837)=0.266798613E+01 + w_qmin( 837)=0.214548824E-01 + qk_min( 838)=0.267097236E+01 + w_qmin( 838)=0.214716909E-01 + qk_min( 839)=0.267395860E+01 + w_qmin( 839)=0.214884922E-01 + qk_min( 840)=0.267694483E+01 + w_qmin( 840)=0.215052997E-01 + qk_min( 841)=0.267993107E+01 + w_qmin( 841)=0.215221154E-01 + qk_min( 842)=0.268291730E+01 + w_qmin( 842)=0.215388959E-01 + qk_min( 843)=0.268590354E+01 + w_qmin( 843)=0.215556562E-01 + qk_min( 844)=0.268888978E+01 + w_qmin( 844)=0.215723984E-01 + qk_min( 845)=0.269187601E+01 + w_qmin( 845)=0.215891019E-01 + qk_min( 846)=0.269486225E+01 + w_qmin( 846)=0.216057878E-01 + qk_min( 847)=0.269784848E+01 + w_qmin( 847)=0.216224100E-01 + qk_min( 848)=0.270083472E+01 + w_qmin( 848)=0.216389850E-01 + qk_min( 849)=0.270382096E+01 + w_qmin( 849)=0.216555078E-01 + qk_min( 850)=0.270680719E+01 + w_qmin( 850)=0.216719646E-01 + qk_min( 851)=0.270979343E+01 + w_qmin( 851)=0.216883554E-01 + qk_min( 852)=0.271277966E+01 + w_qmin( 852)=0.217046927E-01 + qk_min( 853)=0.271576590E+01 + w_qmin( 853)=0.217209473E-01 + qk_min( 854)=0.271875214E+01 + w_qmin( 854)=0.217371074E-01 + qk_min( 855)=0.272173837E+01 + w_qmin( 855)=0.217531950E-01 + qk_min( 856)=0.272472461E+01 + w_qmin( 856)=0.217692009E-01 + qk_min( 857)=0.272771084E+01 + w_qmin( 857)=0.217851223E-01 + qk_min( 858)=0.273069708E+01 + w_qmin( 858)=0.218009415E-01 + qk_min( 859)=0.273368332E+01 + w_qmin( 859)=0.218166714E-01 + qk_min( 860)=0.273666955E+01 + w_qmin( 860)=0.218323080E-01 + qk_min( 861)=0.273965579E+01 + w_qmin( 861)=0.218478544E-01 + qk_min( 862)=0.274264202E+01 + w_qmin( 862)=0.218633094E-01 + qk_min( 863)=0.274562826E+01 + w_qmin( 863)=0.218786805E-01 + qk_min( 864)=0.274861450E+01 + w_qmin( 864)=0.218939532E-01 + qk_min( 865)=0.275160073E+01 + w_qmin( 865)=0.219091338E-01 + qk_min( 866)=0.275458697E+01 + w_qmin( 866)=0.219242331E-01 + qk_min( 867)=0.275757320E+01 + w_qmin( 867)=0.219392516E-01 + qk_min( 868)=0.276055944E+01 + w_qmin( 868)=0.219542071E-01 + qk_min( 869)=0.276354568E+01 + w_qmin( 869)=0.219690692E-01 + qk_min( 870)=0.276653191E+01 + w_qmin( 870)=0.219838618E-01 + qk_min( 871)=0.276951815E+01 + w_qmin( 871)=0.219985889E-01 + qk_min( 872)=0.277250438E+01 + w_qmin( 872)=0.220132414E-01 + qk_min( 873)=0.277549062E+01 + w_qmin( 873)=0.220278473E-01 + qk_min( 874)=0.277847686E+01 + w_qmin( 874)=0.220424160E-01 + qk_min( 875)=0.278146309E+01 + w_qmin( 875)=0.220569198E-01 + qk_min( 876)=0.278444933E+01 + w_qmin( 876)=0.220713889E-01 + qk_min( 877)=0.278743556E+01 + w_qmin( 877)=0.220858345E-01 + qk_min( 878)=0.279042180E+01 + w_qmin( 878)=0.221002366E-01 + qk_min( 879)=0.279340804E+01 + w_qmin( 879)=0.221146318E-01 + qk_min( 880)=0.279639427E+01 + w_qmin( 880)=0.221290153E-01 + qk_min( 881)=0.279938051E+01 + w_qmin( 881)=0.221433895E-01 + qk_min( 882)=0.280236674E+01 + w_qmin( 882)=0.221577555E-01 + qk_min( 883)=0.280535298E+01 + w_qmin( 883)=0.221721332E-01 + qk_min( 884)=0.280833922E+01 + w_qmin( 884)=0.221865214E-01 + qk_min( 885)=0.281132545E+01 + w_qmin( 885)=0.222009499E-01 + qk_min( 886)=0.281431169E+01 + w_qmin( 886)=0.222154001E-01 + qk_min( 887)=0.281729792E+01 + w_qmin( 887)=0.222298815E-01 + qk_min( 888)=0.282028416E+01 + w_qmin( 888)=0.222444115E-01 + qk_min( 889)=0.282327040E+01 + w_qmin( 889)=0.222589981E-01 + qk_min( 890)=0.282625663E+01 + w_qmin( 890)=0.222736348E-01 + qk_min( 891)=0.282924287E+01 + w_qmin( 891)=0.222883526E-01 + qk_min( 892)=0.283222910E+01 + w_qmin( 892)=0.223031301E-01 + qk_min( 893)=0.283521534E+01 + w_qmin( 893)=0.223179987E-01 + qk_min( 894)=0.283820158E+01 + w_qmin( 894)=0.223329387E-01 + qk_min( 895)=0.284118781E+01 + w_qmin( 895)=0.223479838E-01 + qk_min( 896)=0.284417405E+01 + w_qmin( 896)=0.223631308E-01 + qk_min( 897)=0.284716028E+01 + w_qmin( 897)=0.223783701E-01 + qk_min( 898)=0.285014652E+01 + w_qmin( 898)=0.223937147E-01 + qk_min( 899)=0.285313276E+01 + w_qmin( 899)=0.224091676E-01 + qk_min( 900)=0.285611899E+01 + w_qmin( 900)=0.224247395E-01 + qk_min( 901)=0.285910523E+01 + w_qmin( 901)=0.224404371E-01 + qk_min( 902)=0.286209146E+01 + w_qmin( 902)=0.224562550E-01 + qk_min( 903)=0.286507770E+01 + w_qmin( 903)=0.224721864E-01 + qk_min( 904)=0.286806393E+01 + w_qmin( 904)=0.224882382E-01 + qk_min( 905)=0.287105017E+01 + w_qmin( 905)=0.225044056E-01 + qk_min( 906)=0.287403641E+01 + w_qmin( 906)=0.225207191E-01 + qk_min( 907)=0.287702264E+01 + w_qmin( 907)=0.225371498E-01 + qk_min( 908)=0.288000888E+01 + w_qmin( 908)=0.225536978E-01 + qk_min( 909)=0.288299511E+01 + w_qmin( 909)=0.225703591E-01 + qk_min( 910)=0.288598135E+01 + w_qmin( 910)=0.225871495E-01 + qk_min( 911)=0.288896759E+01 + w_qmin( 911)=0.226040409E-01 + qk_min( 912)=0.289195382E+01 + w_qmin( 912)=0.226210497E-01 + qk_min( 913)=0.289494006E+01 + w_qmin( 913)=0.226381881E-01 + qk_min( 914)=0.289792629E+01 + w_qmin( 914)=0.226554163E-01 + qk_min( 915)=0.290091253E+01 + w_qmin( 915)=0.226727412E-01 + qk_min( 916)=0.290389877E+01 + w_qmin( 916)=0.226901695E-01 + qk_min( 917)=0.290688500E+01 + w_qmin( 917)=0.227076836E-01 + qk_min( 918)=0.290987124E+01 + w_qmin( 918)=0.227252900E-01 + qk_min( 919)=0.291285747E+01 + w_qmin( 919)=0.227429806E-01 + qk_min( 920)=0.291584371E+01 + w_qmin( 920)=0.227607376E-01 + qk_min( 921)=0.291882995E+01 + w_qmin( 921)=0.227785663E-01 + qk_min( 922)=0.292181618E+01 + w_qmin( 922)=0.227964612E-01 + qk_min( 923)=0.292480242E+01 + w_qmin( 923)=0.228144070E-01 + qk_min( 924)=0.292778865E+01 + w_qmin( 924)=0.228324315E-01 + qk_min( 925)=0.293077489E+01 + w_qmin( 925)=0.228504829E-01 + qk_min( 926)=0.293376113E+01 + w_qmin( 926)=0.228685835E-01 + qk_min( 927)=0.293674736E+01 + w_qmin( 927)=0.228867053E-01 + qk_min( 928)=0.293973360E+01 + w_qmin( 928)=0.229048652E-01 + qk_min( 929)=0.294271983E+01 + w_qmin( 929)=0.229230603E-01 + qk_min( 930)=0.294570607E+01 + w_qmin( 930)=0.229412501E-01 + qk_min( 931)=0.294869231E+01 + w_qmin( 931)=0.229594679E-01 + qk_min( 932)=0.295167854E+01 + w_qmin( 932)=0.229776894E-01 + qk_min( 933)=0.295466478E+01 + w_qmin( 933)=0.229959141E-01 + qk_min( 934)=0.295765101E+01 + w_qmin( 934)=0.230141333E-01 + qk_min( 935)=0.296063725E+01 + w_qmin( 935)=0.230323669E-01 + qk_min( 936)=0.296362349E+01 + w_qmin( 936)=0.230505769E-01 + qk_min( 937)=0.296660972E+01 + w_qmin( 937)=0.230687806E-01 + qk_min( 938)=0.296959596E+01 + w_qmin( 938)=0.230869536E-01 + qk_min( 939)=0.297258219E+01 + w_qmin( 939)=0.231051289E-01 + qk_min( 940)=0.297556843E+01 + w_qmin( 940)=0.231232707E-01 + qk_min( 941)=0.297855467E+01 + w_qmin( 941)=0.231413792E-01 + qk_min( 942)=0.298154090E+01 + w_qmin( 942)=0.231594641E-01 + qk_min( 943)=0.298452714E+01 + w_qmin( 943)=0.231775183E-01 + qk_min( 944)=0.298751337E+01 + w_qmin( 944)=0.231955454E-01 + qk_min( 945)=0.299049961E+01 + w_qmin( 945)=0.232135373E-01 + qk_min( 946)=0.299348585E+01 + w_qmin( 946)=0.232315001E-01 + qk_min( 947)=0.299647208E+01 + w_qmin( 947)=0.232494192E-01 + qk_min( 948)=0.299945832E+01 + w_qmin( 948)=0.232673042E-01 + qk_min( 949)=0.300244455E+01 + w_qmin( 949)=0.232851580E-01 + qk_min( 950)=0.300543079E+01 + w_qmin( 950)=0.233029694E-01 + qk_min( 951)=0.300841703E+01 + w_qmin( 951)=0.233207514E-01 + qk_min( 952)=0.301140326E+01 + w_qmin( 952)=0.233384939E-01 + qk_min( 953)=0.301438950E+01 + w_qmin( 953)=0.233561936E-01 + qk_min( 954)=0.301737573E+01 + w_qmin( 954)=0.233738681E-01 + qk_min( 955)=0.302036197E+01 + w_qmin( 955)=0.233914984E-01 + qk_min( 956)=0.302334821E+01 + w_qmin( 956)=0.234091148E-01 + qk_min( 957)=0.302633444E+01 + w_qmin( 957)=0.234266923E-01 + qk_min( 958)=0.302932068E+01 + w_qmin( 958)=0.234442482E-01 + qk_min( 959)=0.303230691E+01 + w_qmin( 959)=0.234617565E-01 + qk_min( 960)=0.303529315E+01 + w_qmin( 960)=0.234792575E-01 + qk_min( 961)=0.303827939E+01 + w_qmin( 961)=0.234967327E-01 + qk_min( 962)=0.304126562E+01 + w_qmin( 962)=0.235141912E-01 + qk_min( 963)=0.304425186E+01 + w_qmin( 963)=0.235316186E-01 + qk_min( 964)=0.304723809E+01 + w_qmin( 964)=0.235490383E-01 + qk_min( 965)=0.305022433E+01 + w_qmin( 965)=0.235664448E-01 + qk_min( 966)=0.305321056E+01 + w_qmin( 966)=0.235838473E-01 + qk_min( 967)=0.305619680E+01 + w_qmin( 967)=0.236012407E-01 + qk_min( 968)=0.305918304E+01 + w_qmin( 968)=0.236186374E-01 + qk_min( 969)=0.306216927E+01 + w_qmin( 969)=0.236360168E-01 + qk_min( 970)=0.306515551E+01 + w_qmin( 970)=0.236534103E-01 + qk_min( 971)=0.306814174E+01 + w_qmin( 971)=0.236708031E-01 + qk_min( 972)=0.307112798E+01 + w_qmin( 972)=0.236882071E-01 + qk_min( 973)=0.307411422E+01 + w_qmin( 973)=0.237056372E-01 + qk_min( 974)=0.307710045E+01 + w_qmin( 974)=0.237230797E-01 + qk_min( 975)=0.308008669E+01 + w_qmin( 975)=0.237405326E-01 + qk_min( 976)=0.308307292E+01 + w_qmin( 976)=0.237580036E-01 + qk_min( 977)=0.308605916E+01 + w_qmin( 977)=0.237755219E-01 + qk_min( 978)=0.308904540E+01 + w_qmin( 978)=0.237930688E-01 + qk_min( 979)=0.309203163E+01 + w_qmin( 979)=0.238106525E-01 + qk_min( 980)=0.309501787E+01 + w_qmin( 980)=0.238282891E-01 + qk_min( 981)=0.309800410E+01 + w_qmin( 981)=0.238459565E-01 + qk_min( 982)=0.310099034E+01 + w_qmin( 982)=0.238636744E-01 + qk_min( 983)=0.310397658E+01 + w_qmin( 983)=0.238814546E-01 + qk_min( 984)=0.310696281E+01 + w_qmin( 984)=0.238993028E-01 + qk_min( 985)=0.310994905E+01 + w_qmin( 985)=0.239171986E-01 + qk_min( 986)=0.311293528E+01 + w_qmin( 986)=0.239351669E-01 + qk_min( 987)=0.311592152E+01 + w_qmin( 987)=0.239532177E-01 + qk_min( 988)=0.311890776E+01 + w_qmin( 988)=0.239713333E-01 + qk_min( 989)=0.312189399E+01 + w_qmin( 989)=0.239895409E-01 + qk_min( 990)=0.312488023E+01 + w_qmin( 990)=0.240078380E-01 + qk_min( 991)=0.312786646E+01 + w_qmin( 991)=0.240262264E-01 + qk_min( 992)=0.313085270E+01 + w_qmin( 992)=0.240447070E-01 + qk_min( 993)=0.313383894E+01 + w_qmin( 993)=0.240632838E-01 + qk_min( 994)=0.313682517E+01 + w_qmin( 994)=0.240819687E-01 + qk_min( 995)=0.313981141E+01 + w_qmin( 995)=0.241007713E-01 + qk_min( 996)=0.314279764E+01 + w_qmin( 996)=0.241196804E-01 + qk_min( 997)=0.314578388E+01 + w_qmin( 997)=0.241387052E-01 + qk_min( 998)=0.314877012E+01 + w_qmin( 998)=0.241578507E-01 + qk_min( 999)=0.315175635E+01 + w_qmin( 999)=0.241771224E-01 + qk_min(1000)=0.315474259E+01 + w_qmin(1000)=0.241965235E-01 + qk_min(1001)=0.315772882E+01 + w_qmin(1001)=0.242160684E-01 + + END diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/value_parameter.f b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/value_parameter.f new file mode 100644 index 00000000000..4f70bd9aa1b --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/value_parameter.f @@ -0,0 +1,488 @@ + SUBROUTINE CH3PISET(JJ) +C information on 3 pion sub-channel under construction obtained +C J3PI=1 means 3 prong +C J3PI=2 means 1 prong +C to be initialized in routine DPHSAA of tauola.f + COMMON /CHANOPT/ J3PI + INTEGER J3PI + J3PI=JJ + end + + SUBROUTINE CH3PIGET(JJ) +C information on 3 pion sub-channel under construction obtained +C J3PI=1 means 3 prong +C J3PI=2 means 1 prong +C to be initialized in routine DPHSAA of tauola.f + COMMON /CHANOPT/ J3PI + INTEGER J3PI + IF (J3PI.EQ.1.OR.J3PI.EQ.2) THEN + JJ=J3PI + ELSE + write(*,*) 'FROM value_parameter.f CH3PIGET, wrong J3PI=',J3PI + stop + ENDIF + end + + SUBROUTINE GETFF2PIRHO(JJ) + IMPLICIT NONE + include '../parameter.inc' + INTEGER JJ + JJ = FF2PIRHO + END + + SUBROUTINE OLACHNL(SIGN) +C provides sign of tau, to be used in CP dependent parts of current. + COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM + INTEGER JAK1,JAK2,JAKP,JAKM,KTOM + COMMON / IDFC / IDFF + INTEGER KTO + REAL SIGN + IF (KTOM.EQ.1.OR.KTOM.EQ.-1) THEN + SIGN= IDFF/ABS(IDFF) + ELSEIF (KTOM.EQ.2) THEN + SIGN=-IDFF/ABS(IDFF) + ELSE + PRINT *, 'STOP IN OLACHNL: KTOM=',KTOM + STOP + ENDIF + END + + FUNCTION COEFrr(I,J) +C clebsh gordan (or so ...) coefs for 3 scalar final states + implicit none +C TAUOLA RChL COEF(I,J) = COEFr(I,J) + REAL COEFr(1:5,0:7) + REAL COEFrr + DATA PI /3.141592653589793238462643/ + REAL PI + DATA ICONT /0/ + INTEGER ICONT + INTEGER I,J + REAL FPIr + +C initialization of FPI matrix defined in ... +C FPIc is to be used with cleo initialization +C FPIr is to be used with RChL initialization +C actual choice is made in ??? + + + DATA FPIr /92.4E-3/ + + +C initialization of COEF matrix defined in ... +C COEFc is to be used with cleo initialization +C COEFr is to be used with RChL initialization + IF (ICONT.EQ.0) THEN + ICONT=1 +C +C********* COEFr(I,J) ******* + + COEFr(1,0)= 1. + COEFr(2,0)= -1. + COEFr(3,0)= 0. + COEFr(4,0)= 1. + COEFr(5,0)= 0. + + COEFr(1,1)= 1. + COEFr(2,1)= -1. + COEFr(3,1)= 0. + COEFr(4,1)= 1. + COEFr(5,1)= 1. +C + COEFr(1,2)=1. + COEFr(2,2)= -1. + COEFr(3,2)= 0.0 + COEFr(4,2)= 1. + COEFr(5,2)=1. +C + COEFr(1,3)= 0. + COEFr(2,3)= 1. + COEFr(3,3)= -1. + COEFr(4,3)= 1. + COEFr(5,3)= - 1. +C + COEFr(1,4)= 1.0/SQRT(2.)/3.0 + COEFr(2,4)=-1.0/SQRT(2.)/3.0 + COEFr(3,4)= 0.0 + COEFr(4,4)= 0.0 + COEFr(5,4)= 0.0 +C + COEFr(1,5)=-SQRT(2.)/3.0 + COEFr(2,5)= SQRT(2.)/3.0 + COEFr(3,5)= 0.0 + COEFr(4,5)= 0.0 + COEFr(5,5)=-SQRT(2.) +C + COEFr(1,6)= 1./3. + COEFr(2,6)=-2./3. + COEFr(3,6)= 2./3. + COEFr(4,6)= 0.0 + COEFr(5,6)=-2.0 +C + COEFr(1,7)= 0.0 + COEFr(2,7)= 0.0 + COEFr(3,7)= 0.0 + COEFr(4,7)= 0.0 + COEFr(5,7)=-SQRT(2.0/3.0) + ENDIF + + COEFrr=COEFr(I,J) + END + + subroutine rchl_parameters(KAK) + implicit none +C============================================================================== +C Initialization, of '../parameter.inc' common block group +C +C KAK may be equal to JAK of TAUOLA namespace, but it is not always the case +C Hard-coded fit parameters: +C rho, rhoprime, f2(1275), f0(1186), sigma(made up!) +C The value of both the mass and width of resonances are taken +C from fit to ALEPH data (ref [1], Set 1) +C References: [1] arXiv: 0911.4436 [hep-ph] D. Gomez Dumm et al +C [2] arXiv: 0911.2640 [hep-ph] D. Gomez Dumm et al. +C [3] P Roig, talk PhiPsi2011, Novosibirsk +C [4] arXiv:0807.4883 [hep-ph] Diogo R. Boito et al. +C [5] arXiv:0803.1786 [hep-ph] M. Jamin et al. +C WARNING: some of parameters require RERUN of da1wid_tot_rho1_gauss.f +C pretabulating Q dependent a1 width, +C directory RChL-currents/tabler/a1 +C============================================================================== + include '../parameter.inc' + INTEGER KAK + DATA IWARM/0/ + INTEGER IWARM + INTEGER J3PI + COMMON /CHANOPT/ J3PI + + IF(KAK.EQ.4) THEN +C /MASS_RES/; resonances parameters initialization: +C ! at present only for two pion mode non-default +c ! values are used: + mro = 0.77554d0 + mrho1 = 1.453d0 + grho1 = 0.50155D0 +c /PAR_RHOPRIME/; parameters of rho' and rho'' +C used for 2 pion form factor, reference [3] + COEF_GA = 0.14199D0 + COEF_DE = -0.12623D0 + phi_1 = -0.17377D0 + phi_2 = 0.27632D0 + grho2 = 0.41786D0 + mrho2 = 1.8105d0 + ELSE IF(KAK.EQ.5) THEN + MRO = 0.771849d0 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + MRHO1 = 1.35d0 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + GRHO1 = 0.448379d0 !0.473287d0 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + + ELSE + MRO = 0.775 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + MRHO1 = 1.465 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + GRHO1 = 0.4 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + +c /PAR_RHOPRIME/; parameters of rho' and rho'' +C used for 2 kaon form factor, reference [3] +c FOR THE MOMENT THEIR NUMERICAL VALUES COINCIDE WITH +c ONES FOR THE TWO PION MODE !!!! + COEF_GA = 0.14199D0 + COEF_DE = -0.12623D0 + phi_1 = -0.17377D0 + phi_2 = 0.27632D0 + grho2 = 0.41786D0 + mrho2 = 1.8105d0 + ENDIF + + + IF(KAK.EQ.70) THEN ! non default values to be used + ! for KPI MODE NO FSR INTERACTION +c /PAR_KPI/; parameters for Kpi mode, reference [4], table 4, row2 + MKST = 0.943d0 + MKSTPR = 1.374D0 + GAMMA_KST = 0.06672d0 + GAMMA_KSTPR = 0.240d0 + GAMMA_RCHT =-0.039d0 + ELSE IF(KAK.EQ.71) THEN ! non default values to be used + ! for KPI MODE WITH FSR INTERACTION +c parameters for Kpi mode, reference [5] + MKST = 0.8953d0 + GAMMA_KST = 0.0475d0 + MKSTPR = 1.307d0 + GAMMA_KSTPR = 0.206d0 + GAMMA_RCHT = -0.043d0 + ELSE +C /MASS_SCAL/; stable particles - final scalars + Mksp = 0.89166d0 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + Mks0 = 0.89610d0 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + MKST = (Mksp +Mks0)/2. + MKSTPR = 1.374d0 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + GAMMA_KST = 0.06672 + GAMMA_KSTPR = 0.240 + GAMMA_RCHT = -0.043 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + ENDIF + +C /RCHT_3PI/; model parameters; their value are from fit, +c reference [1], set 1 +C CHANGE OF THEIR VALUES REQUIRES +C RERUN /tabler/a1/da1wid_tot_rho1_gauss.f + + IF(KAK.EQ.5) THEN + FPI_RPT = 0.091337d0 + FV_RPT = 0.168652d0 + FA_RPT = 0.131425d0 + BETA_RHO = -0.318551d0 + ELSE + FPI_RPT = 0.0924 + FV_RPT = 0.18 + FA_RPT = 0.149 + BETA_RHO = -0.25 + ENDIF + + FK_RPT = FPI_RPT*1.198d0 + GV_RPT = FPI_RPT*FPI_RPT/FV_RPT + +c$$$c It has to be used for a new parametrization of rho1 for 3pions, +C$$$c that is not checked yet +c$$$c IF(KAK.EQ.5) THEN ! high energy behaviour imposes these relations +c$$$c GV_RPT = 0.066 +c$$$c FV1_RPT = 0.18D0 +c$$$c GV1_RPT = (FPI_RPT*FPI_RPT- FV_RPT*GV_RPT)/FV1_RPT +c$$$c ELSE +c$$$c GV_RPT = FPI_RPT*FPI_RPT/FV_RPT +c$$$c ENDIF + +c /SCAL_3PI/; parameters of sigma meson for 3 pion mode +C* Parameteres for the sigma contribution, using BW for sigma + IF(KAK.EQ.5) THEN + IF (J3PI.EQ.1) THEN + alpsig = -8.795938d0 + betasig = 9.763701d0 + gamsig = 1.264263d0 + delsig = 0.656762d0 + rsigma = 1.866913d0 + ELSE IF (J3PI.EQ.2) THEN + alpsig = 1.139486d0*0.63d0 + betasig = 1.139486d0*0.63d0 + gamsig = 0.889769d0*0.63d0 + delsig = 0.889769d0*0.63d0 + rsigma = 0.000013d0 + ENDIF + ENDIF + +C /MASS_RES/ + IF(KAK.EQ.5) THEN + MMA1 = 1.091865d0 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + IF (J3PI.EQ.1) THEN + MSIG = 0.487512d0 + GSIG = 0.70d0 + ELSE IF(J3PI.EQ.2) THEN + MSIG = 0.55d0 + GSIG = 0.7d0 + ENDIF + ELSE + MMA1 = 1.12 + MSIG = 0.475 + GSIG = 0.550 + ENDIF + call rchl_REparam(0,IWARM,KAK) + IF (IWARM.EQ.1) RETURN ! parameters below do not need + IWARM=1 ! re-initialization + +C /MASS_RES/ + GRO = 0.149d0 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + MF2 = 1.275d0 + GF2 = 0.185d0 + MF0 = 1.186d0 + GF0 = 0.350d0 + MSG = 0.860d0 + GSG = 0.880d0 + MPHI = 1.019d0 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + GPHI = 0.0042d0 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + MOM = 0.781940d0 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + GOM = 0.00843d0 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + +C /RES_MIXING_RCHT/; a parameter defines w-phi angle mixing + THETA = 35.*PI/180. + +C /FF0SCKPI/ a parameter normalized FFSC_KPI + F00 = 0.972 + + + + +C /MASS_SCAL/; stable particles - final scalars +C CHANGE OF THEIR VALUES (useful for some tests) REQUIRES, +C RERUN /tabler/a1/da1wid_tot_rho1_gauss.f + + MPIZ = 0.1349766d0 !PKORB(1,7) ! NEUTRAL PION MASS + MPIC = 0.13957018d0 !PKORB(1,8) ! CHARGED PION MASS + MMPI_AV = (MPIZ+2.*MPIC)/3.d0 + MKZ = 0.497648d0 !PKORB(1,12) ! NEUTRAL KAON MASS + MKC = 0.493677d0 !PKORB(1,11) ! CHARGED KAON MASS + MMK = (MKC+MKZ)/2.d0 + MTAU = 1.777 + MNUTA = 0.001 + META = 0.547d0 + + + +c /PAR_KKPI/; parameters to describe KKpi modes, reference [2] +C CHANGE OF THEIR VALUES REQUIRES +C RERUN /tabler/a1/da1wid_tot_rho1_gauss.f + + G2 = mro/(192.*pi*pi*sqrt(2.)*FV_RPT)*3. + G13 = -2.*g2 + G4 = -0.72 + G5 = -0.6-2.*g4 + C125 = 0. + C1256 = -3/96./pi**2*FV_RPT*MRO/SQRT(2.)/FPI_RPT**2 + C1235 = 0. + C4 = -0.07 + D123 = 0.05 + D3 = -MRO**2/(64.*PI*PI*FPI_RPT**2) + + +c /PAR_KPI/; parameters to describe Kpi mode, reference [4] + Ht0 = -1.2400398216503017D-2 +C Ht0 = !!!!! TO ADD A FORMULAE FOR Ht0 (Jamin's email) !!!!! + lap_KPI = 24.66e-3 + lapp_KPI = 11.99e-4 + c1_KPI = lap_KPI/mpic**2 + c2_KPI = (lapp_KPI - lap_kpi**2)/2.d0/mpic**4 + +c /KPISC_EM/; parameters for Kpi scalar FF from +c http://arxiv.org/pdf/1103.4855.pdf + lnC = 0.20193d0 + lambda0 = 0.013139d0 + +c /SCAL_3PI/; parameters of sigma meson for 3 pion mode + a00_3piscal = 0.220 + b00_3piscal = 0.268/mmpi_av**2 + c00_3piscal = -0.0139/mmpi_av**4 + d00_3piscal = -0.00139/mmpi_av**6 + x00_3piscal = 36.77*mmpi_av**2 + a02_3piscal = -0.0444 + b02_3piscal = -0.0857/mmpi_av**2 + c02_3piscal = -0.00221/mmpi_av**4 + d02_3piscal = -0.000129/mmpi_av**6 + x02_3piscal = -21.62*mmpi_av**2 + MMF0 = 0.441 + +c /SCAL_3PI/; parameters for the scalar part 3 pion modes +c Pablo private + ALPHA0_3PI = 1. + ALPHA1_3PI = 1. + GAMMA0_3PI = 1. + GAMMA1_3PI = 1. + + +C FFVEC: dipswitch for Final State interaction in two scalar modes +C with FSI (default FFVEC =1) and +C without FSI (FFVEC =0) + + FFVEC = 1 + +C FFKPIVEC : parameter to choose the parametrization for +C vector Kpi form factor with FSI effects +C FFKPIVEC = 0 parametrization Eqs.(17),(18) of [4] +C FFKPIVEC = 1 parametrization Eq.(5) of [5] +C FFKPIVEC = 2 parmetrization [4], total result + FFKPIVEC = 2 +C FFKPISCAL : parameter to choose the parametrization for +C scalar Kpi form factor with FSI effects +C FFKPISCAL = 0 no scalar contribution +C FFKPISCAL = 1 parametrization of Mathias Jamin,adopted his private code +C FFKPISCAL = 2 parametrization of Emilie Passerman, +C adopted her private code [] + FFKPISCAL = 1 + +C FFKKVEC: dipswitch for K0K- mode +C with rho' and rho'' (FFKKVEC =1) and +C without rho' and rho'' (default FFKKVEC =0) + FFKKVEC = 0 + +C FF3PISCAL: dipswitch for the scalar contribution for 3 pion modes +C with the scalar contribution ( default FF3PISCAL = 2) +c FF3PISCAL = 2 BW parametrization for sigma meson +c FF3PISCAL = 1 simplified RCHT results +C FF3PISCAL =0 no sigma contribution + FF3PISCAL = 2 + +C Implemetation of another parametrization rho1, not checked yet by tests +C FF3PIRHOPR: dipswitch for the parametrization for rho' contribution +C For 3 pion modes +C general parametrization ( default FF3RHOPR =1) and +C simplified (FF3PIRHOPR =0) + FF3PIRHOPR = 0 + + +C FF2PIRHO: dipswitch for the two pion form factor (default FF2PIRHO = 1) +C FF2PIRHO =1 RChL parametrization +C FF2PIRHO = 2 Belle parametrization, +C all parameters par (1...11) of fit are free +C FF2PIRHO = 3 Belle parametrization, +C parameters of fit are free +C except for fixed par(1)=F_pi(0)=1 + FF2PIRHO =2 + + +C FCOUL: dipswitch for the Coulomb interaction +C FCOUL = 1 with +C FCOUL = 0 without + FCOUL = 0 + + call rchl_REparam(1,IWARM,KAK) + return + end + + subroutine rchl_REparam(IMODE,IWARM,KAK) + include '../parameter.inc' + common / PARAMS / P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,IUSE + INTEGER IUSE + DOUBLE PRECISION P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16 + DATA IUSE /0/ + + IF(IUSE.EQ.0) RETURN + + IF (IMODE.EQ.-1) THEN + IWARM=IWARM + ELSE + +C FF3PISCAL: dipswitch for the scalar contribution for 3 pion modes +C with the scalar contribution ( default FF3PISCAL = 2) +c FF3PISCAL = 2 BW parametrization for sigma meson +c FF3PISCAL = 1 simplified RCHT results +C FF3PISCAL =0 no sigma contribution +c FF3PISCAL = 2 + +C CANDIDATES FOR PARAMETERS TO FIT with default values +C* Parameteres for the sigma contribution, using BW for sigma + alpsig = P1 + betasig = P2 + gamsig = P3 + delsig = P4 + rsigma = P5 + + + MRO = P6 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + MRHO1 = P7 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + GRHO1 = P8 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f +C /MASS_RES/ + GRO = P9 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + MMA1 = P10 !CHANGE REQUIRES RERUN da1wid_tot_rho1_gauss.f + MSIG = P11 + GSIG = P12 + +C /RCHT_3PI/; model parameters; their value are from fit, +c reference [1], set 1 +C CHANGE OF THEIR VALUES REQUIRES +C RERUN /tabler/a1/da1wid_tot_rho1_gauss.f + FPI_RPT = P13 + FV_RPT = P14 + FA_RPT = P15 + BETA_RHO = P16 + FK_RPT = FPI_RPT*1.198d0 + GV_RPT = FPI_RPT*FPI_RPT/FV_RPT + + ENDIF + return + end diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/wid_a1_fit.f b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/wid_a1_fit.f new file mode 100644 index 00000000000..2012ad4ea3e --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/wid_a1_fit.f @@ -0,0 +1,110 @@ + SUBROUTINE IFGFACT(IKEY,ITYPE,IINIT) +C stores and manages options for wid_a1_fit +C ITYPE=0,1,2 means zero value, from full table, from GFACT plus table for KKpi +C IINIT is for GFACT, whether it has to reinitialize itself or just be used +C IKEY 0,1,2 means initialization use by GFUNCT (reini) other use +C IKEY -1 mieans initialization with recalculation og GFUNCT constats + + DATA ITYPE0,IINIT0 /1,0/ + SAVE ITYPE0,IINIT0 + + IF (IKEY.EQ.-1) THEN + ITYPE0=ITYPE + IINIT0=IINIT + ELSEIF(IKEY.EQ.0) THEN + ITYPE0=ITYPE + ELSEIF(IKEY.EQ.1) THEN + IINIT=IINIT0 + IINIT0=1 + ELSEIF(IKEY.EQ.2) THEN + ITYPE= ITYPE0 + ENDIF + END + + real function wid_a1_fit(qq) + implicit none + real qq +C.............................................................. +C. Output: a1 width as function of qq (formula (29) of ref [1]) +C. but to speed up execution linear interpolation +C. from numerical table is used. From read in table +C. linear interpolation (extrapolation) is used. +C. Input: qq [GeV**2] +C. table wida1_qq_tot_table.txt prepared in +C. ./a1-tabler directory +C. References:[1] arXiv:0911.4436 (hep-ph) D.Gomez Dumm et al.(tau ->3pi nu) +C. Called : files f3pi_rcht.f fkkpi.f fkk0pi0.f +C ./demo-standalone/tautestroman.f +C.............................................................. + + integer Nq + PARAMETER (Nq=1001) + integer ik + common /a1_width/ qmax,qmin,qk_min, w_qmin, del_qq + real*8 qmax,qmin,qk_min(Nq),w_qmin(Nq),del_qq + integer kq + character path*120 + + real*8 aq,bq,qk_max,w_qmax + real*8 xqq,GFACT + real wid_a1_fitKKpi + + + INTEGER IFIRST,ITYPE + DATA IFIRST,ITYPE /0,1/ + INTEGER IMODE,IINIT +! DATA IMODE /0/ + + +C. READING TABLE AND INITIALIZATION +C. ================================ + + IF (IFIRST.EQ.0) THEN + IFIRST = 1 +C Initialization from automatically created routine + call InitA1TAB(qk_min ,w_qmin ) + qmax = qk_min(Nq) + qmin = qk_min(1) + del_qq = (qmax-qmin)/float(Nq-1) + ENDIF + + CALL IFGFACT(2,ITYPE,IINIT) +C ALTERNATIVE CALCULATIONS FOR SPECIAL PURPOSES +C. ============================================ + IF (ITYPE.EQ.0) THEN + wid_a1_fit=0 + RETURN + ELSEIF (ITYPE.EQ.2) THEN + xqq=qq + wid_a1_fit=wid_a1_fitKKpi(qq)+GFACT(xqq) +! write(*,*) 'uwaga', wid_a1_fit, wid_a1_fitKKpi(qq) + RETURN + ENDIF + + +C. INTEPOLATION, for extrapolation values at ends are used +C. ======================================================= + if(qq.gt.qmin.and.qq.le.qmax) then + kq = (qq-qmin)/del_qq + kq = kq +1 + + qk_max = qk_min(kq+1) + w_qmax = w_qmin(kq+1) + + aq = (w_qmax-w_qmin(kq))/(qk_max-qk_min(kq)) + bq = (w_qmax*qk_min(kq) -w_qmin(kq)*qk_max) + $ /(qk_min(kq)-qk_max) + wid_a1_fit = aq*qq+bq + + elseif(qq.ge.qmax) then ! above maximun + wid_a1_fit = w_qmin(Nq) + + else ! below minimum + wid_a1_fit = w_qmin(1) + + endif + + return + end + + diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/wid_a1_fitKKpi.f b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/wid_a1_fitKKpi.f new file mode 100644 index 00000000000..03ae1e7a807 --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/RChL-currents/rcht_common/wid_a1_fitKKpi.f @@ -0,0 +1,69 @@ + real function wid_a1_fitKKpi(qq) + implicit none + real qq +C.............................................................. +C. Output: KKpi part ofa1 width as function of qq +C. but to speed up execution linear interpolation +C. from numerical table is used. From read in table +C. linear interpolation (extrapolation) is used. +C. Input: qq [GeV**2] +C.............................................................. + + integer Nq + PARAMETER (Nq=1001) + integer ik + real*8 qmax,qmin,qk_min(Nq),w_qmin(Nq),del_qq + integer kq + character path*120 + + real*8 aq,bq,qk_max,w_qmax + + INTEGER IFIRST + DATA IFIRST/0/ + INTEGER IMODE +! DATA IMODE /0/ + COMMON /IMODE/ IMODE ! 0 is for calculation of G , 1 is for spectra, 2 is for use of G + + IF (IMODE.EQ.0) THEN + wid_a1_fitKKpi=0 + ENDIF + +C. READING TABLE AND INITIALIZATION +C. ================================ + + IF (IFIRST.EQ.0) THEN + IFIRST = 1 +C Initialization from automatically created routine + call InitA1TABKKpi(qk_min ,w_qmin ) + qmax = qk_min(Nq) + qmin = qk_min(1) + del_qq = (qmax-qmin)/float(Nq-1) + ENDIF + + +C. INTEPOLATION, for extrapolation values at ends are used +C. ======================================================= + if(qq.gt.qmin.and.qq.le.qmax) then + kq = (qq-qmin)/del_qq + kq = kq +1 + + qk_max = qk_min(kq+1) + w_qmax = w_qmin(kq+1) + + aq = (w_qmax-w_qmin(kq))/(qk_max-qk_min(kq)) + bq = (w_qmax*qk_min(kq) -w_qmin(kq)*qk_max) + $ /(qk_min(kq)-qk_max) + wid_a1_fitKKpi = aq*qq+bq + + elseif(qq.ge.qmax) then ! above maximun + wid_a1_fitKKpi = w_qmin(Nq) + + else ! below minimum + wid_a1_fitKKpi = w_qmin(1) + + endif + + return + end + + diff --git a/TEvtGen/Tauola/tauola-fortran/new-currents/other-currents/frho_pi_belle.f b/TEvtGen/Tauola/tauola-fortran/new-currents/other-currents/frho_pi_belle.f new file mode 100644 index 00000000000..a8d60af651e --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/new-currents/other-currents/frho_pi_belle.f @@ -0,0 +1,262 @@ + Complex*16 FUNCTION FPIBEL(W,flpar) +C**************************************************************************** +C PION FORM FACTOR FROM BELLE +C +C Rho(770)+rho(1450)+rho(1700) model is used as in: +C M.Fujikawa et al., Phys.Rev.D 78 (2008) 072006 +C ------------------- +C * flpar: = 0 - (all free) fit result for par(1...11) +C = 1 - (par(1)=F_pi(0)=1-fixed) fit result for par(2...11) +C +C * parameter : par(1)=overall norm. factor (=F_pi(0)) +C : par(2)=rho(770) mass +C : par(3)=rho(770) width +C : par(4)=rho(1450) mass +C : par(5)=rho(1450) width +C : par(6)=rho(1450) admixture abs. value (|beta|) +C : par(7)=rho(1450) admixture phase (phi=arg(beta)) +C : par(8)=rho(1700) mass +C : par(9)=rho(1700) width +C : par(10)=rho(1700) admixture abs. value (|gamma|) +C : par(11)=rho(1700) admixture phase (phi3=arg(gamma)) +C +C * x:=s=(M_pipi0)^2=W^2 +C +C * Notice: the following code was extracted (and checked) directly +C from the Belle fit function with minor cosmetic changes +C (this is internal comment of Belle) +C +C * Notice: the following code was extracted (and checked) directly +C from tauola_with_belle_fpi.F sent by D. Epifanov and +C it is an identical copy of +C Complex*16 FUNCTION FPIBEL(W,flpar) +C used in tauola_with_belle_fpi.F +C +C * Called: CURR_PIPI0 if (FF2PIRHO = 2 or FF2PIRHO =3) +C in ../RChL-currents/value_parameter.f +C FF2PIRHO = 2 is for flpar = 0 +C FF2PIRHO = 3 is for flpar = 1 +C +C**************************************************************************** + implicit none + integer flpar + real W + real*8 x,par(11),pi,pimas,pi0mas,taumas + real*8 beta,berho1,berho2,berho3 + real*8 ps,prho1,prho2,prho3 + real*8 gamma1,gamma2,gamma3 + real*8 hs,h1,h2,h3,dhds1,dhds2,dhds3 + real*8 d1,d2,d3,fs1,fs2,fs3 + real*8 a1,b1,c1,bw_re1,bw_im1 + real*8 a2,b2,c2,bw_re2,bw_im2 + real*8 a3,b3,c3,bw_re3,bw_im3 + real*8 sinphi,cosphi,sinphi3,cosphi3 + complex*16 mbw1,mbw2,mbw3,mff,mephi,mephi3 + parameter(pi=3.141592653589) + + x=dble(W**2) +C------------- PARAMETERS -------------------- +C Particle mass (unit: GeV) + + pimas = 0.1395702 + pi0mas = 0.13498 + taumas = 1.77699 + +C--------------------------------------------- +C Opt. par. from Table VII of PRD78 (2008) 072006 + + if(flpar.eq.0) then + par(1) = 1.02 + par(2) = 0.7749 + par(3) = 0.1486 + par(4) = 1.428 + par(5) = 0.413 + par(6) = 0.13 + par(7) = 197 + par(8) = 1.694 + par(9) = 0.135 + par(10)= 0.028 + par(11)= -3 + else + par(1) = 1.0 + par(2) = 0.7746 + par(3) = 0.1481 + par(4) = 1.446 + par(5) = 0.434 + par(6) = 0.15 + par(7) = 202 + par(8) = 1.728 + par(9) = 0.164 + par(10)= 0.037 + par(11)= 24 + endif + +C========= Beta (s, rho(770), rho(1450), rho(1700)) ================== + + beta =sqrt( (1.0 - (pimas - pi0mas)**2/x) + + *(1.0 - (pimas + pi0mas)**2/x) ) + +c ----- rho(770) ----- + berho1=sqrt( ( 1.0 - (pimas - pi0mas)**2/(par(2)*par(2)) ) + + *( 1.0 - (pimas + pi0mas)**2/(par(2)*par(2)) ) ) + +c ----- rho(1450) ----- + berho2=sqrt( ( 1.0 - (pimas - pi0mas)**2/(par(4)*par(4)) ) + + *( 1.0 - (pimas + pi0mas)**2/(par(4)*par(4)) ) ) + +c ----- rho(1700) ----- + berho3=sqrt( ( 1.0 - (pimas - pi0mas)**2/(par(8)*par(8)) ) + + *( 1.0 - (pimas + pi0mas)**2/(par(8)*par(8)) ) ) + +C========= Momentum (s, rho(770), rho(1450), rho(1700)) ============== +C +C ps : momentum of pi at s +C prho1 : momentum of pi at s=rho(770)**2 +C prho2 : momentum of pi at s=rho(1450)**2 +C prho3 : momentum of pi at s=rho(1700)**2 + + ps = 0.5 * sqrt(x) * beta +c ----- rho(770) ----- + prho1 = 0.5* par(2) * berho1 +c ----- rho(1450) ----- + prho2 = 0.5* par(4) * berho2 +c ----- rho(1700) ----- + prho3 = 0.5* par(8) * berho3 + +C========= Width (rho(770), rho(1450), rho(1700)) ==================== + +C ----- rho(770) ----- + gamma1 = par(3) * ( par(2)*par(2)/x ) * (ps/prho1)**3 +C ----- rho(1450) ----- + gamma2 = par(5) * ( par(4)*par(4)/x ) * (ps/prho2)**3 +C ----- rho(1700) ----- + gamma3 = par(9) * ( par(8)*par(8)/x ) * (ps/prho3)**3 + +C============== h(rho(770), rho(1450), rho(1700)) ==================== +C +C hs : h(s)...s(s=x) +C h1 : h(s) for s=rho(770)**2 +C h2 : h(s) for s=rho(1450)**2 +C h3 : h(s) for s=rho(1700)**2 + + hs = (2.0/pi)*(ps/sqrt(x))* + + log( (sqrt(x) + 2.0*ps)/(2.0*pimas) ) +C ----- rho(770) ----- + h1 = (2.0/pi)*(prho1/par(2))* + + log( (par(2) + 2.0*prho1)/(2.0*pimas) ) +C ----- rho(1450) ----- + h2 = (2.0/pi)*(prho2/par(4))* + + log( (par(4) + 2.0*prho2)/(2.0*pimas) ) +C ----- rho(1700) ----- + h3 = (2.0/pi)*(prho3/par(8))* + + log( (par(8) + 2.0*prho3)/(2.0*pimas) ) + +C============ dhds(rho(770), rho(1450), rho(1700)) =================== +C +C dhds = dh/ds = h(M_rho)[1/(8*p(M_rho)^2) - 1/(2M_rho^2) +C + 1/(2pi*M_rho^2) +C dhds1 : dh/ds for M_rho=rho(770) +C dhds2 : dh/ds for M_rho=rho(1450) +C dhds3 : dh/ds for M_rho=rho(1700) + +C ----- rho(770) ----- + dhds1 = h1*( 1.0/(8.0*prho1**2) - 1.0/(2.0*par(2)**2) ) + + + 1.0/(2.0*pi*par(2)**2) +C ----- rho(1450) ----- + dhds2 = h2*( 1.0/(8.0*prho2**2) - 1.0/(2.0*par(4)**2) ) + + + 1.0/(2.0*pi*par(4)**2) +C ----- rho(1700) ----- + dhds3 = h3*( 1.0/(8.0*prho3**2) - 1.0/(2.0*par(8)**2) ) + + + 1.0/(2.0*pi*par(8)**2) + +C============ d(rho(770), rho(1450), rho(1700)) ====================== +C +C d = 3/pi * (m_pi^2/p(M_rho)^2) * +C ln {(M_rho+2*p(M_rho))/2M_pi} + M_rho/(2pi*p(M_rho)) +C - (m_pi^2 * M_rho)/(pi*p(M_rho)^3) +C d1 : d for M_rho=rho(770) +C d2 : d for M_rho=rho(1450) +C d2 : d for M_rho=rho(1700) + +C ----- rho(770) ----- + d1 = (3.0/pi)*(pimas**2/prho1**2) + + * log((par(2) + 2.0*prho1)/(2.0*pimas)) + + + par(2)/(2.0*pi*prho1) + + - ((pimas**2)*par(2))/(pi*prho1**3) +C ----- rho(1450) ----- + d2 = (3.0/pi)*(pimas**2/prho2**2) + + * log((par(4) + 2.0*prho2)/(2.0*pimas)) + + + par(4)/(2.0*pi*prho2) + + - ((pimas**2)*par(4))/(pi*prho2**3) +C ----- rho(1700) ----- + d3 = (3.0/pi)*(pimas**2/prho3**2) + + * log((par(8) + 2.0*prho3)/(2.0*pimas)) + + + par(8)/(2.0*pi*prho3) + + - ((pimas**2)*par(8))/(pi*prho3**3) + +C================ f(s) (rho(770), rho(1450), rho(1700) ) ========== +C +C f(s) = gamma-rho * M_rhp**2/p(M_rho)[ p(s)^2(h(s)-h(M_rho) +C + (M_rho^2 -s)p(M_rho)^2 * dh/ds] +C fs1 : f(s) for M_rho=rho(770) +C fs2 : f(s) for M_rho=rho(1450) +C fs3 : f(s) for M_rho=rho(1700) +C +C ----- rho(770) ----- + fs1 = par(3) * (par(2)**2/prho1**3) * + + ( ps**2 *(hs - h1) + (par(2)**2 -x)*prho1**2 * dhds1 ) +C ----- rho(1450) ----- + fs2 = par(5) * (par(4)**2/prho2**3) * + + ( ps**2 *(hs - h2) + (par(4)**2 -x)*prho2**2 * dhds2 ) +C ----- rho(1700) ----- + fs3 = par(9) * (par(8)**2/prho3**3) * + + ( ps**2 *(hs - h3) + (par(8)**2 -x)*prho3**2 * dhds3 ) + +C====== BW form G&S model (rho(770) + rho(1450) + rho(1700)) ====== +C bw_re - real part ; bw_im - imaginary part + +C ----- rho(770) ----- + a1=par(2)*par(2) - x + fs1 + b1=sqrt(x)*gamma1 + c1=par(2)*par(2) + d1*par(2)*par(3) + + bw_re1= (a1*c1)/(a1**2 + b1**2) + bw_im1= (b1*c1)/(a1**2 + b1**2) + mbw1=dcmplx(bw_re1,bw_im1) + +c ----- rho(1450) ----- + a2=par(4)*par(4) - x + fs2 + b2=sqrt(x)*gamma2 + c2=par(4)*par(4)+ d2*par(4)*par(5) + + bw_re2= (a2*c2)/(a2**2 + b2**2) + bw_im2= (b2*c2)/(a2**2 + b2**2) + mbw2=dcmplx(bw_re2,bw_im2) + +c ----- rho(1700) ----- + a3=par(8)*par(8) - x + fs3 + b3=sqrt(x)*gamma3 + c3=par(8)*par(8)+ d3*par(8)*par(9) + + bw_re3= (a3*c3)/(a3**2 + b3**2) + bw_im3= (b3*c3)/(a3**2 + b3**2) + mbw3=dcmplx(bw_re3,bw_im3) + +C====== admixtures of rho(1450) and rho(1700) ====== + +C --------- exp(i*arg(beta)) ---------- + sinphi=sin(par(7)*(pi/180.0)) ! use degree + cosphi=cos(par(7)*(pi/180.0)) ! use degree + mephi=dcmplx(cosphi,sinphi) + +C --------- exp(i*arg(gamma)) --------- + sinphi3=sin(par(11)*(pi/180.0)) ! use degree + cosphi3=cos(par(11)*(pi/180.0)) ! use degree + mephi3=dcmplx(cosphi3,sinphi3) + +C================= Form factor ===================== + + mff = 1.0/(1.0+par(6)*mephi+par(10)*mephi3) + FPIBEL=par(1)*mff*(mbw1+par(6)*mephi*mbw2+par(10)*mephi3*mbw3) + RETURN + END diff --git a/TEvtGen/Tauola/tauola-fortran/pkorb.f b/TEvtGen/Tauola/tauola-fortran/pkorb.f new file mode 100644 index 00000000000..c9bde0a9fbb --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/pkorb.f @@ -0,0 +1,288 @@ + + + REAL FUNCTION PKORB(IF1,IF2) +********************************************************************** +* +* This function returns a real value +* needed in the 1 version of KORALB/TAUOLA +* corresponding to a mass, width, mixing amplitude, or branching fraction +* depending on whether IF1 = 1, 2, 3, 4 respectively. +* The idea is to make minimal mods to the 3-rd party KORALB/TAUOLA code, +* so this function supplies all the 1-specific parameters. +* +* Alan Weinstein, ajw, 11/97 +********************************************************************** + +* Arguments: + INTEGER IF1 ! input, flag for type of data required + INTEGER IF2 ! input, flag for type of data required + +* MC info +*#include "seq/clinc/qqpars.inc" +*#include "seq/clinc/qqprop.inc" +*#include "qqlib/seq/qqbrat.inc" + + INTEGER JAK1,JAK2,JAKP,JAKM,KTOM + COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM + REAL*4 RRR(1) + REAL PARM(4,100) + integer imixpp(300) + INTEGER INIT,I,J + REAL C1270,C1402,A1270_KSPI,A1270_KRHO,A1402_KSPI,A1402_KRHO + REAL CG1,CG2,R,BRA1,BRKS + SAVE INIT,PARM + DATA INIT/0/ + +********************************************************************** +* Initialize return variable: + PKORB = 0. + +********************************************************************** +* Initialize: + IF (INIT.EQ.0) THEN + INIT = 1 + +C CALL VZERO(PARM,400) + DO I=1,4 + DO J=1,100 + PARM(I,J) = 0 + END DO + END DO + +C Youd better be using korb.dec, NOT decay.dec!!!! +C masses (needed in dist/inimas, formf/form*, etc) + PARM(1, 1) = 1.777000 ! TAU + PARM(1, 2) = 0. ! NUTA + PARM(1, 3) = 0.000511 ! EL + PARM(1, 4) = 0. ! NUEL + PARM(1, 5) = 0.105658 ! MU + PARM(1, 6) = 0. ! NUMU + PARM(1, 7) = 0.134976 ! PIZ + PARM(1, 8) = 0.139570 ! PI+ + PARM(1, 9) = 0.769900 ! RHO+ + PARM(1,10) = 1.275000 ! A1+ + PARM(1,11) = 0.493677 ! K+ + PARM(1,12) = 0.497670 ! KZ + PARM(1,13) = 0.891590 ! K*+ + PARM(1,14) = 0.781940 ! OMEG + PARM(1,15) = 1.370000 ! RHOP+ + PARM(1,16) = 1.700000 ! K*P+ + PARM(1,17) = 1.461000 ! A1P+ + PARM(1,18) = 1.300000 ! PIP+ + PARM(1,19) = 1.270000 ! K1A+ + PARM(1,20) = 1.402000 ! K1B+ + PARM(1,21) = 1.465000 ! RHOPP+ + PARM(1,22) = 1.700000 ! RHOPPP+ + +C widths (needed in dist/inimas, formf/form*, etc) + PARM(2, 1) = 0. ! TAU + PARM(2, 2) = 0. ! NUTA + PARM(2, 3) = 0. ! EL + PARM(2, 4) = 0. ! NUEL + PARM(2, 5) = 0. ! MU + PARM(2, 6) = 0. ! NUMU + PARM(2, 7) = 0. ! PIZ + PARM(2, 8) = 0. ! PI+ + PARM(2, 9) = 0.1512 ! RHO+ + PARM(2,10) = 0.700 ! A1+ + PARM(2,11) = 0. ! K+ + PARM(2,12) = 0. ! KZ + PARM(2,13) = 0.0498 ! K*+ + PARM(2,14) = 0.00843 ! OMEG + PARM(2,15) = 0.510 ! RHOP+ + PARM(2,16) = 0.235 ! K*P+ + PARM(2,17) = 0.250 ! A1P+ + PARM(2,18) = 0.400 ! PIP+ + PARM(2,19) = 0.090 ! K1A+ + PARM(2,20) = 0.174 ! K1B+ + PARM(2,21) = 0.310 ! RHOPP+ + PARM(2,22) = 0.235 ! RHOPPP+ + +C Now store mixing parameters for 2pi and 4pi FFs +C needed in tauola/fpik, tauola/bwigs, formf/form* , formf/curr : + + PARM(3,15) = -0.145 + + IMIXPP(205)=1 + IMIXPP(207)=1 + IMIXPP(209)=1 + IMIXPP(211)=1 + IMIXPP(201)=1 + IMIXPP(203)=1 + IMIXPP(213)=1 + IMIXPP(215)=1 + + + IF (IMIXPP(205).NE.0) PARM(3,15) = -0.110 + IF (IMIXPP(207).NE.0) PARM(3,16) = -0.038 + IF (IMIXPP(209).NE.0) PARM(3,17) = 0.00 + IF (IMIXPP(211).NE.0) PARM(3,18) = 0.00 + IF (IMIXPP(201).NE.0) PARM(3,19) = 1.0 + IF (IMIXPP(203).NE.0) PARM(3,20) = 0.8 + IF (IMIXPP(213).NE.0) PARM(3,21) = -0.110 + IF (IMIXPP(215).NE.0) PARM(3,22) = -0.110 + + PRINT *,' KORB: rho/rhop -> pi-pi0 mixing:' + PRINT *,' KORB: rho =',PARM(1,9) ,PARM(2,9) + PRINT *,' KORB: rhop =',PARM(1,15),PARM(2,15),PARM(3,15) + PRINT *,' KORB: K*/K*prime -> Kpi mixing:' + PRINT *,' KORB: kstp =',PARM(1,16),PARM(2,16),PARM(3,16) + PRINT *,' KORB: a1/a1prime -> 3pi, KKpi mixing:' + PRINT *,' KORB: a1 =',PARM(1,10),PARM(2,10) + PRINT *,' KORB: a1prim=',PARM(1,17),PARM(2,17),PARM(3,17) + PRINT *,' KORB: K1A/K1B -> Kpipi mixing:' + PRINT *,' KORB: K1A =',PARM(1,19),PARM(2,19),PARM(3,19) + PRINT *,' KORB: K1B =',PARM(1,20),PARM(2,20),PARM(3,20) + PRINT *,' KORB: rho/rhop/rhopp -> 4pi mixing:' + PRINT *,' KORB: rho =',PARM(1,9) ,PARM(2,9) + PRINT *,' KORB: rhopp =',PARM(1,21),PARM(2,21),PARM(3,21) + PRINT *,' KORB: rhoppp=',PARM(1,22),PARM(2,22),PARM(3,22) + +C amplitudes for curr_cleo.F: +C for (3pi)-pi0: 4pi phase space; rho0pi-pi0; rho-pi+pi-; rho+pi-pi-; pi-omega + PARM(3,31) = 0. + PARM(3,32) = 0.1242 + PARM(3,33) = 0.1604 + PARM(3,34) = 0.2711 + PARM(3,35) = 0.4443 +C for pi-3pi0: 4pi phase space; rho-pi0pi0 + PARM(3,36) = 0. + PARM(3,37) = 1.0 + +C Modify amplitudes for 4pi form-factor in formf/curr, from korb.dec: +CCC IF (IPLIST(2,282).EQ.5) THEN + IPLIST=0 + IF (IPLIST.EQ.5) THEN + PARM(3,31) = 0.0000 + PARM(3,32) = 0.1242 + PARM(3,33) = 0.1604 + PARM(3,34) = 0.2711 + PARM(3,35) = 0.4443 + PARM(3,36) = 0.0000 + PARM(3,37) = 1.0000 + END IF + + PRINT *,' KORB: 3PI-PI0 PARAMS:',(PARM(3,I),I=31,35) + PRINT *,' KORB: PI-3PI0 PARAMS:',(PARM(3,I),I=36,37) + +C The 4pi models are the most complicated in TAUOLA. +C If the user has not modified any parameters of the 4pi model, +C we can use the WTMAX determined with many trials. + IF (ABS(PARM(3,31)-0.0000).GT.0.0001 .OR. + 1 ABS(PARM(3,32)-0.1242).GT.0.0001 .OR. + 1 ABS(PARM(3,33)-0.1604).GT.0.0001 .OR. + 1 ABS(PARM(3,34)-0.2711).GT.0.0001 .OR. + 1 ABS(PARM(3,35)-0.4443).GT.0.0001 ) THEN + PARM(3,38) = -1. + ELSE + PARM(3,38) = 6.9673671E-14 + END IF + + IF (ABS(PARM(3,36)-0.0000).GT.0.0001 .OR. + 1 ABS(PARM(3,37)-1.0000).GT.0.0001 ) THEN + PARM(3,39) = -1. + ELSE + PARM(3,39) = 3.5374880E-13 + END IF + + +C phases for curr_cleo.F: + PARM(3,42) = -0.40 + PARM(3,43) = 0.00 + PARM(3,44) = -0.20+3.1416 + PARM(3,45) = -1.50 + +C rho' contributions to rho' -> pi-omega: + PARM(3,51) = -0.10 + PARM(3,52) = 1.00 + PARM(3,53) = -0.10 + PARM(3,54) = -0.04 + +C rho' contribtions to rho' -> rhopipi: + PARM(3,55) = 1.00 + PARM(3,56) = 0.14 + PARM(3,57) = -0.05 + PARM(3,58) = -0.05 + +C rho contributions to rhopipi, rho -> 2pi: + PARM(3,59) = 1.000 + PARM(3,60) = -0.145 + PARM(3,61) = 0.000 + +C Set the BRs for (A1+ -> rho+ pi0) and (K*+ -> K0 pi+) +C needed in dist/taurdf: + PARM(4,1) = 0.4920 ! BRA1+ + PARM(4,2) = 0.4920 ! BRA1- + PARM(4,3) = 0.6660 ! BRKS+ + PARM(4,4) = 0.6660 ! BRKS- + PARM(4,5) = 0.5 ! BRK0 + PARM(4,6) = 0.5 ! BRK0B + +C amplitude coefficients for tau -> K1(1270) / K1(1402) + C1270 = PARM(3,19) + C1402 = PARM(3,20) + IF (C1270.EQ.0.AND.C1402.EQ.0.) THEN + C1270 = 1. + C1402 = 0.6 + END IF +C From PDG96, square roots of branching fractions: + A1270_KSPI = SQRT(0.16) + A1270_KRHO = SQRT(0.42) + A1402_KSPI = SQRT(0.94) + A1402_KRHO = SQRT(0.03) +C C-G coefficients for K1- -> CG1 * |K- pi0> + CG2 * |K0bar pi-> + CG1 = -SQRT(2./3.) + CG2 = SQRT(1./3.) +C and the resulting amplitudes (times normalized FF): + PARM(3,81) = C1270*A1270_KSPI*CG1 ! K1270 -> K*0B pi- + PARM(3,82) = C1402*A1402_KSPI*CG1 ! K1402 -> K*0B pi- + PARM(3,83) = C1270*A1270_KRHO*CG1 ! K1270 -> K0B rho- + PARM(3,84) = C1402*A1402_KRHO*CG1 ! K1402 -> K0B rho- + PARM(3,85) = C1270*A1270_KSPI*CG2 ! K1270 -> K*- pi0 + PARM(3,86) = C1402*A1402_KSPI*CG2 ! K1402 -> K*- pi0 + PARM(3,87) = C1270*A1270_KRHO*CG2 ! K1270 -> K- rho0 + PARM(3,88) = C1402*A1402_KRHO*CG2 ! K1402 -> K- rho0 + + END IF +********************************************************************** + + R = 0. + IF (IF1.GE.1 .AND. IF1.LE.4 .AND. IF2.GE.1 .AND. IF2.LE.100) THEN + R = PARM(IF1,IF2) + +CAJW 4/4/94 Better to decide on A1 br now, avoid DADMAA/DPHSAA problem. + IF (IF1.EQ.4.AND.JAK1.EQ.5) THEN + IF (IF2.EQ.11) THEN +C Return the BR used in the last call: + R = BRA1 + ELSE IF (IF2.EQ.1) THEN + BRA1 = R + CALL RANMAR(RRR,1) + IF (RRR(1).LT.BRA1) THEN + R = 1. ! 3pi + ELSE + R = 0. ! pi-2pi0 + END IF + BRA1 = R + END IF + ELSEIF (IF1.EQ.4.AND.JAK1.EQ.7) THEN + IF (IF2.EQ.13) THEN +C Return the BR used in the last call: + R = BRKS + ELSE IF (IF2.EQ.3) THEN + BRKS = R + CALL RANMAR(RRR,1) + IF (RRR(1).LT.BRKS) THEN + R = 1. ! K0 pi- + ELSE + R = 0. ! K- pi0 + END IF + BRKS = R + END IF + END IF + + END IF + + PKORB = R + RETURN + END diff --git a/TEvtGen/Tauola/tauola-fortran/tauola.f b/TEvtGen/Tauola/tauola-fortran/tauola.f new file mode 100644 index 00000000000..f5388130c5b --- /dev/null +++ b/TEvtGen/Tauola/tauola-fortran/tauola.f @@ -0,0 +1,5758 @@ + + + + + + SUBROUTINE JAKER(JAK) +C ********************* +C +C ********************************************************************** +C * + + + + +C *********TAUOLA LIBRARY: VERSION 2.9 ******** * +C **************October 2011****************** * + +C ** AUTHORS: S.JADACH, Z.WAS ***** * +C ** R. DECKER, M. JEZABEK, J.H.KUEHN, ***** * +C ********AVAILABLE FROM: www.cern.ch/wasm **** * +C *******PUBLISHED IN COMP. PHYS. COMM.******** * +C *** 76 (1993) 361 **** * +C *** 64 (1990) 275 **** * +C *** 70 (1992) 69 **** * +C *** CLEO initialization: **** * +C *** Alain Weinstein www home page: **** * +C *** http://www.cithep.caltech.edu/~ajw/ **** * +C *** RChL initialization: **** * +C *** O. Shekhovtsova, T. Przedzinski, **** * +C *** P. Roig and Z. Was **** * +C *** IFJPAN-2013-5, UAB-FT-731 **** * +C ********************************************************************** +C +C ---------------------------------------------------------------------- +c SUBROUTINE JAKER, +C CHOOSES DECAY MODE ACCORDING TO LIST OF BRANCHING RATIOS +C JAK=1 ELECTRON MODE +C JAK=2 MUON MODE +C JAK=3 PION MODE +C JAK=4 RHO MODE +C JAK=5 A1 MODE +C JAK=6 K MODE +C JAK=7 K* MODE + + + + + +C JAK=8 nPI MODE + +C +C called by : DEXAY +C ---------------------------------------------------------------------- + COMMON / TAUBRA / GAMPRT(30),JLIST(30),NCHAN + + +C REAL CUMUL(20) + + REAL CUMUL(30),RRR(1) +C + IF(NCHAN.LE.0.OR.NCHAN.GT.30) GOTO 902 + CALL RANMAR(RRR,1) + SUM=0 + DO 20 I=1,NCHAN + SUM=SUM+GAMPRT(I) + 20 CUMUL(I)=SUM + DO 25 I=NCHAN,1,-1 + IF(RRR(1).LT.CUMUL(I)/CUMUL(NCHAN)) JI=I + 25 CONTINUE + JAK=JLIST(JI) + RETURN + 902 PRINT 9020 + 9020 FORMAT(' ----- JAKER: WRONG NCHAN') + STOP + END + SUBROUTINE DEKAY(KTO,HX) +C *********************** +C THIS DEKAY IS IN SPIRIT OF THE 'DECAY' WHICH +C WAS INCLUDED IN KORAL-B PROGRAM, COMP. PHYS. COMMUN. +C VOL. 36 (1985) 191, SEE COMMENTS ON GENERAL PHILOSOPHY THERE. +C KTO=0 INITIALISATION (OBLIGATORY) +C KTO=1,11 DENOTES TAU+ AND KTO=2,12 TAU- +C DEKAY(1,H) AND DEKAY(2,H) IS CALLED INTERNALLY BY MC GENERATOR. +C H DENOTES THE POLARIMETRIC VECTOR, USED BY THE HOST PROGRAM FOR +C CALCULATION OF THE SPIN WEIGHT. +C USER MAY OPTIONALLY CALL DEKAY(11,H) DEKAY(12,H) IN ORDER +C TO TRANSFORM DECAY PRODUCTS TO CMS AND WRITE LUND RECORD IN /LUJETS/. +C KTO=100, PRINT FINAL REPORT (OPTIONAL). +C DECAY MODES: +C JAK=1 ELECTRON DECAY +C JAK=2 MU DECAY +C JAK=3 PI DECAY +C JAK=4 RHO DECAY +C JAK=5 A1 DECAY +C JAK=6 K DECAY +C JAK=7 K* DECAY + + + + + + +C JAK=8 NPI DECAY +C JAK=0 INCLUSIVE: JAK=1,2,3,4,5,6,7,8 + + REAL H(4) + REAL*8 HX(4) + COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM + + + + COMMON / IDFC / IDF + + COMMON /TAUPOS/ NP1,NP2 + COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) + REAL*4 GAMPMC ,GAMPER + PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) + + + + COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) + + & ,NAMES + CHARACTER NAMES(NMODE)*31 + COMMON / INOUT / INUT,IOUT + COMMON /IPChT/ IVER + INTEGER IVER + + REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4),HDUM(4) + REAL PDUMX(4,9) + DATA IWARM/0/ + KTOM=KTO + + + + IF(KTO.EQ.-1) THEN +C ================== +C INITIALISATION OR REINITIALISATION +C first or second tau positions in HEPEVT as in KORALB/Z + NP1=3 + NP2=4 + KTOM=1 + IF (IWARM.EQ.1) X=5/(IWARM-1) + IWARM=1 + WRITE(IOUT,7001) JAK1,JAK + WRITE(IOUT,7002) IVER + NEVTOT=0 + NEV1=0 + NEV2=0 + IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN + CALL DADMEL(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) + CALL DADMMU(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) + CALL DADMPI(-1,IDUM,HDUM,PDUM1,PDUM2) + CALL DADMRO(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4) + CALL DADMAA(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,JDUM) + CALL DADMKK(-1,IDUM,HDUM,PDUM1,PDUM2) + CALL DADMKS(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,JDUM) + CALL DADNEW(-1,IDUM,HDUM,PDUM1,PDUM2,PDUMX,JDUM) + ENDIF + DO 21 I=1,30 + NEVDEC(I)=0 + GAMPMC(I)=0 + 21 GAMPER(I)=0 + ELSEIF(KTO.EQ.1) THEN +C ===================== +C DECAY OF TAU+ IN THE TAU REST FRAME + NEVTOT=NEVTOT+1 + IF(IWARM.EQ.0) GOTO 902 + ISGN= IDF/IABS(IDF) + + + +C AJWMOD to change BRs depending on sign: + CALL TAURDF(KTO) + + CALL DEKAY1(0,H,ISGN) + ELSEIF(KTO.EQ.2) THEN +C ================================= +C DECAY OF TAU- IN THE TAU REST FRAME + NEVTOT=NEVTOT+1 + IF(IWARM.EQ.0) GOTO 902 + ISGN=-IDF/IABS(IDF) + + + +C AJWMOD to change BRs depending on sign: + CALL TAURDF(KTO) + + CALL DEKAY2(0,H,ISGN) + ELSEIF(KTO.EQ.11) THEN +C ====================== +C REST OF DECAY PROCEDURE FOR ACCEPTED TAU+ DECAY + NEV1=NEV1+1 + ISGN= IDF/IABS(IDF) + CALL DEKAY1(1,H,ISGN) + ELSEIF(KTO.EQ.12) THEN +C ====================== +C REST OF DECAY PROCEDURE FOR ACCEPTED TAU- DECAY + NEV2=NEV2+1 + ISGN=-IDF/IABS(IDF) + CALL DEKAY2(1,H,ISGN) + ELSEIF(KTO.EQ.100) THEN +C ======================= + IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN + CALL DADMEL( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) + CALL DADMMU( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) + CALL DADMPI( 1,IDUM,HDUM,PDUM1,PDUM2) + CALL DADMRO( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4) + CALL DADMAA( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,JDUM) + CALL DADMKK( 1,IDUM,HDUM,PDUM1,PDUM2) + CALL DADMKS( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,JDUM) + CALL DADNEW( 1,IDUM,HDUM,PDUM1,PDUM2,PDUMX,JDUM) + WRITE(IOUT,7010) NEV1,NEV2,NEVTOT + WRITE(IOUT,7011) (NEVDEC(I),GAMPMC(I),GAMPER(I),I= 1,7) + WRITE(IOUT,7012) + $ (NEVDEC(I),GAMPMC(I),GAMPER(I),NAMES(I-7),I=8,7+NMODE) + WRITE(IOUT,7013) + ENDIF + ELSE +C ==== + GOTO 910 + ENDIF +C ===== + DO 78 K=1,4 + 78 HX(K)=H(K) + RETURN + 7001 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.9 ******',9X,1H*, + $ /,' *', 25X,'***********October 2011 ***************',9X,1H*, + $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*, + $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*, + $ /,' *', 25X,'**AVAILABLE FROM: www.cern.ch/wasm**** ',9X,1H*, + $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*, + $ /,' *', 25X,'0: Physics initialization CLEO collab ',9X,1H*, + $ /,' *', 25X,' see Alain Weinstein www home page: ',9X,1H*, + $ /,' *', 25X,'http://www.cithep.caltech.edu/~ajw/ ',9X,1H*, + $ /,' *', 25X,'/korb_doc.html#files ',9X,1H*, + $ /,' *', 25X,'1: Physics initialization RChL of: ',9X,1H*, + $ /,' *', 25X,' O. Shekhovtsova, T. Przedzinski, ',9X,1H*, + $ /,' *', 25X,' P. Roig and Z. Was ',9X,1H*, + $ /,' *', 25X,' IFJPAN-2013-5, UAB-FT-731 ',9X,1H*, + $ /,' *', 25X,'*******CPC 76 (1993) 361 *****',9X,1H*, + $ /,' *', 25X,'**5 or more pi dec.: precision limited ',9X,1H*, + $ /,' *', 25X,'****DEKAY ROUTINE: INITIALIZATION******',9X,1H*, + $ /,' *',I20 ,5X,'JAK1 = DECAY MODE TAU+ ',9X,1H*, + $ /,' *',I20 ,5X,'JAK2 = DECAY MODE TAU- ',9X,1H*, + $ /,1X,15(5H*****)/) + 7002 FORMAT(' *',I20 ,5X,'IVER = hadronic current version ',9X,1H*) + 7010 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.9 ******',9X,1H*, + $ /,' *', 25X,'***********October 2011 ***************',9X,1H*, + $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*, + $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*, + $ /,' *', 25X,'**AVAILABLE FROM: www.cern.ch/wasm ****',9X,1H*, + $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*, + $ /,' *', 25X,'******* 64 (1990) 275 *****',9X,1H*, + $ /,' *', 25X,'******* 70 (1992) 69 *****',9X,1H*, + $ /,' *', 25X,'******* 76 (1993) 361 *****',9X,1H*, + $ /,' *', 25X,'******* IFJPAN-2013-5, UAB-FT-731 **',9X,1H*, + $ /,' *', 25X,'*****DEKAY ROUTINE: FINAL REPORT*******',9X,1H*, + $ /,' *',I20 ,5X,'NEV1 = NO. OF TAU+ DECS. ACCEPTED ',9X,1H*, + $ /,' *',I20 ,5X,'NEV2 = NO. OF TAU- DECS. ACCEPTED ',9X,1H*, + $ /,' *',I20 ,5X,'NEVTOT = SUM ',9X,1H*, + $ /,' *',' NOEVTS ', + $ ' PART.WIDTH ERROR ROUTINE DECAY MODE ',9X,1H*) + 7011 FORMAT(1X,'*' + $ ,I10,2F12.7 ,' DADMEL ELECTRON ',9X,1H* + $ /,' *',I10,2F12.7 ,' DADMMU MUON ',9X,1H* + $ /,' *',I10,2F12.7 ,' DADMPI PION ',9X,1H* + $ /,' *',I10,2F12.7, ' DADMRO RHO (->2PI) ',9X,1H* + $ /,' *',I10,2F12.7, ' DADMAA A1 (->3PI) ',9X,1H* + $ /,' *',I10,2F12.7, ' DADMKK KAON ',9X,1H* + $ /,' *',I10,2F12.7, ' DADMKS K* ',9X,1H*) + 7012 FORMAT(1X,'*' + $ ,I10,2F12.7,A31 ,8X,1H*) + 7013 FORMAT(1X,'*' + $ ,20X,'THE ERROR IS RELATIVE AND PART.WIDTH ',10X,1H* + $ /,' *',20X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',10X,1H* + $ /,1X,15(5H*****)/) + 902 PRINT 9020 + 9020 FORMAT(' ----- DEKAY: LACK OF INITIALISATION') + STOP + 910 PRINT 9100 + 9100 FORMAT(' ----- DEKAY: WRONG VALUE OF KTO ') + STOP + END + SUBROUTINE DEKAY1(IMOD,HH,ISGN) +C ******************************* +C THIS ROUTINE SIMULATES TAU+ DECAY + COMMON / DECP4 / PP1(4),PP2(4),KF1,KF2 + COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM + COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) + REAL*4 GAMPMC ,GAMPER + REAL HH(4) + REAL HV(4),PNU(4),PPI(4) + REAL PWB(4),PMU(4),PNM(4) + REAL PRHO(4),PIC(4),PIZ(4) + REAL PAA(4),PIM1(4),PIM2(4),PIPL(4) + REAL PKK(4),PKS(4) + REAL PNPI(4,9) + REAL PHOT(4) + REAL PDUM(4) + DATA NEV,NPRIN/0,10/ + KTO=1 + IF(JAK1.EQ.-1) RETURN + IMD=IMOD + IF(IMD.EQ.0) THEN +C ================= + JAK=JAK1 + IF(JAK1.EQ.0) CALL JAKER(JAK) + IF(JAK.EQ.1) THEN + CALL DADMEL(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT) + ELSEIF(JAK.EQ.2) THEN + CALL DADMMU(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT) + ELSEIF(JAK.EQ.3) THEN + CALL DADMPI(0, ISGN,HV,PPI,PNU) + ELSEIF(JAK.EQ.4) THEN + CALL DADMRO(0, ISGN,HV,PNU,PRHO,PIC,PIZ) + ELSEIF(JAK.EQ.5) THEN + CALL DADMAA(0, ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA) + ELSEIF(JAK.EQ.6) THEN + CALL DADMKK(0, ISGN,HV,PKK,PNU) + ELSEIF(JAK.EQ.7) THEN + CALL DADMKS(0, ISGN,HV,PNU,PKS ,PKK,PPI,JKST) + ELSE + CALL DADNEW(0, ISGN,HV,PNU,PWB,PNPI,JAK-7) + ENDIF + DO 33 I=1,3 + 33 HH(I)=HV(I) + HH(4)=1.0 + + ELSEIF(IMD.EQ.1) THEN +C ===================== + NEV=NEV+1 + IF (JAK.LT.31) THEN + NEVDEC(JAK)=NEVDEC(JAK)+1 + ENDIF + DO 34 I=1,4 + 34 PDUM(I)=.0 + IF(JAK.EQ.1) THEN + CALL DWLUEL(1,ISGN,PNU,PWB,PMU,PNM) + CALL DWRPH(KTOM,PHOT) + DO 10 I=1,4 + 10 PP1(I)=PMU(I) + + ELSEIF(JAK.EQ.2) THEN + CALL DWLUMU(1,ISGN,PNU,PWB,PMU,PNM) + CALL DWRPH(KTOM,PHOT) + DO 20 I=1,4 + 20 PP1(I)=PMU(I) + + ELSEIF(JAK.EQ.3) THEN + CALL DWLUPI(1,ISGN,PPI,PNU) + DO 30 I=1,4 + 30 PP1(I)=PPI(I) + + ELSEIF(JAK.EQ.4) THEN + CALL DWLURO(1,ISGN,PNU,PRHO,PIC,PIZ) + DO 40 I=1,4 + 40 PP1(I)=PRHO(I) + + ELSEIF(JAK.EQ.5) THEN + CALL DWLUAA(1,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA) + DO 50 I=1,4 + 50 PP1(I)=PAA(I) + ELSEIF(JAK.EQ.6) THEN + CALL DWLUKK(1,ISGN,PKK,PNU) + DO 60 I=1,4 + 60 PP1(I)=PKK(I) + ELSEIF(JAK.EQ.7) THEN + CALL DWLUKS(1,ISGN,PNU,PKS,PKK,PPI,JKST) + DO 70 I=1,4 + 70 PP1(I)=PKS(I) + ELSE +CAM MULTIPION DECAY + CALL DWLNEW(1,ISGN,PNU,PWB,PNPI,JAK) + DO 80 I=1,4 + 80 PP1(I)=PWB(I) + ENDIF + + ENDIF +C ===== + END + SUBROUTINE DEKAY2(IMOD,HH,ISGN) +C ******************************* +C THIS ROUTINE SIMULATES TAU- DECAY + COMMON / DECP4 / PP1(4),PP2(4),KF1,KF2 + COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM + COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) + REAL*4 GAMPMC ,GAMPER + REAL HH(4) + REAL HV(4),PNU(4),PPI(4) + REAL PWB(4),PMU(4),PNM(4) + REAL PRHO(4),PIC(4),PIZ(4) + REAL PAA(4),PIM1(4),PIM2(4),PIPL(4) + REAL PKK(4),PKS(4) + REAL PNPI(4,9) + REAL PHOT(4) + REAL PDUM(4) + DATA NEV,NPRIN/0,10/ + KTO=2 + IF(JAK2.EQ.-1) RETURN + IMD=IMOD + IF(IMD.EQ.0) THEN +C ================= + JAK=JAK2 + IF(JAK2.EQ.0) CALL JAKER(JAK) + IF(JAK.EQ.1) THEN + CALL DADMEL(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT) + ELSEIF(JAK.EQ.2) THEN + CALL DADMMU(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT) + ELSEIF(JAK.EQ.3) THEN + CALL DADMPI(0, ISGN,HV,PPI,PNU) + ELSEIF(JAK.EQ.4) THEN + CALL DADMRO(0, ISGN,HV,PNU,PRHO,PIC,PIZ) + ELSEIF(JAK.EQ.5) THEN + CALL DADMAA(0, ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA) + ELSEIF(JAK.EQ.6) THEN + CALL DADMKK(0, ISGN,HV,PKK,PNU) + ELSEIF(JAK.EQ.7) THEN + CALL DADMKS(0, ISGN,HV,PNU,PKS ,PKK,PPI,JKST) + ELSE + CALL DADNEW(0, ISGN,HV,PNU,PWB,PNPI,JAK-7) + ENDIF + DO 33 I=1,3 + 33 HH(I)=HV(I) + HH(4)=1.0 + ELSEIF(IMD.EQ.1) THEN +C ===================== + NEV=NEV+1 + IF (JAK.LT.31) THEN + NEVDEC(JAK)=NEVDEC(JAK)+1 + ENDIF + DO 34 I=1,4 + 34 PDUM(I)=.0 + IF(JAK.EQ.1) THEN + CALL DWLUEL(2,ISGN,PNU,PWB,PMU,PNM) + CALL DWRPH(KTOM,PHOT) + DO 10 I=1,4 + 10 PP2(I)=PMU(I) + + ELSEIF(JAK.EQ.2) THEN + CALL DWLUMU(2,ISGN,PNU,PWB,PMU,PNM) + CALL DWRPH(KTOM,PHOT) + DO 20 I=1,4 + 20 PP2(I)=PMU(I) + + ELSEIF(JAK.EQ.3) THEN + CALL DWLUPI(2,ISGN,PPI,PNU) + DO 30 I=1,4 + 30 PP2(I)=PPI(I) + + ELSEIF(JAK.EQ.4) THEN + CALL DWLURO(2,ISGN,PNU,PRHO,PIC,PIZ) + DO 40 I=1,4 + 40 PP2(I)=PRHO(I) + + ELSEIF(JAK.EQ.5) THEN + CALL DWLUAA(2,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA) + DO 50 I=1,4 + 50 PP2(I)=PAA(I) + ELSEIF(JAK.EQ.6) THEN + CALL DWLUKK(2,ISGN,PKK,PNU) + DO 60 I=1,4 + 60 PP1(I)=PKK(I) + ELSEIF(JAK.EQ.7) THEN + CALL DWLUKS(2,ISGN,PNU,PKS,PKK,PPI,JKST) + DO 70 I=1,4 + 70 PP1(I)=PKS(I) + ELSE +CAM MULTIPION DECAY + CALL DWLNEW(2,ISGN,PNU,PWB,PNPI,JAK) + DO 80 I=1,4 + 80 PP1(I)=PWB(I) + ENDIF +C + ENDIF +C ===== + END + SUBROUTINE DEXAY(KTO,POL) +C ---------------------------------------------------------------------- +C THIS 'DEXAY' IS A ROUTINE WHICH GENERATES DECAY OF THE SINGLE +C POLARIZED TAU, POL IS A POLARIZATION VECTOR (NOT A POLARIMETER +C VECTOR AS IN DEKAY) OF THE TAU AND IT IS AN INPUT PARAMETER. +C KTO=0 INITIALISATION (OBLIGATORY) +C KTO=1 DENOTES TAU+ AND KTO=2 TAU- +C DEXAY(1,POL) AND DEXAY(2,POL) ARE CALLED INTERNALLY BY MC GENERATOR. +C DECAY PRODUCTS ARE TRANSFORMED READILY +C TO CMS AND WRITEN IN THE LUND RECORD IN /LUJETS/ +C KTO=100, PRINT FINAL REPORT (OPTIONAL). +C +C called by : KORALZ +C ---------------------------------------------------------------------- + COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) + REAL*4 GAMPMC ,GAMPER + COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM + COMMON / IDFC / IDFF + COMMON /TAUPOS/ NP1,NP2 + PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) + COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) + & ,NAMES + CHARACTER NAMES(NMODE)*31 + COMMON / INOUT / INUT,IOUT + COMMON /IPChT/ IVER + INTEGER IVER + + REAL POL(4) + REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4) + REAL PDUM(4) + REAL PDUMI(4,9) + DATA IWARM/0/ + KTOM=KTO +C + IF(KTO.EQ.-1) THEN +C ================== + +C INITIALISATION OR REINITIALISATION +C first or second tau positions in HEPEVT as in KORALB/Z + NP1=3 + NP2=4 + IWARM=1 + WRITE(IOUT, 7001) JAK1,JAK2 + WRITE(IOUT,7002) IVER + NEVTOT=0 + NEV1=0 + NEV2=0 + IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN + CALL DEXEL(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) + CALL DEXMU(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) + CALL DEXPI(-1,IDUM,PDUM,PDUM1,PDUM2) + CALL DEXRO(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4) + CALL DEXAA(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,IDUM) + CALL DEXKK(-1,IDUM,PDUM,PDUM1,PDUM2) + CALL DEXKS(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,IDUM) + CALL DEXNEW(-1,IDUM,PDUM,PDUM1,PDUM2,PDUMI,IDUM) + ENDIF + DO 21 I=1,30 + NEVDEC(I)=0 + GAMPMC(I)=0 + 21 GAMPER(I)=0 + ELSEIF(KTO.EQ.1) THEN +C ===================== +C DECAY OF TAU+ IN THE TAU REST FRAME + NEVTOT=NEVTOT+1 + NEV1=NEV1+1 + IF(IWARM.EQ.0) GOTO 902 + ISGN=IDFF/IABS(IDFF) +CAM CALL DEXAY1(POL,ISGN) + CALL DEXAY1(KTO,JAK1,JAKP,POL,ISGN) + ELSEIF(KTO.EQ.2) THEN +C ================================= +C DECAY OF TAU- IN THE TAU REST FRAME + NEVTOT=NEVTOT+1 + NEV2=NEV2+1 + IF(IWARM.EQ.0) GOTO 902 + ISGN=-IDFF/IABS(IDFF) +CAM CALL DEXAY2(POL,ISGN) + CALL DEXAY1(KTO,JAK2,JAKM,POL,ISGN) + ELSEIF(KTO.EQ.100) THEN +C ======================= + IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN + CALL DEXEL( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) + CALL DEXMU( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) + CALL DEXPI( 1,IDUM,PDUM,PDUM1,PDUM2) + CALL DEXRO( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4) + CALL DEXAA( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,IDUM) + CALL DEXKK( 1,IDUM,PDUM,PDUM1,PDUM2) + CALL DEXKS( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,IDUM) + CALL DEXNEW( 1,IDUM,PDUM,PDUM1,PDUM2,PDUMI,IDUM) + WRITE(IOUT,7010) NEV1,NEV2,NEVTOT + WRITE(IOUT,7011) (NEVDEC(I),GAMPMC(I),GAMPER(I),I= 1,7) + WRITE(IOUT,7012) + $ (NEVDEC(I),GAMPMC(I),GAMPER(I),NAMES(I-7),I=8,7+NMODE) + WRITE(IOUT,7013) + ENDIF + ELSE + GOTO 910 + ENDIF + RETURN + 7001 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.9 ******',9X,1H*, + $ /,' *', 25X,'***********October 2011***************',9X,1H*, + $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*, + $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*, + $ /,' *', 25X,'**AVAILABLE FROM: www.cern.ch/wasm****',9X,1H*, + $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*, + $ /,' *', 25X,'0: Physics initialization CLEO collab ',9X,1H*, + $ /,' *', 25X,' see Alain Weinstein www home page: ',9X,1H*, + $ /,' *', 25X,'http://www.cithep.caltech.edu/~ajw/ ',9X,1H*, + $ /,' *', 25X,'/korb_doc.html#files ',9X,1H*, + $ /,' *', 25X,'1: Physics initialization RChL of: ',9X,1H*, + $ /,' *', 25X,' O. Shekhovtsova, T. Przedzinski, ',9X,1H*, + $ /,' *', 25X,' P. Roig and Z. Was ',9X,1H*, + $ /,' *', 25X,' IFJPAN-2013-5, UAB-FT-731 ',9X,1H*, + $ /,' *', 25X,'****** CPC 76 (1993) 361 ******',9X,1H*, + $ /,' *', 25X,'**5 or more pi dec.: precision limited ',9X,1H*, + $ /,' *', 25X,'******DEXAY ROUTINE: INITIALIZATION****',9X,1H* + $ /,' *',I20 ,5X,'JAK1 = DECAY MODE FERMION1 (TAU+) ',9X,1H* + $ /,' *',I20 ,5X,'JAK2 = DECAY MODE FERMION2 (TAU-) ',9X,1H* + $ /,1X,15(5H*****)/) + 7002 FORMAT(' *',I20 ,5X,'IVER = hadronic current version ',9X,1H*) +CHBU format 7010 had more than 19 continuation lines +CHBU split into two + 7010 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.9 ******',9X,1H*, + $ /,' *', 25X,'***********October 2011***************',9X,1H*, + $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*, + $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*, + $ /,' *', 25X,'**AVAILABLE FROM: www.cern.ch/wasm ****',9X,1H*, + $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*, + $ /,' *', 25X,'******* 64 (1990) 275 *****',9X,1H*, + $ /,' *', 25X,'******* 70 (1992) 69 *****',9X,1H*, + $ /,' *', 25X,'******* 76 (1993) 361 *****',9X,1H*, + $ /,' *', 25X,'******* IFJPAN-2013-5, UAB-FT-731 **',9X,1H*, + $ /,' *', 25X,'******DEXAY ROUTINE: FINAL REPORT******',9X,1H* + $ /,' *',I20 ,5X,'NEV1 = NO. OF TAU+ DECS. ACCEPTED ',9X,1H* + $ /,' *',I20 ,5X,'NEV2 = NO. OF TAU- DECS. ACCEPTED ',9X,1H* + $ /,' *',I20 ,5X,'NEVTOT = SUM ',9X,1H* + $ /,' *',' NOEVTS ', + $ ' PART.WIDTH ERROR ROUTINE DECAY MODE ',9X,1H*) + 7011 FORMAT(1X,'*' + $ ,I10,2F12.7 ,' DADMEL ELECTRON ',9X,1H* + $ /,' *',I10,2F12.7 ,' DADMMU MUON ',9X,1H* + $ /,' *',I10,2F12.7 ,' DADMPI PION ',9X,1H* + $ /,' *',I10,2F12.7, ' DADMRO RHO (->2PI) ',9X,1H* + $ /,' *',I10,2F12.7, ' DADMAA A1 (->3PI) ',9X,1H* + $ /,' *',I10,2F12.7, ' DADMKK KAON ',9X,1H* + $ /,' *',I10,2F12.7, ' DADMKS K* ',9X,1H*) + 7012 FORMAT(1X,'*' + $ ,I10,2F12.7,A31 ,8X,1H*) + 7013 FORMAT(1X,'*' + $ ,20X,'THE ERROR IS RELATIVE AND PART.WIDTH ',10X,1H* + $ /,' *',20X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',10X,1H* + $ /,1X,15(5H*****)/) + 902 WRITE(IOUT, 9020) + 9020 FORMAT(' ----- DEXAY: LACK OF INITIALISATION') + STOP + 910 WRITE(IOUT, 9100) + 9100 FORMAT(' ----- DEXAY: WRONG VALUE OF KTO ') + STOP + END + SUBROUTINE DEXAY1(KTO,JAKIN,JAK,POL,ISGN) +C --------------------------------------------------------------------- +C THIS ROUTINE SIMULATES TAU+- DECAY +C +C called by : DEXAY +C --------------------------------------------------------------------- + COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) + REAL*4 GAMPMC ,GAMPER + COMMON / INOUT / INUT,IOUT + REAL POL(4),POLAR(4) + REAL PNU(4),PPI(4) + REAL PRHO(4),PIC(4),PIZ(4) + REAL PWB(4),PMU(4),PNM(4) + REAL PAA(4),PIM1(4),PIM2(4),PIPL(4) + REAL PKK(4),PKS(4) + REAL PNPI(4,9) + REAL PHOT(4) + REAL PDUM(4) +C + IF(JAKIN.EQ.-1) RETURN + DO 33 I=1,3 + 33 POLAR(I)=POL(I) + POLAR(4)=0. + DO 34 I=1,4 + 34 PDUM(I)=.0 + JAK=JAKIN + IF(JAK.EQ.0) CALL JAKER(JAK) +CAM + IF(JAK.EQ.1) THEN + CALL DEXEL(0, ISGN,POLAR,PNU,PWB,PMU,PNM,PHOT) + CALL DWLUEL(KTO,ISGN,PNU,PWB,PMU,PNM) + CALL DWRPH(KTO,PHOT ) + ELSEIF(JAK.EQ.2) THEN + CALL DEXMU(0, ISGN,POLAR,PNU,PWB,PMU,PNM,PHOT) + CALL DWLUMU(KTO,ISGN,PNU,PWB,PMU,PNM) + CALL DWRPH(KTO,PHOT ) + ELSEIF(JAK.EQ.3) THEN + CALL DEXPI(0, ISGN,POLAR,PPI,PNU) + CALL DWLUPI(KTO,ISGN,PPI,PNU) + ELSEIF(JAK.EQ.4) THEN + CALL DEXRO(0, ISGN,POLAR,PNU,PRHO,PIC,PIZ) + CALL DWLURO(KTO,ISGN,PNU,PRHO,PIC,PIZ) + ELSEIF(JAK.EQ.5) THEN + CALL DEXAA(0, ISGN,POLAR,PNU,PAA,PIM1,PIM2,PIPL,JAA) + CALL DWLUAA(KTO,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA) + ELSEIF(JAK.EQ.6) THEN + CALL DEXKK(0, ISGN,POLAR,PKK,PNU) + CALL DWLUKK(KTO,ISGN,PKK,PNU) + ELSEIF(JAK.EQ.7) THEN + CALL DEXKS(0, ISGN,POLAR,PNU,PKS,PKK,PPI,JKST) + CALL DWLUKS(KTO,ISGN,PNU,PKS,PKK,PPI,JKST) + ELSE + JNPI=JAK-7 + CALL DEXNEW(0, ISGN,POLAR,PNU,PWB,PNPI,JNPI) + CALL DWLNEW(KTO,ISGN,PNU,PWB,PNPI,JAK) + ENDIF + NEVDEC(JAK)=NEVDEC(JAK)+1 + END + SUBROUTINE DEXEL(MODE,ISGN,POL,PNU,PWB,Q1,Q2,PH) +C ---------------------------------------------------------------------- +C THIS SIMULATES TAU DECAY IN TAU REST FRAME +C INTO ELECTRON AND TWO NEUTRINOS +C +C called by : DEXAY,DEXAY1 +C ---------------------------------------------------------------------- + REAL POL(4),HV(4),PWB(4),PNU(4),Q1(4),Q2(4),PH(4),RN(1) + DATA IWARM/0/ +C + IF(MODE.EQ.-1) THEN +C =================== + IWARM=1 + CALL DADMEL( -1,ISGN,HV,PNU,PWB,Q1,Q2,PH) +CC CALL HBOOK1(813,'WEIGHT DISTRIBUTION DEXEL $',100,0,2) +C + ELSEIF(MODE.EQ. 0) THEN +C ======================= +300 CONTINUE + IF(IWARM.EQ.0) GOTO 902 + CALL DADMEL( 0,ISGN,HV,PNU,PWB,Q1,Q2,PH) + WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. +CC CALL HFILL(813,WT) + CALL RANMAR(RN,1) + IF(RN(1).GT.WT) GOTO 300 +C + ELSEIF(MODE.EQ. 1) THEN +C ======================= + CALL DADMEL( 1,ISGN,HV,PNU,PWB,Q1,Q2,PH) +CC CALL HPRINT(813) + ENDIF +C ===== + RETURN + 902 PRINT 9020 + 9020 FORMAT(' ----- DEXEL: LACK OF INITIALISATION') + STOP + END + SUBROUTINE DEXMU(MODE,ISGN,POL,PNU,PWB,Q1,Q2,PH) +C ---------------------------------------------------------------------- +C THIS SIMULATES TAU DECAY IN ITS REST FRAME +C INTO MUON AND TWO NEUTRINOS +C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO, +C PWB W-BOSON +C Q1 MUON +C Q2 MUON-NEUTRINO +C ---------------------------------------------------------------------- + COMMON / INOUT / INUT,IOUT + REAL POL(4),HV(4),PWB(4),PNU(4),Q1(4),Q2(4),PH(4),RN(1) + DATA IWARM/0/ +C + IF(MODE.EQ.-1) THEN +C =================== + IWARM=1 + CALL DADMMU( -1,ISGN,HV,PNU,PWB,Q1,Q2,PH) +CC CALL HBOOK1(814,'WEIGHT DISTRIBUTION DEXMU $',100,0,2) +C + ELSEIF(MODE.EQ. 0) THEN +C ======================= +300 CONTINUE + IF(IWARM.EQ.0) GOTO 902 + CALL DADMMU( 0,ISGN,HV,PNU,PWB,Q1,Q2,PH) + WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. +CC CALL HFILL(814,WT) + CALL RANMAR(RN,1) + IF(RN(1).GT.WT) GOTO 300 +C + ELSEIF(MODE.EQ. 1) THEN +C ======================= + CALL DADMMU( 1,ISGN,HV,PNU,PWB,Q1,Q2,PH) +CC CALL HPRINT(814) + ENDIF +C ===== + RETURN + 902 WRITE(IOUT, 9020) + 9020 FORMAT(' ----- DEXMU: LACK OF INITIALISATION') + STOP + END + SUBROUTINE DADMEL(MODE,ISGN,HHV,PNU,PWB,Q1,Q2,PHX) +C ---------------------------------------------------------------------- +C +C called by : DEXEL,(DEKAY,DEKAY1) +C ---------------------------------------------------------------------- + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) + REAL*4 GAMPMC ,GAMPER + REAL*4 PHX(4) + COMMON / INOUT / INUT,IOUT + REAL HHV(4),HV(4),PWB(4),PNU(4),Q1(4),Q2(4) + REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4) + REAL*4 RRR(3) + REAL*8 SWT, SSWT + DATA PI /3.141592653589793238462643/ + DATA IWARM/0/ +C + IF(MODE.EQ.-1) THEN +C =================== + IWARM=1 + NEVRAW=0 + NEVACC=0 + NEVOVR=0 + SWT=0 + SSWT=0 + WTMAX=1E-20 + DO 15 I=1,500 + CALL DPHSEL(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) + IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2 +15 CONTINUE +CC CALL HBOOK1(803,'WEIGHT DISTRIBUTION DADMEL $',100,0,2) +C + ELSEIF(MODE.EQ. 0) THEN +C ======================= +300 CONTINUE + IF(IWARM.EQ.0) GOTO 902 + NEVRAW=NEVRAW+1 + CALL DPHSEL(WT,HV,PNU,PWB,Q1,Q2,PHX) +CC CALL HFILL(803,WT/WTMAX) + SWT=SWT+WT + SSWT=SSWT+WT**2 + CALL RANMAR(RRR,3) + RN=RRR(1) + IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1 + IF(RN*WTMAX.GT.WT) GOTO 300 +C ROTATIONS TO BASIC TAU REST FRAME + RR2=RRR(2) + COSTHE=-1.+2.*RR2 + THET=ACOS(COSTHE) + RR3=RRR(3) + PHI =2*PI*RR3 + CALL ROTOR2(THET,PNU,PNU) + CALL ROTOR3( PHI,PNU,PNU) + CALL ROTOR2(THET,PWB,PWB) + CALL ROTOR3( PHI,PWB,PWB) + CALL ROTOR2(THET,Q1,Q1) + CALL ROTOR3( PHI,Q1,Q1) + CALL ROTOR2(THET,Q2,Q2) + CALL ROTOR3( PHI,Q2,Q2) + CALL ROTOR2(THET,HV,HV) + CALL ROTOR3( PHI,HV,HV) + CALL ROTOR2(THET,PHX,PHX) + CALL ROTOR3( PHI,PHX,PHX) + DO 44,I=1,3 + 44 HHV(I)=-ISGN*HV(I) + NEVACC=NEVACC+1 +C + ELSEIF(MODE.EQ. 1) THEN +C ======================= + IF(NEVRAW.EQ.0) RETURN + PARGAM=SWT/FLOAT(NEVRAW+1) + ERROR=0 + IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW)) + RAT=PARGAM/GAMEL + WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR +CC CALL HPRINT(803) + GAMPMC(1)=RAT + GAMPER(1)=ERROR +CAM NEVDEC(1)=NEVACC + ENDIF +C ===== + RETURN + 7010 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'******** DADMEL FINAL REPORT ******** ',9X,1H* + $ /,' *',I20 ,5X,'NEVRAW = NO. OF EL DECAYS TOTAL ',9X,1H* + $ /,' *',I20 ,5X,'NEVACC = NO. OF EL DECS. ACCEPTED ',9X,1H* + $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H* + $ /,' *',E20.5,5X,'PARTIAL WTDTH ( ELECTRON) IN GEV UNITS ',9X,1H* + $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* + $ /,' *',F20.9,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H* + $ /,' *',25X, 'COMPLETE QED CORRECTIONS INCLUDED ',9X,1H* + $ /,' *',25X, 'BUT ONLY V-A CUPLINGS ',9X,1H* + $ /,1X,15(5H*****)/) + 902 WRITE(IOUT, 9020) + 9020 FORMAT(' ----- DADMEL: LACK OF INITIALISATION') + STOP + END + SUBROUTINE DADMMU(MODE,ISGN,HHV,PNU,PWB,Q1,Q2,PHX) +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) + REAL*4 GAMPMC ,GAMPER + COMMON / INOUT / INUT,IOUT + REAL*4 PHX(4) + REAL HHV(4),HV(4),PNU(4),PWB(4),Q1(4),Q2(4) + REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4) + REAL*4 RRR(3) + REAL*8 SWT, SSWT + DATA PI /3.141592653589793238462643/ + DATA IWARM /0/ +C + IF(MODE.EQ.-1) THEN +C =================== + IWARM=1 + NEVRAW=0 + NEVACC=0 + NEVOVR=0 + SWT=0 + SSWT=0 + WTMAX=1E-20 + DO 15 I=1,500 + CALL DPHSMU(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) + IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2 +15 CONTINUE +CC CALL HBOOK1(802,'WEIGHT DISTRIBUTION DADMMU $',100,0,2) +C + ELSEIF(MODE.EQ. 0) THEN +C ======================= +300 CONTINUE + IF(IWARM.EQ.0) GOTO 902 + NEVRAW=NEVRAW+1 + CALL DPHSMU(WT,HV,PNU,PWB,Q1,Q2,PHX) +CC CALL HFILL(802,WT/WTMAX) + SWT=SWT+WT + SSWT=SSWT+WT**2 + CALL RANMAR(RRR,3) + RN=RRR(1) + IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1 + IF(RN*WTMAX.GT.WT) GOTO 300 +C ROTATIONS TO BASIC TAU REST FRAME + COSTHE=-1.+2.*RRR(2) + THET=ACOS(COSTHE) + PHI =2*PI*RRR(3) + CALL ROTOR2(THET,PNU,PNU) + CALL ROTOR3( PHI,PNU,PNU) + CALL ROTOR2(THET,PWB,PWB) + CALL ROTOR3( PHI,PWB,PWB) + CALL ROTOR2(THET,Q1,Q1) + CALL ROTOR3( PHI,Q1,Q1) + CALL ROTOR2(THET,Q2,Q2) + CALL ROTOR3( PHI,Q2,Q2) + CALL ROTOR2(THET,HV,HV) + CALL ROTOR3( PHI,HV,HV) + CALL ROTOR2(THET,PHX,PHX) + CALL ROTOR3( PHI,PHX,PHX) + DO 44,I=1,3 + 44 HHV(I)=-ISGN*HV(I) + NEVACC=NEVACC+1 +C + ELSEIF(MODE.EQ. 1) THEN +C ======================= + IF(NEVRAW.EQ.0) RETURN + PARGAM=SWT/FLOAT(NEVRAW+1) + ERROR=0 + IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW)) + RAT=PARGAM/GAMEL + WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR +CC CALL HPRINT(802) + GAMPMC(2)=RAT + GAMPER(2)=ERROR +CAM NEVDEC(2)=NEVACC + ENDIF +C ===== + RETURN + 7010 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'******** DADMMU FINAL REPORT ******** ',9X,1H* + $ /,' *',I20 ,5X,'NEVRAW = NO. OF MU DECAYS TOTAL ',9X,1H* + $ /,' *',I20 ,5X,'NEVACC = NO. OF MU DECS. ACCEPTED ',9X,1H* + $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H* + $ /,' *',E20.5,5X,'PARTIAL WTDTH (MU DECAY) IN GEV UNITS ',9X,1H* + $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* + $ /,' *',F20.9,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H* + $ /,' *',25X, 'COMPLETE QED CORRECTIONS INCLUDED ',9X,1H* + $ /,' *',25X, 'BUT ONLY V-A CUPLINGS ',9X,1H* + $ /,1X,15(5H*****)/) + 902 WRITE(IOUT, 9020) + 9020 FORMAT(' ----- DADMMU: LACK OF INITIALISATION') + STOP + END + SUBROUTINE DPHSEL(DGAMX,HVX,XNX,PAAX,QPX,XAX,PHX) +C XNX,XNA was flipped in parameters of dphsel and dphsmu +C ********************************************************************* +C * ELECTRON DECAY MODE * +C ********************************************************************* + REAL*4 PHX(4) + REAL*4 HVX(4),PAAX(4),XAX(4),QPX(4),XNX(4) + REAL*8 HV(4),PH(4),PAA(4),XA(4),QP(4),XN(4) + REAL*8 DGAMT + IELMU=1 + CALL DRCMU(DGAMT,HV,PH,PAA,XA,QP,XN,IELMU) + DO 7 K=1,4 + HVX(K)=HV(K) + PHX(K)=PH(K) + PAAX(K)=PAA(K) + XAX(K)=XA(K) + QPX(K)=QP(K) + XNX(K)=XN(K) + 7 CONTINUE + DGAMX=DGAMT + END + SUBROUTINE DPHSMU(DGAMX,HVX,XNX,PAAX,QPX,XAX,PHX) +C XNX,XNA was flipped in parameters of dphsel and dphsmu +C ********************************************************************* +C * MUON DECAY MODE * +C ********************************************************************* + REAL*4 PHX(4) + REAL*4 HVX(4),PAAX(4),XAX(4),QPX(4),XNX(4) + REAL*8 HV(4),PH(4),PAA(4),XA(4),QP(4),XN(4) + REAL*8 DGAMT + IELMU=2 + CALL DRCMU(DGAMT,HV,PH,PAA,XA,QP,XN,IELMU) + DO 7 K=1,4 + HVX(K)=HV(K) + PHX(K)=PH(K) + PAAX(K)=PAA(K) + XAX(K)=XA(K) + QPX(K)=QP(K) + XNX(K)=XN(K) + 7 CONTINUE + DGAMX=DGAMT + END + SUBROUTINE DRCMU(DGAMT,HV,PH,PAA,XA,QP,XN,IELMU) + IMPLICIT REAL*8 (A-H,O-Z) +C ---------------------------------------------------------------------- +* IT SIMULATES E,MU CHANNELS OF TAU DECAY IN ITS REST FRAME WITH +* QED ORDER ALPHA CORRECTIONS +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON / INOUT / INUT,IOUT + COMMON / TAURAD / XK0DEC,ITDKRC + REAL*8 XK0DEC + REAL*8 HV(4),PT(4),PH(4),PAA(4),XA(4),QP(4),XN(4) + REAL*8 PR(4) + REAL*4 RRR(6) + LOGICAL IHARD + DATA PI /3.141592653589793238462643D0/ +C AJWMOD to satisfy compiler, comment out this unused function. +C AMRO, GAMRO IS ONLY A PARAMETER FOR GETING HIGHT EFFICIENCY +C +C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL +C D**3 P /2E/(2PI)**3 (2PI)**4 DELTA4(SUM P) + PHSPAC=1./2**17/PI**8 + AMTAX=AMTAU +C TAU MOMENTUM + PT(1)=0.D0 + PT(2)=0.D0 + PT(3)=0.D0 + PT(4)=AMTAX +C + CALL RANMAR(RRR,6) +C + IF (IELMU.EQ.1) THEN + AMU=AMEL + ELSE + AMU=AMMU + ENDIF +C + PRHARD=0.30D0 + IF ( ITDKRC.EQ.0) PRHARD=0D0 + PRSOFT=1.-PRHARD + IF(PRSOFT.LT.0.1) THEN + PRINT *, 'ERROR IN DRCMU; PRSOFT=',PRSOFT + STOP + ENDIF +C + RR5=RRR(5) + IHARD=(RR5.GT.PRSOFT) + IF (IHARD) THEN +C TAU DECAY TO 'TAU+photon' + RR1=RRR(1) + AMS1=(AMU+AMNUTA)**2 + AMS2=(AMTAX)**2 + XK1=1-AMS1/AMS2 + XL1=LOG(XK1/2/XK0DEC) + XL0=LOG(2*XK0DEC) + XK=EXP(XL1*RR1+XL0) + AM3SQ=(1-XK)*AMS2 + AM3 =SQRT(AM3SQ) + PHSPAC=PHSPAC*AMS2*XL1*XK + PHSPAC=PHSPAC/PRHARD + ELSE + AM3=AMTAX + PHSPAC=PHSPAC*2**6*PI**3 + PHSPAC=PHSPAC/PRSOFT + ENDIF +C MASS OF NEUTRINA SYSTEM + RR2=RRR(2) + AMS1=(AMNUTA)**2 + AMS2=(AM3-AMU)**2 +CAM +CAM +* FLAT PHASE SPACE; + AM2SQ=AMS1+ RR2*(AMS2-AMS1) + AM2 =SQRT(AM2SQ) + PHSPAC=PHSPAC*(AMS2-AMS1) +* NEUTRINA REST FRAME, DEFINE XN AND XA + ENQ1=(AM2SQ+AMNUTA**2)/(2*AM2) + ENQ2=(AM2SQ-AMNUTA**2)/(2*AM2) + PPI= ENQ1**2-AMNUTA**2 + PPPI=SQRT(ABS(ENQ1**2-AMNUTA**2)) + PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AM2) +* NU TAU IN NUNU REST FRAME + CALL SPHERD(PPPI,XN) + XN(4)=ENQ1 +* NU LIGHT IN NUNU REST FRAME + DO 30 I=1,3 + 30 XA(I)=-XN(I) + XA(4)=ENQ2 +* TAU-prim REST FRAME, DEFINE QP (muon +* NUNU MOMENTUM + PR(1)=0 + PR(2)=0 + PR(4)=1.D0/(2*AM3)*(AM3**2+AM2**2-AMU**2) + PR(3)= SQRT(ABS(PR(4)**2-AM2**2)) + PPI = PR(4)**2-AM2**2 +* MUON MOMENTUM + QP(1)=0 + QP(2)=0 + QP(4)=1.D0/(2*AM3)*(AM3**2-AM2**2+AMU**2) + QP(3)=-PR(3) + PHSPAC=PHSPAC*(4*PI)*(2*PR(3)/AM3) +* NEUTRINA BOOSTED FROM THEIR FRAME TO TAU-prim REST FRAME + EXE=(PR(4)+PR(3))/AM2 + CALL BOSTD3(EXE,XN,XN) + CALL BOSTD3(EXE,XA,XA) + RR3=RRR(3) + RR4=RRR(4) + IF (IHARD) THEN + EPS=4*(AMU/AMTAX)**2 + XL1=LOG((2+EPS)/EPS) + XL0=LOG(EPS) + ETA =EXP(XL1*RR3+XL0) + CTHET=1+EPS-ETA + THET =ACOS(CTHET) + PHSPAC=PHSPAC*XL1/2*ETA + PHI = 2*PI*RR4 + CALL ROTPOX(THET,PHI,XN) + CALL ROTPOX(THET,PHI,XA) + CALL ROTPOX(THET,PHI,QP) + CALL ROTPOX(THET,PHI,PR) +C +* NOW TO THE TAU REST FRAME, DEFINE TAU-prim AND GAMMA MOMENTA +* tau-prim MOMENTUM + PAA(1)=0 + PAA(2)=0 + PAA(4)=1/(2*AMTAX)*(AMTAX**2+AM3**2) + PAA(3)= SQRT(ABS(PAA(4)**2-AM3**2)) + PPI = PAA(4)**2-AM3**2 + PHSPAC=PHSPAC*(4*PI)*(2*PAA(3)/AMTAX) +* GAMMA MOMENTUM + PH(1)=0 + PH(2)=0 + PH(4)=PAA(3) + PH(3)=-PAA(3) +* ALL MOMENTA BOOSTED FROM TAU-prim REST FRAME TO TAU REST FRAME +* Z-AXIS ANTIPARALLEL TO PHOTON MOMENTUM + EXE=(PAA(4)+PAA(3))/AM3 + CALL BOSTD3(EXE,XN,XN) + CALL BOSTD3(EXE,XA,XA) + CALL BOSTD3(EXE,QP,QP) + CALL BOSTD3(EXE,PR,PR) + ELSE + THET =ACOS(-1.+2*RR3) + PHI = 2*PI*RR4 + CALL ROTPOX(THET,PHI,XN) + CALL ROTPOX(THET,PHI,XA) + CALL ROTPOX(THET,PHI,QP) + CALL ROTPOX(THET,PHI,PR) +C +* NOW TO THE TAU REST FRAME, DEFINE TAU-prim AND GAMMA MOMENTA +* tau-prim MOMENTUM + PAA(1)=0 + PAA(2)=0 + PAA(4)=AMTAX + PAA(3)=0 +* GAMMA MOMENTUM + PH(1)=0 + PH(2)=0 + PH(4)=0 + PH(3)=0 + ENDIF +C PARTIAL WIDTH CONSISTS OF PHASE SPACE AND AMPLITUDE + CALL DAMPRY(ITDKRC,XK0DEC,PH,XA,QP,XN,AMPLIT,HV) + DGAMT=1/(2.*AMTAX)*AMPLIT*PHSPAC + END + SUBROUTINE DAMPRY(ITDKRC,XK0DEC,XK,XA,QP,XN,AMPLIT,HV) + IMPLICIT REAL*8 (A-H,O-Z) +C ---------------------------------------------------------------------- +C IT CALCULATES MATRIX ELEMENT FOR THE +C TAU --> MU(E) NU NUBAR DECAY MODE +C INCLUDING COMPLETE ORDER ALPHA QED CORRECTIONS. +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + REAL*8 HV(4),QP(4),XN(4),XA(4),XK(4) +C + HV(4)=1.D0 + AK0=XK0DEC*AMTAU + IF(XK(4).LT.0.1D0*AK0) THEN + AMPLIT=THB(ITDKRC,QP,XN,XA,AK0,HV) + ELSE + AMPLIT=SQM2(ITDKRC,QP,XN,XA,XK,AK0,HV) + ENDIF + RETURN + END + FUNCTION SQM2(ITDKRC,QP,XN,XA,XK,AK0,HV) +C +C ********************************************************************** +C REAL PHOTON MATRIX ELEMENT SQUARED * +C PARAMETERS: * +C HV- POLARIMETRIC FOUR-VECTOR OF TAU * +C QP,XN,XA,XK - 4-momenta of electron (muon), NU, NUBAR and PHOTON * +C All four-vectors in TAU rest frame (in GeV) * +C AK0 - INFRARED CUTOFF, MINIMAL ENERGY OF HARD PHOTONS (GEV) * +C SQM2 - value for S=0 * +C see Eqs. (2.9)-(2.10) from CJK ( Nucl.Phys.B(1991) ) * +C ********************************************************************** +C + IMPLICIT REAL*8(A-H,O-Z) + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON / QEDPRM /ALFINV,ALFPI,XK0 + REAL*8 ALFINV,ALFPI,XK0 + REAL*8 QP(4),XN(4),XA(4),XK(4) + REAL*8 R(4) + REAL*8 HV(4) + REAL*8 S0(3),RXA(3),RXK(3),RQP(3) + DATA PI /3.141592653589793238462643D0/ +C + TMASS=AMTAU + GF=GFERMI + ALPHAI=ALFINV + TMASS2=TMASS**2 + EMASS2=QP(4)**2-QP(1)**2-QP(2)**2-QP(3)**2 + R(4)=TMASS +C SCALAR PRODUCTS OF FOUR-MOMENTA + DO 7 I=1,3 + R(1)=0.D0 + R(2)=0.D0 + R(3)=0.D0 + R(I)=TMASS + RXA(I)=R(4)*XA(4)-R(1)*XA(1)-R(2)*XA(2)-R(3)*XA(3) +C RXN(I)=R(4)*XN(4)-R(1)*XN(1)-R(2)*XN(2)-R(3)*XN(3) + RXK(I)=R(4)*XK(4)-R(1)*XK(1)-R(2)*XK(2)-R(3)*XK(3) + RQP(I)=R(4)*QP(4)-R(1)*QP(1)-R(2)*QP(2)-R(3)*QP(3) + 7 CONTINUE + QPXN=QP(4)*XN(4)-QP(1)*XN(1)-QP(2)*XN(2)-QP(3)*XN(3) + QPXA=QP(4)*XA(4)-QP(1)*XA(1)-QP(2)*XA(2)-QP(3)*XA(3) + QPXK=QP(4)*XK(4)-QP(1)*XK(1)-QP(2)*XK(2)-QP(3)*XK(3) +c XNXA=XN(4)*XA(4)-XN(1)*XA(1)-XN(2)*XA(2)-XN(3)*XA(3) + XNXK=XN(4)*XK(4)-XN(1)*XK(1)-XN(2)*XK(2)-XN(3)*XK(3) + XAXK=XA(4)*XK(4)-XA(1)*XK(1)-XA(2)*XK(2)-XA(3)*XK(3) + TXN=TMASS*XN(4) + TXA=TMASS*XA(4) + TQP=TMASS*QP(4) + TXK=TMASS*XK(4) +C + X= XNXK/QPXN + Z= TXK/TQP + A= 1+X + B= 1+ X*(1+Z)/2+Z/2 + S1= QPXN*TXA*( -EMASS2/QPXK**2*A + 2*TQP/(QPXK*TXK)*B- + $TMASS2/TXK**2) + + $QPXN/TXK**2* ( TMASS2*XAXK - TXA*TXK+ XAXK*TXK) - + $TXA*TXN/TXK - QPXN/(QPXK*TXK)* (TQP*XAXK-TXK*QPXA) + CONST4=256*PI/ALPHAI*GF**2 + IF (ITDKRC.EQ.0) CONST4=0D0 + SQM2=S1*CONST4 + DO 5 I=1,3 + S0(I) = QPXN*RXA(I)*(-EMASS2/QPXK**2*A + 2*TQP/(QPXK*TXK)*B- + $ TMASS2/TXK**2) + + $ QPXN/TXK**2* (TMASS2*XAXK - TXA*RXK(I)+ XAXK*RXK(I))- + $ RXA(I)*TXN/TXK - QPXN/(QPXK*TXK)*(RQP(I)*XAXK- RXK(I)*QPXA) + 5 HV(I)=S0(I)/S1-1.D0 + RETURN + END + FUNCTION THB(ITDKRC,QP,XN,XA,AK0,HV) +C +C ********************************************************************** +C BORN +VIRTUAL+SOFT PHOTON MATRIX ELEMENT**2 O(ALPHA) * +C PARAMETERS: * +C HV- POLARIMETRIC FOUR-VECTOR OF TAU * +C QP,XN,XA - FOUR-MOMENTA OF ELECTRON (MUON), NU AND NUBAR IN GEV * +C ALL FOUR-VECTORS IN TAU REST FRAME * +C AK0 - INFRARED CUTOFF, MINIMAL ENERGY OF HARD PHOTONS * +C THB - VALUE FOR S=0 * +C SEE EQS. (2.2),(2.4)-(2.5) FROM CJK (NUCL.PHYS.B351(1991)70 * +C AND (C.2) FROM JK (NUCL.PHYS.B320(1991)20 ) * +C ********************************************************************** +C + IMPLICIT REAL*8(A-H,O-Z) + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON / QEDPRM /ALFINV,ALFPI,XK0 + REAL*8 ALFINV,ALFPI,XK0 + DIMENSION QP(4),XN(4),XA(4) + REAL*8 HV(4) + DIMENSION R(4) + REAL*8 RXA(3),RXN(3),RQP(3) + REAL*8 BORNPL(3),AM3POL(3),XM3POL(3) + DATA PI /3.141592653589793238462643D0/ +C + TMASS=AMTAU + GF=GFERMI + ALPHAI=ALFINV +C + TMASS2=TMASS**2 + R(4)=TMASS + DO 7 I=1,3 + R(1)=0.D0 + R(2)=0.D0 + R(3)=0.D0 + R(I)=TMASS + RXA(I)=R(4)*XA(4)-R(1)*XA(1)-R(2)*XA(2)-R(3)*XA(3) + RXN(I)=R(4)*XN(4)-R(1)*XN(1)-R(2)*XN(2)-R(3)*XN(3) +C RXK(I)=R(4)*XK(4)-R(1)*XK(1)-R(2)*XK(2)-R(3)*XK(3) + RQP(I)=R(4)*QP(4)-R(1)*QP(1)-R(2)*QP(2)-R(3)*QP(3) + 7 CONTINUE +C QUASI TWO-BODY VARIABLES + U0=QP(4)/TMASS + U3=SQRT(QP(1)**2+QP(2)**2+QP(3)**2)/TMASS + W3=U3 + W0=(XN(4)+XA(4))/TMASS + UP=U0+U3 + UM=U0-U3 + WP=W0+W3 + WM=W0-W3 + YU=LOG(UP/UM)/2 + YW=LOG(WP/WM)/2 + EPS2=U0**2-U3**2 + EPS=SQRT(EPS2) + Y=W0**2-W3**2 + AL=AK0/TMASS +C FORMFACTORS + F0=2*U0/U3*( DILOGT(1-(UM*WM/(UP*WP)))- DILOGT(1-WM/WP) + + $DILOGT(1-UM/UP) -2*YU+ 2*LOG(UP)*(YW+YU) ) + + $1/Y* ( 2*U3*YU + (1-EPS2- 2*Y)*LOG(EPS) ) + + $ 2 - 4*(U0/U3*YU -1)* LOG(2*AL) + FP= YU/(2*U3)*(1 + (1-EPS2)/Y ) + LOG(EPS)/Y + FM= YU/(2*U3)*(1 - (1-EPS2)/Y ) - LOG(EPS)/Y + F3= EPS2*(FP+FM)/2 +C SCALAR PRODUCTS OF FOUR-MOMENTA + QPXN=QP(4)*XN(4)-QP(1)*XN(1)-QP(2)*XN(2)-QP(3)*XN(3) + QPXA=QP(4)*XA(4)-QP(1)*XA(1)-QP(2)*XA(2)-QP(3)*XA(3) + XNXA=XN(4)*XA(4)-XN(1)*XA(1)-XN(2)*XA(2)-XN(3)*XA(3) + TXN=TMASS*XN(4) + TXA=TMASS*XA(4) + TQP=TMASS*QP(4) +C DECAY DIFFERENTIAL WIDTH WITHOUT AND WITH POLARIZATION + CONST3=1/(2*ALPHAI*PI)*64*GF**2 + IF (ITDKRC.EQ.0) CONST3=0D0 + XM3= -( F0* QPXN*TXA + FP*EPS2* TXN*TXA + + $FM* QPXN*QPXA + F3* TMASS2*XNXA ) + AM3=XM3*CONST3 +C V-A AND V+A COUPLINGS, BUT IN THE BORN PART ONLY + BRAK= (GV+GA)**2*TQP*XNXA+(GV-GA)**2*TXA*QPXN + & -(GV**2-GA**2)*TMASS*AMNUTA*QPXA + BORN= 32*(GFERMI**2/2.)*BRAK + DO 5 I=1,3 + XM3POL(I)= -( F0* QPXN*RXA(I) + FP*EPS2* TXN*RXA(I) + + $ FM* QPXN* (QPXA + (RXA(I)*TQP-TXA*RQP(I))/TMASS2 ) + + $ F3* (TMASS2*XNXA +TXN*RXA(I) -RXN(I)*TXA) ) + AM3POL(I)=XM3POL(I)*CONST3 +C V-A AND V+A COUPLINGS, BUT IN THE BORN PART ONLY + BORNPL(I)=BORN+( + & (GV+GA)**2*TMASS*XNXA*QP(I) + & -(GV-GA)**2*TMASS*QPXN*XA(I) + & +(GV**2-GA**2)*AMNUTA*TXA*QP(I) + & -(GV**2-GA**2)*AMNUTA*TQP*XA(I) )* + & 32*(GFERMI**2/2.) + 5 HV(I)=(BORNPL(I)+AM3POL(I))/(BORN+AM3)-1.D0 + THB=BORN+AM3 + IF (THB/BORN.LT.0.1D0) THEN + PRINT *, 'ERROR IN THB, THB/BORN=',THB/BORN + THB=0.D0 + ENDIF + RETURN + END + SUBROUTINE DEXPI(MODE,ISGN,POL,PPI,PNU) +C ---------------------------------------------------------------------- +C TAU DECAY INTO PION AND TAU-NEUTRINO +C IN TAU REST FRAME +C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO, +C PPI PION CHARGED +C ---------------------------------------------------------------------- + REAL POL(4),HV(4),PNU(4),PPI(4),RN(1) +CC + IF(MODE.EQ.-1) THEN +C =================== + CALL DADMPI(-1,ISGN,HV,PPI,PNU) +CC CALL HBOOK1(815,'WEIGHT DISTRIBUTION DEXPI $',100,0,2) + + ELSEIF(MODE.EQ. 0) THEN +C ======================= +300 CONTINUE + CALL DADMPI( 0,ISGN,HV,PPI,PNU) + WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. +CC CALL HFILL(815,WT) + CALL RANMAR(RN,1) + IF(RN(1).GT.WT) GOTO 300 +C + ELSEIF(MODE.EQ. 1) THEN +C ======================= + CALL DADMPI( 1,ISGN,HV,PPI,PNU) +CC CALL HPRINT(815) + ENDIF +C ===== + RETURN + END + SUBROUTINE DADMPI(MODE,ISGN,HV,PPI,PNU) +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) + REAL*4 GAMPMC ,GAMPER + COMMON / INOUT / INUT,IOUT + REAL PPI(4),PNU(4),HV(4) + DATA PI /3.141592653589793238462643/ +C + IF(MODE.EQ.-1) THEN +C =================== + NEVTOT=0 + ELSEIF(MODE.EQ. 0) THEN +C ======================= + NEVTOT=NEVTOT+1 + EPI= (AMTAU**2+AMPI**2-AMNUTA**2)/(2*AMTAU) + ENU= (AMTAU**2-AMPI**2+AMNUTA**2)/(2*AMTAU) + XPI= SQRT(EPI**2-AMPI**2) +C PI MOMENTUM + CALL SPHERA(XPI,PPI) + PPI(4)=EPI +C TAU-NEUTRINO MOMENTUM + DO 30 I=1,3 +30 PNU(I)=-PPI(I) + PNU(4)=ENU + PXQ=AMTAU*EPI + PXN=AMTAU*ENU + QXN=PPI(4)*PNU(4)-PPI(1)*PNU(1)-PPI(2)*PNU(2)-PPI(3)*PNU(3) + BRAK=(GV**2+GA**2)*(2*PXQ*QXN-AMPI**2*PXN) + & +(GV**2-GA**2)*AMTAU*AMNUTA*AMPI**2 + DO 40 I=1,3 +40 HV(I)=-ISGN*2*GA*GV*AMTAU*(2*PPI(I)*QXN-PNU(I)*AMPI**2)/BRAK + HV(4)=1 +C + ELSEIF(MODE.EQ. 1) THEN +C ======================= + IF(NEVTOT.EQ.0) RETURN + FPI=0.1284 +C GAMM=(GFERMI*FPI)**2/(16.*PI)*AMTAU**3* +C * (BRAK/AMTAU**4)**2 +CZW 7.02.93 here was an error affecting non standard model +C configurations only + GAMM=(GFERMI*FPI)**2/(16.*PI)*AMTAU**3* + $ (BRAK/AMTAU**4)* + $ SQRT((AMTAU**2-AMPI**2-AMNUTA**2)**2 + $ -4*AMPI**2*AMNUTA**2 )/AMTAU**2 + ERROR=0 + RAT=GAMM/GAMEL + WRITE(IOUT, 7010) NEVTOT,GAMM,RAT,ERROR + GAMPMC(3)=RAT + GAMPER(3)=ERROR +CAM NEVDEC(3)=NEVTOT + ENDIF +C ===== + RETURN + 7010 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'******** DADMPI FINAL REPORT ******** ',9X,1H* + $ /,' *',I20 ,5X,'NEVTOT = NO. OF PI DECAYS TOTAL ',9X,1H* + $ /,' *',E20.5,5X,'PARTIAL WTDTH ( PI DECAY) IN GEV UNITS ',9X,1H* + $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* + $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH (STAT.)',9X,1H* + $ /,1X,15(5H*****)/) + END + SUBROUTINE DEXRO(MODE,ISGN,POL,PNU,PRO,PIC,PIZ) +C ---------------------------------------------------------------------- +C THIS SIMULATES TAU DECAY IN TAU REST FRAME +C INTO NU RHO, NEXT RHO DECAYS INTO PION PAIR. +C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO, +C PRO RHO +C PIC PION CHARGED +C PIZ PION ZERO +C ---------------------------------------------------------------------- + COMMON / INOUT / INUT,IOUT + REAL POL(4),HV(4),PRO(4),PNU(4),PIC(4),PIZ(4),RN(1) + DATA IWARM/0/ +C + IF(MODE.EQ.-1) THEN +C =================== + IWARM=1 + CALL DADMRO( -1,ISGN,HV,PNU,PRO,PIC,PIZ) +CC CALL HBOOK1(816,'WEIGHT DISTRIBUTION DEXRO $',100,0,2) +CC CALL HBOOK1(916,'ABS2 OF HV IN ROUTINE DEXRO $',100,0,2) +C + ELSEIF(MODE.EQ. 0) THEN +C ======================= +300 CONTINUE + IF(IWARM.EQ.0) GOTO 902 + CALL DADMRO( 0,ISGN,HV,PNU,PRO,PIC,PIZ) + WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. +CC CALL HFILL(816,WT) +CC XHELP=HV(1)**2+HV(2)**2+HV(3)**2 +CC CALL HFILL(916,XHELP) + CALL RANMAR(RN,1) + IF(RN(1).GT.WT) GOTO 300 +C + ELSEIF(MODE.EQ. 1) THEN +C ======================= + CALL DADMRO( 1,ISGN,HV,PNU,PRO,PIC,PIZ) +CC CALL HPRINT(816) +CC CALL HPRINT(916) + ENDIF +C ===== + RETURN + 902 WRITE(IOUT, 9020) + 9020 FORMAT(' ----- DEXRO: LACK OF INITIALISATION') + STOP + END + SUBROUTINE DADMRO(MODE,ISGN,HHV,PNU,PRO,PIC,PIZ) +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) + REAL*4 GAMPMC ,GAMPER + COMMON / INOUT / INUT,IOUT + REAL HHV(4) + REAL HV(4),PRO(4),PNU(4),PIC(4),PIZ(4) + REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4) + REAL*4 RRR(3) + REAL*8 SWT, SSWT + DATA PI /3.141592653589793238462643/ + DATA IWARM/0/ +C + IF(MODE.EQ.-1) THEN +C =================== + IWARM=1 + NEVRAW=0 + NEVACC=0 + NEVOVR=0 + SWT=0 + SSWT=0 + WTMAX=1E-20 + DO 15 I=1,500 + CALL DPHSRO(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4) + IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2 +15 CONTINUE +CC CALL HBOOK1(801,'WEIGHT DISTRIBUTION DADMRO $',100,0,2) +CC PRINT 7003,WTMAX +C + ELSEIF(MODE.EQ. 0) THEN +C ======================= +300 CONTINUE + IF(IWARM.EQ.0) GOTO 902 + CALL DPHSRO(WT,HV,PNU,PRO,PIC,PIZ) +CC CALL HFILL(801,WT/WTMAX) + NEVRAW=NEVRAW+1 + SWT=SWT+WT + SSWT=SSWT+WT**2 + CALL RANMAR(RRR,3) + RN=RRR(1) + IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1 + IF(RN*WTMAX.GT.WT) GOTO 300 +C ROTATIONS TO BASIC TAU REST FRAME + COSTHE=-1.+2.*RRR(2) + THET=ACOS(COSTHE) + PHI =2*PI*RRR(3) + CALL ROTOR2(THET,PNU,PNU) + CALL ROTOR3( PHI,PNU,PNU) + CALL ROTOR2(THET,PRO,PRO) + CALL ROTOR3( PHI,PRO,PRO) + CALL ROTOR2(THET,PIC,PIC) + CALL ROTOR3( PHI,PIC,PIC) + CALL ROTOR2(THET,PIZ,PIZ) + CALL ROTOR3( PHI,PIZ,PIZ) + CALL ROTOR2(THET,HV,HV) + CALL ROTOR3( PHI,HV,HV) + DO 44 I=1,3 + 44 HHV(I)=-ISGN*HV(I) + NEVACC=NEVACC+1 +C + ELSEIF(MODE.EQ. 1) THEN +C ======================= + IF(NEVRAW.EQ.0) RETURN + PARGAM=SWT/FLOAT(NEVRAW+1) + ERROR=0 + IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW)) + RAT=PARGAM/GAMEL + WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR +CC CALL HPRINT(801) + GAMPMC(4)=RAT + GAMPER(4)=ERROR +CAM NEVDEC(4)=NEVACC + ENDIF +C ===== + RETURN + 7003 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'******** DADMRO INITIALISATION ********',9X,1H* + $ /,' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H* + $ /,1X,15(5H*****)/) + 7010 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'******** DADMRO FINAL REPORT ******** ',9X,1H* + $ /,' *',I20 ,5X,'NEVRAW = NO. OF RHO DECAYS TOTAL ',9X,1H* + $ /,' *',I20 ,5X,'NEVACC = NO. OF RHO DECS. ACCEPTED ',9X,1H* + $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H* + $ /,' *',E20.5,5X,'PARTIAL WTDTH (RHO DECAY) IN GEV UNITS ',9X,1H* + $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* + $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H* + $ /,1X,15(5H*****)/) + 902 WRITE(IOUT, 9020) + 9020 FORMAT(' ----- DADMRO: LACK OF INITIALISATION') + STOP + END + SUBROUTINE DPHSRO(DGAMT,HV,PN,PR,PIC,PIZ) +C ---------------------------------------------------------------------- +C IT SIMULATES RHO DECAY IN TAU REST FRAME WITH +C Z-AXIS ALONG RHO MOMENTUM +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + REAL HV(4),PT(4),PN(4),PR(4),PIC(4),PIZ(4),QQ(4),RR1(1) + DATA PI /3.141592653589793238462643/ + DATA ICONT /0/ +C +C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL + PHSPAC=1./2**11/PI**5 +C TAU MOMENTUM + PT(1)=0. + PT(2)=0. + PT(3)=0. + PT(4)=AMTAU +C MASS OF (REAL/VIRTUAL) RHO + AMS1=(AMPI+AMPIZ)**2 + AMS2=(AMTAU-AMNUTA)**2 +C FLAT PHASE SPACE +C AMX2=AMS1+ RR1*(AMS2-AMS1) +C AMX=SQRT(AMX2) +C PHSPAC=PHSPAC*(AMS2-AMS1) +C PHASE SPACE WITH SAMPLING FOR RHO RESONANCE + ALP1=ATAN((AMS1-AMRO**2)/AMRO/GAMRO) + ALP2=ATAN((AMS2-AMRO**2)/AMRO/GAMRO) +CAM + 100 CONTINUE + CALL RANMAR(RR1,1) + ALP=ALP1+RR1(1)*(ALP2-ALP1) + AMX2=AMRO**2+AMRO*GAMRO*TAN(ALP) + AMX=SQRT(AMX2) + IF(AMX.LT.2.*AMPI) GO TO 100 +CAM + PHSPAC=PHSPAC*((AMX2-AMRO**2)**2+(AMRO*GAMRO)**2)/(AMRO*GAMRO) + PHSPAC=PHSPAC*(ALP2-ALP1) +C +C TAU-NEUTRINO MOMENTUM + PN(1)=0 + PN(2)=0 + PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2) + PN(3)=-SQRT(ABS((PN(4)-AMNUTA)*(PN(4)+AMNUTA))) +C RHO MOMENTUM + PR(1)=0 + PR(2)=0 + PR(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2) + PR(3)=-PN(3) + PHSPAC=PHSPAC*(4*PI)*(2*PR(3)/AMTAU) +C +CAM + ENQ1=(AMX2+AMPI**2-AMPIZ**2)/(2.*AMX) + ENQ2=(AMX2-AMPI**2+AMPIZ**2)/(2.*AMX) + PPPI=SQRT((ENQ1-AMPI)*(ENQ1+AMPI)) + PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX) +C CHARGED PI MOMENTUM IN RHO REST FRAME + CALL SPHERA(PPPI,PIC) + PIC(4)=ENQ1 +C NEUTRAL PI MOMENTUM IN RHO REST FRAME + DO 20 I=1,3 +20 PIZ(I)=-PIC(I) + PIZ(4)=ENQ2 + EXE=(PR(4)+PR(3))/AMX +C PIONS BOOSTED FROM RHO REST FRAME TO TAU REST FRAME + CALL BOSTR3(EXE,PIC,PIC) + CALL BOSTR3(EXE,PIZ,PIZ) + + CALL DAM2PI(0,PT,PN,PIC,PIZ,AMPLIT,HV) + DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC + + RETURN + END + + +C ---------------------------------------------------------------------- +C ---------------------------------------------------------------------- +C ---------------------------------------------------------------------- +C RCHL UPDATE - NEW FUNCTIONS +C ---------------------------------------------------------------------- +C ---------------------------------------------------------------------- +C ---------------------------------------------------------------------- + + + SUBROUTINE DAM2PI(MNUM,PT,PN,PIM1,PIM2,AMPLIT,HV) +C ---------------------------------------------------------------------- +* CALCULATES DIFFERENTIAL CROSS SECTION AND POLARIMETER VECTOR +* FOR TAU DECAY INTO 2 scalar MODES +* ALL SPIN EFFECTS IN THE FULL DECAY CHAIN ARE TAKEN INTO ACCOUNT. +* CALCULATIONS DONE IN TAU REST FRAME WITH Z-AXIS ALONG NEUTRINO MOMENT +C MNUM DECAY MODE IDENTIFIER. +C +C called by : DPHSAA +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL HV(4),PT(4),PN(4),PIM1(4),PIM2(4) + REAL PIVEC(4),PIAKS(4),HVM(4) + COMPLEX HADCUR(4) + DATA PI /3.141592653589793238462643/ + DATA ICONT /0/ +C + IF (MNUM.EQ.0) THEN + CALL CURR_PIPI0(PIM1,PIM2,HADCUR) + ELSEIF (MNUM.EQ.1) THEN + CALL CURR_PIK0(PIM1,PIM2,HADCUR) + ELSEIF (MNUM.EQ.2) THEN + CALL CURR_KPI0(PIM1,PIM2,HADCUR) + ELSEIF (MNUM.EQ.3) THEN + CALL CURR_KK0(PIM1,PIM2,HADCUR) + ELSE + write(*,*) 'DAM2PI: wrong MNUM= ',MNUM + STOP + ENDIF + +C +* CALCULATE PI-VECTORS: VECTOR AND AXIAL + CALL CLVEC(HADCUR,PN,PIVEC) + CALL CLAXI(HADCUR,PN,PIAKS) + CALL CLNUT(HADCUR,BRAKM,HVM) +* SPIN INDEPENDENT PART OF DECAY DIFF-CROSS-SECT. IN TAU REST FRAME + BRAK= (GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4) + & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM + IF (MNUM.EQ.0.OR.MNUM.EQ.3) THEN + AMPLIT=(CCABIB*GFERMI)**2*BRAK + ELSE + AMPLIT=(SCABIB*GFERMI)**2*BRAK + ENDIF +C POLARIMETER VECTOR IN TAU REST FRAME + DO 90 I=1,3 + HV(I)=-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I))) + & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I) +C HV IS DEFINED FOR TAU- WITH GAMMA=B+HV*POL + HV(I)=-HV(I)/BRAK + 90 CONTINUE + END + + + SUBROUTINE CURR_PIPI0(PC,PN,HADCUR) +C standard TAUOLA current for tau to pi pi0 nu decay +C now it has universal form eg. it is straighforward to add +C scalar part +C NOTE: +C PC 4-momentum of pi +C PN 4-momentum of pi0 +C 06.08.2011 + IMPLICIT NONE + COMPLEX BWIGS,HADCUR(4),FKPIPL,FRHO_PI + COMPLEX*16 FPIBEL + REAL PC(4),PN(4),QQ(4),PKS(4),FPIRHO + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON /IPChT/ IVER + INTEGER IVER + INTEGER FF2PIRHO + + + REAL PKSD,QQPKS + INTEGER IK,K + DO IK=1,4 + PKS(IK)=PC(IK)+ PN(IK) + QQ(IK)=PC(IK)- PN(IK) + ENDDO +C QQ transverse to PKS + PKSD =PKS(4)*PKS(4)-PKS(3)*PKS(3)-PKS(2)*PKS(2)-PKS(1)*PKS(1) + QQPKS=PKS(4)* QQ(4)-PKS(3)* QQ(3)-PKS(2)* QQ(2)-PKS(1)* QQ(1) + DO 31 IK=1,4 + 31 QQ(IK)=QQ(IK)-PKS(IK)*QQPKS/PKSD + + IF (IVER.EQ.1) THEN + CALL GETFF2PIRHO(FF2PIRHO) + IF (FF2PIRHO.EQ.2) THEN ! Belle, +C ! all fit parameters, par(1...11), are free + DO K=1,4 + HADCUR(K)=QQ(k)* fpibel(sqrt(pksd),0) + ENDDO + ELSEIF (FF2PIRHO.EQ.3) THEN ! Belle +c ! all fit parameter free except for +c ! par(1)=F_pi(0)=1-fixed + + DO K=1,4 + HADCUR(K)=QQ(k)* fpibel(sqrt(pksd),1) + ENDDO + ELSE + write(*,*) 'problem in 2-scalars current FF2PIRHO=',FF2PIRHO + stop + ENDIF + ELSEIF (IVER.EQ.0) THEN ! cleo + DO K=1,4 + HADCUR(K)=QQ(k)* sqrt(fpirho(sqrt(pksd))) + ENDDO + + ELSE + write(*,*) 'problem in 2-scalars current IVER=',IVER + stop + ENDIF + + END + + + SUBROUTINE CURR_PIK0(PC,PN,HADCUR) +C standard TAUOLA current for tau to pi K0 nu decay +C now it has universal form eg. it is straighforward to add +C scalar part +C NOTE: +C PC 4-momentum of pi +C PN 4-momentum of K0 +C 06.08.2011 + implicit none + COMPLEX BWIGS,HADCUR(4),FKPIPL + REAL PC(4),PN(4),QQ(4),PKS(4),FKPISC,PKSD,QQPKS + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + & ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + & ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + & ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + & ,AMK,AMKZ,AMKST,GAMKST,FACT_K0PI + COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS + REAL*4 BRA1,BRK0,BRK0B,BRKS + Integer I,K + + DO I=1,4 + PKS(I)=PC(I)+ PN(I) + QQ(I)=PC(I)- PN(I) + ENDDO + +C QQ transverse to PKS + PKSD =PKS(4)*PKS(4)-PKS(3)*PKS(3)-PKS(2)*PKS(2)-PKS(1)*PKS(1) + QQPKS=PKS(4)* QQ(4)-PKS(3)* QQ(3)-PKS(2)* QQ(2)-PKS(1)* QQ(1) + DO 31 I=1,4 + 31 QQ(I)=QQ(I)-PKS(I)*QQPKS/PKSD + + + DO K=1,4 + HADCUR(K)=QQ(k)*BWIGS(pksd,AMKST,GAMKST) + ENDDO + + END + + + SUBROUTINE CURR_KPI0(PC,PN,HADCUR) +C standard TAUOLA current for tau to pi pi0 nu decay +C now it has universal form eg. it is straighforward to add +C scalar part +C NOTE: +C PC 4-momentum of K +C PN 4-momentum of pi0 +C 06.08.2011 + implicit none + COMPLEX BWIGS,HADCUR(4),FKPIPL + REAL PC(4),PN(4),QQ(4),PKS(4),FKPISC,PKSD,QQPKS + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST,FACT_KPI0 + COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS + REAL*4 BRA1,BRK0,BRK0B,BRKS + INTEGER I,K + + DO 30 I=1,4 + PKS(I)=PC(I)+ PN(I) + 30 QQ(I)=PC(I)- PN(I) +C QQ transverse to PKS + PKSD =PKS(4)*PKS(4)-PKS(3)*PKS(3)-PKS(2)*PKS(2)-PKS(1)*PKS(1) + QQPKS=PKS(4)* QQ(4)-PKS(3)* QQ(3)-PKS(2)* QQ(2)-PKS(1)* QQ(1) + DO 31 I=1,4 + 31 QQ(I)=QQ(I)-PKS(I)*QQPKS/PKSD + DO K=1,4 + HADCUR(K)=QQ(k)*BWIGS(pksd,AMKST,GAMKST) + ENDDO + + END + + + SUBROUTINE CURR_KK0(PC,PN,HADCUR) +C standard TAUOLA current for tau to K K0 nu decay +C now it has universal form eg. it is straighforward to add +C scalar part +C NOTE: +C PC 4-momentum of K +C PN 4-momentum of K0 +C 06.08.2011 + IMPLICIT NONE + COMPLEX BWIGS,HADCUR(4),FKK0_RCHT + REAL PC(4),PN(4),QQ(4),PKS(4),PKSD,QQPKS,FPIRK + INTEGER I,K + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + DO I=1,4 + PKS(I)=PC(I)+ PN(I) + QQ(I)=PC(I)- PN(I) + ENDDO +C QQ transverse to PKS + PKSD =PKS(4)*PKS(4)-PKS(3)*PKS(3)-PKS(2)*PKS(2)-PKS(1)*PKS(1) + QQPKS=PKS(4)* QQ(4)-PKS(3)* QQ(3)-PKS(2)* QQ(2)-PKS(1)* QQ(1) + DO 31 I=1,4 + 31 QQ(I)=QQ(I)-PKS(I)*QQPKS/PKSD + + DO K=1,4 + HADCUR(K)=QQ(k)*sqrt(fpirk(sqrt(pksd))) + ENDDO + + END + + + FUNCTION COEF(I,J) +C clebsh gordan (or so ...) coefs for 3 scalar final states + implicit none +C IVER=0 TAUOLA cleo COEF(I,J) = COEFc(I,J) +C IVER=1 TAUOLA RChL COEF(I,J) = COEFr(I,J) + COMMON /IPChT/ IVER + INTEGER IVER + REAL COEFc(1:5,0:7) + REAL COEFr(1:5,0:7) + REAL COEF,COEFrr + DATA PI /3.141592653589793238462643/ + REAL PI + DATA ICONT /0/ + INTEGER ICONT + INTEGER I,J + REAL FPIc,FPIr + +C initialization of FPI matrix defined in ... +C FPIc is to be used with cleo initialization + +C actual choice is made in ??? + + DATA FPIc /93.3E-3/ + + +C initialization of COEF matrix defined in ... +C COEFc is to be used with cleo initialization + + IF (ICONT.EQ.0) THEN + ICONT=1 +C +C*****COEFc(I,J) + + COEFc(1,0)= 2.0*SQRT(2.)/3.0 + COEFc(2,0)=-2.0*SQRT(2.)/3.0 +C AJW 2/98: Add in the D-wave and I=0 3pi substructure: + COEFc(3,0)= 2.0*SQRT(2.)/3.0 + COEFc(4,0)= FPIc + COEFc(5,0)= 0.0 +C + COEFc(1,1)=-SQRT(2.)/3.0 + COEFc(2,1)= SQRT(2.)/3.0 + COEFc(3,1)= 0.0 + COEFc(4,1)= FPIc + COEFc(5,1)= SQRT(2.) + +C + COEFc(1,2)=-SQRT(2.)/3.0 + COEFc(2,2)= SQRT(2.)/3.0 + COEFc(3,2)= 0.0 + + COEFc(4,2)= 0.0 + COEFc(5,2)=-SQRT(2.) + + +C AJW 11/97: Add in the K*-prim-s, ala Finkemeier&Mirkes + COEFc(1,3)= 1./3. + COEFc(2,3)=-2./3. + COEFc(3,3)= 2./3. + COEFc(4,3)= 0.0 + COEFc(5,3)= 0.0 +C + COEFc(1,4)= 1.0/SQRT(2.)/3.0 + COEFc(2,4)=-1.0/SQRT(2.)/3.0 + COEFc(3,4)= 0.0 + COEFc(4,4)= 0.0 + COEFc(5,4)= 0.0 +C + COEFc(1,5)=-SQRT(2.)/3.0 + COEFc(2,5)= SQRT(2.)/3.0 + COEFc(3,5)= 0.0 + COEFc(4,5)= 0.0 + COEFc(5,5)=-SQRT(2.) +C +C AJW 11/97: Add in the K*-prim-s, ala Finkemeier&Mirkes + COEFc(1,6)= 1./3. + COEFc(2,6)=-2./3. + COEFc(3,6)= 2./3. + COEFc(4,6)= 0.0 + COEFc(5,6)=-2.0 +C + COEFc(1,7)= 0.0 + COEFc(2,7)= 0.0 + COEFc(3,7)= 0.0 + COEFc(4,7)= 0.0 + COEFc(5,7)=-SQRT(2.0/3.0) + + ENDIF + IF (IVER.EQ.0.OR.J.NE.0) THEN ! so far rchl only for 3pi modes + COEF=COEFc(I,J) + ELSEIF (IVER.EQ.1) THEN + COEF=COEFrr(I,J) + ELSE + write(*,*) 'wrong IVER=',IVER + stop + ENDIF + END + + + SUBROUTINE INIRChL(IVERI) +C routine to set version no for the currents physics initialization +C IVER=0 TAUOLA cleo +C IVER=1 TAUOLA RChL + + implicit none + INTEGER IVERI + + COMMON /IPChT/ IVER + INTEGER IVER + IVER=IVERI + + IF (IVER.EQ.1) THEN + CALL RCHL_PARAMETERS(1) + ENDIF + end + + + SUBROUTINE INIRChLget(I) +C routine to get version no for the currents physics initialization +C IVER=0 TAUOLA cleo +C IVER=1 TAUOLA RChL + COMMON /IPChT/ IVER + INTEGER IVER + + I=IVER + end + +C ---------------------------------------------------------------------- +C ---------------------------------------------------------------------- +C ---------------------------------------------------------------------- +C RCHL UPDATE - END OF NEW FUNCTIONS +C ---------------------------------------------------------------------- +C ---------------------------------------------------------------------- +C ---------------------------------------------------------------------- + + + SUBROUTINE DEXAA(MODE,ISGN,POL,PNU,PAA,PIM1,PIM2,PIPL,JAA) +C ---------------------------------------------------------------------- +* THIS SIMULATES TAU DECAY IN TAU REST FRAME +* INTO NU A1, NEXT A1 DECAYS INTO RHO PI AND FINALLY RHO INTO PI PI. +* OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO, +* PAA A1 +* PIM1 PION MINUS (OR PI0) 1 (FOR TAU MINUS) +* PIM2 PION MINUS (OR PI0) 2 +* PIPL PION PLUS (OR PI-) +* (PIPL,PIM1) FORM A RHO +C ---------------------------------------------------------------------- + COMMON / INOUT / INUT,IOUT + REAL POL(4),HV(4),PAA(4),PNU(4),PIM1(4),PIM2(4),PIPL(4),RN(1) + DATA IWARM/0/ +C + IF(MODE.EQ.-1) THEN +C =================== + IWARM=1 + CALL DADMAA( -1,ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA) +CC CALL HBOOK1(816,'WEIGHT DISTRIBUTION DEXAA $',100,-2.,2.) +C + ELSEIF(MODE.EQ. 0) THEN +* ======================= + 300 CONTINUE + IF(IWARM.EQ.0) GOTO 902 + CALL DADMAA( 0,ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA) + WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. +CC CALL HFILL(816,WT) + CALL RANMAR(RN,1) + IF(RN(1).GT.WT) GOTO 300 +C + ELSEIF(MODE.EQ. 1) THEN +* ======================= + CALL DADMAA( 1,ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA) +CC CALL HPRINT(816) + ENDIF +C ===== + RETURN + 902 WRITE(IOUT, 9020) + 9020 FORMAT(' ----- DEXAA: LACK OF INITIALISATION') + STOP + END + SUBROUTINE DADMAA(MODE,ISGN,HHV,PNU,PAA,PIM1,PIM2,PIPL,JAA) +C ---------------------------------------------------------------------- +* A1 DECAY UNWEIGHTED EVENTS +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) + REAL*4 GAMPMC ,GAMPER + COMMON / INOUT / INUT,IOUT + REAL HHV(4) + REAL HV(4),PAA(4),PNU(4),PIM1(4),PIM2(4),PIPL(4) + REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4) + REAL*4 RRR(3) + REAL*8 SWT, SSWT + DATA PI /3.141592653589793238462643/ + DATA IWARM/0/ +C + IF(MODE.EQ.-1) THEN +C =================== + IWARM=1 + NEVRAW=0 + NEVACC=0 + NEVOVR=0 + SWT=0 + SSWT=0 + WTMAX=1E-20 + DO 15 I=1,500 + CALL DPHSAA(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,JAA) + IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2 +15 CONTINUE +CC CALL HBOOK1(801,'WEIGHT DISTRIBUTION DADMAA $',100,0,2) +C + ELSEIF(MODE.EQ. 0) THEN +C ======================= +300 CONTINUE + IF(IWARM.EQ.0) GOTO 902 + CALL DPHSAA(WT,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA) +CC CALL HFILL(801,WT/WTMAX) + NEVRAW=NEVRAW+1 + SWT=SWT+WT +ccM.S.>>>>>> +cc SSWT=SSWT+WT**2 + SSWT=SSWT+dble(WT)**2 +ccM.S.<<<<<< + CALL RANMAR(RRR,3) + RN=RRR(1) + IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1 + IF(RN*WTMAX.GT.WT) GOTO 300 +C ROTATIONS TO BASIC TAU REST FRAME + COSTHE=-1.+2.*RRR(2) + THET=ACOS(COSTHE) + PHI =2*PI*RRR(3) + CALL ROTPOL(THET,PHI,PNU) + CALL ROTPOL(THET,PHI,PAA) + CALL ROTPOL(THET,PHI,PIM1) + CALL ROTPOL(THET,PHI,PIM2) + CALL ROTPOL(THET,PHI,PIPL) + CALL ROTPOL(THET,PHI,HV) + DO 44 I=1,3 + 44 HHV(I)=-ISGN*HV(I) + NEVACC=NEVACC+1 +C + ELSEIF(MODE.EQ. 1) THEN +C ======================= + IF(NEVRAW.EQ.0) RETURN + PARGAM=SWT/FLOAT(NEVRAW+1) + ERROR=0 + IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW)) + RAT=PARGAM/GAMEL + WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR +CC CALL HPRINT(801) + GAMPMC(5)=RAT + GAMPER(5)=ERROR +CAM NEVDEC(5)=NEVACC + ENDIF +C ===== + RETURN + 7003 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'******** DADMAA INITIALISATION ********',9X,1H* + $ /,' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H* + $ /,1X,15(5H*****)/) + 7010 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'******** DADMAA FINAL REPORT ******** ',9X,1H* + $ /,' *',I20 ,5X,'NEVRAW = NO. OF A1 DECAYS TOTAL ',9X,1H* + $ /,' *',I20 ,5X,'NEVACC = NO. OF A1 DECS. ACCEPTED ',9X,1H* + $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H* + $ /,' *',E20.5,5X,'PARTIAL WTDTH (A1 DECAY) IN GEV UNITS ',9X,1H* + $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* + $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H* + $ /,1X,15(5H*****)/) + 902 WRITE(IOUT, 9020) + 9020 FORMAT(' ----- DADMAA: LACK OF INITIALISATION') + STOP + END + SUBROUTINE DPHSAA(DGAMT,HV,PN,PAA,PIM1,PIM2,PIPL,JAA) +C ---------------------------------------------------------------------- +* IT SIMULATES A1 DECAY IN TAU REST FRAME WITH +* Z-AXIS ALONG A1 MOMENTUM +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS + REAL*4 BRA1,BRK0,BRK0B,BRKS + REAL HV(4),PN(4),PAA(4),PIM1(4),PIM2(4),PIPL(4) + + + REAL*4 RRR(1) +C MATRIX ELEMENT NUMBER: + MNUM=0 +C TYPE OF THE GENERATION: + KEYT=1 + CALL RANMAR(RRR,1) + RMOD=RRR(1) + IF (RMOD.LT.BRA1) THEN + JAA=1 + AMP1=AMPI + AMP2=AMPI + AMP3=AMPI + ELSE + JAA=2 + AMP1=AMPIZ + AMP2=AMPIZ + AMP3=AMPI + ENDIF + CALL CH3PISET(JAA) ! information on sub-chanel passed for further use. + CALL + $ DPHTRE(DGAMT,HV,PN,PAA,PIM1,AMP1,PIM2,AMP2,PIPL,AMP3,KEYT,MNUM) + END + SUBROUTINE DEXKK(MODE,ISGN,POL,PKK,PNU) +C ---------------------------------------------------------------------- +C TAU DECAY INTO KAON AND TAU-NEUTRINO +C IN TAU REST FRAME +C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO, +C PKK KAON CHARGED +C ---------------------------------------------------------------------- + REAL POL(4),HV(4),PNU(4),PKK(4),RN(1) +C + IF(MODE.EQ.-1) THEN +C =================== + CALL DADMKK(-1,ISGN,HV,PKK,PNU) +CC CALL HBOOK1(815,'WEIGHT DISTRIBUTION DEXPI $',100,0,2) +C + ELSEIF(MODE.EQ. 0) THEN +C ======================= +300 CONTINUE + CALL DADMKK( 0,ISGN,HV,PKK,PNU) + WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. +CC CALL HFILL(815,WT) + CALL RANMAR(RN,1) + IF(RN(1).GT.WT) GOTO 300 +C + ELSEIF(MODE.EQ. 1) THEN +C ======================= + CALL DADMKK( 1,ISGN,HV,PKK,PNU) +CC CALL HPRINT(815) + ENDIF +C ===== + RETURN + END + SUBROUTINE DADMKK(MODE,ISGN,HV,PKK,PNU) +C ---------------------------------------------------------------------- +C FZ + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) + REAL*4 GAMPMC ,GAMPER + COMMON / INOUT / INUT,IOUT + REAL PKK(4),PNU(4),HV(4) + DATA PI /3.141592653589793238462643/ +C + IF(MODE.EQ.-1) THEN +C =================== + NEVTOT=0 + ELSEIF(MODE.EQ. 0) THEN +C ======================= + NEVTOT=NEVTOT+1 + EKK= (AMTAU**2+AMK**2-AMNUTA**2)/(2*AMTAU) + ENU= (AMTAU**2-AMK**2+AMNUTA**2)/(2*AMTAU) + XKK= SQRT(EKK**2-AMK**2) +C K MOMENTUM + CALL SPHERA(XKK,PKK) + PKK(4)=EKK +C TAU-NEUTRINO MOMENTUM + DO 30 I=1,3 +30 PNU(I)=-PKK(I) + PNU(4)=ENU + PXQ=AMTAU*EKK + PXN=AMTAU*ENU + QXN=PKK(4)*PNU(4)-PKK(1)*PNU(1)-PKK(2)*PNU(2)-PKK(3)*PNU(3) + BRAK=(GV**2+GA**2)*(2*PXQ*QXN-AMK**2*PXN) + & +(GV**2-GA**2)*AMTAU*AMNUTA*AMK**2 + DO 40 I=1,3 +40 HV(I)=-ISGN*2*GA*GV*AMTAU*(2*PKK(I)*QXN-PNU(I)*AMK**2)/BRAK + HV(4)=1 +C + ELSEIF(MODE.EQ. 1) THEN +C ======================= + IF(NEVTOT.EQ.0) RETURN + FKK=0.0354 +CFZ THERE WAS BRAK/AMTAU**4 BEFORE +C GAMM=(GFERMI*FKK)**2/(16.*PI)*AMTAU**3* +C * (BRAK/AMTAU**4)**2 +CZW 7.02.93 here was an error affecting non standard model +C configurations only + GAMM=(GFERMI*FKK)**2/(16.*PI)*AMTAU**3* + $ (BRAK/AMTAU**4)* + $ SQRT((AMTAU**2-AMK**2-AMNUTA**2)**2 + $ -4*AMK**2*AMNUTA**2 )/AMTAU**2 + ERROR=0 + + ERROR=0 + RAT=GAMM/GAMEL + WRITE(IOUT, 7010) NEVTOT,GAMM,RAT,ERROR + GAMPMC(6)=RAT + GAMPER(6)=ERROR +CAM NEVDEC(6)=NEVTOT + ENDIF +C ===== + RETURN + 7010 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'******** DADMKK FINAL REPORT ********',9X,1H* + $ /,' *',I20 ,5X,'NEVTOT = NO. OF K DECAYS TOTAL ',9X,1H*, + $ /,' *',E20.5,5X,'PARTIAL WTDTH ( K DECAY) IN GEV UNITS ',9X,1H*, + $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* + $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH (STAT.)',9X,1H* + $ /,1X,15(5H*****)/) + END + SUBROUTINE DEXKS(MODE,ISGN,POL,PNU,PKS,PKK,PPI,JKST) +C ---------------------------------------------------------------------- +C THIS SIMULATES TAU DECAY IN TAU REST FRAME +C INTO NU K*, THEN K* DECAYS INTO PI0,K+-(JKST=20) +C OR PI+-,K0(JKST=10). +C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO, +C PKS K* CHARGED +C PK0 K ZERO +C PKC K CHARGED +C PIC PION CHARGED +C PIZ PION ZERO +C ---------------------------------------------------------------------- + COMMON / INOUT / INUT,IOUT + REAL POL(4),HV(4),PKS(4),PNU(4),PKK(4),PPI(4),RN(1) + DATA IWARM/0/ +C + IF(MODE.EQ.-1) THEN +C =================== + IWARM=1 +CFZ INITIALISATION DONE WITH THE GHARGED PION NEUTRAL KAON MODE(JKST=10 + CALL DADMKS( -1,ISGN,HV,PNU,PKS,PKK,PPI,JKST) +CC CALL HBOOK1(816,'WEIGHT DISTRIBUTION DEXKS $',100,0,2) +CC CALL HBOOK1(916,'ABS2 OF HV IN ROUTINE DEXKS $',100,0,2) +C + ELSEIF(MODE.EQ. 0) THEN +C ======================= +300 CONTINUE + IF(IWARM.EQ.0) GOTO 902 + CALL DADMKS( 0,ISGN,HV,PNU,PKS,PKK,PPI,JKST) + WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. +CC CALL HFILL(816,WT) +CC XHELP=HV(1)**2+HV(2)**2+HV(3)**2 +CC CALL HFILL(916,XHELP) + CALL RANMAR(RN,1) + IF(RN(1).GT.WT) GOTO 300 +C + ELSEIF(MODE.EQ. 1) THEN +C ====================================== + CALL DADMKS( 1,ISGN,HV,PNU,PKS,PKK,PPI,JKST) +CC CALL HPRINT(816) +CC CALL HPRINT(916) + ENDIF +C ===== + RETURN + 902 WRITE(IOUT, 9020) + 9020 FORMAT(' ----- DEXKS: LACK OF INITIALISATION') + STOP + END + SUBROUTINE DADMKS(MODE,ISGN,HHV,PNU,PKS,PKK,PPI,JKST) +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) + REAL*4 GAMPMC ,GAMPER + COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS + REAL*4 BRA1,BRK0,BRK0B,BRKS + COMMON / INOUT / INUT,IOUT + REAL HHV(4) + REAL HV(4),PKS(4),PNU(4),PKK(4),PPI(4) + REAL PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4) + REAL*4 RRR(3),RMOD(1) + REAL*8 SWT, SSWT + DATA PI /3.141592653589793238462643/ + DATA IWARM/0/ +C + IF(MODE.EQ.-1) THEN +C =================== + IWARM=1 + NEVRAW=0 + NEVACC=0 + NEVOVR=0 + SWT=0 + SSWT=0 + WTMAX=1E-20 + DO 15 I=1,5000 +C THE INITIALISATION IS DONE WITH THE 66.7% MODE + JKST=10 + CALL DPHSKS(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,JKST) + IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2 +15 CONTINUE +CC CALL HBOOK1(801,'WEIGHT DISTRIBUTION DADMKS $',100,0,2) +CC PRINT 7003,WTMAX +CC CALL HBOOK1(112,'-------- K* MASS -------- $',100,0.,2.) + ELSEIF(MODE.EQ. 0) THEN +C ===================================== + IF(IWARM.EQ.0) GOTO 902 +C HERE WE CHOOSE RANDOMLY BETWEEN K0 PI+_ (66.7%) +C AND K+_ PI0 (33.3%) + DEC1=BRKS +400 CONTINUE + CALL RANMAR(RMOD,1) + IF(RMOD(1).LT.DEC1) THEN + JKST=10 + ELSE + JKST=20 + ENDIF + CALL DPHSKS(WT,HV,PNU,PKS,PKK,PPI,JKST) + CALL RANMAR(RRR,3) + RN=RRR(1) + IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1 + NEVRAW=NEVRAW+1 + SWT=SWT+WT + SSWT=SSWT+WT**2 + IF(RN*WTMAX.GT.WT) GOTO 400 +C ROTATIONS TO BASIC TAU REST FRAME + COSTHE=-1.+2.*RRR(2) + THET=ACOS(COSTHE) + PHI =2*PI*RRR(3) + CALL ROTOR2(THET,PNU,PNU) + CALL ROTOR3( PHI,PNU,PNU) + CALL ROTOR2(THET,PKS,PKS) + CALL ROTOR3( PHI,PKS,PKS) + CALL ROTOR2(THET,PKK,PKK) + CALL ROTOR3(PHI,PKK,PKK) + CALL ROTOR2(THET,PPI,PPI) + CALL ROTOR3( PHI,PPI,PPI) + CALL ROTOR2(THET,HV,HV) + CALL ROTOR3( PHI,HV,HV) + DO 44 I=1,3 + 44 HHV(I)=-ISGN*HV(I) + NEVACC=NEVACC+1 +C + ELSEIF(MODE.EQ. 1) THEN +C ======================= + IF(NEVRAW.EQ.0) RETURN + PARGAM=SWT/FLOAT(NEVRAW+1) + ERROR=0 + IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW)) + RAT=PARGAM/GAMEL + WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR +CC CALL HPRINT(801) + GAMPMC(7)=RAT + GAMPER(7)=ERROR +CAM NEVDEC(7)=NEVACC + ENDIF +C ===== + RETURN + 7003 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'******** DADMKS INITIALISATION ********',9X,1H* + $ /,' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H* + $ /,1X,15(5H*****)/) + 7010 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'******** DADMKS FINAL REPORT ********',9X,1H* + $ /,' *',I20 ,5X,'NEVRAW = NO. OF K* DECAYS TOTAL ',9X,1H*, + $ /,' *',I20 ,5X,'NEVACC = NO. OF K* DECS. ACCEPTED ',9X,1H*, + $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H* + $ /,' *',E20.5,5X,'PARTIAL WTDTH (K* DECAY) IN GEV UNITS ',9X,1H*, + $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* + $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H* + $ /,1X,15(5H*****)/) + 902 WRITE(IOUT, 9020) + 9020 FORMAT(' ----- DADMKS: LACK OF INITIALISATION') + STOP + END + SUBROUTINE DPHSKS(DGAMT,HV,PN,PKS,PKK,PPI,JKST) +C ---------------------------------------------------------------------- +C IT SIMULATES KAON* DECAY IN TAU REST FRAME WITH +C Z-AXIS ALONG KAON* MOMENTUM +C JKST=10 FOR K* --->K0 + PI+- +C JKST=20 FOR K* --->K+- + PI0 +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + REAL HV(4),PT(4),PN(4),PKS(4),PKK(4),PPI(4),QQ(4),RR1(1),RR2(1) + DATA PI /3.141592653589793238462643/ +C + DATA ICONT /0/ +C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL + PHSPAC=1./2**11/PI**5 +C TAU MOMENTUM + PT(1)=0. + PT(2)=0. + PT(3)=0. + PT(4)=AMTAU + CALL RANMAR(RR1,1) +C HERE BEGIN THE K0,PI+_ DECAY + IF(JKST.EQ.10)THEN +C ================== +C MASS OF (REAL/VIRTUAL) K* + AMS1=(AMPI+AMKZ)**2 + AMS2=(AMTAU-AMNUTA)**2 + ALP1=ATAN((AMS1-AMKST**2)/AMKST/GAMKST) + ALP2=ATAN((AMS2-AMKST**2)/AMKST/GAMKST) + CALL RANMAR(RR2,1) + PROB1=0.2 + IF (RR2(1).LT.PROB1) THEN +C FLAT PHASE SPACE + AMX2=AMS1+ RR1(1)*(AMS2-AMS1) + AMX=SQRT(AMX2) + ELSE +C PHASE SPACE WITH SAMPLING FOR K* RESONANCE + ALP=ALP1+RR1(1)*(ALP2-ALP1) + AMX2=AMKST**2+AMKST*GAMKST*TAN(ALP) + AMX=SQRT(AMX2) + ENDIF +C merging of the two channels + PHSPAC1=(AMS2-AMS1) + PHSPAC2=((AMX2-AMKST**2)**2+(AMKST*GAMKST)**2) + & /(AMKST*GAMKST) + PHSPAC2=PHSPAC2*(ALP2-ALP1) + A1=0.0 + A2=0.0 + IF (PHSPAC1.NE.0.0) A1=PROB1 /PHSPAC1 + IF (PHSPAC2.NE.0.0) A2=(1-PROB1)/PHSPAC2 + + + + IF (A1+A2.NE.0.0) THEN + PHSPAC=PHSPAC/(A1+A2) + ELSE + PHSPAC=0 + ENDIF + +C +C TAU-NEUTRINO MOMENTUM + PN(1)=0 + PN(2)=0 + PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2) + PN(3)=-SQRT(ABS((PN(4)-AMNUTA)*(PN(4)+AMNUTA))) +C +C K* MOMENTUM + PKS(1)=0 + PKS(2)=0 + PKS(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2) + PKS(3)=-PN(3) + PHSPAC=PHSPAC*(4*PI)*(2*PKS(3)/AMTAU) +C +CAM + ENPI=( AMX**2+AMPI**2-AMKZ**2 ) / ( 2*AMX ) + PPPI=SQRT(abs(ENPI-AMPI)*(ENPI+AMPI)) + PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX) +C CHARGED PI MOMENTUM IN KAON* REST FRAME + CALL SPHERA(PPPI,PPI) + PPI(4)=ENPI +C NEUTRAL KAON MOMENTUM IN K* REST FRAME + DO 20 I=1,3 +20 PKK(I)=-PPI(I) + PKK(4)=( AMX**2+AMKZ**2-AMPI**2 ) / ( 2*AMX ) + EXE=(PKS(4)+PKS(3))/AMX +C PION AND K BOOSTED FROM K* REST FRAME TO TAU REST FRAME + CALL BOSTR3(EXE,PPI,PPI) + CALL BOSTR3(EXE,PKK,PKK) + + CALL DAM2PI(1,PT,PN,PPI,PKK,AMPLIT,HV) + DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC +C +C HERE BEGIN THE K+-,PI0 DECAY + ELSEIF(JKST.EQ.20)THEN +C ====================== +C MASS OF (REAL/VIRTUAL) K* + AMS1=(AMPIZ+AMK)**2 + AMS2=(AMTAU-AMNUTA)**2 + ALP1=ATAN((AMS1-AMKST**2)/AMKST/GAMKST) + ALP2=ATAN((AMS2-AMKST**2)/AMKST/GAMKST) + + CALL RANMAR(RR2,1) + PROB1=0.2 + IF (RR2(1).LT.PROB1) THEN +C FLAT PHASE SPACE + AMX2=AMS1+ RR1(1)*(AMS2-AMS1) + AMX=SQRT(AMX2) + ELSE +C PHASE SPACE WITH SAMPLING FOR K* RESONANCE + ALP=ALP1+RR1(1)*(ALP2-ALP1) + AMX2=AMKST**2+AMKST*GAMKST*TAN(ALP) + AMX=SQRT(AMX2) + ENDIF +C merging of the two channels + PHSPAC1=(AMS2-AMS1) + PHSPAC2=((AMX2-AMKST**2)**2+(AMKST*GAMKST)**2) + & /(AMKST*GAMKST) + PHSPAC2=PHSPAC2*(ALP2-ALP1) + A1=0.0 + A2=0.0 + IF (PHSPAC1.NE.0.0) A1=PROB1 /PHSPAC1 + IF (PHSPAC2.NE.0.0) A2=(1-PROB1)/PHSPAC2 + + IF (A1+A2.NE.0.0) THEN + PHSPAC=PHSPAC/(A1+A2) + ELSE + PHSPAC=0 + ENDIF + +C +C TAU-NEUTRINO MOMENTUM + PN(1)=0 + PN(2)=0 + PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2) + PN(3)=-SQRT(ABS((PN(4)-AMNUTA)*(PN(4)+AMNUTA))) +C KAON* MOMENTUM + PKS(1)=0 + PKS(2)=0 + PKS(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2) + PKS(3)=-PN(3) + PHSPAC=PHSPAC*(4*PI)*(2*PKS(3)/AMTAU) +C +CAM + ENPI=( AMX**2+AMPIZ**2-AMK**2 ) / ( 2*AMX ) + PPPI=SQRT(abs(ENPI-AMPIZ)*(ENPI+AMPIZ)) + PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX) +C NEUTRAL PI MOMENTUM IN K* REST FRAME + CALL SPHERA(PPPI,PPI) + PPI(4)=ENPI +C CHARGED KAON MOMENTUM IN K* REST FRAME + DO 50 I=1,3 +50 PKK(I)=-PPI(I) + PKK(4)=( AMX**2+AMK**2-AMPIZ**2 ) / ( 2*AMX ) + EXE=(PKS(4)+PKS(3))/AMX +C PION AND K BOOSTED FROM K* REST FRAME TO TAU REST FRAME + CALL BOSTR3(EXE,PPI,PPI) + CALL BOSTR3(EXE,PKK,PKK) + + CALL DAM2PI(2,PT,PN,PKK,PPI,AMPLIT,HV) + DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC + + ENDIF + + RETURN + END + + + + SUBROUTINE DPHNPI(DGAMT,HVX,PNX,PRX,PPIX,JNPI) +C ---------------------------------------------------------------------- +C IT SIMULATES MULTIPI DECAY IN TAU REST FRAME WITH +C Z-AXIS OPPOSITE TO NEUTRINO MOMENTUM +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) + COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) + & ,NAMES + CHARACTER NAMES(NMODE)*31 + REAL*8 WETMAX(20) +C + REAL*8 PN(4),PR(4),PPI(4,9),HV(4) + REAL*4 PNX(4),PRX(4),PPIX(4,9),HVX(4) + REAL*8 PV(5,9),PT(4),UE(3),BE(3) + REAL*8 PAWT,AMX,AMS1,AMS2,PA,PHS,PHSMAX,PMIN,PMAX +!!! M.S. to fix underflow >>> + REAL*8 PHSPAC +!!! M.S. to fix underflow <<< + REAL*8 GAM,BEP,PHI,A,B,C + REAL*8 AMPIK + REAL*4 RRR(9),RRX(2),RN(1),RR2(1) +C + DATA PI /3.141592653589793238462643/ + DATA WETMAX /20*1D-15/ +C +CC-- PAWT(A,B,C)=SQRT((A**2-(B+C)**2)*(A**2-(B-C)**2))/(2.*A) +C + PAWT(A,B,C)= + $ SQRT(MAX(0.D0,(A**2-(B+C)**2)*(A**2-(B-C)**2)))/(2.D0*A) +C + AMPIK(I,J)=DCDMAS(IDFFIN(I,J)) +C +C + IF ((JNPI.LE.0).OR.JNPI.GT.20) THEN + WRITE(6,*) 'JNPI OUTSIDE RANGE DEFINED BY WETMAX; JNPI=',JNPI + STOP + ENDIF + +C TAU MOMENTUM + PT(1)=0. + PT(2)=0. + PT(3)=0. + PT(4)=AMTAU +C + 500 CONTINUE +C MASS OF VIRTUAL W + ND=MULPIK(JNPI) + PS=0. + PHSPAC = 1./2.**5 /PI**2 + DO 4 I=1,ND +4 PS =PS+AMPIK(I,JNPI) + CALL RANMAR(RR2,1) + AMS1=PS**2 + AMS2=(AMTAU-AMNUTA)**2 +C +C + AMX2=AMS1+ RR2(1)*(AMS2-AMS1) + AMX =SQRT(AMX2) + AMW =AMX + PHSPAC=PHSPAC * (AMS2-AMS1) +C +C TAU-NEUTRINO MOMENTUM + PN(1)=0 + PN(2)=0 + PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX2) + PN(3)=-SQRT(ABS((PN(4)-AMNUTA)*(PN(4)+AMNUTA))) +C W MOMENTUM + PR(1)=0 + PR(2)=0 + PR(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX2) + PR(3)=-PN(3) + PHSPAC=PHSPAC * (4.*PI) * (2.*PR(3)/AMTAU) +C +C AMPLITUDE (cf YS.Tsai Phys.Rev.D4,2821(1971) +C or F.Gilman SH.Rhie Phys.Rev.D31,1066(1985) +C + PXQ=AMTAU*PR(4) + PXN=AMTAU*PN(4) + QXN=PR(4)*PN(4)-PR(1)*PN(1)-PR(2)*PN(2)-PR(3)*PN(3) +C HERE WAS AN ERROR. 20.10.91 (ZW) +C BRAK=2*(GV**2+GA**2)*(2*PXQ*PXN+AMX2*QXN) + BRAK=2*(GV**2+GA**2)*(2*PXQ*QXN+AMX2*PXN) + & -6*(GV**2-GA**2)*AMTAU*AMNUTA*AMX2 +CAM Assume neutrino mass=0. and sum over final polarisation +C BRAK= 2*(AMTAU**2-AMX2) * (AMTAU**2+2.*AMX2) + AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK * AMX2*SIGEE(AMX2,JNPI) + DGAMT=1./(2.*AMTAU)*AMPLIT*PHSPAC +C +C ISOTROPIC W DECAY IN W REST FRAME + PHSMAX = 1. + DO 200 I=1,4 + 200 PV(I,1)=PR(I) + PV(5,1)=AMW + PV(5,ND)=AMPIK(ND,JNPI) +C COMPUTE MAX. PHASE SPACE FACTOR + PMAX=AMW-PS+AMPIK(ND,JNPI) + PMIN=.0 + DO 220 IL=ND-1,1,-1 + PMAX=PMAX+AMPIK(IL,JNPI) + PMIN=PMIN+AMPIK(IL+1,JNPI) + 220 PHSMAX=PHSMAX*PAWT(PMAX,PMIN,AMPIK(IL,JNPI))/PMAX + +C --- 2.02.94 ZW 9 lines + AMX=AMW + DO 222 IL=1,ND-2 + AMS1=.0 + DO 223 JL=IL+1,ND + 223 AMS1=AMS1+AMPIK(JL,JNPI) + AMS1=AMS1**2 + AMX =(AMX-AMPIK(IL,JNPI)) + AMS2=(AMX)**2 + PHSMAX=PHSMAX * (AMS2-AMS1) + 222 CONTINUE + NCONT=0 + 100 CONTINUE + NCONT=NCONT+1 +CAM GENERATE ND-2 EFFECTIVE MASSES + PHS=1.D0 + PHSPAC = 1./2.**(6*ND-7) /PI**(3*ND-4) + AMX=AMW + CALL RANMAR(RRR,ND-2) + DO 230 IL=1,ND-2 + AMS1=.0D0 + DO 231 JL=IL+1,ND + 231 AMS1=AMS1+AMPIK(JL,JNPI) + AMS1=AMS1**2 + AMS2=(AMX-AMPIK(IL,JNPI))**2 + RR1=RRR(IL) + AMX2=AMS1+ RR1*(AMS2-AMS1) + AMX=SQRT(AMX2) + PV(5,IL+1)=AMX + PHSPAC=PHSPAC * (AMS2-AMS1) +C --- 2.02.94 ZW 1 line + PHS=PHS* (AMS2-AMS1) + PA=PAWT(PV(5,IL),PV(5,IL+1),AMPIK(IL,JNPI)) + PHS =PHS *PA/PV(5,IL) + 230 CONTINUE + PA=PAWT(PV(5,ND-1),AMPIK(ND-1,JNPI),AMPIK(ND,JNPI)) + PHS =PHS *PA/PV(5,ND-1) + CALL RANMAR(RN,1) + + IF(PHSMAX.NE.0.0) THEN ! TP 5.10.2011 due to rounding errs. + ! PHSMAX may be zero, protect div. by it + WETMAX(JNPI)=1.2D0*MAX(WETMAX(JNPI)/1.2D0,PHS/PHSMAX) + ELSE + WETMAX(JNPI)=1.2D0*WETMAX(JNPI)/1.2D0 + ENDIF + + IF (NCONT.EQ.500 000) THEN + XNPI=0.0 + DO KK=1,ND + XNPI=XNPI+AMPIK(KK,JNPI) + ENDDO + WRITE(6,*) 'ROUNDING INSTABILITY IN DPHNPI ?' + WRITE(6,*) 'AMW=',AMW,'XNPI=',XNPI + WRITE(6,*) 'IF =AMW= IS NEARLY EQUAL =XNPI= THAT IS IT' + WRITE(6,*) 'PHS=',PHS,'PHSMAX=',PHSMAX + GOTO 500 + ENDIF + IF(RN(1)*PHSMAX*WETMAX(JNPI).GT.PHS) GO TO 100 +C...PERFORM SUCCESSIVE TWO-PARTICLE DECAYS IN RESPECTIVE CM FRAME + 280 DO 300 IL=1,ND-1 + PA=PAWT(PV(5,IL),PV(5,IL+1),AMPIK(IL,JNPI)) + CALL RANMAR(RRX,2) + UE(3)=2.*RRX(1)-1. + PHI=2.*PI*RRX(2) + UE(1)=SQRT(1.D0-UE(3)**2)*COS(PHI) + UE(2)=SQRT(1.D0-UE(3)**2)*SIN(PHI) + DO 290 J=1,3 + PPI(J,IL)=PA*UE(J) + 290 PV(J,IL+1)=-PA*UE(J) + PPI(4,IL)=SQRT(PA**2+AMPIK(IL,JNPI)**2) + PV(4,IL+1)=SQRT(PA**2+PV(5,IL+1)**2) + PHSPAC=PHSPAC *(4.*PI)*(2.*PA/PV(5,IL)) + 300 CONTINUE +C...LORENTZ TRANSFORM DECAY PRODUCTS TO TAU FRAME + DO 310 J=1,4 + 310 PPI(J,ND)=PV(J,ND) + DO 340 IL=ND-1,1,-1 + DO 320 J=1,3 + 320 BE(J)=PV(J,IL)/PV(4,IL) + GAM=PV(4,IL)/PV(5,IL) + DO 340 I=IL,ND + BEP=BE(1)*PPI(1,I)+BE(2)*PPI(2,I)+BE(3)*PPI(3,I) + DO 330 J=1,3 + 330 PPI(J,I)=PPI(J,I)+GAM*(GAM*BEP/(1.D0+GAM)+PPI(4,I))*BE(J) + PPI(4,I)=GAM*(PPI(4,I)+BEP) + 340 CONTINUE +C + HV(4)=1. + HV(3)=0. + HV(2)=0. + HV(1)=0. + DO K=1,4 + PNX(K)=PN(K) + PRX(K)=PR(K) + HVX(K)=HV(K) + DO L=1,ND + PPIX(K,L)=PPI(K,L) + ENDDO + ENDDO + RETURN + END + FUNCTION SIGEE(Q2,JNP) +C ---------------------------------------------------------------------- +C e+e- cross section in the (1.GEV2,AMTAU**2) region +C normalised to sig0 = 4/3 pi alfa2 +C used in matrix element for multipion tau decays +C cf YS.Tsai Phys.Rev D4 ,2821(1971) +C F.Gilman et al Phys.Rev D17,1846(1978) +C C.Kiesling, to be pub. in High Energy e+e- Physics (1988) +C DATSIG(*,1) = e+e- -> pi+pi-2pi0 +C DATSIG(*,2) = e+e- -> 2pi+2pi- +C DATSIG(*,3) = 5-pion contribution (a la TN.Pham et al) +C (Phys Lett 78B,623(1978) +C DATSIG(*,5) = e+e- -> 6pi +C +C 4- and 6-pion cross sections from data +C 5-pion contribution related to 4-pion cross section +C +C Called by DPHNPI +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + REAL*4 DATSIG(17,6) +C + DATA DATSIG/ + 1 7.40,12.00,16.15,21.25,24.90,29.55,34.15,37.40,37.85,37.40, + 2 36.00,33.25,30.50,27.70,24.50,21.25,18.90, + 3 1.24, 2.50, 3.70, 5.40, 7.45,10.75,14.50,18.20,22.30,28.90, + 4 29.35,25.60,22.30,18.60,14.05,11.60, 9.10, + 5 17*.0, + 6 17*.0, + 7 9*.0,.65,1.25,2.20,3.15,5.00,5.75,7.80,8.25, + 8 17*.0/ + DATA SIG0 / 86.8 / + DATA PI /3.141592653589793238462643/ + DATA INIT / 0 / +C + JNPI=JNP + IF(JNP.EQ.4) JNPI=3 + IF(JNP.EQ.3) JNPI=4 + IF(INIT.EQ.0) THEN + INIT=1 +C AJWMOD: initialize if called from outside QQ: +C IF (AMPI.LT.0.139) AMPI = 0.1395675 + AMPI2=AMPI**2 + FPI = .943*AMPI + DO 100 I=1,17 + DATSIG(I,2) = DATSIG(I,2)/2. + DATSIG(I,1) = DATSIG(I,1) + DATSIG(I,2) + S = 1.025+(I-1)*.05 + FACT=0. + S2=S**2 + DO 200 J=1,17 + T= 1.025+(J-1)*.05 + IF(T . GT. S-AMPI ) GO TO 201 + T2=T**2 + FACT=(T2/S2)**2*SQRT((S2-T2-AMPI2)**2-4.*T2*AMPI2)/S2 *2.*T*.05 + FACT = FACT * (DATSIG(J,1)+DATSIG(J+1,1)) + 200 DATSIG(I,3) = DATSIG(I,3) + FACT + 201 DATSIG(I,3) = DATSIG(I,3) /(2*PI*FPI)**2 + DATSIG(I,4) = DATSIG(I,3) + DATSIG(I,6) = DATSIG(I,5) + 100 CONTINUE +C WRITE(6,1000) DATSIG + 1000 FORMAT(///1X,' EE SIGMA USED IN MULTIPI DECAYS'/ + % (17F7.2/)) + ENDIF + Q=SQRT(Q2) + QMIN=1. + IF(Q.LT.QMIN) THEN + SIGEE=DATSIG(1,JNPI)+ + & (DATSIG(2,JNPI)-DATSIG(1,JNPI))*(Q-1.)/.05 + ELSEIF(Q.LT.1.8) THEN + DO 1 I=1,16 + QMAX = QMIN + .05 + IF(Q.LT.QMAX) GO TO 2 + QMIN = QMIN + .05 + 1 CONTINUE + 2 SIGEE=DATSIG(I,JNPI)+ + & (DATSIG(I+1,JNPI)-DATSIG(I,JNPI)) * (Q-QMIN)/.05 + ELSEIF(Q.GT.1.8) THEN + SIGEE=DATSIG(17,JNPI)+ + & (DATSIG(17,JNPI)-DATSIG(16,JNPI)) * (Q-1.8)/.05 + ENDIF + IF(SIGEE.LT..0) SIGEE=0. +C + SIGEE = SIGEE/(6.*PI**2*SIG0) +C + RETURN + END + + FUNCTION SIGOLD(Q2,JNPI) +C ---------------------------------------------------------------------- +C e+e- cross section in the (1.GEV2,AMTAU**2) region +C normalised to sig0 = 4/3 pi alfa2 +C used in matrix element for multipion tau decays +C cf YS.Tsai Phys.Rev D4 ,2821(1971) +C F.Gilman et al Phys.Rev D17,1846(1978) +C C.Kiesling, to be pub. in High Energy e+e- Physics (1988) +C DATSIG(*,1) = e+e- -> pi+pi-2pi0 +C DATSIG(*,2) = e+e- -> 2pi+2pi- +C DATSIG(*,3) = 5-pion contribution (a la TN.Pham et al) +C (Phys Lett 78B,623(1978) +C DATSIG(*,4) = e+e- -> 6pi +C +C 4- and 6-pion cross sections from data +C 5-pion contribution related to 4-pion cross section +C +C Called by DPHNPI +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + REAL*4 DATSIG(17,4) +C + DATA DATSIG/ + 1 7.40,12.00,16.15,21.25,24.90,29.55,34.15,37.40,37.85,37.40, + 2 36.00,33.25,30.50,27.70,24.50,21.25,18.90, + 3 1.24, 2.50, 3.70, 5.40, 7.45,10.75,14.50,18.20,22.30,28.90, + 4 29.35,25.60,22.30,18.60,14.05,11.60, 9.10, + 5 17*.0, + 6 9*.0,.65,1.25,2.20,3.15,5.00,5.75,7.80,8.25/ + DATA SIG0 / 86.8 / + DATA PI /3.141592653589793238462643/ + DATA INIT / 0 / +C + IF(INIT.EQ.0) THEN + INIT=1 + AMPI2=AMPI**2 + FPI = .943*AMPI + DO 100 I=1,17 + DATSIG(I,2) = DATSIG(I,2)/2. + DATSIG(I,1) = DATSIG(I,1) + DATSIG(I,2) + S = 1.025+(I-1)*.05 + FACT=0. + S2=S**2 + DO 200 J=1,17 + T= 1.025+(J-1)*.05 + IF(T . GT. S-AMPI ) GO TO 201 + T2=T**2 + FACT=(T2/S2)**2*SQRT((S2-T2-AMPI2)**2-4.*T2*AMPI2)/S2 *2.*T*.05 + FACT = FACT * (DATSIG(J,1)+DATSIG(J+1,1)) + 200 DATSIG(I,3) = DATSIG(I,3) + FACT + 201 DATSIG(I,3) = DATSIG(I,3) /(2*PI*FPI)**2 + 100 CONTINUE +C WRITE(6,1000) DATSIG + 1000 FORMAT(///1X,' EE SIGMA USED IN MULTIPI DECAYS'/ + % (17F7.2/)) + ENDIF + Q=SQRT(Q2) + QMIN=1. + IF(Q.LT.QMIN) THEN + SIGEE=DATSIG(1,JNPI)+ + & (DATSIG(2,JNPI)-DATSIG(1,JNPI))*(Q-1.)/.05 + ELSEIF(Q.LT.1.8) THEN + DO 1 I=1,16 + QMAX = QMIN + .05 + IF(Q.LT.QMAX) GO TO 2 + QMIN = QMIN + .05 + 1 CONTINUE + 2 SIGEE=DATSIG(I,JNPI)+ + & (DATSIG(I+1,JNPI)-DATSIG(I,JNPI)) * (Q-QMIN)/.05 + ELSEIF(Q.GT.1.8) THEN + SIGEE=DATSIG(17,JNPI)+ + & (DATSIG(17,JNPI)-DATSIG(16,JNPI)) * (Q-1.8)/.05 + ENDIF + IF(SIGEE.LT..0) SIGEE=0. +C + SIGEE = SIGEE/(6.*PI**2*SIG0) + SIGOLD=SIGEE +C + RETURN + END + SUBROUTINE DPHSPK(DGAMT,HV,PN,PAA,PNPI,JAA) +C ---------------------------------------------------------------------- +* IT SIMULATES THREE PI (K) DECAY IN THE TAU REST FRAME +* Z-AXIS ALONG HADRONIC SYSTEM +C ---------------------------------------------------------------------- + PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) + COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) + & ,NAMES + CHARACTER NAMES(NMODE)*31 + + REAL HV(4),PN(4),PAA(4),PIM1(4),PIM2(4),PIPL(4),PNPI(4,9) +C MATRIX ELEMENT NUMBER: + MNUM=JAA +C TYPE OF THE GENERATION: + KEYT=4 + IF(JAA.EQ.7) KEYT=3 +C --- MASSES OF THE DECAY PRODUCTS + AMP1=DCDMAS(IDFFIN(1,JAA+NM4+NM5+NM6)) + AMP2=DCDMAS(IDFFIN(2,JAA+NM4+NM5+NM6)) + AMP3=DCDMAS(IDFFIN(3,JAA+NM4+NM5+NM6)) + CALL + $ DPHTRE(DGAMT,HV,PN,PAA,PIM1,AMP1,PIM2,AMP2,PIPL,AMP3,KEYT,MNUM) + DO I=1,4 + PNPI(I,1)=PIM1(I) + PNPI(I,2)=PIM2(I) + PNPI(I,3)=PIPL(I) + ENDDO + END + + + + + SUBROUTINE + $ DPHTRE(DGAMT,HV,PN,PAA,PIM1,AMPA,PIM2,AMPB,PIPL,AMP3,KEYT,MNUM) +C ---------------------------------------------------------------------- +* IT SIMULATES A1 DECAY IN TAU REST FRAME WITH +* Z-AXIS ALONG A1 MOMENTUM +* it can be also used to generate K K pi and K pi pi tau decays. +* INPUT PARAMETERS +* KEYT - algorithm controlling switch +* 2 - flat phase space PIM1 PIM2 symmetrized statistical factor 1/2 +* 1 - like 1 but peaked around a1 and rho (two channels) masses. +* 3 - peaked around omega, all particles different +* other- flat phase space, all particles different +* AMP1 - mass of first pi, etc. (1-3) +* MNUM - matrix element type +* 0 - a1 matrix element +* 1-6 - matrix element for K pi pi, K K pi decay modes +* 7 - pi- pi0 gamma matrix element +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL HV(4),PT(4),PN(4),PAA(4),PIM1(4),PIM2(4),PIPL(4) + REAL PR(4) + REAL*4 RRR(5) + DATA PI /3.141592653589793238462643/ + DATA ICONT /0/ + XLAM(X,Y,Z)=SQRT(ABS((X-Y-Z)**2-4.0*Y*Z)) +C AMRO, GAMRO IS ONLY A PARAMETER FOR GETING HIGHT EFFICIENCY +C +C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL +C D**3 P /2E/(2PI)**3 (2PI)**4 DELTA4(SUM P) + PHSPAC=1./2**17/PI**8 +C TAU MOMENTUM + PT(1)=0. + PT(2)=0. + PT(3)=0. + PT(4)=AMTAU +C + CALL RANMAR(RRR,5) + RR=RRR(5) +C + CALL CHOICE(MNUM,RR,ICHAN,PROB1,PROB2,PROB3, + $ AMRX,GAMRX,AMRA,GAMRA,AMRB,GAMRB) + IF (ICHAN.EQ.1) THEN + AMP1=AMPB + AMP2=AMPA + ELSEIF (ICHAN.EQ.2) THEN + AMP1=AMPA + AMP2=AMPB + ELSE + AMP1=AMPB + AMP2=AMPA + ENDIF +CAM + RR1=RRR(1) + AMS1=(AMP1+AMP2+AMP3)**2 + AMS2=(AMTAU-AMNUTA)**2 +* PHASE SPACE WITH SAMPLING FOR A1 RESONANCE + ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX) + ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX) + ALP=ALP1+RR1*(ALP2-ALP1) + AM3SQ =AMRX**2+AMRX*GAMRX*TAN(ALP) + AM3 =SQRT(AM3SQ) + PHSPAC=PHSPAC*((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX) + PHSPAC=PHSPAC*(ALP2-ALP1) +C MASS OF (REAL/VIRTUAL) RHO - + RR2=RRR(2) + AMS1=(AMP2+AMP3)**2 + AMS2=(AM3-AMP1)**2 + IF (ICHAN.LE.2) THEN +* PHASE SPACE WITH SAMPLING FOR RHO RESONANCE, + ALP1=ATAN((AMS1-AMRA**2)/AMRA/GAMRA) + ALP2=ATAN((AMS2-AMRA**2)/AMRA/GAMRA) + ALP=ALP1+RR2*(ALP2-ALP1) + AM2SQ =AMRA**2+AMRA*GAMRA*TAN(ALP) + AM2 =SQRT(AM2SQ) +C --- THIS PART OF THE JACOBIAN WILL BE RECOVERED LATER --------------- +C PHSPAC=PHSPAC*(ALP2-ALP1) +C PHSPAC=PHSPAC*((AM2SQ-AMRA**2)**2+(AMRA*GAMRA)**2)/(AMRA*GAMRA) +C---------------------------------------------------------------------- + ELSE +* FLAT PHASE SPACE; + AM2SQ=AMS1+ RR2*(AMS2-AMS1) + AM2 =SQRT(AM2SQ) + PHF0=(AMS2-AMS1) + ENDIF +* RHO RESTFRAME, DEFINE PIPL AND PIM1 + ENQ1=(AM2SQ-AMP2**2+AMP3**2)/(2*AM2) + ENQ2=(AM2SQ+AMP2**2-AMP3**2)/(2*AM2) + PPI= ENQ1**2-AMP3**2 + PPPI=SQRT(ABS(ENQ1**2-AMP3**2)) +C --- this part of jacobian will be recovered later + PHF1=(4*PI)*(2*PPPI/AM2) +* PI MINUS MOMENTUM IN RHO REST FRAME + CALL SPHERA(PPPI,PIPL) + PIPL(4)=ENQ1 +* PI0 1 MOMENTUM IN RHO REST FRAME + DO 30 I=1,3 + 30 PIM1(I)=-PIPL(I) + PIM1(4)=ENQ2 +* A1 REST FRAME, DEFINE PIM2 +* RHO MOMENTUM + PR(1)=0 + PR(2)=0 + PR(4)=1./(2*AM3)*(AM3**2+AM2**2-AMP1**2) + PR(3)= SQRT(ABS(PR(4)**2-AM2**2)) + PPI = PR(4)**2-AM2**2 +* PI0 2 MOMENTUM + PIM2(1)=0 + PIM2(2)=0 + PIM2(4)=1./(2*AM3)*(AM3**2-AM2**2+AMP1**2) + PIM2(3)=-PR(3) + PHF2=(4*PI)*(2*PR(3)/AM3) +* OLD PIONS BOOSTED FROM RHO REST FRAME TO A1 REST FRAME + EXE=(PR(4)+PR(3))/AM2 + CALL BOSTR3(EXE,PIPL,PIPL) + CALL BOSTR3(EXE,PIM1,PIM1) + RR3=RRR(3) + RR4=RRR(4) +CAM THET =PI*RR3 + THET =ACOS(-1.+2*RR3) + PHI = 2*PI*RR4 + CALL ROTPOL(THET,PHI,PIPL) + CALL ROTPOL(THET,PHI,PIM1) + CALL ROTPOL(THET,PHI,PIM2) + CALL ROTPOL(THET,PHI,PR) +C +* NOW TO THE TAU REST FRAME, DEFINE A1 AND NEUTRINO MOMENTA +* A1 MOMENTUM + PAA(1)=0 + PAA(2)=0 + PAA(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AM3**2) + PAA(3)= SQRT(ABS(PAA(4)**2-AM3**2)) + PPI = PAA(4)**2-AM3**2 + PHSPAC=PHSPAC*(4*PI)*(2*PAA(3)/AMTAU) +* TAU-NEUTRINO MOMENTUM + PN(1)=0 + PN(2)=0 + PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AM3**2) + PN(3)=-PAA(3) +C HERE WE CORRECT FOR THE JACOBIANS OF THE TWO CHAINS +C ---FIRST CHANNEL ------- PIM1+PIPL + AMS1=(AMP2+AMP3)**2 + AMS2=(AM3-AMP1)**2 + ALP1=ATAN((AMS1-AMRA**2)/AMRA/GAMRA) + ALP2=ATAN((AMS2-AMRA**2)/AMRA/GAMRA) + XPRO = (PIM1(3)+PIPL(3))**2 + $ +(PIM1(2)+PIPL(2))**2+(PIM1(1)+PIPL(1))**2 + AM2SQ=-XPRO+(PIM1(4)+PIPL(4))**2 +C JACOBIAN OF SPEEDING + FF1 = ((AM2SQ-AMRA**2)**2+(AMRA*GAMRA)**2)/(AMRA*GAMRA) + FF1 =FF1 *(ALP2-ALP1) +C LAMBDA OF RHO DECAY + GG1 = (4*PI)*(XLAM(AM2SQ,AMP2**2,AMP3**2)/AM2SQ) +C LAMBDA OF A1 DECAY + GG1 =GG1 *(4*PI)*SQRT(4*XPRO/AM3SQ) + XJAJE=GG1*(AMS2-AMS1) +C ---SECOND CHANNEL ------ PIM2+PIPL + AMS1=(AMP1+AMP3)**2 + AMS2=(AM3-AMP2)**2 + ALP1=ATAN((AMS1-AMRB**2)/AMRB/GAMRB) + ALP2=ATAN((AMS2-AMRB**2)/AMRB/GAMRB) + XPRO = (PIM2(3)+PIPL(3))**2 + $ +(PIM2(2)+PIPL(2))**2+(PIM2(1)+PIPL(1))**2 + AM2SQ=-XPRO+(PIM2(4)+PIPL(4))**2 + FF2 = ((AM2SQ-AMRB**2)**2+(AMRB*GAMRB)**2)/(AMRB*GAMRB) + FF2 =FF2 *(ALP2-ALP1) + GG2 = (4*PI)*(XLAM(AM2SQ,AMP1**2,AMP3**2)/AM2SQ) + GG2 =GG2 *(4*PI)*SQRT(4*XPRO/AM3SQ) + XJADW=GG2*(AMS2-AMS1) +C + A1=0.0 + A2=0.0 + A3=0.0 + XJAC1=FF1*GG1 + XJAC2=FF2*GG2 + IF (ICHAN.EQ.2) THEN + XJAC3=XJADW + ELSE + XJAC3=XJAJE + ENDIF + IF (XJAC1.NE.0.0) A1=PROB1/XJAC1 + IF (XJAC2.NE.0.0) A2=PROB2/XJAC2 + IF (XJAC3.NE.0.0) A3=PROB3/XJAC3 +C + IF (A1+A2+A3.NE.0.0) THEN + PHSPAC=PHSPAC/(A1+A2+A3) + ELSE + PHSPAC=0.0 + ENDIF + IF(ICHAN.EQ.2) THEN + DO 70 I=1,4 + X=PIM1(I) + PIM1(I)=PIM2(I) + 70 PIM2(I)=X + ENDIF +* ALL PIONS BOOSTED FROM A1 REST FRAME TO TAU REST FRAME +* Z-AXIS ANTIPARALLEL TO NEUTRINO MOMENTUM + EXE=(PAA(4)+PAA(3))/AM3 + CALL BOSTR3(EXE,PIPL,PIPL) + CALL BOSTR3(EXE,PIM1,PIM1) + CALL BOSTR3(EXE,PIM2,PIM2) + CALL BOSTR3(EXE,PR,PR) +C PARTIAL WIDTH CONSISTS OF PHASE SPACE AND AMPLITUDE + IF (MNUM.EQ.8) THEN + CALL DAMPOG(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV) +C ELSEIF (MNUM.EQ.0) THEN +C CALL DAMPAA(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV) + ELSE + CALL DAMPPK(MNUM,PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV) + ENDIF + IF (KEYT.EQ.1.OR.KEYT.EQ.2) THEN +C THE STATISTICAL FACTOR FOR IDENTICAL PI-S IS CANCELLED WITH +C TWO, FOR TWO MODES OF A1 DECAY NAMELLY PI+PI-PI- AND PI-PI0PI0 + PHSPAC=PHSPAC*2.0 + PHSPAC=PHSPAC/2. + ENDIF + DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC + END + SUBROUTINE DAMPAA(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV) +C ---------------------------------------------------------------------- +* CALCULATES DIFFERENTIAL CROSS SECTION AND POLARIMETER VECTOR +* FOR TAU DECAY INTO A1, A1 DECAYS NEXT INTO RHO+PI AND RHO INTO PI+PI. +* ALL SPIN EFFECTS IN THE FULL DECAY CHAIN ARE TAKEN INTO ACCOUNT. +* CALCULATIONS DONE IN TAU REST FRAME WITH Z-AXIS ALONG NEUTRINO MOMENT +* THE ROUTINE IS WRITEN FOR ZERO NEUTRINO MASS. +C +C called by : DPHSAA +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON /TESTA1/ KEYA1 + REAL HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIPL(4) + REAL PAA(4),VEC1(4),VEC2(4) + REAL PIVEC(4),PIAKS(4),HVM(4) + COMPLEX BWIGN,HADCUR(4),FPIK + DATA ICONT /1/ +C +* F CONSTANTS FOR A1, A1-RHO-PI, AND RHO-PI-PI +* + DATA FPI /93.3E-3/ +* THIS INLINE FUNCT. CALCULATES THE SCALAR PART OF THE PROPAGATOR + BWIGN(XM,AM,GAMMA)=1./CMPLX(XM**2-AM**2,GAMMA*AM) +C +* FOUR MOMENTUM OF A1 + DO 10 I=1,4 + 10 PAA(I)=PIM1(I)+PIM2(I)+PIPL(I) +* MASSES OF A1, AND OF TWO PI-PAIRS WHICH MAY FORM RHO + XMAA =SQRT(ABS(PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2)) + XMRO1 =SQRT(ABS((PIPL(4)+PIM1(4))**2-(PIPL(1)+PIM1(1))**2 + $ -(PIPL(2)+PIM1(2))**2-(PIPL(3)+PIM1(3))**2)) + XMRO2 =SQRT(ABS((PIPL(4)+PIM2(4))**2-(PIPL(1)+PIM2(1))**2 + $ -(PIPL(2)+PIM2(2))**2-(PIPL(3)+PIM2(3))**2)) +* ELEMENTS OF HADRON CURRENT + PROD1 =PAA(4)*(PIM1(4)-PIPL(4))-PAA(1)*(PIM1(1)-PIPL(1)) + $ -PAA(2)*(PIM1(2)-PIPL(2))-PAA(3)*(PIM1(3)-PIPL(3)) + PROD2 =PAA(4)*(PIM2(4)-PIPL(4))-PAA(1)*(PIM2(1)-PIPL(1)) + $ -PAA(2)*(PIM2(2)-PIPL(2))-PAA(3)*(PIM2(3)-PIPL(3)) + DO 40 I=1,4 + VEC1(I)= PIM1(I)-PIPL(I) -PAA(I)*PROD1/XMAA**2 + 40 VEC2(I)= PIM2(I)-PIPL(I) -PAA(I)*PROD2/XMAA**2 +* HADRON CURRENT SATURATED WITH A1 AND RHO RESONANCES + IF (KEYA1.EQ.1) THEN + FA1=9.87 + FAROPI=1.0 + FRO2PI=1.0 + FNORM=FA1/SQRT(2.)*FAROPI*FRO2PI + DO 45 I=1,4 + HADCUR(I)= CMPLX(FNORM) *AMA1**2*BWIGN(XMAA,AMA1,GAMA1) + $ *(CMPLX(VEC1(I))*AMRO**2*BWIGN(XMRO1,AMRO,GAMRO) + $ +CMPLX(VEC2(I))*AMRO**2*BWIGN(XMRO2,AMRO,GAMRO)) + 45 CONTINUE + ELSE + FNORM=2.0*SQRT(2.)/3.0/FPI + GAMAX=GAMA1*GFUN(XMAA**2)/GFUN(AMA1**2) + DO 46 I=1,4 + HADCUR(I)= CMPLX(FNORM) *AMA1**2*BWIGN(XMAA,AMA1,GAMAX) + $ *(CMPLX(VEC1(I))*FPIK(XMRO1) + $ +CMPLX(VEC2(I))*FPIK(XMRO2)) + 46 CONTINUE + ENDIF +C +* CALCULATE PI-VECTORS: VECTOR AND AXIAL + CALL CLVEC(HADCUR,PN,PIVEC) + CALL CLAXI(HADCUR,PN,PIAKS) + CALL CLNUT(HADCUR,BRAKM,HVM) +* SPIN INDEPENDENT PART OF DECAY DIFF-CROSS-SECT. IN TAU REST FRAME + BRAK= (GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4) + & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM + AMPLIT=(GFERMI*CCABIB)**2*BRAK/2. +C THE STATISTICAL FACTOR FOR IDENTICAL PI-S WAS CANCELLED WITH +C TWO, FOR TWO MODES OF A1 DECAY NAMELLY PI+PI-PI- AND PI-PI0PI0 +C POLARIMETER VECTOR IN TAU REST FRAME + DO 90 I=1,3 + HV(I)=-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I))) + & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I) +C HV IS DEFINED FOR TAU- WITH GAMMA=B+HV*POL + HV(I)=-HV(I)/BRAK + 90 CONTINUE + END + + FUNCTION GFUN(QKWA) +C **************************************************************** +C G-FUNCTION USED TO INRODUCE ENERGY DEPENDENCE IN A1 WIDTH +C **************************************************************** + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + IF (QKWA.LT.(AMRO+AMPI)**2) THEN + GFUN=4.1*(QKWA-9*AMPIZ**2)**3 + $ *(1.-3.3*(QKWA-9*AMPIZ**2)+5.8*(QKWA-9*AMPIZ**2)**2) + ELSE + GFUN=QKWA*(1.623+10.38/QKWA-9.32/QKWA**2+0.65/QKWA**3) + ENDIF + END + COMPLEX FUNCTION BWIGS(S,M,G) +C ********************************************************** +C P-WAVE BREIT-WIGNER FOR K* +C ********************************************************** + REAL S,M,G + REAL PI,PIM,QS,QM,W,GS,MK +C AJW: add K*-prim possibility: + REAL PM, PG, PBETA + COMPLEX BW,BWP + DATA INIT /0/ + P(A,B,C)=SQRT(ABS(ABS(((A+B-C)**2-4.*A*B)/4./A) + $ +(((A+B-C)**2-4.*A*B)/4./A))/2.0) +C ------------ PARAMETERS -------------------- + IF (INIT.EQ.0) THEN + INIT=1 + PI=3.141592654 + PIM=.139 + MK=.493667 +C AJW: add K*-prim possibility: + PM = PKORB(1,16) + PG = PKORB(2,16) + PBETA = PKORB(3,16) +C ------- BREIT-WIGNER ----------------------- + ENDIF + QS=P(S,PIM**2,MK**2) + QM=P(M**2,PIM**2,MK**2) + W=SQRT(S) + GS=G*(M/W)*(QS/QM)**3 + BW=M**2/CMPLX(M**2-S,-M*GS) + QPM=P(PM**2,PIM**2,MK**2) + G1=PG*(PM/W)*(QS/QPM)**3 + BWP=PM**2/CMPLX(PM**2-S,-PM*G1) + BWIGS= (BW+PBETA*BWP)/(1+PBETA) + RETURN + END + COMPLEX FUNCTION BWIG(S,M,G) +C ********************************************************** +C P-WAVE BREIT-WIGNER FOR RHO +C ********************************************************** + REAL S,M,G + REAL PI,PIM,QS,QM,W,GS + DATA INIT /0/ +C ------------ PARAMETERS -------------------- + IF (INIT.EQ.0) THEN + INIT=1 + PI=3.141592654 + PIM=.139 +C ------- BREIT-WIGNER ----------------------- + ENDIF + IF (S.GT.4.*PIM**2) THEN + QS=SQRT(ABS(ABS(S/4.-PIM**2)+(S/4.-PIM**2))/2.0) + QM=SQRT(M**2/4.-PIM**2) + W=SQRT(S) + GS=G*(M/W)*(QS/QM)**3 + ELSE + GS=0.0 + ENDIF + BWIG=M**2/CMPLX(M**2-S,-M*GS) + RETURN + END + COMPLEX FUNCTION FPIK(W) +C ********************************************************** +C PION FORM FACTOR +C ********************************************************** + COMPLEX BWIG + REAL ROM,ROG,ROM1,ROG1,BETA1,PI,PIM,S,W + EXTERNAL BWIG + DATA INIT /0/ +C +C ------------ PARAMETERS -------------------- + IF (INIT.EQ.0 ) THEN + INIT=1 + PI=3.141592654 + PIM=.140 + ROM=PKORB(1,9) + ROG=PKORB(2,9) + ROM1=PKORB(1,15) + ROG1=PKORB(2,15) + BETA1=PKORB(3,15) + ENDIF +C ----------------------------------------------- + S=W**2 + FPIK= (BWIG(S,ROM,ROG)+BETA1*BWIG(S,ROM1,ROG1)) + & /(1+BETA1) + RETURN + END + FUNCTION FPIRHO(W) +C ********************************************************** +C SQUARE OF PION FORM FACTOR +C ********************************************************** + COMPLEX FPIK + FPIRHO=CABS(FPIK(W))**2 + END + SUBROUTINE CLVEC(HJ,PN,PIV) +C ---------------------------------------------------------------------- +* CALCULATES THE "VECTOR TYPE" PI-VECTOR PIV +* NOTE THAT THE NEUTRINO MOM. PN IS ASSUMED TO BE ALONG Z-AXIS +C +C called by : DAMPAA +C ---------------------------------------------------------------------- + REAL PIV(4),PN(4) + COMPLEX HJ(4),HN +C + HN= HJ(4)*CMPLX(PN(4))-HJ(3)*CMPLX(PN(3)) + HH= REAL(HJ(4)*CONJG(HJ(4))-HJ(3)*CONJG(HJ(3)) + $ -HJ(2)*CONJG(HJ(2))-HJ(1)*CONJG(HJ(1))) + DO 10 I=1,4 + 10 PIV(I)=4.*REAL(HN*CONJG(HJ(I)))-2.*HH*PN(I) + RETURN + END + SUBROUTINE CLAXI(HJ,PN,PIA) +C ---------------------------------------------------------------------- +* CALCULATES THE "AXIAL TYPE" PI-VECTOR PIA +* NOTE THAT THE NEUTRINO MOM. PN IS ASSUMED TO BE ALONG Z-AXIS +C SIGN is chosen +/- for decay of TAU +/- respectively +C called by : DAMPAA, CLNUT +C ---------------------------------------------------------------------- + COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM + COMMON / IDFC / IDFF + REAL PIA(4),PN(4) + COMPLEX HJ(4),HJC(4) +C DET2(I,J)=AIMAG(HJ(I)*HJC(J)-HJ(J)*HJC(I)) +C -- here was an error (ZW, 21.11.1991) + DET2(I,J)=AIMAG(HJC(I)*HJ(J)-HJC(J)*HJ(I)) +C -- it was affecting sign of A_LR asymmetry in a1 decay. +C -- note also collision of notation of gamma_va as defined in +C -- TAUOLA paper and J.H. Kuhn and Santamaria Z. Phys C 48 (1990) 445 +* ----------------------------------- + IF (KTOM.EQ.1.OR.KTOM.EQ.-1) THEN + SIGN= IDFF/ABS(IDFF) + ELSEIF (KTOM.EQ.2) THEN + SIGN=-IDFF/ABS(IDFF) + ELSE + PRINT *, 'STOP IN CLAXI: KTOM=',KTOM + STOP + ENDIF +C + DO 10 I=1,4 + 10 HJC(I)=CONJG(HJ(I)) + PIA(1)= -2.*PN(3)*DET2(2,4)+2.*PN(4)*DET2(2,3) + PIA(2)= -2.*PN(4)*DET2(1,3)+2.*PN(3)*DET2(1,4) + PIA(3)= 2.*PN(4)*DET2(1,2) + PIA(4)= 2.*PN(3)*DET2(1,2) +C ALL FOUR INDICES ARE UP SO PIA(3) AND PIA(4) HAVE SAME SIGN + DO 20 I=1,4 + 20 PIA(I)=PIA(I)*SIGN + END + SUBROUTINE CLNUT(HJ,B,HV) +C ---------------------------------------------------------------------- +* CALCULATES THE CONTRIBUTION BY NEUTRINO MASS +* NOTE THE TAU IS ASSUMED TO BE AT REST +C +C called by : DAMPAA +C ---------------------------------------------------------------------- + COMPLEX HJ(4) + REAL HV(4),P(4) + DATA P /3*0.,1.0/ +C + CALL CLAXI(HJ,P,HV) + B=REAL( HJ(4)*AIMAG(HJ(4)) - HJ(3)*AIMAG(HJ(3)) + & - HJ(2)*AIMAG(HJ(2)) - HJ(1)*AIMAG(HJ(1)) ) + RETURN + END + SUBROUTINE DAMPOG(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV) +C ---------------------------------------------------------------------- +* CALCULATES DIFFERENTIAL CROSS SECTION AND POLARIMETER VECTOR +* FOR TAU DECAY INTO A1, A1 DECAYS NEXT INTO RHO+PI AND RHO INTO PI+PI. +* ALL SPIN EFFECTS IN THE FULL DECAY CHAIN ARE TAKEN INTO ACCOUNT. +* CALCULATIONS DONE IN TAU REST FRAME WITH Z-AXIS ALONG NEUTRINO MOMENT +* THE ROUTINE IS WRITEN FOR ZERO NEUTRINO MASS. +C +C called by : DPHSAA +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON /TESTA1/ KEYA1 + REAL HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIPL(4) + REAL PAA(4),VEC1(4),VEC2(4) + REAL PIVEC(4),PIAKS(4),HVM(4) + COMPLEX BWIGN,HADCUR(4),FNORM,FORMOM + DATA ICONT /1/ +* THIS INLINE FUNCT. CALCULATES THE SCALAR PART OF THE PROPAGATOR +C AJWMOD to satisfy compiler, comment out this unused function. +C +* FOUR MOMENTUM OF A1 + DO 10 I=1,4 + VEC1(I)=0.0 + VEC2(I)=0.0 + HV(I) =0.0 + 10 PAA(I)=PIM1(I)+PIM2(I)+PIPL(I) + VEC1(1)=1.0 +* MASSES OF A1, AND OF TWO PI-PAIRS WHICH MAY FORM RHO + XMAA =SQRT(ABS(PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2)) + XMOM =SQRT(ABS( (PIM2(4)+PIPL(4))**2-(PIM2(3)+PIPL(3))**2 + $ -(PIM2(2)+PIPL(2))**2-(PIM2(1)+PIPL(1))**2 )) + XMRO2 =(PIPL(1))**2 +(PIPL(2))**2 +(PIPL(3))**2 +* ELEMENTS OF HADRON CURRENT + PROD1 =VEC1(1)*PIPL(1) + PROD2 =VEC2(2)*PIPL(2) + P12 =PIM1(4)*PIM2(4)-PIM1(1)*PIM2(1) + $ -PIM1(2)*PIM2(2)-PIM1(3)*PIM2(3) + P1PL =PIM1(4)*PIPL(4)-PIM1(1)*PIPL(1) + $ -PIM1(2)*PIPL(2)-PIM1(3)*PIPL(3) + P2PL =PIPL(4)*PIM2(4)-PIPL(1)*PIM2(1) + $ -PIPL(2)*PIM2(2)-PIPL(3)*PIM2(3) + DO 40 I=1,3 + VEC1(I)= (VEC1(I)-PROD1/XMRO2*PIPL(I)) + 40 CONTINUE + GNORM=SQRT(VEC1(1)**2+VEC1(2)**2+VEC1(3)**2) + DO 41 I=1,3 + VEC1(I)= VEC1(I)/GNORM + 41 CONTINUE + VEC2(1)=(VEC1(2)*PIPL(3)-VEC1(3)*PIPL(2))/SQRT(XMRO2) + VEC2(2)=(VEC1(3)*PIPL(1)-VEC1(1)*PIPL(3))/SQRT(XMRO2) + VEC2(3)=(VEC1(1)*PIPL(2)-VEC1(2)*PIPL(1))/SQRT(XMRO2) + P1VEC1 =PIM1(4)*VEC1(4)-PIM1(1)*VEC1(1) + $ -PIM1(2)*VEC1(2)-PIM1(3)*VEC1(3) + P2VEC1 =VEC1(4)*PIM2(4)-VEC1(1)*PIM2(1) + $ -VEC1(2)*PIM2(2)-VEC1(3)*PIM2(3) + P1VEC2 =PIM1(4)*VEC2(4)-PIM1(1)*VEC2(1) + $ -PIM1(2)*VEC2(2)-PIM1(3)*VEC2(3) + P2VEC2 =VEC2(4)*PIM2(4)-VEC2(1)*PIM2(1) + $ -VEC2(2)*PIM2(2)-VEC2(3)*PIM2(3) +* HADRON CURRENT + FNORM=FORMOM(XMAA,XMOM) + BRAK=0.0 + DO 120 JJ=1,2 + DO 45 I=1,4 + IF (JJ.EQ.1) THEN + HADCUR(I) = FNORM *( + $ VEC1(I)*(AMPI**2*P1PL-P2PL*(P12-P1PL)) + $ -PIM2(I)*(P2VEC1*P1PL-P1VEC1*P2PL) + $ +PIPL(I)*(P2VEC1*P12 -P1VEC1*(AMPI**2+P2PL)) ) + ELSE + HADCUR(I) = FNORM *( + $ VEC2(I)*(AMPI**2*P1PL-P2PL*(P12-P1PL)) + $ -PIM2(I)*(P2VEC2*P1PL-P1VEC2*P2PL) + $ +PIPL(I)*(P2VEC2*P12 -P1VEC2*(AMPI**2+P2PL)) ) + ENDIF + 45 CONTINUE +C +* CALCULATE PI-VECTORS: VECTOR AND AXIAL + CALL CLVEC(HADCUR,PN,PIVEC) + CALL CLAXI(HADCUR,PN,PIAKS) + CALL CLNUT(HADCUR,BRAKM,HVM) +* SPIN INDEPENDENT PART OF DECAY DIFF-CROSS-SECT. IN TAU REST FRAME + BRAK=BRAK+(GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4) + & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM + DO 90 I=1,3 + HV(I)=HV(I)-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I))) + & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I) + 90 CONTINUE +C HV IS DEFINED FOR TAU- WITH GAMMA=B+HV*POL + 120 CONTINUE + AMPLIT=(GFERMI*CCABIB)**2*BRAK/2. +C THE STATISTICAL FACTOR FOR IDENTICAL PI-S WAS CANCELLED WITH +C TWO, FOR TWO MODES OF A1 DECAY NAMELLY PI+PI-PI- AND PI-PI0PI0 +C POLARIMETER VECTOR IN TAU REST FRAME + DO 91 I=1,3 + HV(I)=-HV(I)/BRAK + 91 CONTINUE + + END + SUBROUTINE DAMPPK(MNUM,PT,PN,PIM1,PIM2,PIM3,AMPLIT,HV) +C ---------------------------------------------------------------------- +* CALCULATES DIFFERENTIAL CROSS SECTION AND POLARIMETER VECTOR +* FOR TAU DECAY INTO K K pi, K pi pi. +* ALL SPIN EFFECTS IN THE FULL DECAY CHAIN ARE TAKEN INTO ACCOUNT. +* CALCULATIONS DONE IN TAU REST FRAME WITH Z-AXIS ALONG NEUTRINO MOMENT +C MNUM DECAY MODE IDENTIFIER. +C +C called by : DPHSAA +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON /IPChT/ IVER + INTEGER IVER + REAL HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIM3(4) + REAL PAA(4),VEC1(4),VEC2(4),VEC3(4),VEC4(4),VEC5(4) + REAL PIVEC(4),PIAKS(4),HVM(4) + REAL FNORM(0:7),COEF + DOUBLE PRECISION GETFPIRPT + COMPLEX HADCUR(4),FORM1,FORM2,FORM3,FORM4,FORM5,UROJ + COMPLEX F1,F2,F3,F4,F5 + EXTERNAL FORM1,FORM2,FORM3,FORM4,FORM5 + DATA PI /3.141592653589793238462643/ + DATA ICONT /0/ +CC + DATA FPIc /93.3E-3/ + IF (ICONT.EQ.0) THEN + ICONT=1 + UROJ=CMPLX(0.0,1.0) + DWAPI0=SQRT(2.0) + + ENDIF + IF (IVER.EQ.0.OR.MNUM.NE.0) THEN ! so far rchl only for 3pi modes + FPI=FPIc + ELSEIF (IVER.EQ.1) THEN + FPI=GETFPIRPT(1) ! GET defined in in ffwid3pi.f of RChL-currents + ELSE + write(*,*) 'wrong IVER=',IVER + stop + ENDIF + FNORM(0)=CCABIB/FPI + FNORM(1)=CCABIB/FPI + FNORM(2)=CCABIB/FPI + FNORM(3)=CCABIB/FPI + FNORM(4)=SCABIB/FPI/DWAPI0 + FNORM(5)=SCABIB/FPI + FNORM(6)=SCABIB/FPI + FNORM(7)=CCABIB/FPI + + +C + DO 10 I=1,4 + 10 PAA(I)=PIM1(I)+PIM2(I)+PIM3(I) + XMAA =SQRT(ABS(PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2)) + XMRO1 =SQRT(ABS((PIM3(4)+PIM2(4))**2-(PIM3(1)+PIM2(1))**2 + $ -(PIM3(2)+PIM2(2))**2-(PIM3(3)+PIM2(3))**2)) + XMRO2 =SQRT(ABS((PIM3(4)+PIM1(4))**2-(PIM3(1)+PIM1(1))**2 + $ -(PIM3(2)+PIM1(2))**2-(PIM3(3)+PIM1(3))**2)) + XMRO3 =SQRT(ABS((PIM1(4)+PIM2(4))**2-(PIM1(1)+PIM2(1))**2 + $ -(PIM1(2)+PIM2(2))**2-(PIM1(3)+PIM2(3))**2)) +* ELEMENTS OF HADRON CURRENT + PROD1 =PAA(4)*(PIM2(4)-PIM3(4))-PAA(1)*(PIM2(1)-PIM3(1)) + $ -PAA(2)*(PIM2(2)-PIM3(2))-PAA(3)*(PIM2(3)-PIM3(3)) + PROD2 =PAA(4)*(PIM3(4)-PIM1(4))-PAA(1)*(PIM3(1)-PIM1(1)) + $ -PAA(2)*(PIM3(2)-PIM1(2))-PAA(3)*(PIM3(3)-PIM1(3)) + PROD3 =PAA(4)*(PIM1(4)-PIM2(4))-PAA(1)*(PIM1(1)-PIM2(1)) + $ -PAA(2)*(PIM1(2)-PIM2(2))-PAA(3)*(PIM1(3)-PIM2(3)) + DO 40 I=1,4 + VEC1(I)= PIM2(I)-PIM3(I) -PAA(I)*PROD1/XMAA**2 + VEC2(I)= PIM3(I)-PIM1(I) -PAA(I)*PROD2/XMAA**2 + VEC3(I)= PIM1(I)-PIM2(I) -PAA(I)*PROD3/XMAA**2 + 40 VEC4(I)= PIM1(I)+PIM2(I)+PIM3(I) + CALL PROD5(PIM1,PIM2,PIM3,VEC5) +* HADRON CURRENT +C be aware that sign of vec2 is opposite to sign of vec1 in a1 case +C Rationalize this code: + F1 = CMPLX(COEF(1,MNUM))*FORM1(MNUM,XMAA**2,XMRO1**2,XMRO2**2) + F2 = CMPLX(COEF(2,MNUM))*FORM2(MNUM,XMAA**2,XMRO2**2,XMRO1**2) + F3 = CMPLX(COEF(3,MNUM))*FORM3(MNUM,XMAA**2,XMRO3**2,XMRO1**2) + F4 = (-1.0*UROJ)* + $CMPLX(COEF(4,MNUM))*FORM4(MNUM,XMAA**2,XMRO1**2,XMRO2**2,XMRO3**2) + F5 = (-1.0)*UROJ/4.0/PI**2/FPI**2* + $ CMPLX(COEF(5,MNUM))*FORM5(MNUM,XMAA**2,XMRO1**2,XMRO2**2) + + DO 45 I=1,4 + HADCUR(I)= CMPLX(FNORM(MNUM)) * ( + $ CMPLX(VEC1(I))*F1+CMPLX(VEC2(I))*F2+CMPLX(VEC3(I))*F3+ + $ CMPLX(VEC4(I))*F4+CMPLX(VEC5(I))*F5) + 45 CONTINUE +C +* CALCULATE PI-VECTORS: VECTOR AND AXIAL + CALL CLVEC(HADCUR,PN,PIVEC) + CALL CLAXI(HADCUR,PN,PIAKS) + CALL CLNUT(HADCUR,BRAKM,HVM) +* SPIN INDEPENDENT PART OF DECAY DIFF-CROSS-SECT. IN TAU REST FRAME + BRAK= (GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4) + & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM + AMPLIT=(GFERMI)**2*BRAK/2. + IF (MNUM.GE.9) THEN + PRINT *, 'MNUM=',MNUM + ZNAK=-1.0 + XM1=0.0 + XM2=0.0 + XM3=0.0 + DO 77 K=1,4 + IF (K.EQ.4) ZNAK=1.0 + XM1=ZNAK*PIM1(K)**2+XM1 + XM2=ZNAK*PIM2(K)**2+XM2 + XM3=ZNAK*PIM3(K)**2+XM3 + 77 PRINT *, 'PIM1=',PIM1(K),'PIM2=',PIM2(K),'PIM3=',PIM3(K) + PRINT *, 'XM1=',SQRT(XM1),'XM2=',SQRT(XM2),'XM3=',SQRT(XM3) + PRINT *, '************************************************' + ENDIF +C POLARIMETER VECTOR IN TAU REST FRAME + DO 90 I=1,3 + HV(I)=-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I))) + & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I) +C HV IS DEFINED FOR TAU- WITH GAMMA=B+HV*POL + HV(I)=-HV(I)/BRAK + 90 CONTINUE + END + SUBROUTINE PROD5(P1,P2,P3,PIA) +C ---------------------------------------------------------------------- +C external product of P1, P2, P3 4-momenta. +C SIGN is chosen +/- for decay of TAU +/- respectively +C called by : DAMPAA, CLNUT +C ---------------------------------------------------------------------- + COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM + COMMON / IDFC / IDFF + REAL PIA(4),P1(4),P2(4),P3(4) + DET2(I,J)=P1(I)*P2(J)-P2(I)*P1(J) +* ----------------------------------- + IF (KTOM.EQ.1.OR.KTOM.EQ.-1) THEN + SIGN= IDFF/ABS(IDFF) + ELSEIF (KTOM.EQ.2) THEN + SIGN=-IDFF/ABS(IDFF) + ELSE + PRINT *, 'STOP IN PROD5: KTOM=',KTOM + STOP + ENDIF +C +C EPSILON( p1(1), p2(2), p3(3), (4) ) = 1 +C + PIA(1)= -P3(3)*DET2(2,4)+P3(4)*DET2(2,3)+P3(2)*DET2(3,4) + PIA(2)= -P3(4)*DET2(1,3)+P3(3)*DET2(1,4)-P3(1)*DET2(3,4) + PIA(3)= P3(4)*DET2(1,2)-P3(2)*DET2(1,4)+P3(1)*DET2(2,4) + PIA(4)= P3(3)*DET2(1,2)-P3(2)*DET2(1,3)+P3(1)*DET2(2,3) +C ALL FOUR INDICES ARE UP SO PIA(3) AND PIA(4) HAVE SAME SIGN + DO 20 I=1,4 + 20 PIA(I)=PIA(I)*SIGN + END + + SUBROUTINE DEXNEW(MODE,ISGN,POL,PNU,PAA,PNPI,JNPI) +C ---------------------------------------------------------------------- +* THIS SIMULATES TAU DECAY IN TAU REST FRAME +* INTO NU A1, NEXT A1 DECAYS INTO RHO PI AND FINALLY RHO INTO PI PI. +* OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO, +* PAA A1 +* PIM1 PION MINUS (OR PI0) 1 (FOR TAU MINUS) +* PIM2 PION MINUS (OR PI0) 2 +* PIPL PION PLUS (OR PI-) +* (PIPL,PIM1) FORM A RHO +C ---------------------------------------------------------------------- + COMMON / INOUT / INUT,IOUT + REAL POL(4),HV(4),PAA(4),PNU(4),PNPI(4,9),RN(1) + DATA IWARM/0/ +C + IF(MODE.EQ.-1) THEN +C =================== + IWARM=1 + CALL DADNEW( -1,ISGN,HV,PNU,PAA,PNPI,JDUMM) +CC CALL HBOOK1(816,'WEIGHT DISTRIBUTION DEXAA $',100,-2.,2.) +C + ELSEIF(MODE.EQ. 0) THEN +* ======================= + 300 CONTINUE + IF(IWARM.EQ.0) GOTO 902 + CALL DADNEW( 0,ISGN,HV,PNU,PAA,PNPI,JNPI) + WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. +CC CALL HFILL(816,WT) + CALL RANMAR(RN,1) + IF(RN(1).GT.WT) GOTO 300 +C + ELSEIF(MODE.EQ. 1) THEN +* ======================= + CALL DADNEW( 1,ISGN,HV,PNU,PAA,PNPI,JDUMM) +CC CALL HPRINT(816) + ENDIF +C ===== + RETURN + 902 WRITE(IOUT, 9020) + 9020 FORMAT(' ----- DEXNEW: LACK OF INITIALISATION') + STOP + END + SUBROUTINE DADNEW(MODE,ISGN,HV,PNU,PWB,PNPI,JNPI) +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) + REAL*4 GAMPMC ,GAMPER + COMMON / INOUT / INUT,IOUT + PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) + COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) + & ,NAMES + CHARACTER NAMES(NMODE)*31 + + REAL*4 PNU(4),PWB(4),PNPI(4,9),HV(4),HHV(4) + REAL*4 PDUM1(4),PDUM2(4),PDUMI(4,9) + REAL*4 RRR(3) + REAL*4 WTMAX(NMODE) + REAL*8 SWT(NMODE),SSWT(NMODE) + DIMENSION NEVRAW(NMODE),NEVOVR(NMODE),NEVACC(NMODE) +C + DATA PI /3.141592653589793238462643/ + DATA IWARM/0/ +C + IF(MODE.EQ.-1) THEN +C =================== +C -- AT THE MOMENT ONLY TWO DECAY MODES OF MULTIPIONS HAVE M. ELEM + NMOD=NMODE + IWARM=1 +C PRINT 7003 + DO 1 JNPI=1,NMOD + NEVRAW(JNPI)=0 + NEVACC(JNPI)=0 + NEVOVR(JNPI)=0 + SWT(JNPI)=0 + SSWT(JNPI)=0 + WTMAX(JNPI)=-1. +C for 4pi phase space, need lots more trials at initialization, +C or use the WTMAX determined with many trials for default model: + NTRIALS = 5000 + IF (JNPI.LE.NM4) THEN +C 11.Oct.11: fix for BINP and KARLSRUHE currents added + WTMAX(JNPI) = PKORB(3,37+JNPI) + NTRIALS = 20000 + END IF + DO I=1,NTRIALS + IF (JNPI.LE.0) THEN + GOTO 903 + ELSEIF(JNPI.LE.NM4) THEN + CALL DPH4PI(WT,HV,PDUM1,PDUM2,PDUMI,JNPI) + ELSEIF(JNPI.LE.NM4+NM5) THEN + CALL DPH5PI(WT,HV,PDUM1,PDUM2,PDUMI,JNPI) + ELSEIF(JNPI.LE.NM4+NM5+NM6) THEN + CALL DPHNPI(WT,HV,PDUM1,PDUM2,PDUMI,JNPI) + ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3) THEN + INUM=JNPI-NM4-NM5-NM6 + CALL DPHSPK(WT,HV,PDUM1,PDUM2,PDUMI,INUM) + ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3+NM2) THEN + INUM=JNPI-NM4-NM5-NM6-NM3 + CALL DPHSRK(WT,HV,PDUM1,PDUM2,PDUMI,INUM) + ELSE + GOTO 903 + ENDIF + IF(WT.GT.WTMAX(JNPI)/1.2) WTMAX(JNPI)=WT*1.2 + ENDDO +C PRINT *,' DADNEW JNPI,NTRIALS,WTMAX =',JNPI,NTRIALS,WTMAX(JNPI) +C CALL HBOOK1(801,'WEIGHT DISTRIBUTION DADNPI $',100,0.,2.,.0) +C PRINT 7004,WTMAX(JNPI) +1 CONTINUE + WRITE(IOUT,7005) +C + ELSEIF(MODE.EQ. 0) THEN +C ======================= + IF(IWARM.EQ.0) GOTO 902 +C +300 CONTINUE + IF (JNPI.LE.0) THEN + GOTO 903 + ELSEIF(JNPI.LE.NM4) THEN + CALL DPH4PI(WT,HHV,PNU,PWB,PNPI,JNPI) + ELSEIF(JNPI.LE.NM4+NM5) THEN + CALL DPH5PI(WT,HHV,PNU,PWB,PNPI,JNPI) + ELSEIF(JNPI.LE.NM4+NM5+NM6) THEN + CALL DPHNPI(WT,HHV,PNU,PWB,PNPI,JNPI) + ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3) THEN + INUM=JNPI-NM4-NM5-NM6 + CALL DPHSPK(WT,HHV,PNU,PWB,PNPI,INUM) + ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3+NM2) THEN + INUM=JNPI-NM4-NM5-NM6-NM3 + CALL DPHSRK(WT,HHV,PNU,PWB,PNPI,INUM) + ELSE + GOTO 903 + ENDIF + DO I=1,4 + HV(I)=-ISGN*HHV(I) + ENDDO +C CALL HFILL(801,WT/WTMAX(JNPI)) + NEVRAW(JNPI)=NEVRAW(JNPI)+1 + SWT(JNPI)=SWT(JNPI)+WT +cccM.S.>>>>>> +cc SSWT(JNPI)=SSWT(JNPI)+WT**2 + SSWT(JNPI)=SSWT(JNPI)+dble(WT)**2 +cccM.S.<<<<<< + CALL RANMAR(RRR,3) + RN=RRR(1) + IF(WT.GT.WTMAX(JNPI)) NEVOVR(JNPI)=NEVOVR(JNPI)+1 + IF(RN*WTMAX(JNPI).GT.WT) GOTO 300 +C ROTATIONS TO BASIC TAU REST FRAME + COSTHE=-1.+2.*RRR(2) + THET=ACOS(COSTHE) + PHI =2*PI*RRR(3) + CALL ROTOR2(THET,PNU,PNU) + CALL ROTOR3( PHI,PNU,PNU) + CALL ROTOR2(THET,PWB,PWB) + CALL ROTOR3( PHI,PWB,PWB) + CALL ROTOR2(THET,HV,HV) + CALL ROTOR3( PHI,HV,HV) + ND=MULPIK(JNPI) + DO 301 I=1,ND + CALL ROTOR2(THET,PNPI(1,I),PNPI(1,I)) + CALL ROTOR3( PHI,PNPI(1,I),PNPI(1,I)) +301 CONTINUE + NEVACC(JNPI)=NEVACC(JNPI)+1 +C + ELSEIF(MODE.EQ. 1) THEN +C ======================= + DO 500 JNPI=1,NMOD + IF(NEVRAW(JNPI).EQ.0) GOTO 500 + PARGAM=SWT(JNPI)/FLOAT(NEVRAW(JNPI)+1) + ERROR=0 + IF(NEVRAW(JNPI).NE.0) + & ERROR=SQRT(SSWT(JNPI)/SWT(JNPI)**2-1./FLOAT(NEVRAW(JNPI))) + RAT=PARGAM/GAMEL + WRITE(IOUT, 7010) NAMES(JNPI), + & NEVRAW(JNPI),NEVACC(JNPI),NEVOVR(JNPI),PARGAM,RAT,ERROR +CC CALL HPRINT(801) + GAMPMC(8+JNPI-1)=RAT + GAMPER(8+JNPI-1)=ERROR +CAM NEVDEC(8+JNPI-1)=NEVACC(JNPI) + 500 CONTINUE + ENDIF +C ===== + RETURN + 7003 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'******** DADNEW INITIALISATION ********',9X,1H* + $ ) + 7004 FORMAT(' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H*/) + 7005 FORMAT( + $ /,1X,15(5H*****)/) + 7010 FORMAT(///1X,15(5H*****) + $ /,' *', 25X,'******** DADNEW FINAL REPORT ******** ',9X,1H* + $ /,' *', 25X,'CHANNEL:',A31 ,9X,1H* + $ /,' *',I20 ,5X,'NEVRAW = NO. OF DECAYS TOTAL ',9X,1H* + $ /,' *',I20 ,5X,'NEVACC = NO. OF DECAYS ACCEPTED ',9X,1H* + $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H* + $ /,' *',E20.5,5X,'PARTIAL WTDTH IN GEV UNITS ',9X,1H* + $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* + $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H* + $ /,1X,15(5H*****)/) + 902 WRITE(IOUT, 9020) + 9020 FORMAT(' ----- DADNEW: LACK OF INITIALISATION') + STOP + 903 WRITE(IOUT, 9030) JNPI,MODE + 9030 FORMAT(' ----- DADNEW: WRONG JNPI',2I5) + STOP + END + + + SUBROUTINE DPH4PI(DGAMT,HV,PN,PAA,PMULT,JNPI) +C ---------------------------------------------------------------------- +* IT SIMULATES A1 DECAY IN TAU REST FRAME WITH +* Z-AXIS ALONG A1 MOMENTUM +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL HV(4),PT(4),PN(4),PAA(4),PIM1(4),PIM2(4),PIPL(4),PMULT(4,9) + REAL PR(4),PIZ(4) + REAL*4 RRR(9) + REAL*8 UU,FF,FF1,FF2,FF3,FF4,GG1,GG2,GG3,GG4,RR + DATA PI /3.141592653589793238462643/ + DATA ICONT /0/ + XLAM(X,Y,Z)=SQRT(ABS((X-Y-Z)**2-4.0*Y*Z)) +C AMRO, GAMRO IS ONLY A PARAMETER FOR GETING HIGHT EFFICIENCY +C +C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL +C D**3 P /2E/(2PI)**3 (2PI)**4 DELTA4(SUM P) + PHSPAC=1./2**23/PI**11 + PHSP=1./2**5/PI**2 + IF (JNPI.EQ.1) THEN + PREZ=0.7 + AMP1=AMPI + AMP2=AMPI + AMP3=AMPI + AMP4=AMPIZ + AMRX=PKORB(1,14) + GAMRX=PKORB(2,14) +C AJW: cant simply change AMROP, etc, here! +C CHOICE is a by-hand tuning/optimization, no simple relationship +C to actual resonance masses (accd to Z.Was). +C What matters in the end is what you put in formf/curr . + AMROP =1.2 + GAMROP=.46 + ELSE + PREZ=0.0 + AMP1=AMPIZ + AMP2=AMPIZ + AMP3=AMPIZ + AMP4=AMPI + AMRX=1.4 + GAMRX=.6 + AMROP =AMRX + GAMROP=GAMRX + + ENDIF + RRB=0.3 + CALL CHOICE(100+JNPI,RRB,ICHAN,PROB1,PROB2,PROB3, + $ AMROP,GAMROP,AMRX,GAMRX,AMRB,GAMRB) + PREZ=PROB1+PROB2 +C TAU MOMENTUM + PT(1)=0. + PT(2)=0. + PT(3)=0. + PT(4)=AMTAU +C + CALL RANMAR(RRR,9) +C +* MASSES OF 4, 3 AND 2 PI SYSTEMS +C 3 PI WITH SAMPLING FOR RESONANCE +CAM + RR1=RRR(6) + AMS1=(AMP1+AMP2+AMP3+AMP4)**2 + AMS2=(AMTAU-AMNUTA)**2 + ALP1=ATAN((AMS1-AMROP**2)/AMROP/GAMROP) + ALP2=ATAN((AMS2-AMROP**2)/AMROP/GAMROP) + ALP=ALP1+RR1*(ALP2-ALP1) + AM4SQ =AMROP**2+AMROP*GAMROP*TAN(ALP) + AM4 =SQRT(AM4SQ) + PHSPAC=PHSPAC* + $ ((AM4SQ-AMROP**2)**2+(AMROP*GAMROP)**2)/(AMROP*GAMROP) + PHSPAC=PHSPAC*(ALP2-ALP1) + +C + RR1=RRR(1) + AMS1=(AMP2+AMP3+AMP4)**2 + AMS2=(AM4-AMP1)**2 + IF (RRR(9).GT.PREZ) THEN + AM3SQ=AMS1+ RR1*(AMS2-AMS1) + AM3 =SQRT(AM3SQ) +C --- this part of jacobian will be recovered later + FF1=AMS2-AMS1 + ELSE +* PHASE SPACE WITH SAMPLING FOR OMEGA RESONANCE, + ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX) + ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX) + ALP=ALP1+RR1*(ALP2-ALP1) + AM3SQ =AMRX**2+AMRX*GAMRX*TAN(ALP) + AM3 =SQRT(AM3SQ) +C --- THIS PART OF THE JACOBIAN WILL BE RECOVERED LATER --------------- + FF1=((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX) + FF1=FF1*(ALP2-ALP1) + ENDIF +C MASS OF 2 + RR2=RRR(2) + AMS1=(AMP3+AMP4)**2 + AMS2=(AM3-AMP2)**2 +* FLAT PHASE SPACE; + AM2SQ=AMS1+ RR2*(AMS2-AMS1) + AM2 =SQRT(AM2SQ) +C --- this part of jacobian will be recovered later + FF2=(AMS2-AMS1) +* 2 RESTFRAME, DEFINE PIZ AND PIPL + ENQ1=(AM2SQ-AMP3**2+AMP4**2)/(2*AM2) + ENQ2=(AM2SQ+AMP3**2-AMP4**2)/(2*AM2) + PPI= ENQ1**2-AMP4**2 + PPPI=SQRT(ABS(ENQ1**2-AMP4**2)) + PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AM2) +* PIZ MOMENTUM IN 2 REST FRAME + CALL SPHERA(PPPI,PIZ) + PIZ(4)=ENQ1 +* PIPL MOMENTUM IN 2 REST FRAME + DO 30 I=1,3 + 30 PIPL(I)=-PIZ(I) + PIPL(4)=ENQ2 +* 3 REST FRAME, DEFINE PIM1 +* PR MOMENTUM + PR(1)=0 + PR(2)=0 + PR(4)=1./(2*AM3)*(AM3**2+AM2**2-AMP2**2) + PR(3)= SQRT(ABS(PR(4)**2-AM2**2)) + PPI = PR(4)**2-AM2**2 +* PIM1 MOMENTUM + PIM1(1)=0 + PIM1(2)=0 + PIM1(4)=1./(2*AM3)*(AM3**2-AM2**2+AMP2**2) + PIM1(3)=-PR(3) +C --- this part of jacobian will be recovered later + FF3=(4*PI)*(2*PR(3)/AM3) +* OLD PIONS BOOSTED FROM 2 REST FRAME TO 3 REST FRAME + EXE=(PR(4)+PR(3))/AM2 + CALL BOSTR3(EXE,PIZ,PIZ) + CALL BOSTR3(EXE,PIPL,PIPL) + RR3=RRR(3) + RR4=RRR(4) + THET =ACOS(-1.+2*RR3) + PHI = 2*PI*RR4 + CALL ROTPOL(THET,PHI,PIPL) + CALL ROTPOL(THET,PHI,PIM1) + CALL ROTPOL(THET,PHI,PIZ) + CALL ROTPOL(THET,PHI,PR) +* 4 REST FRAME, DEFINE PIM2 +* PR MOMENTUM + PR(1)=0 + PR(2)=0 + PR(4)=1./(2*AM4)*(AM4**2+AM3**2-AMP1**2) + PR(3)= SQRT(ABS(PR(4)**2-AM3**2)) + PPI = PR(4)**2-AM3**2 +* PIM2 MOMENTUM + PIM2(1)=0 + PIM2(2)=0 + PIM2(4)=1./(2*AM4)*(AM4**2-AM3**2+AMP1**2) + PIM2(3)=-PR(3) +C --- this part of jacobian will be recovered later + FF4=(4*PI)*(2*PR(3)/AM4) +* OLD PIONS BOOSTED FROM 3 REST FRAME TO 4 REST FRAME + EXE=(PR(4)+PR(3))/AM3 + CALL BOSTR3(EXE,PIZ,PIZ) + CALL BOSTR3(EXE,PIPL,PIPL) + CALL BOSTR3(EXE,PIM1,PIM1) + RR3=RRR(7) + RR4=RRR(8) + THET =ACOS(-1.+2*RR3) + PHI = 2*PI*RR4 + CALL ROTPOL(THET,PHI,PIPL) + CALL ROTPOL(THET,PHI,PIM1) + CALL ROTPOL(THET,PHI,PIM2) + CALL ROTPOL(THET,PHI,PIZ) + CALL ROTPOL(THET,PHI,PR) +C +* NOW TO THE TAU REST FRAME, DEFINE PAA AND NEUTRINO MOMENTA +* PAA MOMENTUM + PAA(1)=0 + PAA(2)=0 + PAA(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AM4**2) + PAA(3)= SQRT(ABS(PAA(4)**2-AM4**2)) + PPI = PAA(4)**2-AM4**2 + PHSPAC=PHSPAC*(4*PI)*(2*PAA(3)/AMTAU) + PHSP=PHSP*(4*PI)*(2*PAA(3)/AMTAU) +* TAU-NEUTRINO MOMENTUM + PN(1)=0 + PN(2)=0 + PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AM4**2) + PN(3)=-PAA(3) +C ZBW 20.12.2002 bug fix + IF(RRR(9).LE.0.5*PREZ) THEN + DO 72 I=1,4 + X=PIM1(I) + PIM1(I)=PIM2(I) + 72 PIM2(I)=X + ENDIF +C end of bug fix +C WE INCLUDE REMAINING PART OF THE JACOBIAN +C --- FLAT CHANNEL + AM3SQ=(PIM1(4)+PIZ(4)+PIPL(4))**2-(PIM1(3)+PIZ(3)+PIPL(3))**2 + $ -(PIM1(2)+PIZ(2)+PIPL(2))**2-(PIM1(1)+PIZ(1)+PIPL(1))**2 + AMS2=(AM4-AMP2)**2 + AMS1=(AMP1+AMP3+AMP4)**2 + FF1=(AMS2-AMS1) + AMS1=(AMP3+AMP4)**2 + AMS2=(SQRT(AM3SQ)-AMP1)**2 + FF2=AMS2-AMS1 + FF3=(4*PI)*(XLAM(AM2**2,AMP1**2,AM3SQ)/AM3SQ) + FF4=(4*PI)*(XLAM(AM3SQ,AMP2**2,AM4**2)/AM4**2) + UU=FF1*FF2*FF3*FF4 +C --- FIRST CHANNEL + AM3SQ=(PIM1(4)+PIZ(4)+PIPL(4))**2-(PIM1(3)+PIZ(3)+PIPL(3))**2 + $ -(PIM1(2)+PIZ(2)+PIPL(2))**2-(PIM1(1)+PIZ(1)+PIPL(1))**2 + AMS2=(AM4-AMP2)**2 + AMS1=(AMP1+AMP3+AMP4)**2 + ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX) + ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX) + FF1=((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX) + FF1=FF1*(ALP2-ALP1) + AMS1=(AMP3+AMP4)**2 + AMS2=(SQRT(AM3SQ)-AMP1)**2 + FF2=AMS2-AMS1 + FF3=(4*PI)*(XLAM(AM2**2,AMP1**2,AM3SQ)/AM3SQ) + FF4=(4*PI)*(XLAM(AM3SQ,AMP2**2,AM4**2)/AM4**2) + FF=FF1*FF2*FF3*FF4 +C --- SECOND CHANNEL + AM3SQ=(PIM2(4)+PIZ(4)+PIPL(4))**2-(PIM2(3)+PIZ(3)+PIPL(3))**2 + $ -(PIM2(2)+PIZ(2)+PIPL(2))**2-(PIM2(1)+PIZ(1)+PIPL(1))**2 + AMS2=(AM4-AMP1)**2 + AMS1=(AMP2+AMP3+AMP4)**2 + ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX) + ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX) + GG1=((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX) + GG1=GG1*(ALP2-ALP1) + AMS1=(AMP3+AMP4)**2 + AMS2=(SQRT(AM3SQ)-AMP2)**2 + GG2=AMS2-AMS1 + GG3=(4*PI)*(XLAM(AM2**2,AMP2**2,AM3SQ)/AM3SQ) + GG4=(4*PI)*(XLAM(AM3SQ,AMP1**2,AM4**2)/AM4**2) + GG=GG1*GG2*GG3*GG4 +C --- JACOBIAN AVERAGED OVER THE TWO + ! 05.10.2011 missing factor in IF( (0.5*PREZ* ... (1-PREZ)* ...) added + IF ( (0.5*PREZ*(FF+GG)*UU+(1.0-PREZ)*FF*GG).GT.0.0D0) THEN + RR=FF*GG*UU/(0.5*PREZ*(FF+GG)*UU+(1.0-PREZ)*FF*GG) + PHSPAC=PHSPAC*RR + ELSE + PHSPAC=0.0 + ENDIF +* MOMENTA OF THE TWO PI-MINUS ARE RANDOMLY SYMMETRISED + IF (JNPI.EQ.1) THEN + RR5= RRR(5) + IF(RR5.LE.0.5) THEN + DO 70 I=1,4 + X=PIM1(I) + PIM1(I)=PIM2(I) + 70 PIM2(I)=X + ENDIF + PHSPAC=PHSPAC/2. + ELSE +C MOMENTA OF PI0-S ARE GENERATED UNIFORMLY ONLY IF PREZ=0.0 + RR5= RRR(5) + IF(RR5.LE.0.5) THEN + DO 71 I=1,4 + X=PIM1(I) + PIM1(I)=PIM2(I) + 71 PIM2(I)=X + ENDIF + PHSPAC=PHSPAC/6. + ENDIF +* ALL PIONS BOOSTED FROM 4 REST FRAME TO TAU REST FRAME +* Z-AXIS ANTIPARALLEL TO NEUTRINO MOMENTUM + EXE=(PAA(4)+PAA(3))/AM4 + CALL BOSTR3(EXE,PIZ,PIZ) + CALL BOSTR3(EXE,PIPL,PIPL) + CALL BOSTR3(EXE,PIM1,PIM1) + CALL BOSTR3(EXE,PIM2,PIM2) + CALL BOSTR3(EXE,PR,PR) +C PARTIAL WIDTH CONSISTS OF PHASE SPACE AND AMPLITUDE +C CHECK ON CONSISTENCY WITH DADNPI, THEN, CODE BREAKES UNIFORM PION +C DISTRIBUTION IN HADRONIC SYSTEM +CAM Assume neutrino mass=0. and sum over final polarisation +C AMX2=AM4**2 +C BRAK= 2*(AMTAU**2-AMX2) * (AMTAU**2+2.*AMX2) +C AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK * AMX2*SIGEE(AMX2,1) + IF (JNPI.EQ.1) THEN + CALL DAM4PI(JNPI,PT,PN,PIM1,PIM2,PIZ,PIPL,AMPLIT,HV) + ELSEIF (JNPI.EQ.2) THEN + CALL DAM4PI(JNPI,PT,PN,PIM1,PIM2,PIPL,PIZ,AMPLIT,HV) + ENDIF + DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC +C PHASE SPACE CHECK +C DGAMT=PHSPAC + DO 77 K=1,4 + PMULT(K,1)=PIM1(K) + PMULT(K,2)=PIM2(K) + PMULT(K,3)=PIPL(K) + PMULT(K,4)=PIZ (K) + 77 CONTINUE + END + SUBROUTINE DAM4PI(MNUM,PT,PN,PIM1,PIM2,PIM3,PIM4,AMPLIT,HV) +C ---------------------------------------------------------------------- +* CALCULATES DIFFERENTIAL CROSS SECTION AND POLARIMETER VECTOR +* FOR TAU DECAY INTO 4 PI MODES +* ALL SPIN EFFECTS IN THE FULL DECAY CHAIN ARE TAKEN INTO ACCOUNT. +* CALCULATIONS DONE IN TAU REST FRAME WITH Z-AXIS ALONG NEUTRINO MOMENT +C MNUM DECAY MODE IDENTIFIER. +C +C called by : DPHSAA +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIM3(4),PIM4(4) + REAL PIVEC(4),PIAKS(4),HVM(4) + COMPLEX HADCUR(4),FORM1,FORM2,FORM3,FORM4,FORM5 + EXTERNAL FORM1,FORM2,FORM3,FORM4,FORM5 + DATA PI /3.141592653589793238462643/ + DATA ICONT /0/ +C + CALL CURR_CLEO(MNUM,PIM1,PIM2,PIM3,PIM4,HADCUR) +C +* CALCULATE PI-VECTORS: VECTOR AND AXIAL + CALL CLVEC(HADCUR,PN,PIVEC) + CALL CLAXI(HADCUR,PN,PIAKS) + CALL CLNUT(HADCUR,BRAKM,HVM) +* SPIN INDEPENDENT PART OF DECAY DIFF-CROSS-SECT. IN TAU REST FRAME + BRAK= (GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4) + & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM + AMPLIT=(CCABIB*GFERMI)**2*BRAK/2. +C POLARIMETER VECTOR IN TAU REST FRAME + DO 90 I=1,3 + HV(I)=-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I))) + & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I) +C HV IS DEFINED FOR TAU- WITH GAMMA=B+HV*POL + HV(I)=-HV(I)/BRAK + 90 CONTINUE + END + SUBROUTINE DPH5PI(DGAMT,HV,PN,PAA,PMULT,JNPI) +C ---------------------------------------------------------------------- +* IT SIMULATES 5pi DECAY IN TAU REST FRAME WITH +* Z-AXIS ALONG 5pi MOMENTUM +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + + + * ,AMK,AMKZ,AMKST,GAMKST + COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + REAL*4 GFERMI,GV,GA,CCABIB,SCABIB,GAMEL + PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) + COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) + & ,NAMES + CHARACTER NAMES(NMODE)*31 + REAL HV(4),PT(4),PN(4),PAA(4),PMULT(4,9) + REAL*4 PR(4),PI1(4),PI2(4),PI3(4),PI4(4),PI5(4) + REAL*8 AMP1,AMP2,AMP3,AMP4,AMP5,ams1,ams2,amom,gamom + REAL*8 AM5SQ,AM4SQ,AM3SQ,AM2SQ,AM5,AM4,AM3 + REAL*4 RRR(10) + REAL*8 gg1,gg2,gg3,ff1,ff2,ff3,ff4,alp,alp1,alp2 + REAL*8 XM,AM,GAMMA +ccM.S.>>>>>> + real*8 phspac +ccM.S.<<<<<< + DATA PI /3.141592653589793238462643/ + DATA ICONT /0/ + data fpi /93.3e-3/ +c + COMPLEX BWIGN +C + BWIGN(XM,AM,GAMMA)=XM**2/CMPLX(XM**2-AM**2,GAMMA*AM) + +C + AMOM=.782 + GAMOM=0.0085 +c +C 6 BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL +C D**3 P /2E/(2PI)**3 (2PI)**4 DELTA4(SUM P) + PHSPAC=1./2**29/PI**14 +c PHSPAC=1./2**5/PI**2 +C init 5pi decay mode (JNPI) + AMP1=DCDMAS(IDFFIN(1,JNPI)) + AMP2=DCDMAS(IDFFIN(2,JNPI)) + AMP3=DCDMAS(IDFFIN(3,JNPI)) + AMP4=DCDMAS(IDFFIN(4,JNPI)) + AMP5=DCDMAS(IDFFIN(5,JNPI)) +c +C TAU MOMENTUM + PT(1)=0. + PT(2)=0. + PT(3)=0. + PT(4)=AMTAU +C + CALL RANMAR(RRR,10) +C +c masses of 5, 4, 3 and 2 pi systems +c 3 pi with sampling for omega resonance +cam +c mass of 5 (12345) + rr1=rrr(10) + ams1=(amp1+amp2+amp3+amp4+amp5)**2 + ams2=(amtau-amnuta)**2 + am5sq=ams1+ rr1*(ams2-ams1) + am5 =sqrt(am5sq) + phspac=phspac*(ams2-ams1) +c +c mass of 4 (2345) +c flat phase space + rr1=rrr(9) + ams1=(amp2+amp3+amp4+amp5)**2 + ams2=(am5-amp1)**2 + am4sq=ams1+ rr1*(ams2-ams1) + am4 =sqrt(am4sq) + gg1=ams2-ams1 +c +c mass of 3 (234) +C phase space with sampling for omega resonance + rr1=rrr(1) + ams1=(amp2+amp3+amp4)**2 + ams2=(am4-amp5)**2 + alp1=atan((ams1-amom**2)/amom/gamom) + alp2=atan((ams2-amom**2)/amom/gamom) + alp=alp1+rr1*(alp2-alp1) + am3sq =amom**2+amom*gamom*tan(alp) + am3 =sqrt(am3sq) +c --- this part of the jacobian will be recovered later --------------- + gg2=((am3sq-amom**2)**2+(amom*gamom)**2)/(amom*gamom) + gg2=gg2*(alp2-alp1) +c flat phase space; +C am3sq=ams1+ rr1*(ams2-ams1) +C am3 =sqrt(am3sq) +c --- this part of jacobian will be recovered later +C gg2=ams2-ams1 +c +C mass of 2 (34) + rr2=rrr(2) + ams1=(amp3+amp4)**2 + ams2=(am3-amp2)**2 +c flat phase space; + am2sq=ams1+ rr2*(ams2-ams1) + am2 =sqrt(am2sq) +c --- this part of jacobian will be recovered later + gg3=ams2-ams1 +c +c (34) restframe, define pi3 and pi4 + enq1=(am2sq+amp3**2-amp4**2)/(2*am2) + enq2=(am2sq-amp3**2+amp4**2)/(2*am2) + ppi= enq1**2-amp3**2 + pppi=sqrt(abs(enq1**2-amp3**2)) + ff1=(4*pi)*(2*pppi/am2) +c pi3 momentum in (34) rest frame + call sphera(pppi,pi3) + pi3(4)=enq1 +c pi4 momentum in (34) rest frame + do 30 i=1,3 + 30 pi4(i)=-pi3(i) + pi4(4)=enq2 +c +c (234) rest frame, define pi2 +c pr momentum + pr(1)=0 + pr(2)=0 + pr(4)=1./(2*am3)*(am3**2+am2**2-amp2**2) + pr(3)= sqrt(abs(pr(4)**2-am2**2)) + ppi = pr(4)**2-am2**2 +c pi2 momentum + pi2(1)=0 + pi2(2)=0 + pi2(4)=1./(2*am3)*(am3**2-am2**2+amp2**2) + pi2(3)=-pr(3) +c --- this part of jacobian will be recovered later + ff2=(4*pi)*(2*pr(3)/am3) +c old pions boosted from 2 rest frame to 3 rest frame + exe=(pr(4)+pr(3))/am2 + call bostr3(exe,pi3,pi3) + call bostr3(exe,pi4,pi4) + rr3=rrr(3) + rr4=rrr(4) + thet =acos(-1.+2*rr3) + phi = 2*pi*rr4 + call rotpol(thet,phi,pi2) + call rotpol(thet,phi,pi3) + call rotpol(thet,phi,pi4) +C +C (2345) rest frame, define pi5 +c pr momentum + pr(1)=0 + pr(2)=0 + pr(4)=1./(2*am4)*(am4**2+am3**2-amp5**2) + pr(3)= sqrt(abs(pr(4)**2-am3**2)) + ppi = pr(4)**2-am3**2 +c pi5 momentum + pi5(1)=0 + pi5(2)=0 + pi5(4)=1./(2*am4)*(am4**2-am3**2+amp5**2) + pi5(3)=-pr(3) +c --- this part of jacobian will be recovered later + ff3=(4*pi)*(2*pr(3)/am4) +c old pions boosted from 3 rest frame to 4 rest frame + exe=(pr(4)+pr(3))/am3 + call bostr3(exe,pi2,pi2) + call bostr3(exe,pi3,pi3) + call bostr3(exe,pi4,pi4) + rr3=rrr(5) + rr4=rrr(6) + thet =acos(-1.+2*rr3) + phi = 2*pi*rr4 + call rotpol(thet,phi,pi2) + call rotpol(thet,phi,pi3) + call rotpol(thet,phi,pi4) + call rotpol(thet,phi,pi5) +C +C (12345) rest frame, define pi1 +c pr momentum + pr(1)=0 + pr(2)=0 + pr(4)=1./(2*am5)*(am5**2+am4**2-amp1**2) + pr(3)= sqrt(abs(pr(4)**2-am4**2)) + ppi = pr(4)**2-am4**2 +c pi1 momentum + pi1(1)=0 + pi1(2)=0 + pi1(4)=1./(2*am5)*(am5**2-am4**2+amp1**2) + pi1(3)=-pr(3) +c --- this part of jacobian will be recovered later + ff4=(4*pi)*(2*pr(3)/am5) +c old pions boosted from 4 rest frame to 5 rest frame + exe=(pr(4)+pr(3))/am4 + call bostr3(exe,pi2,pi2) + call bostr3(exe,pi3,pi3) + call bostr3(exe,pi4,pi4) + call bostr3(exe,pi5,pi5) + rr3=rrr(7) + rr4=rrr(8) + thet =acos(-1.+2*rr3) + phi = 2*pi*rr4 + call rotpol(thet,phi,pi1) + call rotpol(thet,phi,pi2) + call rotpol(thet,phi,pi3) + call rotpol(thet,phi,pi4) + call rotpol(thet,phi,pi5) +c +* now to the tau rest frame, define paa and neutrino momenta +* paa momentum + paa(1)=0 + paa(2)=0 +c paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am5**2) +c paa(3)= sqrt(abs(paa(4)**2-am5**2)) +c ppi = paa(4)**2-am5**2 + paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am5sq) + paa(3)= sqrt(abs(paa(4)**2-am5sq)) + ppi = paa(4)**2-am5sq + phspac=phspac*(4*pi)*(2*paa(3)/amtau) +* tau-neutrino momentum + pn(1)=0 + pn(2)=0 + pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-am5**2) + pn(3)=-paa(3) +c + phspac=phspac * gg1*gg2*gg3*ff1*ff2*ff3*ff4 +c +C all pions boosted from 5 rest frame to tau rest frame +C z-axis antiparallel to neutrino momentum + exe=(paa(4)+paa(3))/am5 + call bostr3(exe,pi1,pi1) + call bostr3(exe,pi2,pi2) + call bostr3(exe,pi3,pi3) + call bostr3(exe,pi4,pi4) + call bostr3(exe,pi5,pi5) +c +C partial width consists of phase space and amplitude +C AMPLITUDE (cf YS.Tsai Phys.Rev.D4,2821(1971) +C or F.Gilman SH.Rhie Phys.Rev.D31,1066(1985) +C + PXQ=AMTAU*PAA(4) + PXN=AMTAU*PN(4) + QXN=PAA(4)*PN(4)-PAA(1)*PN(1)-PAA(2)*PN(2)-PAA(3)*PN(3) + BRAK=2*(GV**2+GA**2)*(2*PXQ*QXN+AM5SQ*PXN) + & -6*(GV**2-GA**2)*AMTAU*AMNUTA*AM5SQ + fompp = cabs(bwign(am3,amom,gamom))**2 +c normalisation factor (to some numerical undimensioned factor; +c cf R.Fischer et al ZPhys C3, 313 (1980)) + fnorm = 1/fpi**6 +c AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK * AM5SQ*SIGEE(AM5SQ,JNPI) + AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK + amplit = amplit * fompp * fnorm +c phase space test +c amplit = amplit * fnorm + DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC +c ignore spin terms + DO 40 I=1,3 + 40 HV(I)=0. +c + do 77 k=1,4 + pmult(k,1)=pi1(k) + pmult(k,2)=pi2(k) + pmult(k,3)=pi3(k) + pmult(k,4)=pi4(k) + pmult(k,5)=pi5(k) + 77 continue + return +C missing: transposition of identical particles, startistical factors +C for identical matrices, polarimetric vector. Matrix element rather naive. +C flat phase space in pion system + with breit wigner for omega +C anyway it is better than nothing, and code is improvable. + end + SUBROUTINE DPHSRK(DGAMT,HV,PN,PR,PMULT,INUM) +C ---------------------------------------------------------------------- +C IT SIMULATES RHO DECAY IN TAU REST FRAME WITH +C Z-AXIS ALONG RHO MOMENTUM +C Rho decays to K Kbar +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + + REAL HV(4),PT(4),PN(4),PR(4),PKC(4),PKZ(4),QQ(4),PMULT(4,9) + REAL RR1(1) + DATA PI /3.141592653589793238462643/ + DATA ICONT /0/ +C +C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL + PHSPAC=1./2**11/PI**5 +C TAU MOMENTUM + PT(1)=0. + PT(2)=0. + PT(3)=0. + PT(4)=AMTAU +C MASS OF (REAL/VIRTUAL) RHO + AMS1=(AMK+AMKZ)**2 + AMS2=(AMTAU-AMNUTA)**2 +C FLAT PHASE SPACE + CALL RANMAR(RR1,1) + AMX2=AMS1+ RR1(1)*(AMS2-AMS1) + AMX=SQRT(AMX2) + PHSPAC=PHSPAC*(AMS2-AMS1) +C PHASE SPACE WITH SAMPLING FOR RHO RESONANCE +c ALP1=ATAN((AMS1-AMRO**2)/AMRO/GAMRO) +c ALP2=ATAN((AMS2-AMRO**2)/AMRO/GAMRO) +CAM + 100 CONTINUE +c CALL RANMAR(RR1,1) +c ALP=ALP1+RR1(1)*(ALP2-ALP1) +c AMX2=AMRO**2+AMRO*GAMRO*TAN(ALP) +c AMX=SQRT(AMX2) +c IF(AMX.LT.(AMK+AMKZ)) GO TO 100 +CAM +c PHSPAC=PHSPAC*((AMX2-AMRO**2)**2+(AMRO*GAMRO)**2)/(AMRO*GAMRO) +c PHSPAC=PHSPAC*(ALP2-ALP1) +C +C TAU-NEUTRINO MOMENTUM + PN(1)=0 + PN(2)=0 + PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2) + PN(3)=-SQRT(ABS((PN(4)-AMNUTA)*(PN(4)+AMNUTA))) +C RHO MOMENTUM + PR(1)=0 + PR(2)=0 + PR(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2) + PR(3)=-PN(3) + PHSPAC=PHSPAC*(4*PI)*(2*PR(3)/AMTAU) +C +CAM + ENQ1=(AMX2+AMK**2-AMKZ**2)/(2.*AMX) + ENQ2=(AMX2-AMK**2+AMKZ**2)/(2.*AMX) + PPPI=SQRT(abs(ENQ1-AMK)*(ENQ1+AMK)) + PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX) +C CHARGED PI MOMENTUM IN RHO REST FRAME + CALL SPHERA(PPPI,PKC) + PKC(4)=ENQ1 +C NEUTRAL PI MOMENTUM IN RHO REST FRAME + DO 20 I=1,3 +20 PKZ(I)=-PKC(I) + PKZ(4)=ENQ2 + EXE=(PR(4)+PR(3))/AMX +C PIONS BOOSTED FROM RHO REST FRAME TO TAU REST FRAME + CALL BOSTR3(EXE,PKC,PKC) + CALL BOSTR3(EXE,PKZ,PKZ) + + + CALL DAM2PI(3,PT,PN,PKC,PKZ,AMPLIT,HV) + DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC + + do 77 k=1,4 + pmult(k,1)=pkc(k) + pmult(k,2)=pkz(k) + 77 continue + RETURN + END + FUNCTION FPIRK(W) +C ---------------------------------------------------------- +c square of pion form factor +C ---------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +c COMPLEX FPIKMK + COMPLEX FPIKM + FPIRK=CABS(FPIKM(W,AMK,AMKZ))**2 +c FPIRK=CABS(FPIKMK(W,AMK,AMKZ))**2 + END + COMPLEX FUNCTION FPIKMK(W,XM1,XM2) +C ********************************************************** +C Kaon form factor +C ********************************************************** + COMPLEX BWIGM + REAL ROM,ROG,ROM1,ROG1,BETA1,PI,PIM,S,W + EXTERNAL BWIG + DATA INIT /0/ +C +C ------------ PARAMETERS -------------------- + IF (INIT.EQ.0 ) THEN + INIT=1 + PI=3.141592654 + PIM=.140 + ROM=0.773 + ROG=0.145 + ROM1=1.570 + ROG1=0.510 +c BETA1=-0.111 + BETA1=-0.221 + ENDIF +C ----------------------------------------------- + S=W**2 + FPIKMK=(BWIGM(S,ROM,ROG,XM1,XM2)+BETA1*BWIGM(S,ROM1,ROG1,XM1,XM2)) + & /(1+BETA1) + RETURN + END + SUBROUTINE RESLUX +C **************** +C INITIALIZE LUND COMMON + NHEP=0 + END + SUBROUTINE DWRPH(KTO,PHX) +C +C ------------------------- +C + IMPLICIT REAL*8 (A-H,O-Z) + REAL*4 PHX(4) + REAL*4 QHOT(4) +C + DO 9 K=1,4 + QHOT(K) =0.0 + 9 CONTINUE +C CASE OF TAU RADIATIVE DECAYS. +C FILLING OF THE LUND COMMON BLOCK. + DO 1002 I=1,4 + 1002 QHOT(I)=PHX(I) + IF (QHOT(4).GT.1.E-5) CALL DWLUPH(KTO,QHOT) + RETURN + END + SUBROUTINE DWLUPH(KTO,PHOT) +C--------------------------------------------------------------------- +C Lorentz transformation to CMsystem and +C Updating of HEPEVT record +C +C called by : DEXAY1,(DEKAY1,DEKAY2) +C +C used when radiative corrections in decays are generated +C--------------------------------------------------------------------- +C + REAL PHOT(4) + COMMON /TAUPOS/ NP1,NP2 +C +C check energy + IF (PHOT(4).LE.0.0) RETURN +C +C position of decaying particle: + IF((KTO.EQ. 1).OR.(KTO.EQ.11)) THEN + NPS=NP1 + ELSE + NPS=NP2 + ENDIF +C + KTOS=KTO + IF(KTOS.GT.10) KTOS=KTOS-10 +C boost and append photon (gamma is 22) + CALL TRALO4(KTOS,PHOT,PHOT,AM) + CALL FILHEP(0,1,22,NPS,NPS,0,0,PHOT,0.0,.TRUE.) +C + RETURN + END + + SUBROUTINE DWLUEL(KTO,ISGN,PNU,PWB,PEL,PNE) +C ---------------------------------------------------------------------- +C Lorentz transformation to CMsystem and +C Updating of HEPEVT record +C +C ISGN = 1/-1 for tau-/tau+ +C +C called by : DEXAY,(DEKAY1,DEKAY2) +C ---------------------------------------------------------------------- +C + REAL PNU(4),PWB(4),PEL(4),PNE(4) + COMMON /TAUPOS/ NP1,NP2 +C +C position of decaying particle: + IF(KTO.EQ. 1) THEN + NPS=NP1 + ELSE + NPS=NP2 + ENDIF +C +C tau neutrino (nu_tau is 16) + CALL TRALO4(KTO,PNU,PNU,AM) + CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) +C +C W boson (W+ is 24) + CALL TRALO4(KTO,PWB,PWB,AM) +C CALL FILHEP(0,2,-24*ISGN,NPS,NPS,0,0,PWB,AM,.TRUE.) +C +C electron (e- is 11) + CALL TRALO4(KTO,PEL,PEL,AM) + CALL FILHEP(0,1,11*ISGN,NPS,NPS,0,0,PEL,AM,.FALSE.) +C +C anti electron neutrino (nu_e is 12) + CALL TRALO4(KTO,PNE,PNE,AM) + CALL FILHEP(0,1,-12*ISGN,NPS,NPS,0,0,PNE,AM,.TRUE.) +C + RETURN + END + SUBROUTINE DWLUMU(KTO,ISGN,PNU,PWB,PMU,PNM) +C ---------------------------------------------------------------------- +C Lorentz transformation to CMsystem and +C Updating of HEPEVT record +C +C ISGN = 1/-1 for tau-/tau+ +C +C called by : DEXAY,(DEKAY1,DEKAY2) +C ---------------------------------------------------------------------- +C + REAL PNU(4),PWB(4),PMU(4),PNM(4) + COMMON /TAUPOS/ NP1,NP2 +C +C position of decaying particle: + IF(KTO.EQ. 1) THEN + NPS=NP1 + ELSE + NPS=NP2 + ENDIF +C +C tau neutrino (nu_tau is 16) + CALL TRALO4(KTO,PNU,PNU,AM) + CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) +C +C W boson (W+ is 24) + CALL TRALO4(KTO,PWB,PWB,AM) +C CALL FILHEP(0,2,-24*ISGN,NPS,NPS,0,0,PWB,AM,.TRUE.) +C +C muon (mu- is 13) + CALL TRALO4(KTO,PMU,PMU,AM) + CALL FILHEP(0,1,13*ISGN,NPS,NPS,0,0,PMU,AM,.FALSE.) +C +C anti muon neutrino (nu_mu is 14) + CALL TRALO4(KTO,PNM,PNM,AM) + CALL FILHEP(0,1,-14*ISGN,NPS,NPS,0,0,PNM,AM,.TRUE.) +C + RETURN + END + SUBROUTINE DWLUPI(KTO,ISGN,PPI,PNU) +C ---------------------------------------------------------------------- +C Lorentz transformation to CMsystem and +C Updating of HEPEVT record +C +C ISGN = 1/-1 for tau-/tau+ +C +C called by : DEXAY,(DEKAY1,DEKAY2) +C ---------------------------------------------------------------------- +C + REAL PNU(4),PPI(4) + COMMON /TAUPOS/ NP1,NP2 +C +C position of decaying particle: + IF(KTO.EQ. 1) THEN + NPS=NP1 + ELSE + NPS=NP2 + ENDIF +C +C tau neutrino (nu_tau is 16) + CALL TRALO4(KTO,PNU,PNU,AM) + CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) +C +C charged pi meson (pi+ is 211) + CALL TRALO4(KTO,PPI,PPI,AM) + CALL FILHEP(0,1,-211*ISGN,NPS,NPS,0,0,PPI,AM,.TRUE.) +C + RETURN + END + SUBROUTINE DWLURO(KTO,ISGN,PNU,PRHO,PIC,PIZ) +C ---------------------------------------------------------------------- +C Lorentz transformation to CMsystem and +C Updating of HEPEVT record +C +C ISGN = 1/-1 for tau-/tau+ +C +C called by : DEXAY,(DEKAY1,DEKAY2) +C ---------------------------------------------------------------------- +C + REAL PNU(4),PRHO(4),PIC(4),PIZ(4) + COMMON /TAUPOS/ NP1,NP2 +C +C position of decaying particle: + IF(KTO.EQ. 1) THEN + NPS=NP1 + ELSE + NPS=NP2 + ENDIF +C +C tau neutrino (nu_tau is 16) + CALL TRALO4(KTO,PNU,PNU,AM) + CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) +C +C charged rho meson (rho+ is 213) + CALL TRALO4(KTO,PRHO,PRHO,AM) + CALL FILHEP(0,2,-213*ISGN,NPS,NPS,0,0,PRHO,AM,.TRUE.) +C +C charged pi meson (pi+ is 211) + CALL TRALO4(KTO,PIC,PIC,AM) + CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PIC,AM,.TRUE.) +C +C pi0 meson (pi0 is 111) + CALL TRALO4(KTO,PIZ,PIZ,AM) + CALL FILHEP(0,1,111,-2,-2,0,0,PIZ,AM,.TRUE.) +C + RETURN + END + SUBROUTINE DWLUAA(KTO,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA) +C ---------------------------------------------------------------------- +C Lorentz transformation to CMsystem and +C Updating of HEPEVT record +C +C ISGN = 1/-1 for tau-/tau+ +C JAA = 1 (2) FOR A_1- DECAY TO PI+ 2PI- (PI- 2PI0) +C +C called by : DEXAY,(DEKAY1,DEKAY2) +C ---------------------------------------------------------------------- +C + REAL PNU(4),PAA(4),PIM1(4),PIM2(4),PIPL(4) + COMMON /TAUPOS/ NP1,NP2 +C +C position of decaying particle: + IF(KTO.EQ. 1) THEN + NPS=NP1 + ELSE + NPS=NP2 + ENDIF +C +C tau neutrino (nu_tau is 16) + CALL TRALO4(KTO,PNU,PNU,AM) + CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) +C +C charged a_1 meson (a_1+ is 20213) + CALL TRALO4(KTO,PAA,PAA,AM) + CALL FILHEP(0,1,-20213*ISGN,NPS,NPS,0,0,PAA,AM,.TRUE.) +C +C two possible decays of the charged a1 meson + IF(JAA.EQ.1) THEN +C +C A1 --> PI+ PI- PI- (or charged conjugate) +C +C pi minus (or c.c.) (pi+ is 211) + CALL TRALO4(KTO,PIM2,PIM2,AM) + CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PIM2,AM,.TRUE.) +C +C pi minus (or c.c.) (pi+ is 211) + CALL TRALO4(KTO,PIM1,PIM1,AM) + CALL FILHEP(0,1,-211*ISGN,-2,-2,0,0,PIM1,AM,.TRUE.) +C +C pi plus (or c.c.) (pi+ is 211) + CALL TRALO4(KTO,PIPL,PIPL,AM) + CALL FILHEP(0,1, 211*ISGN,-3,-3,0,0,PIPL,AM,.TRUE.) +C + ELSE IF (JAA.EQ.2) THEN +C +C A1 --> PI- PI0 PI0 (or charged conjugate) +C +C pi zero (pi0 is 111) + CALL TRALO4(KTO,PIM2,PIM2,AM) + CALL FILHEP(0,1,111,-1,-1,0,0,PIM2,AM,.TRUE.) +C +C pi zero (pi0 is 111) + CALL TRALO4(KTO,PIM1,PIM1,AM) + CALL FILHEP(0,1,111,-2,-2,0,0,PIM1,AM,.TRUE.) +C +C pi minus (or c.c.) (pi+ is 211) + CALL TRALO4(KTO,PIPL,PIPL,AM) + CALL FILHEP(0,1,-211*ISGN,-3,-3,0,0,PIPL,AM,.TRUE.) +C + ENDIF +C + RETURN + END + SUBROUTINE DWLUKK (KTO,ISGN,PKK,PNU) +C ---------------------------------------------------------------------- +C Lorentz transformation to CMsystem and +C Updating of HEPEVT record +C +C ISGN = 1/-1 for tau-/tau+ +C +C ---------------------------------------------------------------------- +C + REAL PKK(4),PNU(4) + COMMON /TAUPOS/ NP1,NP2 +C +C position of decaying particle + IF (KTO.EQ.1) THEN + NPS=NP1 + ELSE + NPS=NP2 + ENDIF +C +C tau neutrino (nu_tau is 16) + CALL TRALO4 (KTO,PNU,PNU,AM) + CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) +C +C K meson (K+ is 321) + CALL TRALO4 (KTO,PKK,PKK,AM) + CALL FILHEP(0,1,-321*ISGN,NPS,NPS,0,0,PKK,AM,.TRUE.) +C + RETURN + END + SUBROUTINE DWLUKS(KTO,ISGN,PNU,PKS,PKK,PPI,JKST) + COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS + REAL*4 BRA1,BRK0,BRK0B,BRKS +C ---------------------------------------------------------------------- +C Lorentz transformation to CMsystem and +C Updating of HEPEVT record +C +C ISGN = 1/-1 for tau-/tau+ +C JKST=10 (20) corresponds to K0B pi- (K- pi0) decay +C +C ---------------------------------------------------------------------- +C + REAL PNU(4),PKS(4),PKK(4),PPI(4),XIO(1) + COMMON /TAUPOS/ NP1,NP2 +C +C position of decaying particle + IF(KTO.EQ. 1) THEN + NPS=NP1 + ELSE + NPS=NP2 + ENDIF +C +C tau neutrino (nu_tau is 16) + CALL TRALO4(KTO,PNU,PNU,AM) + CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) +C +C charged K* meson (K*+ is 323) + CALL TRALO4(KTO,PKS,PKS,AM) + CALL FILHEP(0,1,-323*ISGN,NPS,NPS,0,0,PKS,AM,.TRUE.) +C +C two possible decay modes of charged K* + IF(JKST.EQ.10) THEN +C +C K*- --> pi- K0B (or charged conjugate) +C +C charged pi meson (pi+ is 211) + CALL TRALO4(KTO,PPI,PPI,AM) + CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PPI,AM,.TRUE.) +C + BRAN=BRK0B + IF (ISGN.EQ.-1) BRAN=BRK0 +C K0 --> K0_long (is 130) / K0_short (is 310) = 1/1 + CALL RANMAR(XIO,1) + IF(XIO(1).GT.BRAN) THEN + K0TYPE = 130 + ELSE + K0TYPE = 310 + ENDIF +C + CALL TRALO4(KTO,PKK,PKK,AM) + CALL FILHEP(0,1,K0TYPE,-2,-2,0,0,PKK,AM,.TRUE.) +C + ELSE IF(JKST.EQ.20) THEN +C +C K*- --> pi0 K- +C +C pi zero (pi0 is 111) + CALL TRALO4(KTO,PPI,PPI,AM) + CALL FILHEP(0,1,111,-1,-1,0,0,PPI,AM,.TRUE.) +C +C charged K meson (K+ is 321) + CALL TRALO4(KTO,PKK,PKK,AM) + CALL FILHEP(0,1,-321*ISGN,-2,-2,0,0,PKK,AM,.TRUE.) +C + ENDIF +C + RETURN + END + SUBROUTINE DWLNEW(KTO,ISGN,PNU,PWB,PNPI,MODE) +C ---------------------------------------------------------------------- +C Lorentz transformation to CMsystem and +C Updating of HEPEVT record +C +C ISGN = 1/-1 for tau-/tau+ +C +C called by : DEXAY,(DEKAY1,DEKAY2) +C ---------------------------------------------------------------------- +C + PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) + COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) + & ,NAMES + COMMON /TAUPOS/ NP1,NP2 + CHARACTER NAMES(NMODE)*31 + REAL PNU(4),PWB(4),PNPI(4,9) + REAL PPI(4) +C + JNPI=MODE-7 +C position of decaying particle + IF(KTO.EQ. 1) THEN + NPS=NP1 + ELSE + NPS=NP2 + ENDIF +C +C tau neutrino (nu_tau is 16) + CALL TRALO4(KTO,PNU,PNU,AM) + CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) +C +C W boson (W+ is 24) + CALL TRALO4(KTO,PWB,PWB,AM) + CALL FILHEP(0,1,-24*ISGN,NPS,NPS,0,0,PWB,AM,.TRUE.) +C +C multi pi mode JNPI +C +C get multiplicity of mode JNPI + ND=MULPIK(JNPI) + DO I=1,ND + KFPI=LUNPIK(IDFFIN(I,JNPI),-ISGN) +C for charged conjugate case, change charged pions only +C IF(KFPI.NE.111)KFPI=KFPI*ISGN + DO J=1,4 + PPI(J)=PNPI(J,I) + END DO + CALL TRALO4(KTO,PPI,PPI,AM) + CALL FILHEP(0,1,KFPI,-I,-I,0,0,PPI,AM,.TRUE.) + END DO +C + RETURN + END + FUNCTION AMAST(PP) +C ---------------------------------------------------------------------- +C CALCULATES MASS OF PP (DOUBLE PRECISION) +C +C USED BY : RADKOR +C ---------------------------------------------------------------------- + IMPLICIT REAL*8 (A-H,O-Z) + REAL*8 PP(4) + AAA=PP(4)**2-PP(3)**2-PP(2)**2-PP(1)**2 +C + IF(AAA.NE.0.0) AAA=AAA/SQRT(ABS(AAA)) + AMAST=AAA + RETURN + END + FUNCTION AMAS4(PP) +C ****************** +C ---------------------------------------------------------------------- +C CALCULATES MASS OF PP +C +C USED BY : +C ---------------------------------------------------------------------- + REAL PP(4) + AAA=PP(4)**2-PP(3)**2-PP(2)**2-PP(1)**2 + IF(AAA.NE.0.0) AAA=AAA/SQRT(ABS(AAA)) + AMAS4=AAA + RETURN + END + FUNCTION ANGXY(X,Y) +C ---------------------------------------------------------------------- +C +C USED BY : KORALZ RADKOR +C ---------------------------------------------------------------------- + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + DATA PI /3.141592653589793238462643D0/ +C + IF(ABS(Y).LT.ABS(X)) THEN + THE=ATAN(ABS(Y/X)) + IF(X.LE.0D0) THE=PI-THE + ELSE + THE=ACOS(X/SQRT(X**2+Y**2)) + ENDIF + ANGXY=THE + RETURN + END + FUNCTION ANGFI(X,Y) +C ---------------------------------------------------------------------- +* CALCULATES ANGLE IN (0,2*PI) RANGE OUT OF X-Y +C +C USED BY : KORALZ RADKOR +C ---------------------------------------------------------------------- + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + DATA PI /3.141592653589793238462643D0/ +C + IF(ABS(Y).LT.ABS(X)) THEN + THE=ATAN(ABS(Y/X)) + IF(X.LE.0D0) THE=PI-THE + ELSE + THE=ACOS(X/SQRT(X**2+Y**2)) + ENDIF + IF(Y.LT.0D0) THE=2D0*PI-THE + ANGFI=THE + END + SUBROUTINE ROTOD1(PH1,PVEC,QVEC) +C ---------------------------------------------------------------------- +C +C USED BY : KORALZ +C ---------------------------------------------------------------------- + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + DIMENSION PVEC(4),QVEC(4),RVEC(4) +C + PHI=PH1 + CS=COS(PHI) + SN=SIN(PHI) + DO 10 I=1,4 + 10 RVEC(I)=PVEC(I) + QVEC(1)=RVEC(1) + QVEC(2)= CS*RVEC(2)-SN*RVEC(3) + QVEC(3)= SN*RVEC(2)+CS*RVEC(3) + QVEC(4)=RVEC(4) + RETURN + END + SUBROUTINE ROTOD2(PH1,PVEC,QVEC) +C ---------------------------------------------------------------------- +C +C USED BY : KORALZ RADKOR +C ---------------------------------------------------------------------- + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + DIMENSION PVEC(4),QVEC(4),RVEC(4) +C + PHI=PH1 + CS=COS(PHI) + SN=SIN(PHI) + DO 10 I=1,4 + 10 RVEC(I)=PVEC(I) + QVEC(1)= CS*RVEC(1)+SN*RVEC(3) + QVEC(2)=RVEC(2) + QVEC(3)=-SN*RVEC(1)+CS*RVEC(3) + QVEC(4)=RVEC(4) + RETURN + END + SUBROUTINE ROTOD3(PH1,PVEC,QVEC) +C ---------------------------------------------------------------------- +C +C USED BY : KORALZ RADKOR +C ---------------------------------------------------------------------- + IMPLICIT DOUBLE PRECISION (A-H,O-Z) +C + DIMENSION PVEC(4),QVEC(4),RVEC(4) + PHI=PH1 + CS=COS(PHI) + SN=SIN(PHI) + DO 10 I=1,4 + 10 RVEC(I)=PVEC(I) + QVEC(1)= CS*RVEC(1)-SN*RVEC(2) + QVEC(2)= SN*RVEC(1)+CS*RVEC(2) + QVEC(3)=RVEC(3) + QVEC(4)=RVEC(4) + END + SUBROUTINE BOSTR3(EXE,PVEC,QVEC) +C ---------------------------------------------------------------------- +C BOOST ALONG Z AXIS, EXE=EXP(ETA), ETA= HIPERBOLIC VELOCITY. +C +C USED BY : TAUOLA KORALZ (?) +C ---------------------------------------------------------------------- + REAL*4 PVEC(4),QVEC(4),RVEC(4) +C + DO 10 I=1,4 + 10 RVEC(I)=PVEC(I) + RPL=RVEC(4)+RVEC(3) + RMI=RVEC(4)-RVEC(3) + QPL=RPL*EXE + QMI=RMI/EXE + QVEC(1)=RVEC(1) + QVEC(2)=RVEC(2) + QVEC(3)=(QPL-QMI)/2 + QVEC(4)=(QPL+QMI)/2 + END + SUBROUTINE BOSTD3(EXE,PVEC,QVEC) +C ---------------------------------------------------------------------- +C BOOST ALONG Z AXIS, EXE=EXP(ETA), ETA= HIPERBOLIC VELOCITY. +C +C USED BY : KORALZ RADKOR +C ---------------------------------------------------------------------- + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + DIMENSION PVEC(4),QVEC(4),RVEC(4) +C + DO 10 I=1,4 + 10 RVEC(I)=PVEC(I) + RPL=RVEC(4)+RVEC(3) + RMI=RVEC(4)-RVEC(3) + QPL=RPL*EXE + QMI=RMI/EXE + QVEC(1)=RVEC(1) + QVEC(2)=RVEC(2) + QVEC(3)=(QPL-QMI)/2 + QVEC(4)=(QPL+QMI)/2 + RETURN + END + SUBROUTINE ROTOR1(PH1,PVEC,QVEC) +C ---------------------------------------------------------------------- +C +C called by : +C ---------------------------------------------------------------------- + REAL*4 PVEC(4),QVEC(4),RVEC(4) +C + PHI=PH1 + CS=COS(PHI) + SN=SIN(PHI) + DO 10 I=1,4 + 10 RVEC(I)=PVEC(I) + QVEC(1)=RVEC(1) + QVEC(2)= CS*RVEC(2)-SN*RVEC(3) + QVEC(3)= SN*RVEC(2)+CS*RVEC(3) + QVEC(4)=RVEC(4) + END + SUBROUTINE ROTOR2(PH1,PVEC,QVEC) +C ---------------------------------------------------------------------- +C +C USED BY : TAUOLA +C ---------------------------------------------------------------------- + IMPLICIT REAL*4(A-H,O-Z) + REAL*4 PVEC(4),QVEC(4),RVEC(4) +C + PHI=PH1 + CS=COS(PHI) + SN=SIN(PHI) + DO 10 I=1,4 + 10 RVEC(I)=PVEC(I) + QVEC(1)= CS*RVEC(1)+SN*RVEC(3) + QVEC(2)=RVEC(2) + QVEC(3)=-SN*RVEC(1)+CS*RVEC(3) + QVEC(4)=RVEC(4) + END + SUBROUTINE ROTOR3(PHI,PVEC,QVEC) +C ---------------------------------------------------------------------- +C +C USED BY : TAUOLA +C ---------------------------------------------------------------------- + REAL*4 PVEC(4),QVEC(4),RVEC(4) +C + CS=COS(PHI) + SN=SIN(PHI) + DO 10 I=1,4 + 10 RVEC(I)=PVEC(I) + QVEC(1)= CS*RVEC(1)-SN*RVEC(2) + QVEC(2)= SN*RVEC(1)+CS*RVEC(2) + QVEC(3)=RVEC(3) + QVEC(4)=RVEC(4) + END + SUBROUTINE SPHERD(R,X) +C ---------------------------------------------------------------------- +C GENERATES UNIFORMLY THREE-VECTOR X ON SPHERE OF RADIUS R +C DOUBLE PRECISON VERSION OF SPHERA +C ---------------------------------------------------------------------- + REAL*8 R,X(4),PI,COSTH,SINTH + REAL*4 RRR(2) + DATA PI /3.141592653589793238462643D0/ +C + CALL RANMAR(RRR,2) + COSTH=-1+2*RRR(1) + SINTH=SQRT(1 -COSTH**2) + X(1)=R*SINTH*COS(2*PI*RRR(2)) + X(2)=R*SINTH*SIN(2*PI*RRR(2)) + X(3)=R*COSTH + RETURN + END + SUBROUTINE ROTPOX(THET,PHI,PP) + IMPLICIT REAL*8 (A-H,O-Z) +C ---------------------------------------------------------------------- +C +C ---------------------------------------------------------------------- + DIMENSION PP(4) +C + CALL ROTOD2(THET,PP,PP) + CALL ROTOD3( PHI,PP,PP) + RETURN + END + SUBROUTINE SPHERA(R,X) +C ---------------------------------------------------------------------- +C GENERATES UNIFORMLY THREE-VECTOR X ON SPHERE OF RADIUS R +C +C called by : DPHSxx,DADMPI,DADMKK +C ---------------------------------------------------------------------- + REAL X(4) + REAL*4 RRR(2) + DATA PI /3.141592653589793238462643/ +C + CALL RANMAR(RRR,2) + COSTH=-1.+2.*RRR(1) + SINTH=SQRT(1.-COSTH**2) + X(1)=R*SINTH*COS(2*PI*RRR(2)) + X(2)=R*SINTH*SIN(2*PI*RRR(2)) + X(3)=R*COSTH + RETURN + END + SUBROUTINE ROTPOL(THET,PHI,PP) +C ---------------------------------------------------------------------- +C +C called by : DADMAA,DPHSAA +C ---------------------------------------------------------------------- + REAL PP(4) +C + CALL ROTOR2(THET,PP,PP) + CALL ROTOR3( PHI,PP,PP) + RETURN + END + SUBROUTINE RANMAR(RVEC,LENV) +C ---------------------------------------------------------------------- +C<<<< K0 PI- +* --- ALL COEFFICENTS SHOULD BE IN THE RANGE (0.0,1.0) +* --- THEY MEANING IS PROBABILITY OF THE FIRST CHOICE ONLY IF ONE +* --- NEGLECTS MASS-PHASE SPACE EFFECTS + BRA1=0.5 + BRK0=0.5 + BRK0B=0.5 + BRKS=0.6667 +* + + GFERMI = 1.16637E-5 + CCABIB = 0.975 + GV = 1.0 + GA =-1.0 + + + +* ZW 13.04.89 HERE WAS AN ERROR + SCABIB = SQRT(1.-CCABIB**2) + PI =4.*ATAN(1.) + GAMEL = GFERMI**2*AMTAU**5/(192*PI**3) +* +* CALL DEXAY(-1,pol1) +* + RETURN + END + FUNCTION DCDMAS(IDENT) + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +* + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + IF (IDENT.EQ. 1) THEN + APKMAS=AMPI + ELSEIF (IDENT.EQ.-1) THEN + APKMAS=AMPI + ELSEIF (IDENT.EQ. 2) THEN + APKMAS=AMPIZ + ELSEIF (IDENT.EQ.-2) THEN + APKMAS=AMPIZ + ELSEIF (IDENT.EQ. 3) THEN + APKMAS=AMK + ELSEIF (IDENT.EQ.-3) THEN + APKMAS=AMK + ELSEIF (IDENT.EQ. 4) THEN + APKMAS=AMKZ + ELSEIF (IDENT.EQ.-4) THEN + APKMAS=AMKZ + ELSEIF (IDENT.EQ. 8) THEN + APKMAS=0.0001 + ELSEIF (IDENT.EQ.-8) THEN + APKMAS=0.0001 + ELSEIF (IDENT.EQ. 9) THEN + APKMAS=0.5488 + ELSEIF (IDENT.EQ.-9) THEN + APKMAS=0.5488 + ELSE + PRINT *, 'STOP IN APKMAS, WRONG IDENT=',IDENT + STOP + ENDIF + DCDMAS=APKMAS + END + FUNCTION LUNPIK(ID,ISGN) + COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS + REAL*4 BRA1,BRK0,BRK0B,BRKS + REAL*4 XIO(1) + IDENT=ID*ISGN + IF (IDENT.EQ. 1) THEN + IPKDEF=-211 + ELSEIF (IDENT.EQ.-1) THEN + IPKDEF= 211 + ELSEIF (IDENT.EQ. 2) THEN + IPKDEF=111 + ELSEIF (IDENT.EQ.-2) THEN + IPKDEF=111 + ELSEIF (IDENT.EQ. 3) THEN + IPKDEF=-321 + ELSEIF (IDENT.EQ.-3) THEN + IPKDEF= 321 + ELSEIF (IDENT.EQ. 4) THEN +* +* K0 --> K0_LONG (IS 130) / K0_SHORT (IS 310) = 1/1 + CALL RANMAR(XIO,1) + IF (XIO(1).GT.BRK0) THEN + IPKDEF= 130 + ELSE + IPKDEF= 310 + ENDIF + ELSEIF (IDENT.EQ.-4) THEN +* +* K0B--> K0_LONG (IS 130) / K0_SHORT (IS 310) = 1/1 + CALL RANMAR(XIO,1) + IF (XIO(1).GT.BRK0B) THEN + IPKDEF= 130 + ELSE + IPKDEF= 310 + ENDIF + ELSEIF (IDENT.EQ. 8) THEN + IPKDEF= 22 + ELSEIF (IDENT.EQ.-8) THEN + IPKDEF= 22 + ELSEIF (IDENT.EQ. 9) THEN + IPKDEF= 221 + ELSEIF (IDENT.EQ.-9) THEN + IPKDEF= 221 + ELSE + PRINT *, 'STOP IN IPKDEF, WRONG IDENT=',IDENT + STOP + ENDIF + LUNPIK=IPKDEF + END + + + + SUBROUTINE TAURDF(KTO) +C THIS ROUTINE CAN BE CALLED BEFORE ANY TAU+ OR TAU- EVENT IS GENERATED +C IT CAN BE USED TO GENERATE TAU+ AND TAU- SAMPLES OF DIFFERENT +C CONTENTS + COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS + REAL*4 BRA1,BRK0,BRK0B,BRKS + COMMON / TAUBRA / GAMPRT(30),JLIST(30),NCHAN + +C Subroutine TAURDF is disabled + RETURN + + + IF (KTO.EQ.1) THEN +C ================== +C AJWMOD: Set the BRs for (A1+ -> rho+ pi0) and (K*+ -> K0 pi+) + BRA1 = PKORB(4,1) + BRKS = PKORB(4,3) + BRK0 = PKORB(4,5) + BRK0B = PKORB(4,6) + ELSE +C ==== +C AJWMOD: Set the BRs for (A1+ -> rho+ pi0) and (K*+ -> K0 pi+) + BRA1 = PKORB(4,2) + BRKS = PKORB(4,4) + BRK0 = PKORB(4,5) + BRK0B = PKORB(4,6) + ENDIF +C ===== + END + + SUBROUTINE INIPHY(XK00) +* ---------------------------------------------------------------------- +* INITIALISATION OF PARAMETERS +* USED IN QED and/or GSW ROUTINES +* ---------------------------------------------------------------------- + COMMON / QEDPRM /ALFINV,ALFPI,XK0 + REAL*8 ALFINV,ALFPI,XK0 + REAL*8 PI8,XK00 +* + PI8 = 4.D0*DATAN(1.D0) + ALFINV = 137.03604D0 + ALFPI = 1D0/(ALFINV*PI8) + XK0=XK00 + END + + SUBROUTINE INIMAS +C ---------------------------------------------------------------------- +C INITIALISATION OF MASSES +C +C called by : KORALZ +C ---------------------------------------------------------------------- + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +* + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +C +C IN-COMING / OUT-GOING FERMION MASSES + AMTAU = 1.7842 +C --- let us update tau mass ... + AMTAU = 1.777 + AMNUTA = 0.010 + AMEL = 0.0005111 + AMNUE = 0.0 + AMMU = 0.105659 + AMNUMU = 0.0 +* +* MASSES USED IN TAU DECAYS + AMPIZ = 0.134964 + AMPI = 0.139568 + AMRO = 0.773 + GAMRO = 0.145 +*C GAMRO = 0.666 + AMA1 = 1.251 + GAMA1 = 0.599 + AMK = 0.493667 + AMKZ = 0.49772 + AMKST = 0.8921 + GAMKST = 0.0513 +C +C +C IN-COMING / OUT-GOING FERMION MASSES +!! AMNUTA = PKORB(1,2) +!! AMNUE = PKORB(1,4) +!! AMNUMU = PKORB(1,6) +C +C MASSES USED IN TAU DECAYS Cleo settings +!! AMPIZ = PKORB(1,7) +!! AMPI = PKORB(1,8) +!! AMRO = PKORB(1,9) +!! GAMRO = PKORB(2,9) + AMA1 = 1.275 !! PKORB(1,10) + GAMA1 = 0.615 !! PKORB(2,10) +!! AMK = PKORB(1,11) +!! AMKZ = PKORB(1,12) +!! AMKST = PKORB(1,13) +!! GAMKST = PKORB(2,13) +C + + RETURN + END + SUBROUTINE ANGULU(PD1,PD2,Q1,Q2,COSTHE) + REAL*8 PD1(4),PD2(4),Q1(4),Q2(4),COSTHE,P(4),QQ(4),QT(4) +C take effective beam which is less massive, it should be irrelevant +C but in case HEPEVT is particulary dirty may help. +C this routine calculate reduced system transver and cosine of scattering +C angle. + + XM1=ABS(PD1(4)**2-PD1(3)**2-PD1(2)**2-PD1(1)**2) + XM2=ABS(PD2(4)**2-PD2(3)**2-PD2(2)**2-PD2(1)**2) + IF (XM1.LT.XM2) THEN + SIGN=1D0 + DO K=1,4 + P(K)=PD1(K) + ENDDO + ELSE + SIGN=-1D0 + DO K=1,4 + P(K)=PD2(K) + ENDDO + ENDIF +C calculate space like part of P (in Z restframe) + DO K=1,4 + QQ(K)=Q1(k)+Q2(K) + QT(K)=Q1(K)-Q2(K) + ENDDO + + XMQQ=SQRT(QQ(4)**2-QQ(3)**2-QQ(2)**2-QQ(1)**2) + + QTXQQ=QT(4)*QQ(4)-QT(3)*QQ(3)-QT(2)*QQ(2)-QT(1)*QQ(1) + DO K=1,4 + QT(K)=QT(K)-QQ(K)*QTXQQ/XMQQ**2 + ENDDO + + PXQQ=P(4)*QQ(4)-P(3)*QQ(3)-P(2)*QQ(2)-P(1)*QQ(1) + DO K=1,4 + P(K)=P(K)-QQ(K)*PXQQ/XMQQ**2 + ENDDO +C calculate costhe + PXP =SQRT(p(1)**2+p(2)**2+p(3)**2-p(4)**2) + QTXQT=SQRT(QT(3)**2+QT(2)**2+QT(1)**2-QT(4)**2) + PXQT =P(3)*QT(3)+P(2)*QT(2)+P(1)*QT(1)-P(4)*QT(4) + COSTHE=PXQT/PXP/QTXQT + COSTHE=COSTHE*SIGN + END + + FUNCTION PLZAP0(IDE,IDF,SVAR,COSTH0) +C this function calculates probability for the helicity +1 +1 configuration +C of taus for given Z/gamma transfer and COSTH0 cosine of scattering angle + REAL*8 PLZAP0,SVAR,COSTHE,COSTH0,T_BORN + + COSTHE=COSTH0 +C >>>>> IF (IDE*IDF.LT.0) COSTHE=-COSTH0 ! this is probably not needed ID +C >>>>> of first beam is used by T_GIVIZ0 including sign + + IF (IDF.GT.0) THEN + CALL INITWK(IDE,IDF,SVAR) + ELSE + CALL INITWK(-IDE,-IDF,SVAR) + ENDIF + PLZAP0=T_BORN(0,SVAR,COSTHE,1D0,1D0) + $ /(T_BORN(0,SVAR,COSTHE,1D0,1D0)+T_BORN(0,SVAR,COSTHE,-1D0,-1D0)) + + +C write(*,*) 'svar= ', svar +C write(*,*) 'COSTHE=', COSTHE +C write(*,*) ide,' ',idf +C write(*,*) 'PLZAP0=', PLZAP0 +C COSTHE=0.999 +C write(*,*) 'TBORN+=', T_BORN(0,SVAR,COSTHE,1D0,1D0) + +C COSTHE=-0.999 +C write(*,*) 'TBORN-=', T_BORN(0,SVAR,COSTHE,-1D0,-1D0) +C 100 format (A,E8.4) + +! PLZAP0=0.5 + END + FUNCTION T_BORN(MODE,SVAR,COSTHE,TA,TB) +C ---------------------------------------------------------------------- +C THIS ROUTINE PROVIDES BORN CROSS SECTION. IT HAS THE SAME +C STRUCTURE AS FUNTIS AND FUNTIH, THUS CAN BE USED AS SIMPLER +C EXAMPLE OF THE METHOD APPLIED THERE +C INPUT PARAMETERS ARE: SVAR -- transfer +C COSTHE -- cosine of angle between tau+ and 1st beam +C TA,TB -- helicity states of tau+ tau- +C +C called by : BORNY, BORAS, BORNV, WAGA, WEIGHT +C ---------------------------------------------------------------------- + IMPLICIT REAL*8(A-H,O-Z) + COMMON / T_BEAMPM / ENE ,AMIN,AMFIN,IDE,IDF + REAL*8 ENE ,AMIN,AMFIN + COMMON / T_GAUSPM /SS,POLN,T3E,QE,T3F,QF + & ,XUPGI ,XUPZI ,XUPGF ,XUPZF + & ,NDIAG0,NDIAGA,KEYA,KEYZ + & ,ITCE,JTCE,ITCF,JTCF,KOLOR + REAL*8 SS,POLN,T3E,QE,T3F,QF + & ,XUPGI(2),XUPZI(2),XUPGF(2),XUPZF(2) + REAL*8 SEPS1,SEPS2 +C===================================================================== + COMMON / T_GSWPRM /SWSQ,AMW,AMZ,AMH,AMTOP,GAMMZ + REAL*8 SWSQ,AMW,AMZ,AMH,AMTOP,GAMMZ +C SWSQ = sin2 (theta Weinberg) +C AMW,AMZ = W & Z boson masses respectively +C AMH = the Higgs mass +C AMTOP = the top mass +C GAMMZ = Z0 width + COMPLEX*16 ABORN(2,2),APHOT(2,2),AZETT(2,2) + COMPLEX*16 XUPZFP(2),XUPZIP(2) + COMPLEX*16 ABORNM(2,2),APHOTM(2,2),AZETTM(2,2) + COMPLEX*16 PROPA,PROPZ + COMPLEX*16 XR,XI + COMPLEX*16 XUPF,XUPI + COMPLEX*16 XTHING + DATA XI/(0.D0,1.D0)/,XR/(1.D0,0.D0)/ + DATA MODE0 /-5/ + DATA IDE0 /-55/ + DATA SVAR0,COST0 /-5.D0,-6.D0/ + DATA PI /3.141592653589793238462643D0/ + DATA SEPS1,SEPS2 /0D0,0D0/ +C +C MEMORIZATION ========================================================= + IF ( MODE.NE.MODE0.OR.SVAR.NE.SVAR0.OR.COSTHE.NE.COST0 + $ .OR.IDE0.NE.IDE)THEN +C + KEYGSW=1 +C ** PROPAGATORS + IDE0=IDE + MODE0=MODE + SVAR0=SVAR + COST0=COSTHE + SINTHE=SQRT(1.D0-COSTHE**2) + BETA=SQRT(MAX(0D0,1D0-4D0*AMFIN**2/SVAR)) +C I MULTIPLY AXIAL COUPLING BY BETA FACTOR. + XUPZFP(1)=0.5D0*(XUPZF(1)+XUPZF(2))+0.5*BETA*(XUPZF(1)-XUPZF(2)) + XUPZFP(2)=0.5D0*(XUPZF(1)+XUPZF(2))-0.5*BETA*(XUPZF(1)-XUPZF(2)) + XUPZIP(1)=0.5D0*(XUPZI(1)+XUPZI(2))+0.5*(XUPZI(1)-XUPZI(2)) + XUPZIP(2)=0.5D0*(XUPZI(1)+XUPZI(2))-0.5*(XUPZI(1)-XUPZI(2)) +C FINAL STATE VECTOR COUPLING + XUPF =0.5D0*(XUPZF(1)+XUPZF(2)) + XUPI =0.5D0*(XUPZI(1)+XUPZI(2)) + XTHING =0D0 + + PROPA =1D0/SVAR + PROPZ =1D0/DCMPLX(SVAR-AMZ**2,SVAR/AMZ*GAMMZ) + IF (KEYGSW.EQ.0) PROPZ=0.D0 + DO 50 I=1,2 + DO 50 J=1,2 + REGULA= (3-2*I)*(3-2*J) + COSTHE + REGULM=-(3-2*I)*(3-2*J) * SINTHE *2.D0*AMFIN/SQRT(SVAR) + APHOT(I,J)=PROPA*(XUPGI(I)*XUPGF(J)*REGULA) + AZETT(I,J)=PROPZ*(XUPZIP(I)*XUPZFP(J)+XTHING)*REGULA + ABORN(I,J)=APHOT(I,J)+AZETT(I,J) + APHOTM(I,J)=PROPA*DCMPLX(0D0,1D0)*XUPGI(I)*XUPGF(J)*REGULM + AZETTM(I,J)=PROPZ*DCMPLX(0D0,1D0)*(XUPZIP(I)*XUPF+XTHING)*REGULM + ABORNM(I,J)=APHOTM(I,J)+AZETTM(I,J) + 50 CONTINUE + ENDIF +C +C****************** +C* IN CALCULATING CROSS SECTION ONLY DIAGONAL ELEMENTS +C* OF THE SPIN DENSITY MATRICES ENTER (LONGITUD. POL. ONLY.) +C* HELICITY CONSERVATION EXPLICITLY OBEYED + POLAR1= (SEPS1) + POLAR2= (-SEPS2) + BORN=0D0 + DO 150 I=1,2 + HELIC= 3-2*I + DO 150 J=1,2 + HELIT=3-2*J + FACTOR=KOLOR*(1D0+HELIC*POLAR1)*(1D0-HELIC*POLAR2)/4D0 + FACTOM=FACTOR*(1+HELIT*TA)*(1-HELIT*TB) + FACTOR=FACTOR*(1+HELIT*TA)*(1+HELIT*TB) + + BORN=BORN+CDABS(ABORN(I,J))**2*FACTOR +C MASS TERM IN BORN + IF (MODE.GE.1) THEN + BORN=BORN+CDABS(ABORNM(I,J))**2*FACTOM + ENDIF + + 150 CONTINUE +C************ + FUNT=BORN + IF(FUNT.LT.0.D0) FUNT=BORN + +C + IF (SVAR.GT.4D0*AMFIN**2) THEN +C PHASE SPACE THRESHOLD FACTOR + THRESH=SQRT(1-4D0*AMFIN**2/SVAR) + T_BORN= FUNT*SVAR**2*THRESH + ELSE + THRESH=0.D0 + T_BORN=0.D0 + ENDIF +C ZW HERE WAS AN ERROR 19. 05. 1989 +! write(*,*) 'KKKK ',PROPA,PROPZ,XUPGI,XUPGF,XUPZI,XUPZF +! write(*,*) 'KKKK X',svar,costhe,TA,TB,T_BORN + END + + SUBROUTINE INITWK(IDEX,IDFX,SVAR) +! initialization routine coupling masses etc. + IMPLICIT REAL*8 (A-H,O-Z) + COMMON / T_BEAMPM / ENE ,AMIN,AMFIN,IDE,IDF + REAL*8 ENE ,AMIN,AMFIN + COMMON / T_GAUSPM /SS,POLN,T3E,QE,T3F,QF + & ,XUPGI ,XUPZI ,XUPGF ,XUPZF + & ,NDIAG0,NDIAGA,KEYA,KEYZ + & ,ITCE,JTCE,ITCF,JTCF,KOLOR + REAL*8 SS,POLN,T3E,QE,T3F,QF + & ,XUPGI(2),XUPZI(2),XUPGF(2),XUPZF(2) + COMMON / T_GSWPRM /SWSQ,AMW,AMZ,AMH,AMTOP,GAMMZ + REAL*8 SWSQ,AMW,AMZ,AMH,AMTOP,GAMMZ +C SWSQ = sin2 (theta Weinberg) +C AMW,AMZ = W & Z boson masses respectively +C AMH = the Higgs mass +C AMTOP = the top mass +C GAMMZ = Z0 width +C + ENE=SQRT(SVAR)/2 + AMIN=0.511D-3 + SWSQ=0.23147 + AMZ=91.1882 + GAMMZ=2.4952 + IF (IDFX.EQ. 15) then + IDF=2 ! denotes tau +2 tau- + AMFIN=1.77703 !this mass is irrelevant if small, used in ME only + ELSEIF (IDFX.EQ.-15) then + IDF=-2 ! denotes tau -2 tau- + AMFIN=1.77703 !this mass is irrelevant if small, used in ME only + ELSE + WRITE(*,*) 'INITWK: WRONG IDFX' + STOP + ENDIF + + IF (IDEX.EQ. 11) then !electron + IDE= 2 + AMIN=0.511D-3 + ELSEIF (IDEX.EQ.-11) then !positron + IDE=-2 + AMIN=0.511D-3 + ELSEIF (IDEX.EQ. 13) then !mu+ + IDE= 2 + AMIN=0.105659 + ELSEIF (IDEX.EQ.-13) then !mu- + IDE=-2 + AMIN=0.105659 + ELSEIF (IDEX.EQ. 1) then !d + IDE= 4 + AMIN=0.05 + ELSEIF (IDEX.EQ.- 1) then !d~ + IDE=-4 + AMIN=0.05 + ELSEIF (IDEX.EQ. 2) then !u + IDE= 3 + AMIN=0.02 + ELSEIF (IDEX.EQ.- 2) then !u~ + IDE=-3 + AMIN=0.02 + ELSEIF (IDEX.EQ. 3) then !s + IDE= 4 + AMIN=0.3 + ELSEIF (IDEX.EQ.- 3) then !s~ + IDE=-4 + AMIN=0.3 + ELSEIF (IDEX.EQ. 4) then !c + IDE= 3 + AMIN=1.3 + ELSEIF (IDEX.EQ.- 4) then !c~ + IDE=-3 + AMIN=1.3 + ELSEIF (IDEX.EQ. 5) then !b + IDE= 4 + AMIN=4.5 + ELSEIF (IDEX.EQ.- 5) then !b~ + IDE=-4 + AMIN=4.5 + ELSEIF (IDEX.EQ. 12) then !nu_e + IDE= 1 + AMIN=0.1D-3 + ELSEIF (IDEX.EQ.- 12) then !nu_e~ + IDE=-1 + AMIN=0.1D-3 + ELSEIF (IDEX.EQ. 14) then !nu_mu + IDE= 1 + AMIN=0.1D-3 + ELSEIF (IDEX.EQ.- 14) then !nu_mu~ + IDE=-1 + AMIN=0.1D-3 + ELSEIF (IDEX.EQ. 16) then !nu_tau + IDE= 1 + AMIN=0.1D-3 + ELSEIF (IDEX.EQ.- 16) then !nu_tau~ + IDE=-1 + AMIN=0.1D-3 + + ELSE + WRITE(*,*) 'INITWK: WRONG IDEX' + STOP + ENDIF + +C ---------------------------------------------------------------------- +C +C INITIALISATION OF COUPLING CONSTANTS AND FERMION-GAMMA / Z0 VERTEX +C +C called by : KORALZ +C ---------------------------------------------------------------------- + ITCE=IDE/IABS(IDE) + JTCE=(1-ITCE)/2 + ITCF=IDF/IABS(IDF) + JTCF=(1-ITCF)/2 + CALL T_GIVIZO( IDE, 1,AIZOR,QE,KDUMM) + CALL T_GIVIZO( IDE,-1,AIZOL,QE,KDUMM) + XUPGI(1)=QE + XUPGI(2)=QE + T3E = AIZOL+AIZOR + XUPZI(1)=(AIZOR-QE*SWSQ)/SQRT(SWSQ*(1-SWSQ)) + XUPZI(2)=(AIZOL-QE*SWSQ)/SQRT(SWSQ*(1-SWSQ)) + CALL T_GIVIZO( IDF, 1,AIZOR,QF,KOLOR) + CALL T_GIVIZO( IDF,-1,AIZOL,QF,KOLOR) + XUPGF(1)=QF + XUPGF(2)=QF + T3F = AIZOL+AIZOR + XUPZF(1)=(AIZOR-QF*SWSQ)/SQRT(SWSQ*(1-SWSQ)) + XUPZF(2)=(AIZOL-QF*SWSQ)/SQRT(SWSQ*(1-SWSQ)) +C + NDIAG0=2 + NDIAGA=11 + KEYA = 1 + KEYZ = 1 +C +C + RETURN + END + + SUBROUTINE T_GIVIZO(IDFERM,IHELIC,SIZO3,CHARGE,KOLOR) +C ---------------------------------------------------------------------- +C PROVIDES ELECTRIC CHARGE AND WEAK IZOSPIN OF A FAMILY FERMION +C IDFERM=1,2,3,4 DENOTES NEUTRINO, LEPTON, UP AND DOWN QUARK +C NEGATIVE IDFERM=-1,-2,-3,-4, DENOTES ANTIPARTICLE +C IHELIC=+1,-1 DENOTES RIGHT AND LEFT HANDEDNES ( CHIRALITY) +C SIZO3 IS THIRD PROJECTION OF WEAK IZOSPIN (PLUS MINUS HALF) +C AND CHARGE IS ELECTRIC CHARGE IN UNITS OF ELECTRON CHARGE +C KOLOR IS A QCD COLOUR, 1 FOR LEPTON, 3 FOR QUARKS +C +C called by : EVENTE, EVENTM, FUNTIH, ..... +C ---------------------------------------------------------------------- + IMPLICIT REAL*8(A-H,O-Z) +C + IF(IDFERM.EQ.0.OR.IABS(IDFERM).GT.4) GOTO 901 + IF(IABS(IHELIC).NE.1) GOTO 901 + IH =IHELIC + IDTYPE =IABS(IDFERM) + IC =IDFERM/IDTYPE + LEPQUA=INT(IDTYPE*0.4999999D0) + IUPDOW=IDTYPE-2*LEPQUA-1 + CHARGE =(-IUPDOW+2D0/3D0*LEPQUA)*IC + SIZO3 =0.25D0*(IC-IH)*(1-2*IUPDOW) + KOLOR=1+2*LEPQUA +C** NOTE THAT CONVENTIONALY Z0 COUPLING IS +C** XOUPZ=(SIZO3-CHARGE*SWSQ)/SQRT(SWSQ*(1-SWSQ)) + RETURN + 901 PRINT *,' STOP IN GIVIZO: WRONG PARAMS.' + STOP + END + SUBROUTINE PHYFIX(NSTOP,NSTART) + COMMON/LUJETS/N,K(4000,5),P(4000,5),V(4000,5) + SAVE /LUJETS/ +C NSTOP NSTART : when PHYTIA history ends and event starts. + NSTOP=0 + NSTART=1 + DO I=1, N + IF(K(I,1).NE.21) THEN + NSTOP = I-1 + NSTART= I + GOTO 500 + ENDIF + ENDDO + 500 CONTINUE + END + + + SUBROUTINE TAUPI0(PI0,K) +C no initialization required. Must be called once after every: +C 1) CALL DEKAY(1+10,...) +C 2) CALL DEKAY(2+10,...) +C 3) CALL DEXAY(1,...) +C 4) CALL DEXAY(2,...) +C subroutine to decay originating from TAUOLA's taus: +C 1) etas (with CALL TAUETA(JAK)) +C 2) later pi0's from taus. +C 3) extensions to other applications possible. +C this routine belongs to >tauola universal interface<, but uses +C routines from >tauola< utilities as well. 25.08.2005 +C this is the hepevt class in old style. No d_h_ class pre-name + +C position of taus, must be defined by host program: + COMMON /TAUPOS/ NP1,NP2 +c + REAL PHOT1(4),PHOT2(4) + REAL*8 R,X(4),Y(4),PI0(4) + INTEGER JEZELI(3),K + DATA JEZELI /0,0,0/ + SAVE JEZELI + +! random 3 vector on the sphere, masless + R=SQRT(PI0(4)**2-PI0(3)**2-PI0(2)**2-PI0(1)**2)/2D0 + CALL SPHERD(R,X) + X(4)=R + Y(4)=R + + Y(1)=-X(1) + Y(2)=-X(2) + Y(3)=-X(3) +! boost to lab and to real*4 + CALL bostdq(-1,PI0,X,X) + CALL bostdq(-1,PI0,Y,Y) + DO L=1,4 + PHOT1(L)=X(L) + PHOT2(L)=Y(L) + ENDDO +C to hepevt + CALL FILHEP(0,1,22,K,K,0,0,PHOT1,0.0,.TRUE.) + CALL FILHEP(0,1,22,K,K,0,0,PHOT2,0.0,.TRUE.) + +C + END + SUBROUTINE TAUETA(PETA,K) +C subroutine to decay etas's from taus. +C this routine belongs to tauola universal interface, but uses +C routines from tauola utilities. Just flat phase space, but 4 channels. +C it is called at the beginning of SUBR. TAUPI0(JAK) +C and as far as hepevt search it is basically the same as TAUPI0. 25.08.2005 +C this is the hepevt class in old style. No d_h_ class pre-name + + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +* + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + +C position of taus, must be defined by host program: +c + REAL RRR(1),BRSUM(3), RR(2) + REAL PHOT1(4),PHOT2(4),PHOT3(4) + REAL*8 X(4), Y(4), Z(4) + REAL YM1,YM2,YM3 + REAL*8 R,RU,PETA(4),XM1,XM2,XM3,XLAM + REAL*8 a,b,c + INTEGER K + XLAM(a,b,c)=SQRT(ABS((a-b-c)**2-4.0*b*c)) +C position of decaying particle: +C DO L=1,4 +C PETA(L)= phep(L,K) ! eta 4 momentum +C ENDDO +C eta cumulated branching ratios: + BRSUM(1)=0.389 ! gamma gamma + BRSUM(2)=BRSUM(1)+0.319 ! 3 pi0 + BRSUM(3)=BRSUM(2)+0.237 ! pi+ pi- pi0 rest is thus pi+pi-gamma + CALL RANMAR(RRR,1) + + IF (RRR(1).LT.BRSUM(1)) THEN ! gamma gamma channel exactly like pi0 +! random 3 vector on the sphere, masless + R=SQRT(PETA(4)**2-PETA(3)**2-PETA(2)**2-PETA(1)**2)/2D0 + CALL SPHERD(R,X) + X(4)=R + Y(4)=R + + Y(1)=-X(1) + Y(2)=-X(2) + Y(3)=-X(3) +! boost to lab and to real*4 + CALL bostdq(-1,PETA,X,X) + CALL bostdq(-1,PETA,Y,Y) + DO L=1,4 + PHOT1(L)=X(L) + PHOT2(L)=Y(L) + ENDDO +C to hepevt + CALL FILHEP(0,1,22,K,K,0,0,PHOT1,0.0,.TRUE.) + CALL FILHEP(0,1,22,K,K,0,0,PHOT2,0.0,.TRUE.) + ELSE ! 3 body channels + IF(RRR(1).LT.BRSUM(2)) THEN ! 3 pi0 + ID1= 111 + ID2= 111 + ID3= 111 + XM1=AMPIZ ! masses + XM2=AMPIZ + XM3=AMPIZ + ELSEIF(RRR(1).LT.BRSUM(3)) THEN ! pi+ pi- pi0 + ID1= 211 + ID2=-211 + ID3= 111 + XM1=AMPI ! masses + XM2=AMPI + XM3=AMPIZ + ELSE ! pi+ pi- gamma + ID1= 211 + ID2=-211 + ID3= 22 + XM1=AMPI ! masses + XM2=AMPI + XM3=0.0 + ENDIF + 7 CONTINUE ! we generate mass of the first pair: + CALL RANMAR(RR,2) + R=SQRT(PETA(4)**2-PETA(3)**2-PETA(2)**2-PETA(1)**2) + AMIN=XM1+XM2 + AMAX=R-XM3 + AM2=SQRT(AMIN**2+RR(1)*(AMAX**2-AMIN**2)) +C weight for flat phase space + WT=XLAM(1D0*R**2,1D0*AM2**2,1D0*XM3**2) + & *XLAM(1D0*AM2**2,1D0*XM1**2,1D0*XM2**2) + & /R**2 /AM2**2 + IF (RR(2).GT.WT) GOTO 7 + + RU=XLAM(1D0*AM2**2,1D0*XM1**2,1D0*XM2**2)/AM2/2 ! momenta of the + ! first two products + ! in the rest frame of that pair + CALL SPHERD(RU,X) + X(4)=SQRT(RU**2+XM1**2) + Y(4)=SQRT(RU**2+XM2**2) + + Y(1)=-X(1) + Y(2)=-X(2) + Y(3)=-X(3) +C generate momentum of that pair in rest frame of eta: + RU=XLAM(1D0*R**2,1D0*AM2**2,1D0*XM3**2)/R/2 + CALL SPHERD(RU,Z) + Z(4)=SQRT(RU**2+AM2**2) +C and boost first two decay products to rest frame of eta. + CALL bostdq(-1,Z,X,X) + CALL bostdq(-1,Z,Y,Y) +C redefine Z(4) to 4-momentum of the last decay product: + Z(1)=-Z(1) + Z(2)=-Z(2) + Z(3)=-Z(3) + Z(4)=SQRT(RU**2+XM3**2) +C boost all to lab and move to real*4; also masses + CALL bostdq(-1,PETA,X,X) + CALL bostdq(-1,PETA,Y,Y) + CALL bostdq(-1,PETA,Z,Z) + DO L=1,4 + PHOT1(L)=X(L) + PHOT2(L)=Y(L) + PHOT3(L)=Z(L) + ENDDO + YM1=XM1 + YM2=XM2 + YM3=XM3 +C to hepevt + CALL FILHEP(0,1,ID1,K,K,0,0,PHOT1,YM1,.TRUE.) + CALL FILHEP(0,1,ID2,K,K,0,0,PHOT2,YM2,.TRUE.) + CALL FILHEP(0,1,ID3,K,K,0,0,PHOT3,YM3,.TRUE.) + ENDIF + + +C + END + SUBROUTINE TAUK0S(PETA,K) +C subroutine to decay K0S's from taus. +C this routine belongs to tauola universal interface, but uses +C routines from tauola utilities. Just flat phase space, but 4 channels. +C it is called at the beginning of SUBR. TAUPI0(JAK) +C and as far as hepevt search it is basically the same as TAUPI0. 25.08.2005 + + COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST +* + REAL*4 AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU + * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 + * ,AMK,AMKZ,AMKST,GAMKST + +C position of taus, must be defined by host program: + COMMON /TAUPOS/ NP1,NP2 +c + REAL RRR(1),BRSUM(3) + REAL PHOT1(4),PHOT2(4) + REAL*8 X(4), Y(4) + REAL YM1,YM2 + REAL*8 R,PETA(4),XM1,XM2,XLAM + REAL*8 a,b,c + INTEGER K + XLAM(a,b,c)=SQRT(ABS((a-b-c)**2-4.0*b*c)) +C position of decaying particle: + + +! DO L=1,4 +! PETA(L)= phep(L,K) ! K0S 4 momentum (this is cloned from eta decay) +! ENDDO +C K0S cumulated branching ratios: + BRSUM(1)=0.313 ! 2 PI0 + BRSUM(2)=1.0 ! BRSUM(1)+0.319 ! Pi+ PI- + BRSUM(3)=BRSUM(2)+0.237 ! pi+ pi- pi0 rest is thus pi+pi-gamma + CALL RANMAR(RRR,1) + + IF(RRR(1).LT.BRSUM(1)) THEN ! 2 pi0 + ID1= 111 + ID2= 111 + XM1=AMPIZ ! masses + XM2=AMPIZ + ELSEIF(RRR(1).LT.BRSUM(2)) THEN ! pi+ pi- + ID1= 211 + ID2=-211 + XM1=AMPI ! masses + XM2=AMPI + ELSE ! gamma gamma unused !!! + ID1= 22 + ID2= 22 + XM1= 0.0 ! masses + XM2= 0.0 + ENDIF + +! random 3 vector on the sphere, of equal mass !! + R=SQRT(PETA(4)**2-PETA(3)**2-PETA(2)**2-PETA(1)**2)/2D0 + R4=R + R=SQRT(ABS(R**2-XM1**2)) + CALL SPHERD(R,X) + X(4)=R4 + Y(4)=R4 + + Y(1)=-X(1) + Y(2)=-X(2) + Y(3)=-X(3) +! boost to lab and to real*4 + CALL bostdq(-1,PETA,X,X) + CALL bostdq(-1,PETA,Y,Y) + DO L=1,4 + PHOT1(L)=X(L) + PHOT2(L)=Y(L) + ENDDO + + YM1=XM1 + YM2=XM2 +C to hepevt + CALL FILHEP(0,1,ID1,K,K,0,0,PHOT1,YM1,.TRUE.) + CALL FILHEP(0,1,ID2,K,K,0,0,PHOT2,YM2,.TRUE.) + +C + END + + subroutine bostdq(idir,vv,pp,q) +* ******************************* +c Boost along arbitrary vector v (see eg. J.D. Jacson, Classical +c Electrodynamics). +c Four-vector pp is boosted from an actual frame to the rest frame +c of the four-vector v (for idir=1) or back (for idir=-1). +c q is a resulting four-vector. +c Note: v must be time-like, pp may be arbitrary. +c +c Written by: Wieslaw Placzek date: 22.07.1994 +c Last update: 3/29/95 by: M.S. +c + implicit DOUBLE PRECISION (a-h,o-z) + parameter (nout=6) + DOUBLE PRECISION v(4),p(4),q(4),pp(4),vv(4) + save +! + do 1 i=1,4 + v(i)=vv(i) + 1 p(i)=pp(i) + amv=(v(4)**2-v(1)**2-v(2)**2-v(3)**2) + if (amv.le.0d0) then + write(6,*) 'bosstv: warning amv**2=',amv + endif + amv=sqrt(abs(amv)) + if (idir.eq.-1) then + q(4)=( p(1)*v(1)+p(2)*v(2)+p(3)*v(3)+p(4)*v(4))/amv + wsp =(q(4)+p(4))/(v(4)+amv) + elseif (idir.eq.1) then + q(4)=(-p(1)*v(1)-p(2)*v(2)-p(3)*v(3)+p(4)*v(4))/amv + wsp =-(q(4)+p(4))/(v(4)+amv) + else + write(nout,*)' >>> boostv: wrong value of idir = ',idir + endif + q(1)=p(1)+wsp*v(1) + q(2)=p(2)+wsp*v(2) + q(3)=p(3)+wsp*v(3) + end + + + + -- 2.43.0