LCOV - code coverage report
Current view: top level - TEvtGen/EvtGen/EvtGenModels - EvtDDalitz.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 509 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 10 0.0 %

          Line data    Source code
       1             : //--------------------------------------------------------------------------
       2             : //
       3             : // Environment:
       4             : //      This software is part of the EvtGen package developed jointly
       5             : //      for the BaBar and CLEO collaborations.  If you use all or part
       6             : //      of it, please give an appropriate acknowledgement.
       7             : //
       8             : // Copyright Information: See EvtGen/COPYRIGHT
       9             : //      Copyright (C) 1998      Caltech, UCSB
      10             : //
      11             : // Module: EvtDDalitz.cc
      12             : //
      13             : // Description: Routine to handle three-body decays of D0/D0_bar or D+/D-
      14             : //
      15             : // Modification history:
      16             : //
      17             : //    NK     September 3, 1997         Module created
      18             : //
      19             : //------------------------------------------------------------------------
      20             : // 
      21             : #include "EvtGenBase/EvtPatches.hh"
      22             : #include <stdlib.h>
      23             : #include "EvtGenBase/EvtParticle.hh"
      24             : #include "EvtGenBase/EvtGenKine.hh"
      25             : #include "EvtGenBase/EvtPDL.hh"
      26             : #include "EvtGenBase/EvtReport.hh"
      27             : #include "EvtGenBase/EvtResonance.hh"
      28             : #include "EvtGenBase/EvtResonance2.hh"
      29             : #include "EvtGenModels/EvtDDalitz.hh"
      30             : #include <string>
      31             : #include "EvtGenBase/EvtConst.hh"
      32             : #include "EvtGenBase/EvtFlatte.hh"
      33             : #include "EvtGenBase/EvtDecayTable.hh"
      34             : using std::endl;
      35             : 
      36           0 : EvtDDalitz::~EvtDDalitz() {}
      37             : 
      38             : std::string EvtDDalitz::getName(){
      39             :   
      40           0 :   return "D_DALITZ";     
      41             : 
      42             : }
      43             : 
      44             : 
      45             : EvtDecayBase* EvtDDalitz::clone(){
      46             : 
      47           0 :   return new EvtDDalitz;
      48             : 
      49           0 : }
      50             : 
      51             : void EvtDDalitz::init(){
      52             : 
      53             :   // check that there are 0 arguments
      54             : 
      55           0 :   static EvtId DM=EvtPDL::getId("D-");
      56           0 :   static EvtId DP=EvtPDL::getId("D+");
      57           0 :   static EvtId D0=EvtPDL::getId("D0");
      58           0 :   static EvtId D0B=EvtPDL::getId("anti-D0");
      59           0 :   static EvtId DSP=EvtPDL::getId("D_s+");
      60           0 :   static EvtId DSM=EvtPDL::getId("D_s-");
      61           0 :   static EvtId KM=EvtPDL::getId("K-");
      62           0 :   static EvtId KP=EvtPDL::getId("K+");
      63           0 :   static EvtId K0=EvtPDL::getId("K0");
      64           0 :   static EvtId KB=EvtPDL::getId("anti-K0");
      65           0 :   static EvtId KL=EvtPDL::getId("K_L0");
      66           0 :   static EvtId KS=EvtPDL::getId("K_S0");
      67           0 :   static EvtId PIM=EvtPDL::getId("pi-");
      68           0 :   static EvtId PIP=EvtPDL::getId("pi+");
      69           0 :   static EvtId PI0=EvtPDL::getId("pi0");
      70             : 
      71           0 :   static double MPI = EvtPDL::getMeanMass(PI0);
      72           0 :   static double MKP = EvtPDL::getMeanMass(KP);
      73             : 
      74             : 
      75           0 :   checkNArg(0);
      76           0 :   checkNDaug(3);
      77             : 
      78           0 :   checkSpinParent(EvtSpinType::SCALAR);
      79             : 
      80           0 :   checkSpinDaughter(0,EvtSpinType::SCALAR);
      81           0 :   checkSpinDaughter(1,EvtSpinType::SCALAR);
      82           0 :   checkSpinDaughter(2,EvtSpinType::SCALAR);
      83             : 
      84           0 :   EvtId parnum=getParentId();
      85           0 :   EvtId d1=getDaug(0);
      86           0 :   EvtId d2=getDaug(1);
      87           0 :   EvtId d3=getDaug(2);
      88             :     
      89           0 :   _flag=0;
      90           0 :   if ( parnum == D0 ) {
      91             :     //look for either a K- pi+ pi0 or K0bar pi+ pi-
      92           0 :     if ( d1==KM && d2==PIP && d3==PI0 ) { _flag=4; _d1=0; _d2=1; _d3=2;}
      93           0 :     if ( d1==KM && d3==PIP && d2==PI0 ) { _flag=4; _d1=0; _d2=2; _d3=1;}
      94           0 :     if ( d2==KM && d1==PIP && d3==PI0 ) { _flag=4; _d1=1; _d2=0; _d3=2;}
      95           0 :     if ( d2==KM && d3==PIP && d1==PI0 ) { _flag=4; _d1=1; _d2=2; _d3=0;}
      96           0 :     if ( d3==KM && d1==PIP && d2==PI0 ) { _flag=4; _d1=2; _d2=0; _d3=1;}
      97           0 :     if ( d3==KM && d2==PIP && d1==PI0 ) { _flag=4; _d1=2; _d2=1; _d3=0;}
      98             : 
      99           0 :     if ( d1==KB && d2==PIP && d3==PIM )  { _flag=3; _d1=0; _d2=2; _d3=1;}
     100           0 :     if ( d1==KB && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
     101           0 :     if ( d2==KB && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
     102           0 :     if ( d2==KB && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
     103           0 :     if ( d3==KB && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
     104           0 :     if ( d3==KB && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
     105             : 
     106           0 :     if ( d1==KL && d2==PIP && d3==PIM )  { _flag=3; _d1=0; _d2=2; _d3=1;}
     107           0 :     if ( d1==KL && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
     108           0 :     if ( d2==KL && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
     109           0 :     if ( d2==KL && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
     110           0 :     if ( d3==KL && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
     111           0 :     if ( d3==KL && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
     112             : 
     113           0 :     if ( d1==KS && d2==PIP && d3==PIM )  { _flag=3; _d1=0; _d2=2; _d3=1;}
     114           0 :     if ( d1==KS && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;}
     115           0 :     if ( d2==KS && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
     116           0 :     if ( d2==KS && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
     117           0 :     if ( d3==KS && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
     118           0 :     if ( d3==KS && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
     119             :     
     120           0 :     if ( d1==KS && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
     121           0 :     if ( d1==KS && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
     122           0 :     if ( d2==KS && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
     123           0 :     if ( d2==KS && d3==KP && d1==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
     124           0 :     if ( d3==KS && d1==KP && d2==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
     125           0 :     if ( d3==KS && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}   
     126             : 
     127           0 :     if ( d1==KL && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
     128           0 :     if ( d1==KL && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
     129           0 :     if ( d2==KL && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
     130           0 :     if ( d2==KL && d3==KP && d1==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
     131           0 :     if ( d3==KL && d1==KP && d2==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
     132           0 :     if ( d3==KL && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}   
     133             : 
     134           0 :     if ( d1==KB && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;}
     135           0 :     if ( d1==KB && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;}
     136           0 :     if ( d2==KB && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;}
     137           0 :     if ( d2==KB && d3==KP && d1==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;}
     138           0 :     if ( d3==KB && d1==KP && d2==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;}
     139           0 :     if ( d3==KB && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;}   
     140             : 
     141           0 :     if ( d1==PIM && d2==PIP && d3==PI0 ) { _flag=12;_d1=0;_d2=1;_d3=2;}
     142           0 :     if ( d1==PIM && d3==PIP && d2==PI0 ) { _flag=12;_d1=0;_d2=2;_d3=1;}
     143           0 :     if ( d2==PIM && d1==PIP && d3==PI0 ) { _flag=12;_d1=1;_d2=0;_d3=2;}
     144           0 :     if ( d2==PIM && d3==PIP && d1==PI0 ) { _flag=12;_d1=2;_d2=0;_d3=1;}
     145           0 :     if ( d3==PIM && d1==PIP && d2==PI0 ) { _flag=12;_d1=1;_d2=2;_d3=0;}
     146           0 :     if ( d3==PIM && d2==PIP && d1==PI0 ) { _flag=12;_d1=2;_d2=1;_d3=0;}
     147             :   }
     148           0 :   if ( parnum == D0B ) {
     149             :     //look for either a K+ pi- pi0 or K0 pi+ pi-
     150           0 :     if ( d1==KP && d2==PIM && d3==PI0 )  { _flag=4; _d1=0; _d2=1; _d3=2;}
     151           0 :     if ( d1==KP && d3==PIM && d2==PI0 ) { _flag=4; _d1=0; _d2=2; _d3=1;}
     152           0 :     if ( d2==KP && d1==PIM && d3==PI0 ) { _flag=4; _d1=1; _d2=0; _d3=2;}
     153           0 :     if ( d2==KP && d3==PIM && d1==PI0 ) { _flag=4; _d1=1; _d2=2; _d3=0;}
     154           0 :     if ( d3==KP && d1==PIM && d2==PI0 ) { _flag=4; _d1=2; _d2=0; _d3=1;}
     155           0 :     if ( d3==KP && d2==PIM && d1==PI0 ) { _flag=4; _d1=2; _d2=1; _d3=0;}
     156             : 
     157           0 :     if ( d1==K0 && d2==PIP && d3==PIM )  { _flag=3; _d1=0; _d2=1; _d3=2;}
     158           0 :     if ( d1==K0 && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
     159           0 :     if ( d2==K0 && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
     160           0 :     if ( d2==K0 && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
     161           0 :     if ( d3==K0 && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
     162           0 :     if ( d3==K0 && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
     163             : 
     164           0 :     if ( d1==KL && d2==PIP && d3==PIM )  { _flag=3; _d1=0; _d2=1; _d3=2;}
     165           0 :     if ( d1==KL && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
     166           0 :     if ( d2==KL && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
     167           0 :     if ( d2==KL && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
     168           0 :     if ( d3==KL && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
     169           0 :     if ( d3==KL && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
     170             : 
     171           0 :     if ( d1==KS && d2==PIP && d3==PIM )  { _flag=3; _d1=0; _d2=1; _d3=2;}
     172           0 :     if ( d1==KS && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;}
     173           0 :     if ( d2==KS && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;}
     174           0 :     if ( d2==KS && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;}
     175           0 :     if ( d3==KS && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;}
     176           0 :     if ( d3==KS && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;}
     177             : 
     178           0 :     if ( d1==KS && d2==KM && d3==KP ) {_flag=5;_d1=0;_d2=1;_d3=2;}
     179           0 :     if ( d1==KS && d3==KM && d2==KP ) {_flag=5;_d1=0;_d2=2;_d3=1;}
     180           0 :     if ( d2==KS && d1==KM && d3==KP ) {_flag=5;_d1=1;_d2=0;_d3=2;}
     181           0 :     if ( d2==KS && d3==KM && d1==KP ) {_flag=5;_d1=2;_d2=0;_d3=1;}
     182           0 :     if ( d3==KS && d1==KM && d2==KP ) {_flag=5;_d1=1;_d2=2;_d3=0;}
     183           0 :     if ( d3==KS && d2==KM && d1==KP ) {_flag=5;_d1=2;_d2=1;_d3=0;}
     184             : 
     185           0 :     if ( d1==KL && d2==KM && d3==KP ) {_flag=5;_d1=0;_d2=1;_d3=2;}
     186           0 :     if ( d1==KL && d3==KM && d2==KP ) {_flag=5;_d1=0;_d2=2;_d3=1;}
     187           0 :     if ( d2==KL && d1==KM && d3==KP ) {_flag=5;_d1=1;_d2=0;_d3=2;}
     188           0 :     if ( d2==KL && d3==KM && d1==KP ) {_flag=5;_d1=2;_d2=0;_d3=1;}
     189           0 :     if ( d3==KL && d1==KM && d2==KP ) {_flag=5;_d1=1;_d2=2;_d3=0;}
     190           0 :     if ( d3==KL && d2==KM && d1==KP ) {_flag=5;_d1=2;_d2=1;_d3=0;}
     191             : 
     192           0 :     if ( d1==K0 && d2==KM && d3==KP ) {_flag=5;_d1=0;_d2=1;_d3=2;}
     193           0 :     if ( d1==K0 && d3==KM && d2==KP ) {_flag=5;_d1=0;_d2=2;_d3=1;}
     194           0 :     if ( d2==K0 && d1==KM && d3==KP ) {_flag=5;_d1=1;_d2=0;_d3=2;}
     195           0 :     if ( d2==K0 && d3==KM && d1==KP ) {_flag=5;_d1=2;_d2=0;_d3=1;}
     196           0 :     if ( d3==K0 && d1==KM && d2==KP ) {_flag=5;_d1=1;_d2=2;_d3=0;}
     197           0 :     if ( d3==K0 && d2==KM && d1==KP ) {_flag=5;_d1=2;_d2=1;_d3=0;}
     198             : 
     199           0 :     if ( d1==PIP && d2==PIM && d3==PI0 ) { _flag=12;_d1=0;_d2=1;_d3=2;}
     200           0 :     if ( d1==PIP && d3==PIM && d2==PI0 ) { _flag=12;_d1=0;_d2=2;_d3=1;}
     201           0 :     if ( d2==PIP && d1==PIM && d3==PI0 ) { _flag=12;_d1=1;_d2=0;_d3=2;}
     202           0 :     if ( d2==PIP && d3==PIM && d1==PI0 ) { _flag=12;_d1=2;_d2=0;_d3=1;}
     203           0 :     if ( d3==PIP && d1==PIM && d2==PI0 ) { _flag=12;_d1=1;_d2=2;_d3=0;}
     204           0 :     if ( d3==PIP && d2==PIM && d1==PI0 ) { _flag=12;_d1=2;_d2=1;_d3=0;}
     205             : 
     206             :   }
     207             : 
     208           0 :   if ( parnum == DP ) {
     209             :     //look for K- pi+ pi+
     210           0 :     if ( d1==KB && d2==PIP && d3==PI0 )  { _flag=2; _d1=0; _d2=1; _d3=2;}
     211           0 :     if ( d1==KB && d3==PIP && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
     212           0 :     if ( d2==KB && d1==PIP && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
     213           0 :     if ( d2==KB && d3==PIP && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
     214           0 :     if ( d3==KB && d1==PIP && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
     215           0 :     if ( d3==KB && d2==PIP && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
     216             : 
     217           0 :     if ( d1==KL && d2==PIP && d3==PI0 )  { _flag=2; _d1=0; _d2=1; _d3=2;}
     218           0 :     if ( d1==KL && d3==PIP && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
     219           0 :     if ( d2==KL && d1==PIP && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
     220           0 :     if ( d2==KL && d3==PIP && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
     221           0 :     if ( d3==KL && d1==PIP && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
     222           0 :     if ( d3==KL && d2==PIP && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
     223             : 
     224           0 :     if ( d1==KS && d2==PIP && d3==PI0 )  { _flag=2; _d1=0; _d2=1; _d3=2;}
     225           0 :     if ( d1==KS && d3==PIP && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
     226           0 :     if ( d2==KS && d1==PIP && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
     227           0 :     if ( d2==KS && d3==PIP && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
     228           0 :     if ( d3==KS && d1==PIP && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
     229           0 :     if ( d3==KS && d2==PIP && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
     230             : 
     231           0 :     if ( d1==KM && d2==PIP && d3==PIP )  { _flag=1; _d1=0; _d2=1; _d3=2;}
     232           0 :     if ( d2==KM && d1==PIP && d3==PIP ) { _flag=1; _d1=1; _d2=0; _d3=2;}
     233           0 :     if ( d3==KM && d1==PIP && d2==PIP ) { _flag=1; _d1=2; _d2=0; _d3=1;}
     234             :   }
     235             : 
     236           0 :   if ( parnum == DM ) {
     237             :     //look for K- pi+ pi+
     238           0 :     if ( d1==K0 && d2==PIM && d3==PI0 )  { _flag=2; _d1=0; _d2=1; _d3=2;}
     239           0 :     if ( d1==K0 && d3==PIM && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
     240           0 :     if ( d2==K0 && d1==PIM && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
     241           0 :     if ( d2==K0 && d3==PIM && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
     242           0 :     if ( d3==K0 && d1==PIM && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
     243           0 :     if ( d3==K0 && d2==PIM && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
     244             : 
     245           0 :     if ( d1==KL && d2==PIM && d3==PI0 )  { _flag=2; _d1=0; _d2=1; _d3=2;}
     246           0 :     if ( d1==KL && d3==PIM && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
     247           0 :     if ( d2==KL && d1==PIM && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
     248           0 :     if ( d2==KL && d3==PIM && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
     249           0 :     if ( d3==KL && d1==PIM && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
     250           0 :     if ( d3==KL && d2==PIM && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
     251             : 
     252           0 :     if ( d1==KS && d2==PIM && d3==PI0 )  { _flag=2; _d1=0; _d2=1; _d3=2;}
     253           0 :     if ( d1==KS && d3==PIM && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;}
     254           0 :     if ( d2==KS && d1==PIM && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;}
     255           0 :     if ( d2==KS && d3==PIM && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;}
     256           0 :     if ( d3==KS && d1==PIM && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;}
     257           0 :     if ( d3==KS && d2==PIM && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;}
     258             : 
     259           0 :     if ( d1==KP && d2==PIM && d3==PIM )  { _flag=1; _d1=0; _d2=1; _d3=2;}
     260           0 :     if ( d2==KP && d1==PIM && d3==PIM ) { _flag=1; _d1=1; _d2=0; _d3=2;}
     261           0 :     if ( d3==KP && d1==PIM && d2==PIM ) { _flag=1; _d1=2; _d2=0; _d3=1;}
     262             :   }
     263             : 
     264           0 :   if ( parnum == DSP ) {
     265           0 :      if ( d1==KM && d2==KP && d3==PIP ) { _flag=6; _d1=0; _d2=1; _d3=2; }
     266           0 :      if ( d1==KM && d3==KP && d2==PIP ) { _flag=6; _d1=0; _d2=2; _d3=1; }
     267           0 :      if ( d2==KM && d1==KP && d3==PIP ) { _flag=6; _d1=1; _d2=0; _d3=2; }
     268           0 :      if ( d2==KM && d3==KP && d1==PIP ) { _flag=6; _d1=1; _d2=2; _d3=0; }
     269           0 :      if ( d3==KM && d1==KP && d2==PIP ) { _flag=6; _d1=2; _d2=0; _d3=1; }
     270           0 :      if ( d3==KM && d2==KP && d1==PIP ) { _flag=6; _d1=2; _d2=1; _d3=0; }
     271             : 
     272           0 :      if ( d1==PIM && d2==PIP && d3==KP ) { _flag=9; _d1=0; _d2=1; _d3=2; }
     273           0 :      if ( d1==PIM && d3==PIP && d2==KP ) { _flag=9; _d1=0; _d2=2; _d3=1; }
     274           0 :      if ( d2==PIM && d1==PIP && d3==KP ) { _flag=9; _d1=1; _d2=0; _d3=2; }
     275           0 :      if ( d2==PIM && d3==PIP && d1==KP ) { _flag=9; _d1=1; _d2=2; _d3=0; }
     276           0 :      if ( d3==PIM && d1==PIP && d2==KP ) { _flag=9; _d1=2; _d2=0; _d3=1; }
     277           0 :      if ( d3==PIM && d2==PIP && d1==KP ) { _flag=9; _d1=2; _d2=1; _d3=0; }
     278             : 
     279           0 :      if ( d1==PIM && d2==PIP && d3==PIP ) { _flag=11; _d1=0; _d2=1; _d3=2; }
     280           0 :      if ( d1==PIM && d3==PIP && d2==PIP ) { _flag=11; _d1=0; _d2=2; _d3=1; }
     281           0 :      if ( d2==PIM && d1==PIP && d3==PIP ) { _flag=11; _d1=1; _d2=0; _d3=2; }
     282           0 :      if ( d2==PIM && d3==PIP && d1==PIP ) { _flag=11; _d1=1; _d2=2; _d3=0; }
     283           0 :      if ( d3==PIM && d1==PIP && d2==PIP ) { _flag=11; _d1=2; _d2=0; _d3=1; }
     284           0 :      if ( d3==PIM && d2==PIP && d1==PIP ) { _flag=11; _d1=2; _d2=1; _d3=0; }
     285             :   }
     286             : 
     287           0 :   if ( parnum == DSM ) {
     288           0 :      if ( d1==KP && d2==KM && d3==PIM ) { _flag=6; _d1=0; _d2=1; _d3=2; }
     289           0 :      if ( d1==KP && d3==KM && d2==PIM ) { _flag=6; _d1=0; _d2=2; _d3=1; }
     290           0 :      if ( d2==KP && d1==KM && d3==PIM ) { _flag=6; _d1=1; _d2=0; _d3=2; }
     291           0 :      if ( d2==KP && d3==KM && d1==PIM ) { _flag=6; _d1=1; _d2=2; _d3=0; }
     292           0 :      if ( d3==KP && d1==KM && d2==PIM ) { _flag=6; _d1=2; _d2=0; _d3=1; }
     293           0 :      if ( d3==KP && d2==KM && d1==PIM ) { _flag=6; _d1=2; _d2=1; _d3=0; }
     294             : 
     295           0 :      if ( d1==PIP && d2==PIM && d3==KM ) { _flag=9; _d1=0; _d2=1; _d3=2; }
     296           0 :      if ( d1==PIP && d3==PIM && d2==KM ) { _flag=9; _d1=0; _d2=2; _d3=1; }
     297           0 :      if ( d2==PIP && d1==PIM && d3==KM ) { _flag=9; _d1=1; _d2=0; _d3=2; }
     298           0 :      if ( d2==PIP && d3==PIM && d1==KM ) { _flag=9; _d1=1; _d2=2; _d3=0; }
     299           0 :      if ( d3==PIP && d1==PIM && d2==KM ) { _flag=9; _d1=2; _d2=0; _d3=1; }
     300           0 :      if ( d3==PIP && d2==PIM && d1==KM ) { _flag=9; _d1=2; _d2=1; _d3=0; }
     301             :      
     302           0 :      if ( d1==PIP && d2==PIM && d3==PIM ) { _flag=11; _d1=0; _d2=1; _d3=2; }
     303           0 :      if ( d1==PIP && d3==PIM && d2==PIM ) { _flag=11; _d1=0; _d2=2; _d3=1; }
     304           0 :      if ( d2==PIP && d1==PIM && d3==PIM ) { _flag=11; _d1=1; _d2=0; _d3=2; }
     305           0 :      if ( d2==PIP && d3==PIM && d1==PIM ) { _flag=11; _d1=1; _d2=2; _d3=0; }
     306           0 :      if ( d3==PIP && d1==PIM && d2==PIM ) { _flag=11; _d1=2; _d2=0; _d3=1; }
     307           0 :      if ( d3==PIP && d2==PIM && d1==PIM ) { _flag=11; _d1=2; _d2=1; _d3=0; }
     308             :      
     309             :   }
     310           0 :   if ( parnum == DP ) {
     311           0 :      if ( d1==KM && d2==KP && d3==PIP ) { _flag=7; _d1=0; _d2=1; _d3=2; }
     312           0 :      if ( d1==KM && d3==KP && d2==PIP ) { _flag=7; _d1=0; _d2=2; _d3=1; }
     313           0 :      if ( d2==KM && d1==KP && d3==PIP ) { _flag=7; _d1=1; _d2=0; _d3=2; }
     314           0 :      if ( d2==KM && d3==KP && d1==PIP ) { _flag=7; _d1=2; _d2=0; _d3=1; }
     315           0 :      if ( d3==KM && d1==KP && d2==PIP ) { _flag=7; _d1=1; _d2=2; _d3=0; }
     316           0 :      if ( d3==KM && d2==KP && d1==PIP ) { _flag=7; _d1=2; _d2=1; _d3=0; }
     317             : 
     318           0 :      if ( d1==PIM && d2==PIP && d3==KP ) { _flag=8; _d1=0; _d2=1; _d3=2; }
     319           0 :      if ( d1==PIM && d3==PIP && d2==KP ) { _flag=8; _d1=0; _d2=2; _d3=1; }
     320           0 :      if ( d2==PIM && d1==PIP && d3==KP ) { _flag=8; _d1=1; _d2=0; _d3=2; }
     321           0 :      if ( d2==PIM && d3==PIP && d1==KP ) { _flag=8; _d1=1; _d2=2; _d3=0; }
     322           0 :      if ( d3==PIM && d1==PIP && d2==KP ) { _flag=8; _d1=2; _d2=0; _d3=1; }
     323           0 :      if ( d3==PIM && d2==PIP && d1==KP ) { _flag=8; _d1=2; _d2=1; _d3=0; }
     324             : 
     325           0 :      if ( d1==PIM && d2==PIP && d3==PIP ) { _flag=10; _d1=0; _d2=1; _d3=2; }
     326           0 :      if ( d1==PIM && d3==PIP && d2==PIP ) { _flag=10; _d1=0; _d2=2; _d3=1; }
     327           0 :      if ( d2==PIM && d1==PIP && d3==PIP ) { _flag=10; _d1=1; _d2=0; _d3=2; }
     328           0 :      if ( d2==PIM && d3==PIP && d1==PIP ) { _flag=10; _d1=1; _d2=2; _d3=0; }
     329           0 :      if ( d3==PIM && d1==PIP && d2==PIP ) { _flag=10; _d1=2; _d2=0; _d3=1; }
     330           0 :      if ( d3==PIM && d2==PIP && d1==PIP ) { _flag=10; _d1=2; _d2=1; _d3=0; }
     331             : 
     332             :   }
     333           0 :   if ( parnum == DM ) {
     334           0 :      if ( d1==KP && d2==KM && d3==PIM ) { _flag=7; _d1=0; _d2=1; _d3=2; }
     335           0 :      if ( d1==KP && d3==KM && d2==PIM ) { _flag=7; _d1=0; _d2=2; _d3=1; }
     336           0 :      if ( d2==KP && d1==KM && d3==PIM ) { _flag=7; _d1=1; _d2=0; _d3=2; }
     337           0 :      if ( d2==KP && d3==KM && d1==PIM ) { _flag=7; _d1=2; _d2=0; _d3=1; }
     338           0 :      if ( d3==KP && d1==KM && d2==PIM ) { _flag=7; _d1=1; _d2=2; _d3=0; }
     339           0 :      if ( d3==KP && d2==KM && d1==PIM ) { _flag=7; _d1=2; _d2=1; _d3=0; } 
     340             :     
     341           0 :      if ( d1==PIP && d2==PIM && d3==KM ) { _flag=8; _d1=0; _d2=1; _d3=2; }
     342           0 :      if ( d1==PIP && d3==PIM && d2==KM ) { _flag=8; _d1=0; _d2=2; _d3=1; }
     343           0 :      if ( d2==PIP && d1==PIM && d3==KM ) { _flag=8; _d1=1; _d2=0; _d3=2; }
     344           0 :      if ( d2==PIP && d3==PIM && d1==KM ) { _flag=8; _d1=1; _d2=2; _d3=0; }
     345           0 :      if ( d3==PIP && d1==PIM && d2==KM ) { _flag=8; _d1=2; _d2=0; _d3=1; }
     346           0 :      if ( d3==PIP && d2==PIM && d1==KM ) { _flag=8; _d1=2; _d2=1; _d3=0; }
     347             : 
     348           0 :      if ( d1==PIP && d2==PIM && d3==PIM ) { _flag=10; _d1=0; _d2=1; _d3=2; }
     349           0 :      if ( d1==PIP && d3==PIM && d2==PIM ) { _flag=10; _d1=0; _d2=2; _d3=1; }
     350           0 :      if ( d2==PIP && d1==PIM && d3==PIM ) { _flag=10; _d1=1; _d2=0; _d3=2; }
     351           0 :      if ( d2==PIP && d3==PIM && d1==PIM ) { _flag=10; _d1=1; _d2=2; _d3=0; }
     352           0 :      if ( d3==PIP && d1==PIM && d2==PIM ) { _flag=10; _d1=2; _d2=0; _d3=1; }
     353           0 :      if ( d3==PIP && d2==PIM && d1==PIM ) { _flag=10; _d1=2; _d2=1; _d3=0; }
     354             :   }
     355             : 
     356           0 :   if ( _flag==6) {
     357           0 :     _kkpi_params.push_back(EvtFlatteParam(MPI, MPI, 0.406));
     358           0 :     _kkpi_params.push_back(EvtFlatteParam(MKP, MKP, 0.800));
     359           0 :   }
     360             : 
     361           0 :   if ( _flag==0) {
     362           0 :     report(Severity::Error,"EvtGen") << "EvtDDaltiz: Invalid mode."<<endl;
     363           0 :     assert(0);
     364             :   }
     365           0 : }
     366             : 
     367             : void EvtDDalitz::initProbMax() {
     368             : 
     369             :   // probmax different for different modes!  
     370             : 
     371           0 :   if ( _flag==1 ) {setProbMax(2500.0);}
     372           0 :   if ( _flag==2 ) {setProbMax(150.0);}
     373           0 :   if ( _flag==3 ) {setProbMax(3000.0);}
     374           0 :   if ( _flag==4 ) {setProbMax(600.0);}
     375           0 :   if ( _flag==5 ) {setProbMax(2500000.0);}
     376           0 :   if ( _flag==6 ) {setProbMax(45000.0);}
     377           0 :   if ( _flag==7 ) {setProbMax(35000.0);}
     378           0 :   if ( _flag==8 ) {setProbMax(2500.0);}
     379           0 :   if ( _flag==9 ) {setProbMax(1700.0);}
     380           0 :   if ( _flag==10 ) {setProbMax(1300.0);}
     381           0 :   if ( _flag==11 ) {setProbMax(2200.0);}
     382           0 :   if ( _flag==12 ) {setProbMax(1000.0);}
     383             : 
     384           0 : }
     385             : 
     386             : void EvtDDalitz::decay( EvtParticle *p){
     387             : 
     388           0 :   static EvtId BP = EvtPDL::getId("B+");                                       
     389           0 :   static EvtId BM = EvtPDL::getId("B-");                                       
     390           0 :   static EvtId B0 = EvtPDL::getId("B0");                                       
     391           0 :   static EvtId B0B = EvtPDL::getId("anti-B0");         
     392             : 
     393           0 :   static EvtId D0=EvtPDL::getId("D0");
     394             : 
     395             :   double oneby2 = 0.707106782;
     396             : 
     397             :   bool isBToDK=false; 
     398           0 :   if ( p -> getParent () ) {                                                   
     399           0 :     EvtId parId = p -> getParent()->getId ();                              
     400           0 :     if ( ( BP == parId ) || ( BM == parId ) || ( B0 == parId ) ||              
     401           0 :                        ( B0B == parId ) )
     402           0 :       if (EvtDecayTable::getInstance()->getDecayFunc(p->getParent())->getName() == "BTODDALITZCPK") isBToDK=true;   
     403           0 :   }                                                                            
     404             :   
     405             : 
     406             : //same structure for all of these decays
     407             : 
     408           0 :   p->initializePhaseSpace(getNDaug(),getDaugs());
     409           0 :   EvtVector4R moms1 = p->getDaug(_d1)->getP4();
     410           0 :   EvtVector4R moms2 = p->getDaug(_d2)->getP4();
     411           0 :   EvtVector4R moms3 = p->getDaug(_d3)->getP4();
     412             : 
     413           0 :   EvtVector4R p4_p;
     414           0 :   p4_p.set(p->mass(),0.0,0.0,0.0);
     415             : 
     416           0 :   EvtComplex amp(1.0,0.0);
     417             : 
     418             : //now determine which D and which decay
     419             : 
     420             : //data from Anjos et al, Phys.Rev.D 1993, v.48,num.1,p.56 (E691 resuls)
     421             : //for D+ -> K- pi+ pi+, and from Adler et al, Phys.Lett. B196 (1987), 107
     422             : //(Mark III results) for D+ -> K0bar pi+ pi0. 
     423             :   //CLEO results for D0->k-pi+pi0
     424             : 
     425           0 :   if ( _flag==1) {
     426             : 
     427             :    //  //have a D+ -> K- pi+ pi+ decay, or charge conjugate
     428             : //     //Anjos etal e691 - Phys Rev D48, 56 (1993) 
     429             :     // EvtResonance DplusRes11(p4_p,moms1,moms2,0.78,-60.0,0.0498,0.89610,1);
     430             : //     EvtResonance DplusRes12(p4_p,moms3,moms1,0.78,-60.0,0.0498,0.89610,1);//K*(892)
     431             :     
     432             : //     EvtResonance DplusRes21(p4_p,moms1,moms2,0.53,132.0,0.287,1.429,0);
     433             : //     EvtResonance DplusRes22(p4_p,moms3,moms1,0.53,132.0,0.287,1.429,0);//K*(1430)
     434             :     
     435             : //     EvtResonance DplusRes31(p4_p,moms1,moms2,0.47,-51.0,0.323,1.714,1);
     436             : //     EvtResonance DplusRes32(p4_p,moms3,moms1,0.47,-51.0,0.323,1.714,1);//K*(1680)
     437             :     
     438             : //     amp = amp + oneby2*(-DplusRes11.resAmpl()+DplusRes12.resAmpl()) + oneby2*(DplusRes21.resAmpl() + DplusRes22.resAmpl()) + oneby2*(-DplusRes31.resAmpl()+ DplusRes32.resAmpl());
     439             :  
     440             : 
     441             : //    EvtResonance DplusRes11(p4_p,moms1,moms2,amp,phase,width,mass,L);
     442             :     //CLEO-c p15,arxiv:0802.4214v2 
     443           0 :     EvtResonance2 DplusRes11(p4_p,moms1,moms2,1.0, 0.0, 0.0503, 0.896, 1, true);
     444           0 :     EvtResonance2 DplusRes12(p4_p,moms3,moms1,1.0, 0.0, 0.0503, 0.896, 1, true);//K*(892)
     445           0 :     EvtResonance2 DplusRes21(p4_p,moms1,moms2,3.0, 49.7-180.0, 0.164, 1.463, 0);
     446           0 :     EvtResonance2 DplusRes22(p4_p,moms3,moms1,3.0, 49.7-180.0, 0.164, 1.463, 0);//K*(1430)
     447           0 :     EvtResonance2 DplusRes31(p4_p, moms1, moms2, 0.96, -29.9+180.0, 0.109, 1.4324, 2, true);     
     448           0 :     EvtResonance2 DplusRes32(p4_p, moms3, moms1, 0.96, -29.9+180.0, 0.109, 1.4324, 2, true);// K*_2(1430)
     449           0 :     EvtResonance2 DplusRes41(p4_p,moms1,moms2, 6.5, 29.0, 0.323, 1.717, 1, true);
     450           0 :     EvtResonance2 DplusRes42(p4_p,moms3,moms1, 6.5, 29.0, 0.323, 1.717, 1, true);//K*(1680)
     451           0 :     EvtResonance2 DplusRes51(p4_p,moms1,moms2, 5.01, -163.7+180.0, 0.470, 0.809, 0);
     452           0 :     EvtResonance2 DplusRes52(p4_p,moms3,moms1, 5.01, -163.7+180.0, 0.470, 0.809, 0);//kappa(800)
     453           0 :     double pi180inv = 1.0/EvtConst::radToDegrees;  
     454           0 :     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());
     455             :     //amp = amp+oneby2*(-DplusRes11.resAmpl()+DplusRes12.resAmpl());
     456             :     
     457           0 :  }
     458             :   
     459           0 :   if ( _flag==2) {
     460             : 
     461             : //have a D+ -> K0bar pi+ pi0 decay 
     462             : //adler etal MarkIII - Phys Lett B196, 107 (1987)    
     463             : // Results in this paper:
     464             : //   Kbar rho+    FitFraction = 68+/-8+/-12    Phase   0
     465             : //   Kbar* pi+                  19+/-6+/-6            43+/-23
     466             : //   nonres                     13+/-7+/-8           250+/-19   
     467             : // These numbers below seem not to be exactly the same
     468             : // the phases are equiv to -106=254 and 41
     469             : // 
     470           0 :     EvtResonance DplusKpipi0Res1(p4_p,moms2,moms3,1.00,0.00,0.1512,0.7699,1); //rho+  
     471           0 :     EvtResonance DplusKpipi0Res2(p4_p,moms3,moms1,0.8695,0.7191,0.0498,0.89159,1); //K*0
     472             :     
     473           0 :     amp = 0.9522*EvtComplex(cos(-1.8565),sin(-1.8565)) + 1.00*DplusKpipi0Res1.relBrWig(0) + 0.8695*EvtComplex(cos(0.7191),sin(0.7191))*DplusKpipi0Res2.relBrWig(1);
     474             :     
     475           0 :   }
     476             : 
     477           0 :   if(_flag==3) {
     478             :     // D0 -> K0 pi+ pi- + CC                                                                       
     479             :     // If it does not come from a B->DK, decay it as D0 or D0bar separatly                         
     480             :     // if p4_p is D0, moms1 is K0, moms2 is pi-, moms3 is pi+                                      
     481             :     // if p4_p is D0bar, moms1 is K0, moms2 is pi+, moms3 is pi-                                   
     482             : 
     483           0 :     if ( isBToDK ) {
     484             :       // Gamma angle in rad.                                                                       
     485           0 :       double gamma = EvtDecayTable::getInstance()->getDecayFunc( p->getParent() )
     486             :         -> getArg( 0 )  ;
     487             :       // Strong phase in rad.                                                                      
     488           0 :       double delta =  EvtDecayTable::getInstance()->getDecayFunc( p->getParent() )
     489             :         -> getArg( 1 )  ;
     490             :       // Ratio between B->D0K and B->D0barK                                                        
     491           0 :       double A     =  EvtDecayTable::getInstance()->getDecayFunc( p->getParent() )
     492             :         -> getArg( 2 )  ;
     493             : 
     494           0 :       EvtComplex Factor( fabs( A ) * cos ( delta ) ,
     495           0 :                          fabs( A ) * sin ( delta ) ) ;
     496             : 
     497           0 :       if ( ( p->getParent()->getId() == BP ) ||
     498           0 :            ( p->getParent()->getId() == B0 ) ) {
     499             :         // the ratio D/Dbar                                                                        
     500           0 :         Factor = Factor * EvtComplex( cos ( gamma ) , sin ( gamma ) ) ;
     501           0 :         if ( p->getId() == D0 ) {
     502             :           // the flavor of the particle has no meaning. But we need                                
     503             :           // it to know which daughter is pi+ or pi-                                               
     504             :           // M( B+ or B0 ) = f(Dbar) + factor * f(D)                                               
     505             :           // f(Dbar) = amplDtoK0PiPi(pD, K0, pi+, pi-)                                             
     506             :           // f(D)    = amplDtoK0PiPi(pD, K0, pi-, pi+)                                             
     507             :           // Then ...                                                
     508           0 :           amp = amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) +
     509           0 :             Factor * amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) ;
     510           0 :         }
     511             :         else {
     512           0 :           amp = amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) +
     513           0 :             Factor * amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) ;
     514             :         }
     515             :       }
     516           0 :       else if ( ( p->getParent() -> getId() == BM ) ||
     517           0 :                 ( p->getParent() -> getId() == B0B ) ) {
     518           0 :         Factor = Factor * EvtComplex( cos ( gamma ) , - sin ( gamma ) ) ;
     519             :         // here M( B- or B0bar ) = f(D) + factor * f(Dbar) then ...                                
     520           0 :         if ( p->getId() == D0 ) {
     521           0 :           amp = amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) +
     522           0 :             Factor * amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) ;
     523           0 :         }
     524             :         else {
     525           0 :           amp = amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) +
     526           0 :             Factor * amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) ;
     527             :         }
     528             :       }
     529           0 :     }
     530             :     else {
     531           0 :       amp = amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) ;
     532             :     }
     533             :   }
     534             : 
     535             :   
     536           0 :   if(_flag==4) {
     537             : 
     538           0 :     EvtResonance2 DKpipi0Res1(p4_p,moms2,moms3,1.0  ,0.0   ,0.1507,0.770 ,1); //rho
     539           0 :     EvtResonance2 DKpipi0Res2(p4_p,moms1,moms2,0.39, -0.2  ,0.0505,0.8961,1); //k*0
     540           0 :     EvtResonance2 DKpipi0Res3(p4_p,moms1,moms3,0.44, 163.0 ,0.050 ,0.8915,1); //k*-
     541             :     
     542           0 :     EvtResonance2 DKpipi0Res4(p4_p,moms1,moms3,0.77 ,55.5  ,0.294 ,1.412 ,0); //k01430-
     543           0 :     EvtResonance2 DKpipi0Res5(p4_p,moms1,moms2,0.85 ,166.0 ,0.294 ,1.412 ,0); //k01430bar
     544           0 :     EvtResonance2 DKpipi0Res6(p4_p,moms2,moms3,2.5  ,171.0 ,0.240 ,1.700 ,1); //rho1700
     545           0 :     EvtResonance2 DKpipi0Res7(p4_p,moms1,moms3,2.5  ,103.0 ,0.322 ,1.717 ,1); //K*1680-
     546             :     
     547             :     
     548             :     
     549           0 :     double pi180inv = 1.0/EvtConst::radToDegrees;
     550             :     
     551           0 :     amp = EvtComplex(1.75*cos(31.2*pi180inv),1.75*sin(31.2*pi180inv)) 
     552           0 :       + DKpipi0Res1.resAmpl() + DKpipi0Res2.resAmpl() + DKpipi0Res3.resAmpl()
     553           0 :       + DKpipi0Res4.resAmpl() + DKpipi0Res5.resAmpl() 
     554           0 :       + DKpipi0Res6.resAmpl()
     555           0 :       + DKpipi0Res7.resAmpl();
     556             :     
     557           0 :   }
     558             :  
     559           0 :   if(_flag==5) {
     560             : 
     561             :     // D0 -> K0 K+ K- + CC                                                                         
     562             :     // If it does not come from a B->DK, decay it as D0 or D0bar separatly                         
     563             :     // if p4_p is D0, moms1 is K0, moms2 is pi-, moms3 is pi+                                      
     564             :     // if p4_p is D0bar, moms1 is K0, moms2 is pi+, moms3 is pi-                                   
     565             : 
     566           0 :     if ( isBToDK ){
     567             :       // Gamma angle in rad.                                                                       
     568           0 :       double gamma = EvtDecayTable::getInstance()->getDecayFunc( p->getParent() )
     569             :         -> getArg( 0 )  ;
     570             :       // Strong phase in rad.                                                                      
     571           0 :       double delta =  EvtDecayTable::getInstance()->getDecayFunc( p->getParent() )
     572             :         -> getArg( 1 )  ;
     573             :       // Ratio between B->D0K and B->D0barK                                                        
     574           0 :       double A     =  EvtDecayTable::getInstance()->getDecayFunc( p->getParent() )
     575             :         -> getArg( 2 )  ;
     576             : 
     577           0 :       EvtComplex Factor( fabs( A ) * cos ( delta ) ,
     578           0 :                          fabs( A ) * sin ( delta ) ) ;
     579             : 
     580           0 :       if ( ( p->getParent()->getId() == BP ) ||
     581           0 :            ( p->getParent()->getId() == B0 ) ) {
     582             :         // the ratio D/Dbar                                                                        
     583           0 :         Factor = Factor * EvtComplex( cos ( gamma ) , sin ( gamma ) ) ;
     584           0 :         if ( p->getId() == D0 ) {
     585             :           // the flavor of the particle has no meaning. But we need                                
     586             :           // it to know which daughter is pi+ or pi-                                               
     587             :           // M( B+ or B0 ) = f(Dbar) + factor * f(D)                                               
     588             :           // f(Dbar) = amplDtoK0PiPi(pD, K0, K+, K-)                                               
     589             :           // f(D)    = amplDtoK0PiPi(pD, K0, K-, K+)                                               
     590             :           // Then ...                                                                              
     591           0 :           amp = amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) +
     592           0 :             Factor * amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) ;
     593           0 :         }
     594             :         else {
     595           0 :           amp = amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) +
     596           0 :             Factor * amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) ;
     597             :         }
     598             :       }
     599           0 :       else if ( ( p->getParent() -> getId() == BM ) ||
     600           0 :                 ( p->getParent() -> getId() == B0B ) ) {
     601           0 :         Factor = Factor * EvtComplex( cos ( gamma ) , - sin ( gamma ) ) ;
     602             :         // here M( B- or B0bar ) = f(D) + factor * f(Dbar) then ...                                
     603           0 :         if ( p->getId() == D0 ) {
     604           0 :           amp = amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) +
     605           0 :             Factor * amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) ;
     606           0 :         }
     607             :         else {
     608           0 :           amp = amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) +
     609           0 :             Factor * amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) ;
     610             :         }
     611             :       }
     612           0 :     }
     613             :     else {
     614           0 :       amp = amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) ;
     615             :     }
     616             :   }
     617             : 
     618             : 
     619             : 
     620             : 
     621             :   // Ds -> K K pi
     622             :   //Babar, arxiv:1011.4190
     623           0 :   if(_flag==6) {
     624           0 :      EvtResonance2 DsKKpiRes1(p4_p, moms3, moms1, 1.0, 0.0, 0.0455, 0.8944, 1, true); // K*(892)
     625           0 :      EvtResonance2 DsKKpiRes2(p4_p, moms3, moms1, 1.48, 138., 0.290, 1.414, 0); // K*_0(1430)
     626           0 :      EvtFlatte     DsKKpiRes3(p4_p, moms1, moms2, 5.07, 156., 0.965, _kkpi_params); // f_0(980)
     627           0 :      EvtResonance2 DsKKpiRes4(p4_p, moms1, moms2, 1.15, -10., 0.00426, 1.019455, 1, true); // phi(1020)
     628           0 :      EvtResonance2 DsKKpiRes5(p4_p, moms1, moms2, 1.28, 53., 0.265, 1.350, 0); // f_0(1370)
     629           0 :      EvtResonance2 DsKKpiRes6(p4_p, moms1, moms2, 1.19, 87., 0.137, 1.724, 0); // f_0(1710)
     630           0 :      amp = DsKKpiRes1.resAmpl() + DsKKpiRes2.resAmpl() + DsKKpiRes3.resAmpl()
     631           0 :         + DsKKpiRes4.resAmpl() + DsKKpiRes5.resAmpl() + DsKKpiRes6.resAmpl();
     632             : 
     633           0 :   }
     634             : 
     635             :   //D+ -> K K pi
     636             :   //CLEO PRD 78, 072003 (2008) Fit A
     637           0 :   if(_flag==7) {
     638           0 :     EvtResonance2 DpKKpiRes1(p4_p, moms3, moms1, 1.0, 0.0, 0.0503, 0.8960, 1, true); // K*(892)
     639           0 :     EvtResonance2 DpKKpiRes2(p4_p, moms3, moms1, 3.7, 73.0, 0.290, 1.414, 0); // K*_0(1430)
     640           0 :     EvtResonance2 DpKKpiRes3(p4_p, moms1, moms2, 1.189, -179.0+180.0, 0.00426, 1.019455, 1, true); // phi(1020)
     641           0 :     EvtResonance2 DpKKpiRes4(p4_p, moms1, moms2, 1.72, 123., 0.265, 1.474, 0); // a_0(1450)
     642           0 :     EvtResonance2 DpKKpiRes5(p4_p, moms1, moms2, 1.9, -52.0+180.0, 0.15, 1.68, 1, true); // phi(1680)
     643           0 :     EvtResonance2 DpKKpiRes6(p4_p, moms3, moms1, 6.4, 150., 0.109, 1.4324, 2, true); // K*_2(1430)    
     644           0 :     double pi180inv = 1.0/EvtConst::radToDegrees;    
     645           0 :     amp = EvtComplex(5.1*cos((53.0)*pi180inv),5.1*sin((53.0)*pi180inv)) +
     646           0 :       DpKKpiRes1.resAmpl() + DpKKpiRes2.resAmpl() + DpKKpiRes3.resAmpl()
     647           0 :       + DpKKpiRes4.resAmpl() + DpKKpiRes5.resAmpl() + DpKKpiRes6.resAmpl();
     648           0 :   }
     649             :   
     650             : //D+ -> K pi pi WS (DCS)
     651             :   //FOCUS PLB 601 10 (2004) ; amplitudes there are individually normalized (although not explicit in the paper)
     652             :   // thus the magnitudes appearing below come from dividing the ones appearing in the paper by the sqrt of the
     653             :   // integral over the DP of the corresponding squared amplitude. Writing as pi- pi+ K+ so pipi resonances are (12)
     654             :   // and Kpi resonances are (31); masses and widths corresponds to PDG 2010
     655           0 :   if(_flag==8) {
     656           0 :     EvtResonance2 DpKpipiDCSRes1(p4_p, moms1, moms2, 1.0, 0.0, 0.149, 0.775, 1, true); // rho(770)
     657           0 :     EvtResonance2 DpKpipiDCSRes2(p4_p, moms3, moms1, 1.0971, -167.1, 0.0487, 0.896, 1, true); // K*(890)
     658           0 :     EvtResonance2 DpKpipiDCSRes3(p4_p, moms1, moms2, 0.4738, -134.5, 0.059, 0.972, 0); // f0(980) as simple BW
     659           0 :     EvtResonance2 DpKpipiDCSRes4(p4_p, moms3, moms1, 2.2688, 54.4, 0.109, 1.432, 2, true); // K*2(1430)
     660           0 :     amp = DpKpipiDCSRes1.resAmpl() + DpKpipiDCSRes2.resAmpl() + DpKpipiDCSRes3.resAmpl()
     661           0 :       + DpKpipiDCSRes4.resAmpl();
     662           0 :   }
     663             : 
     664             :   //Ds+ -> K pi pi WS (CS)
     665             :   //FOCUS PLB 601 10 (2004) ; amplitudes there are individually normalized (although not explicit in the paper)
     666             :   // thus the magnitudes appearing below come from dividing the ones appearing in the paper by the sqrt of the
     667             :   // integral over the DP of the corresponding squared amplitude. Writing as pi- pi+ K+ so pipi resonances are (12)
     668             :   // and Kpi resonances are (31); masses and widths corresponds to PDG 2010
     669             :   // PROBLEM: by simply doing the procedure for D+, the resulting DP and projections do not resemble what is
     670             :   // in the paper; the best model is by adding 180 to the vector Kpi resonances
     671           0 :   if(_flag==9) {
     672           0 :     EvtResonance2 DsKpipiCSRes1(p4_p, moms1, moms2, 1.0, 0.0, 0.149, 0.775, 1, true); // rho(770)
     673           0 :     EvtResonance2 DsKpipiCSRes2(p4_p, moms3, moms1, 0.7236, -18.3, 0.0487, 0.896, 1, true); // K*(890)
     674           0 :     EvtResonance2 DsKpipiCSRes3(p4_p, moms3, moms1, 2.711, 145.2, 0.232, 1.414, 1, true); // K*(1410)
     675           0 :     EvtResonance2 DsKpipiCSRes4(p4_p, moms3, moms1, 1.7549, 59.3, 0.270, 1.425, 0); // K*0(1430)
     676           0 :     EvtResonance2 DsKpipiCSRes5(p4_p, moms1, moms2, 7.0589, -151.7, 0.400, 1.465, 1, true); // rho(1450)
     677           0 :     double pi180inv = 1.0/EvtConst::radToDegrees; 
     678           0 :     amp = EvtComplex(3.98*cos(43.1*pi180inv),3.98*sin(43.1*pi180inv)) + DsKpipiCSRes1.resAmpl()
     679           0 :          + DsKpipiCSRes2.resAmpl() + DsKpipiCSRes3.resAmpl() + DsKpipiCSRes4.resAmpl()
     680           0 :          + DsKpipiCSRes5.resAmpl();
     681           0 :   }
     682             :   // D+ -> pi- pi+ pi+  from E791  [PRL 86 770 (2001)]
     683             :   // masses and widths below correspond to what they used; there, the amplitudes were individually normalized
     684             :   // (although not explicit) so magnitudes here are obtained after correcting for that
     685             :   // Breit-Wigner has a factor of (-1) there which changes the relative phase of the NR wrt to the resonances
     686             :   // thus the NR magnitude is set as negative
     687           0 :   if(_flag==10) {
     688           0 :     EvtResonance2 DppipipiRes11(p4_p, moms1, moms2, 1.0, 0.0, 0.150, 0.769, 1, true); // rho(770)
     689           0 :     EvtResonance2 DppipipiRes12(p4_p, moms3, moms1, 1.0, 0.0, 0.150, 0.769, 1, true); // rho(770)
     690           0 :     EvtResonance2 DppipipiRes21(p4_p, moms1, moms2, 2.2811,  205.7, 0.324, 0.478, 0); // sigma(500)
     691           0 :     EvtResonance2 DppipipiRes22(p4_p, moms3, moms1, 2.2811,  205.7, 0.324, 0.478, 0); // sigma(500)
     692           0 :     EvtResonance2 DppipipiRes31(p4_p, moms1, moms2, 0.4265,  165.0, 0.044, 0.977, 0); // f0(980) simple BW
     693           0 :     EvtResonance2 DppipipiRes32(p4_p, moms3, moms1, 0.4265,  165.0, 0.044, 0.977, 0); // f0(980) simple BW
     694           0 :     EvtResonance2 DppipipiRes41(p4_p, moms1, moms2, 2.0321,   57.3, 0.185, 1.275, 2, true); // f2(1270)
     695           0 :     EvtResonance2 DppipipiRes42(p4_p, moms3, moms1, 2.0321,   57.3, 0.185, 1.275, 2, true); // f2(1270)
     696           0 :     EvtResonance2 DppipipiRes51(p4_p, moms1, moms2, 0.7888,  105.4, 0.173, 1.434, 0); // f0(1370)
     697           0 :     EvtResonance2 DppipipiRes52(p4_p, moms3, moms1, 0.7888,  105.4, 0.173, 1.434, 0); // f0(1370)
     698           0 :     EvtResonance2 DppipipiRes61(p4_p, moms1, moms2, 0.7363,  319.1, 0.310, 1.465, 1, true); // rho(1450)
     699           0 :     EvtResonance2 DppipipiRes62(p4_p, moms3, moms1, 0.7363,  319.1, 0.310, 1.465, 1, true); // rho(1450)
     700           0 :     double pi180inv = 1.0/EvtConst::radToDegrees;  
     701           0 :     amp = EvtComplex(-3.98*cos(57.3*pi180inv),-3.98*sin(57.3*pi180inv))
     702           0 :         +  (DppipipiRes11.resAmpl() - DppipipiRes12.resAmpl())  //spin1
     703           0 :         +  (DppipipiRes21.resAmpl() + DppipipiRes22.resAmpl()) + (DppipipiRes31.resAmpl() + DppipipiRes32.resAmpl())
     704           0 :         +  (DppipipiRes41.resAmpl() + DppipipiRes42.resAmpl()) + (DppipipiRes51.resAmpl() + DppipipiRes52.resAmpl())
     705           0 :         +  (DppipipiRes61.resAmpl() - DppipipiRes62.resAmpl());  //spin1
     706           0 :   }
     707             :   // Ds+ -> pi- pi+ pi+  from E791  [PRL 86 765 (2001)]
     708             :   // masses and widths below correspond to what they used; there, the amplitudes were individually normalized
     709             :   // (although not explicit) so magnitudes here are obtained after correcting for that
     710             :   // Breit-Wigner has a factor of (-1) there which changes the relative phase of the NR wrt to the resonances
     711             :   // thus the NR magnitude is set as negative
     712           0 :   if(_flag==11) {
     713           0 :     EvtResonance2 DspipipiRes11(p4_p, moms1, moms2, 0.288, 109., 0.150, 0.769, 1, true); // rho(770)
     714           0 :     EvtResonance2 DspipipiRes12(p4_p, moms3, moms1, 0.288, 109., 0.150, 0.769, 1, true); // rho(770)
     715           0 :     EvtResonance2 DspipipiRes21(p4_p, moms1, moms2, 1.0, 0.0, 0.044, 0.977, 0); // f0(980) simple BW
     716           0 :     EvtResonance2 DspipipiRes22(p4_p, moms3, moms1, 1.0, 0.0, 0.044, 0.977, 0); // f0(980) simple BW
     717           0 :     EvtResonance2 DspipipiRes31(p4_p, moms1, moms2, 1.075, 133., 0.185, 1.275, 2, true); // f2(1270)
     718           0 :     EvtResonance2 DspipipiRes32(p4_p, moms3, moms1, 1.075, 133., 0.185, 1.275, 2, true); // f2(1270)
     719           0 :     EvtResonance2 DspipipiRes41(p4_p, moms1, moms2, 2.225, 198., 0.173, 1.434, 0); // f0(1370)
     720           0 :     EvtResonance2 DspipipiRes42(p4_p, moms3, moms1, 2.225, 198., 0.173, 1.434, 0); // f0(1370)
     721           0 :     EvtResonance2 DspipipiRes51(p4_p, moms1, moms2, 1.107, 162., 0.310, 1.465, 1, true); // rho(1450)
     722           0 :     EvtResonance2 DspipipiRes52(p4_p, moms3, moms1, 1.107, 162., 0.310, 1.465, 1, true); // rho(1450)
     723           0 :     double pi180inv = 1.0/EvtConst::radToDegrees;  
     724           0 :     amp = EvtComplex(-0.723*cos(181.*pi180inv),-0.723*sin(181.*pi180inv))
     725           0 :         +  (DspipipiRes11.resAmpl() - DspipipiRes12.resAmpl())  //spin1
     726           0 :         +  (DspipipiRes21.resAmpl() + DspipipiRes22.resAmpl()) + (DspipipiRes31.resAmpl() + DspipipiRes32.resAmpl())
     727           0 :         +  (DspipipiRes41.resAmpl() + DspipipiRes42.resAmpl())
     728           0 :         +  (DspipipiRes51.resAmpl() - DspipipiRes52.resAmpl());  //spin1
     729           0 :   } 
     730             :   
     731             :   //D0 -> pi+pi-pi0
     732             :   //PRL 99, 251801 (2007)
     733             :   //arXiv:hep-ex/0703037
     734           0 :   if(_flag==12) {
     735           0 :     EvtResonance2 DpipipiRes1p(p4_p, moms2, moms3, 1.0, 0.0, 0.149, 0.775, 1, true);//rho+(770)
     736           0 :     EvtResonance2 DpipipiRes1(p4_p, moms1, moms2, 0.588, 16.2, 0.149, 0.775, 1, true);//rho0(770)
     737           0 :     EvtResonance2 DpipipiRes1m(p4_p, moms3, moms1, 0.714, -2.0, 0.149, 0.775, 1, true);//rho-(770)
     738           0 :     EvtResonance2 DpipipiRes2p(p4_p, moms2, moms3, 0.21, -146.0, 0.400, 1.465, 1, true);//rho+(1450)
     739           0 :     EvtResonance2 DpipipiRes2(p4_p, moms1, moms2, 0.33, 10.0, 0.400, 1.465, 1, true);//rho0(1450)
     740           0 :     EvtResonance2 DpipipiRes2m(p4_p, moms3, moms1, 0.82, 16.0, 0.400, 1.465, 1, true);//rho-(1450)
     741           0 :     EvtResonance2 DpipipiRes3p(p4_p, moms2, moms3, 2.25, -17.0, 0.250, 1.720, 1, true);//rho+(1700)
     742           0 :     EvtResonance2 DpipipiRes3(p4_p, moms1, moms2, 2.51, -17.0, 0.250, 1.720, 1, true);//rho0(1700)
     743           0 :     EvtResonance2 DpipipiRes3m(p4_p, moms3, moms1, 2.00, -50.0, 0.250, 1.720, 1, true);//rho-(1700)
     744           0 :     EvtResonance2 DpipipiRes4(p4_p, moms1, moms2, 0.015, -59.0, 0.07, 0.980, 0);//f0(980)
     745           0 :     EvtResonance2 DpipipiRes5(p4_p, moms1, moms2, 0.063, 156.0, 0.350, 1.370, 0);//f0(1370)
     746           0 :     EvtResonance2 DpipipiRes6(p4_p, moms1, moms2, 0.058, 12.0, 0.109, 1.505, 0);//f0(1500)
     747           0 :     EvtResonance2 DpipipiRes7(p4_p, moms1, moms2, 0.112, 51.0, 0.135, 1.720, 0);//f0(1720)
     748           0 :     EvtResonance2 DpipipiRes8(p4_p, moms1, moms2, 1.04, -171.0, 0.185, 1.275, 2, true);//f2(1270)
     749           0 :     EvtResonance2 DpipipiRes9(p4_p, moms1, moms2, 0.069, 8.0, 0.600, 0.400, 0);//sigma(400)
     750             :     
     751           0 :     double pi180inv = 1.0/EvtConst::radToDegrees;  
     752           0 :     amp = EvtComplex(0.57*cos(-11.0*pi180inv),0.57*sin(-11.0*pi180inv))
     753           0 :       + DpipipiRes1p.resAmpl() + DpipipiRes1.resAmpl() + DpipipiRes1m.resAmpl()
     754           0 :       + DpipipiRes2p.resAmpl() + DpipipiRes2.resAmpl() + DpipipiRes2m.resAmpl()
     755           0 :       + DpipipiRes3p.resAmpl() + DpipipiRes3.resAmpl() + DpipipiRes3m.resAmpl()
     756           0 :       + DpipipiRes4.resAmpl() + DpipipiRes5.resAmpl() + DpipipiRes6.resAmpl()
     757           0 :       + DpipipiRes7.resAmpl() + DpipipiRes8.resAmpl() + DpipipiRes9.resAmpl();
     758             :     
     759           0 :   } 
     760             :   
     761           0 :   vertex(amp);
     762             : 
     763             :   return ;
     764           0 : }
     765             : 
     766             : EvtComplex EvtDDalitz::amplDtoK0PiPi(EvtVector4R p4_p,  EvtVector4R moms1, 
     767             :                                      EvtVector4R moms2, EvtVector4R moms3) {
     768             : 
     769             :     //K*(892)-
     770           0 :     EvtResonance2 DK2piRes1(p4_p,moms1,moms2,1.418,-190.0,0.0508,0.89166,1);
     771             :     //K0*(1430)
     772           0 :     EvtResonance2 DK2piRes2(p4_p,moms1,moms2,1.818,-337.0,0.294 ,1.412  ,0);
     773             :     //K2*(1430)
     774           0 :     EvtResonance2 DK2piRes3(p4_p,moms1,moms2,0.909,  -5.0,0.0985,1.4256 ,2);
     775             :     //K*(1680)
     776           0 :     EvtResonance2 DK2piRes4(p4_p,moms1,moms2,5.091,-166.0,0.322 ,1.717  ,1);
     777             :     //DCS K*(892)
     778           0 :     EvtResonance2 DK2piRes5(p4_p,moms1,moms3,0.100, -19.0,0.0508,0.89166,1);
     779             :     
     780             :     //Rho
     781           0 :     EvtResonance2 DK2piRes6(p4_p,moms3,moms2,0.909,-340.0,0.1502,0.7693,1);
     782             :     //Omega
     783           0 :     EvtResonance2 DK2piRes7(p4_p,moms3,moms2,.0336,-226.0,0.00844,0.78257,1);
     784             :     //f0(980)
     785           0 :     EvtResonance2 DK2piRes8(p4_p,moms3,moms2,0.309,-152.0,0.05,0.977,0);
     786             :     //f0(1370)
     787           0 :     EvtResonance2 DK2piRes9(p4_p,moms3,moms2,1.636,-255.0,0.272,1.31,0);
     788             :     //f2(1270)
     789           0 :     EvtResonance2 DK2piRes10(p4_p,moms3,moms2,0.636,-32.0,0.1851,1.2754,2);
     790             :     
     791           0 :     return EvtComplex(1.0,0.0) + 
     792           0 :       DK2piRes1.resAmpl() + DK2piRes2.resAmpl() +
     793           0 :       DK2piRes3.resAmpl() + DK2piRes4.resAmpl() + 
     794           0 :       DK2piRes5.resAmpl() + DK2piRes6.resAmpl() + 
     795           0 :       DK2piRes7.resAmpl() + DK2piRes8.resAmpl() + 
     796           0 :       DK2piRes9.resAmpl() + DK2piRes10.resAmpl();
     797           0 : }
     798             : 
     799             : //
     800             : // BaBar decay amplitudes for D0->Ks K+ K-
     801             : //
     802             : // p4_p is D0
     803             : // moms1 is K0s
     804             : // moms2 is K+
     805             : // moms3 is K-
     806             : // Amplitudes and phases are taken from BaBar hep-ex/0207089
     807             : // with convention : Non Resonant = Amp 1. / Phase 0. 
     808             : 
     809             : EvtComplex EvtDDalitz::amplDtoK0KK(EvtVector4R p4_p,  EvtVector4R moms1, 
     810             :                                      EvtVector4R moms2, EvtVector4R moms3) {
     811             : 
     812             :     //phi
     813           0 :     EvtResonance DK0KKRes1( p4_p, moms2, moms3, 113.75, -40.0, 0.0043,
     814             :                             1.019456, 1 ) ;
     815             :     //a0(980)
     816           0 :     EvtResonance DK0KKRes2( p4_p, moms2, moms3, 152.25, 69.0, 0.1196 , 0.9847,
     817             :                             0 ) ;
     818             :     //f0(980)
     819           0 :     EvtResonance DK0KKRes3( p4_p, moms2, moms3, 30.5, -201.0, 0.05, 0.980 , 
     820             :                             0 ) ;
     821             :     //a0(980)+
     822           0 :     EvtResonance DK0KKRes4( p4_p, moms1, moms2, 85.75, -93.0, 0.1196 , 0.9847,
     823             :                             0 ) ;
     824             :     //a0(980)-
     825           0 :     EvtResonance DK0KKRes5( p4_p, moms3, moms1, 8. , -53.0 ,0.1196, 0.9847,
     826             :                             0 ) ;
     827             : 
     828           0 :     return EvtComplex(1.0,0.0) +
     829           0 :       DK0KKRes1.resAmpl() + DK0KKRes2.resAmpl() +
     830           0 :       DK0KKRes3.resAmpl() + DK0KKRes4.resAmpl() + 
     831           0 :       DK0KKRes5.resAmpl() ;
     832             : 
     833           0 : }

Generated by: LCOV version 1.11