BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtVSPPwave.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: EvtVSPPwave.cc
12//
13// Description: Routine to decay vector-> scalar photon in P-wave
14//
15// Modification history:
16//
17// RYD November 24, 1996 Module created
18//
19//------------------------------------------------------------------------
20//
21#include "EvtVSPPwave.hh"
29#include <stdlib.h>
30#include <string>
31
33
34void EvtVSPPwave::getName( std::string& model_name ) { model_name = "VSP_PWAVE"; }
35
37
39
40 // check that there are 0 arguments
41 checkNArg( 0 );
42 checkNDaug( 2 );
43
45
48}
49
51
53
55
56 EvtParticle* gamma;
57 gamma = p->getDaug( 1 );
58
59 double m_p = p->mass();
60 EvtVector4R momgamma = gamma->getP4();
61
62 // work in the parent ,p, rest frame.
63 EvtVector4R p4_p;
64 p4_p.set( m_p, 0.0, 0.0, 0.0 );
65
66 // Put phase space results into the daughters.
67
68 EvtTensor4C tds;
69
70 double norm = 1 / ( m_p * momgamma.d3mag() );
71
72 tds = dual( directProd( norm * p4_p, momgamma ) );
73
74 vertex( 0, 0, ( tds.cont1( p->eps( 0 ) ) ).cont( gamma->epsParentPhoton( 0 ).conj() ) );
75 vertex( 0, 1, ( tds.cont1( p->eps( 0 ) ) ).cont( gamma->epsParentPhoton( 1 ).conj() ) );
76
77 vertex( 1, 0, ( tds.cont1( p->eps( 1 ) ) ).cont( gamma->epsParentPhoton( 0 ).conj() ) );
78 vertex( 1, 1, ( tds.cont1( p->eps( 1 ) ) ).cont( gamma->epsParentPhoton( 1 ).conj() ) );
79
80 vertex( 2, 0, ( tds.cont1( p->eps( 2 ) ) ).cont( gamma->epsParentPhoton( 0 ).conj() ) );
81 vertex( 2, 1, ( tds.cont1( p->eps( 2 ) ) ).cont( gamma->epsParentPhoton( 1 ).conj() ) );
82
83 return;
84}
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
EvtTensor4C dual(const EvtTensor4C &t2)
NTuple::Item< double > m_p
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)
virtual EvtVector4C epsParentPhoton(int i)
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)
EvtVector4C cont1(const EvtVector4C &v4) const
void getName(std::string &name)
void initProbMax()
void decay(EvtParticle *p)
virtual ~EvtVSPPwave()
EvtDecayBase * clone()
EvtVector4C conj() const
double d3mag() const
void set(int i, double d)