|
EvtGen
2.0.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
|
Go to the documentation of this file. 65 if ( theId == KB || theId == K0 || theId == KL || theId == KS ) { 73 const std::pair<EvtId, int>& right ) 98 if ( leftPDGid < rightPDGid ) { 151 std::vector<std::pair<EvtId, int>> daughters; 152 if ( parnum == D0 || parnum == DP || parnum == DSP ) { 153 for ( int i = 0; i < 3; ++i ) { 154 daughters.push_back( std::make_pair( getDaug( i ), i ) ); 157 for ( int i = 0; i < 3; ++i ) { 165 std::sort( daughters.begin(), daughters.end(), compareIds ); 180 if ( parnum == D0 || parnum == D0B ) { 182 if ( daughters[0]. first == KM && daughters[1]. first == PI0 && 183 daughters[2]. first == PIP ) { 185 _d1 = daughters[0].second; 186 _d2 = daughters[2].second; 187 _d3 = daughters[1].second; 192 daughters[1].first == PIM && daughters[2].first == PIP ) { 194 _d1 = daughters[0].second; 195 _d2 = daughters[1].second; 196 _d3 = daughters[2].second; 201 daughters[1].first == KM && daughters[2].first == KP ) { 203 _d1 = daughters[0].second; 204 _d2 = daughters[2].second; 205 _d3 = daughters[1].second; 209 if ( daughters[0]. first == PIM && daughters[1]. first == PI0 && 210 daughters[2]. first == PIP ) { 212 _d1 = daughters[0].second; 213 _d2 = daughters[2].second; 214 _d3 = daughters[1].second; 219 if ( parnum == DP || parnum == DM ) { 222 daughters[1].first == PI0 && daughters[2].first == PIP ) { 224 _d1 = daughters[0].second; 225 _d2 = daughters[2].second; 226 _d3 = daughters[1].second; 230 if ( daughters[0]. first == KM && daughters[1]. first == PIP && 231 daughters[2]. first == PIP ) { 233 _d1 = daughters[0].second; 234 _d2 = daughters[1].second; 235 _d3 = daughters[2].second; 239 if ( daughters[0]. first == KM && daughters[1]. first == PIP && 240 daughters[2]. first == KP ) { 242 _d1 = daughters[0].second; 243 _d2 = daughters[2].second; 244 _d3 = daughters[1].second; 248 if ( daughters[0]. first == PIM && daughters[1]. first == PIP && 249 daughters[2]. first == KP ) { 251 _d1 = daughters[0].second; 252 _d2 = daughters[1].second; 253 _d3 = daughters[2].second; 257 if ( daughters[0]. first == PIM && daughters[1]. first == PIP && 258 daughters[2]. first == PIP ) { 260 _d1 = daughters[0].second; 261 _d2 = daughters[1].second; 262 _d3 = daughters[2].second; 267 if ( parnum == DSP || parnum == DSM ) { 269 if ( daughters[0]. first == KM && daughters[1]. first == PIP && 270 daughters[2]. first == KP ) { 272 _d1 = daughters[0].second; 273 _d2 = daughters[2].second; 274 _d3 = daughters[1].second; 278 if ( daughters[0]. first == PIM && daughters[1]. first == PIP && 279 daughters[2]. first == KP ) { 281 _d1 = daughters[0].second; 282 _d2 = daughters[1].second; 283 _d3 = daughters[2].second; 287 if ( daughters[0]. first == PIM && daughters[1]. first == PIP && 288 daughters[2]. first == PIP ) { 290 _d1 = daughters[0].second; 291 _d2 = daughters[1].second; 292 _d3 = daughters[2].second; 303 << "EvtDDaltiz: Invalid mode." << endl; 367 double oneby2 = 0.707106782; 369 bool isBToDK = false; 372 if ( ( BP == parId ) || ( BM == parId ) || ( B0 == parId ) || 376 -> getName() == "BTODDALITZCPK" ) 388 p4_p. set( p-> mass(), 0.0, 0.0, 0.0 ); 416 EvtResonance2 DplusRes11( p4_p, moms1, moms2, 1.0, 0.0, 0.0503, 0.896, 418 EvtResonance2 DplusRes12( p4_p, moms3, moms1, 1.0, 0.0, 0.0503, 0.896, 420 EvtResonance2 DplusRes21( p4_p, moms1, moms2, 3.0, 49.7 - 180.0, 0.164, 422 EvtResonance2 DplusRes22( p4_p, moms3, moms1, 3.0, 49.7 - 180.0, 0.164, 424 EvtResonance2 DplusRes31( p4_p, moms1, moms2, 0.96, -29.9 + 180.0, 425 0.109, 1.4324, 2, true ); 426 EvtResonance2 DplusRes32( p4_p, moms3, moms1, 0.96, -29.9 + 180.0, 427 0.109, 1.4324, 2, true ); 428 EvtResonance2 DplusRes41( p4_p, moms1, moms2, 6.5, 29.0, 0.323, 1.717, 430 EvtResonance2 DplusRes42( p4_p, moms3, moms1, 6.5, 29.0, 0.323, 1.717, 432 EvtResonance2 DplusRes51( p4_p, moms1, moms2, 5.01, -163.7 + 180.0, 434 EvtResonance2 DplusRes52( p4_p, moms3, moms1, 5.01, -163.7 + 180.0, 437 amp = EvtComplex( 7.4 * cos( ( -18.4 + 180.0 ) * pi180inv ), 438 7.4 * sin( ( -18.4 + 180.0 ) * pi180inv ) ) + 457 EvtResonance DplusKpipi0Res1( p4_p, moms2, moms3, 1.00, 0.00, 0.1512, 459 EvtResonance DplusKpipi0Res2( p4_p, moms3, moms1, 0.8695, 0.7191, 460 0.0498, 0.89159, 1 ); 462 amp = 0.9522 * EvtComplex( cos( -1.8565 ), sin( -1.8565 ) ) + 463 1.00 * DplusKpipi0Res1. relBrWig( 0 ) + 464 0.8695 * EvtComplex( cos( 0.7191 ), sin( 0.7191 ) ) * 489 fabs( A ) * sin( delta ) ); 494 Factor = Factor * EvtComplex( cos( gamma ), sin( gamma ) ); 495 if ( p-> getId() == D0 ) { 510 Factor = Factor * EvtComplex( cos( gamma ), -sin( gamma ) ); 512 if ( p-> getId() == D0 ) { 527 EvtResonance2 DKpipi0Res1( p4_p, moms2, moms3, 1.0, 0.0, 0.1507, 0.770, 529 EvtResonance2 DKpipi0Res2( p4_p, moms1, moms2, 0.39, -0.2, 0.0505, 531 EvtResonance2 DKpipi0Res3( p4_p, moms1, moms3, 0.44, 163.0, 0.050, 534 EvtResonance2 DKpipi0Res4( p4_p, moms1, moms3, 0.77, 55.5, 0.294, 1.412, 536 EvtResonance2 DKpipi0Res5( p4_p, moms1, moms2, 0.85, 166.0, 0.294, 538 EvtResonance2 DKpipi0Res6( p4_p, moms2, moms3, 2.5, 171.0, 0.240, 1.700, 540 EvtResonance2 DKpipi0Res7( p4_p, moms1, moms3, 2.5, 103.0, 0.322, 1.717, 545 amp = EvtComplex( 1.75 * cos( 31.2 * pi180inv ), 546 1.75 * sin( 31.2 * pi180inv ) ) + 574 fabs( A ) * sin( delta ) ); 579 Factor = Factor * EvtComplex( cos( gamma ), sin( gamma ) ); 580 if ( p-> getId() == D0 ) { 595 Factor = Factor * EvtComplex( cos( gamma ), -sin( gamma ) ); 597 if ( p-> getId() == D0 ) { 613 EvtResonance2 DsKKpiRes1( p4_p, moms3, moms1, 1.0, 0.0, 0.0455, 0.8944, 615 EvtResonance2 DsKKpiRes2( p4_p, moms3, moms1, 1.48, 138., 0.290, 1.414, 617 EvtFlatte DsKKpiRes3( p4_p, moms1, moms2, 5.07, 156., 0.965, 619 EvtResonance2 DsKKpiRes4( p4_p, moms1, moms2, 1.15, -10., 0.00426, 621 EvtResonance2 DsKKpiRes5( p4_p, moms1, moms2, 1.28, 53., 0.265, 1.350, 623 EvtResonance2 DsKKpiRes6( p4_p, moms1, moms2, 1.19, 87., 0.137, 1.724, 632 EvtResonance2 DpKKpiRes1( p4_p, moms3, moms1, 1.0, 0.0, 0.0503, 0.8960, 634 EvtResonance2 DpKKpiRes2( p4_p, moms3, moms1, 3.7, 73.0, 0.290, 1.414, 636 EvtResonance2 DpKKpiRes3( p4_p, moms1, moms2, 1.189, -179.0 + 180.0, 637 0.00426, 1.019455, 1, true ); 638 EvtResonance2 DpKKpiRes4( p4_p, moms1, moms2, 1.72, 123., 0.265, 1.474, 640 EvtResonance2 DpKKpiRes5( p4_p, moms1, moms2, 1.9, -52.0 + 180.0, 0.15, 642 EvtResonance2 DpKKpiRes6( p4_p, moms3, moms1, 6.4, 150., 0.109, 1.4324, 645 amp = EvtComplex( 5.1 * cos( ( 53.0 ) * pi180inv ), 646 5.1 * sin( ( 53.0 ) * pi180inv ) ) + 657 EvtResonance2 DpKpipiDCSRes1( p4_p, moms1, moms2, 1.0, 0.0, 0.149, 659 EvtResonance2 DpKpipiDCSRes2( p4_p, moms3, moms1, 1.0971, -167.1, 660 0.0487, 0.896, 1, true ); 661 EvtResonance2 DpKpipiDCSRes3( p4_p, moms1, moms2, 0.4738, -134.5, 0.059, 663 EvtResonance2 DpKpipiDCSRes4( p4_p, moms3, moms1, 2.2688, 54.4, 0.109, 677 EvtResonance2 DsKpipiCSRes1( p4_p, moms1, moms2, 1.0, 0.0, 0.149, 0.775, 679 EvtResonance2 DsKpipiCSRes2( p4_p, moms3, moms1, 0.7236, -18.3, 0.0487, 681 EvtResonance2 DsKpipiCSRes3( p4_p, moms3, moms1, 2.711, 145.2, 0.232, 683 EvtResonance2 DsKpipiCSRes4( p4_p, moms3, moms1, 1.7549, 59.3, 0.270, 685 EvtResonance2 DsKpipiCSRes5( p4_p, moms1, moms2, 7.0589, -151.7, 0.400, 688 amp = EvtComplex( 3.98 * cos( 43.1 * pi180inv ), 689 3.98 * sin( 43.1 * pi180inv ) ) + 700 EvtResonance2 DppipipiRes11( p4_p, moms1, moms2, 1.0, 0.0, 0.150, 0.769, 702 EvtResonance2 DppipipiRes12( p4_p, moms3, moms1, 1.0, 0.0, 0.150, 0.769, 704 EvtResonance2 DppipipiRes21( p4_p, moms1, moms2, 2.2811, 205.7, 0.324, 706 EvtResonance2 DppipipiRes22( p4_p, moms3, moms1, 2.2811, 205.7, 0.324, 708 EvtResonance2 DppipipiRes31( p4_p, moms1, moms2, 0.4265, 165.0, 0.044, 710 EvtResonance2 DppipipiRes32( p4_p, moms3, moms1, 0.4265, 165.0, 0.044, 712 EvtResonance2 DppipipiRes41( p4_p, moms1, moms2, 2.0321, 57.3, 0.185, 714 EvtResonance2 DppipipiRes42( p4_p, moms3, moms1, 2.0321, 57.3, 0.185, 716 EvtResonance2 DppipipiRes51( p4_p, moms1, moms2, 0.7888, 105.4, 0.173, 718 EvtResonance2 DppipipiRes52( p4_p, moms3, moms1, 0.7888, 105.4, 0.173, 720 EvtResonance2 DppipipiRes61( p4_p, moms1, moms2, 0.7363, 319.1, 0.310, 722 EvtResonance2 DppipipiRes62( p4_p, moms3, moms1, 0.7363, 319.1, 0.310, 725 amp = EvtComplex( -3.98 * cos( 57.3 * pi180inv ), 726 -3.98 * sin( 57.3 * pi180inv ) ) + 740 EvtResonance2 DspipipiRes11( p4_p, moms1, moms2, 0.288, 109., 0.150, 742 EvtResonance2 DspipipiRes12( p4_p, moms3, moms1, 0.288, 109., 0.150, 744 EvtResonance2 DspipipiRes21( p4_p, moms1, moms2, 1.0, 0.0, 0.044, 0.977, 746 EvtResonance2 DspipipiRes22( p4_p, moms3, moms1, 1.0, 0.0, 0.044, 0.977, 748 EvtResonance2 DspipipiRes31( p4_p, moms1, moms2, 1.075, 133., 0.185, 750 EvtResonance2 DspipipiRes32( p4_p, moms3, moms1, 1.075, 133., 0.185, 752 EvtResonance2 DspipipiRes41( p4_p, moms1, moms2, 2.225, 198., 0.173, 754 EvtResonance2 DspipipiRes42( p4_p, moms3, moms1, 2.225, 198., 0.173, 756 EvtResonance2 DspipipiRes51( p4_p, moms1, moms2, 1.107, 162., 0.310, 758 EvtResonance2 DspipipiRes52( p4_p, moms3, moms1, 1.107, 162., 0.310, 761 amp = EvtComplex( -0.723 * cos( 181. * pi180inv ), 762 -0.723 * sin( 181. * pi180inv ) ) + 774 EvtResonance2 DpipipiRes1p( p4_p, moms2, moms3, 1.0, 0.0, 0.149, 0.775, 776 EvtResonance2 DpipipiRes1( p4_p, moms1, moms2, 0.588, 16.2, 0.149, 778 EvtResonance2 DpipipiRes1m( p4_p, moms3, moms1, 0.714, -2.0, 0.149, 780 EvtResonance2 DpipipiRes2p( p4_p, moms2, moms3, 0.21, -146.0, 0.400, 782 EvtResonance2 DpipipiRes2( p4_p, moms1, moms2, 0.33, 10.0, 0.400, 1.465, 784 EvtResonance2 DpipipiRes2m( p4_p, moms3, moms1, 0.82, 16.0, 0.400, 786 EvtResonance2 DpipipiRes3p( p4_p, moms2, moms3, 2.25, -17.0, 0.250, 788 EvtResonance2 DpipipiRes3( p4_p, moms1, moms2, 2.51, -17.0, 0.250, 790 EvtResonance2 DpipipiRes3m( p4_p, moms3, moms1, 2.00, -50.0, 0.250, 792 EvtResonance2 DpipipiRes4( p4_p, moms1, moms2, 0.015, -59.0, 0.07, 794 EvtResonance2 DpipipiRes5( p4_p, moms1, moms2, 0.063, 156.0, 0.350, 796 EvtResonance2 DpipipiRes6( p4_p, moms1, moms2, 0.058, 12.0, 0.109, 798 EvtResonance2 DpipipiRes7( p4_p, moms1, moms2, 0.112, 51.0, 0.135, 800 EvtResonance2 DpipipiRes8( p4_p, moms1, moms2, 1.04, -171.0, 0.185, 802 EvtResonance2 DpipipiRes9( p4_p, moms1, moms2, 0.069, 8.0, 0.600, 0.400, 806 amp = EvtComplex( 0.57 * cos( -11.0 * pi180inv ), 807 0.57 * sin( -11.0 * pi180inv ) ) + 827 EvtResonance2 DK2piRes1( p4_p, moms1, moms2, 1.418, -190.0, 0.0508, 0.89166, 830 EvtResonance2 DK2piRes2( p4_p, moms1, moms2, 1.818, -337.0, 0.294, 1.412, 0 ); 832 EvtResonance2 DK2piRes3( p4_p, moms1, moms2, 0.909, -5.0, 0.0985, 1.4256, 2 ); 834 EvtResonance2 DK2piRes4( p4_p, moms1, moms2, 5.091, -166.0, 0.322, 1.717, 1 ); 836 EvtResonance2 DK2piRes5( p4_p, moms1, moms3, 0.100, -19.0, 0.0508, 0.89166, 840 EvtResonance2 DK2piRes6( p4_p, moms3, moms2, 0.909, -340.0, 0.1502, 0.7693, 843 EvtResonance2 DK2piRes7( p4_p, moms3, moms2, .0336, -226.0, 0.00844, 846 EvtResonance2 DK2piRes8( p4_p, moms3, moms2, 0.309, -152.0, 0.05, 0.977, 0 ); 848 EvtResonance2 DK2piRes9( p4_p, moms3, moms2, 1.636, -255.0, 0.272, 1.31, 0 ); 850 EvtResonance2 DK2piRes10( p4_p, moms3, moms2, 0.636, -32.0, 0.1851, 1.2754, 873 EvtResonance DK0KKRes1( p4_p, moms2, moms3, 113.75, -40.0, 0.0043, 1.019456, 876 EvtResonance DK0KKRes2( p4_p, moms2, moms3, 152.25, 69.0, 0.1196, 0.9847, 0 ); 878 EvtResonance DK0KKRes3( p4_p, moms2, moms3, 30.5, -201.0, 0.05, 0.980, 0 ); 880 EvtResonance DK0KKRes4( p4_p, moms1, moms2, 85.75, -93.0, 0.1196, 0.9847, 0 ); 882 EvtResonance DK0KKRes5( p4_p, moms3, moms1, 8., -53.0, 0.1196, 0.9847, 0 ); EvtComplex resAmpl() const
static EvtDecayTable * getInstance()
EvtParticle * getParent() const
double getArg(unsigned int j)
bool isNeutralKaon(const EvtId &theId)
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=0)
static double getMeanMass(EvtId i)
EvtComplex amplDtoK0PiPi(EvtVector4R p4_p, EvtVector4R moms1, EvtVector4R moms2, EvtVector4R moms3)
void set(int i, double d)
EvtComplex relBrWig(int i)
void setProbMax(double prbmx)
EvtComplex amplDtoK0KK(EvtVector4R p4_p, EvtVector4R moms1, EvtVector4R moms2, EvtVector4R moms3)
EvtDecayBase * getDecayFunc(EvtParticle *p)
EvtId getParentId() const
void vertex(const EvtComplex &)
vector< EvtFlatteParam > _kkpi_params
double initializePhaseSpace(unsigned int numdaughter, EvtId *daughters, bool forceResetMasses=false, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void checkNDaug(int d1, int d2=-1)
void checkSpinParent(EvtSpinType::spintype sp)
void decay(EvtParticle *p) override
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
static EvtId getId(const std::string &name)
const EvtVector4R & getP4() const
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
static const double radToDegrees
EvtParticle * getDaug(int i)
void initProbMax() override
std::string getName() override
EvtDecayBase * clone() override
static EvtId chargeConj(EvtId id)
static int getStdHep(EvtId id)
bool compareIds(const std::pair< EvtId, int > &left, const std::pair< EvtId, int > &right)
EvtId getDaug(int i) const
|