BOSS 8.0.0
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//
21#include "EvtOmegaDalitz.hh"
30#include <stdlib.h>
31#include <string>
32
34
35void EvtOmegaDalitz::getName( std::string& model_name ) { model_name = "OMEGA_DALITZ"; }
36
38
40
41 // check that there are 0 arguments
42 checkNArg( 0 );
43 checkNDaug( 3 );
44
46
50}
51
53
55
57
58 EvtVector4C ep[3];
59
60 ep[0] = p->eps( 0 );
61 ep[1] = p->eps( 1 );
62 ep[2] = p->eps( 2 );
63
64 EvtVector4R mompi1 = p->getDaug( 0 )->getP4();
65 EvtVector4R mompi2 = p->getDaug( 1 )->getP4();
66
67 EvtVector3R p1( mompi1.get( 1 ), mompi1.get( 2 ), mompi1.get( 3 ) );
68 EvtVector3R p2( mompi2.get( 1 ), mompi2.get( 2 ), mompi2.get( 3 ) );
69 EvtVector3R q = cross( p2, p1 );
70
71 EvtVector3C e1( ep[0].get( 1 ), ep[0].get( 2 ), ep[0].get( 3 ) );
72 EvtVector3C e2( ep[1].get( 1 ), ep[1].get( 2 ), ep[1].get( 3 ) );
73 EvtVector3C e3( ep[2].get( 1 ), ep[2].get( 2 ), ep[2].get( 3 ) );
74
75 // This is an approximate formula of the maximum value that
76 //|q| can have.
77 double norm = 1.14 / ( p->mass() * p->mass() / 9.0 - mompi1.mass2() );
78
79 vertex( 0, norm * e1 * q );
80 vertex( 1, norm * e2 * q );
81 vertex( 2, norm * e3 * q );
82
83 return;
84}
double p2[4]
double p1[4]
Double_t e1
Double_t e2
EvtVector3R cross(const EvtVector3R &p1, const EvtVector3R &p2)
****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)
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()
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
EvtParticle * getDaug(int i)
double mass() const
virtual EvtVector4C eps(int i) const
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
double get(int i) const
double mass2() const
double int * ep
Definition qcdloop1.h:82