BOSS 7.0.6
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtOmegaDalitz.cc
Go to the documentation of this file.
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: EvtOmegaDalitz.cc
12//
13// Description: Routine to decay omega -> pi pi pi0
14//
15// Modification history:
16//
17// RYD November 24, 1996 Module created
18//
19//------------------------------------------------------------------------
20//
22#include <stdlib.h>
28#include "EvtGenBase/EvtPDL.hh"
31#include <string>
32
34
35void EvtOmegaDalitz::getName(std::string& model_name){
36
37 model_name="OMEGA_DALITZ";
38
39}
40
41
43
44 return new EvtOmegaDalitz;
45
46}
47
49
50 // check that there are 0 arguments
51 checkNArg(0);
52 checkNDaug(3);
53
55
59
60}
61
63
64 setProbMax( 1.0);
65
66}
67
69
71
72 EvtVector4C ep[3];
73
74 ep[0] = p->eps(0);
75 ep[1] = p->eps(1);
76 ep[2] = p->eps(2);
77
78 EvtVector4R mompi1 = p->getDaug(0)->getP4();
79 EvtVector4R mompi2 = p->getDaug(1)->getP4();
80
81 EvtVector3R p1(mompi1.get(1),mompi1.get(2),mompi1.get(3));
82 EvtVector3R p2(mompi2.get(1),mompi2.get(2),mompi2.get(3));
83 EvtVector3R q=cross(p2,p1);
84
85 EvtVector3C e1(ep[0].get(1),ep[0].get(2),ep[0].get(3));
86 EvtVector3C e2(ep[1].get(1),ep[1].get(2),ep[1].get(3));
87 EvtVector3C e3(ep[2].get(1),ep[2].get(2),ep[2].get(3));
88
89 //This is an approximate formula of the maximum value that
90 //|q| can have.
91 double norm=1.14/(p->mass()*p->mass()/9.0-mompi1.mass2());
92
93 vertex(0,norm*e1*q);
94 vertex(1,norm*e2*q);
95 vertex(2,norm*e3*q);
96
97 return ;
98
99}
100
EvtVector3R cross(const EvtVector3R &p1, const EvtVector3R &p2)
Definition: EvtVector3R.cc:84
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Definition: KKsem.h:33
void vertex(const EvtComplex &amp)
Definition: EvtDecayAmp.hh:37
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
void checkNDaug(int d1, int d2=-1)
EvtId * getDaugs()
Definition: EvtDecayBase.hh:65
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
void getName(std::string &name)
void decay(EvtParticle *p)
EvtDecayBase * clone()
virtual ~EvtOmegaDalitz()
const EvtVector4R & getP4() const
Definition: EvtParticle.cc:121
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:85
double mass() const
Definition: EvtParticle.cc:127
virtual EvtVector4C eps(int i) const
Definition: EvtParticle.cc:576
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
double get(int i) const
Definition: EvtVector4R.hh:179
double mass2() const
Definition: EvtVector4R.hh:116