CGEM BOSS 6.6.5.g
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//
22#include <stdlib.h>
26#include "EvtGenBase/EvtPDL.hh"
29#include <string>
31
33
34void EvtVSPPwave::getName(std::string& model_name){
35
36 model_name="VSP_PWAVE";
37
38}
39
40
42
43 return new EvtVSPPwave;
44
45}
46
48
49 // check that there are 0 arguments
50 checkNArg(0);
51 checkNDaug(2);
52
54
57
58}
59
61
62 setProbMax(1);
63}
64
66
68
69 EvtParticle *gamma;
70 gamma = p->getDaug(1);
71
72 double m_p=p->mass();
73 EvtVector4R momgamma = gamma->getP4();
74
75//work in the parent ,p, rest frame.
76 EvtVector4R p4_p;
77 p4_p.set(m_p, 0.0, 0.0, 0.0 );
78
79// Put phase space results into the daughters.
80
81 EvtTensor4C tds;
82
83 double norm=1/(m_p*momgamma.d3mag());
84
85 tds = dual(directProd(norm*p4_p,momgamma));
86
87 vertex(0,0,(tds.cont1( p->eps(0))).cont(
88 gamma->epsParentPhoton(0).conj() ) );
89 vertex(0,1,(tds.cont1( p->eps(0))).cont(
90 gamma->epsParentPhoton(1).conj() ) );
91
92 vertex(1,0,(tds.cont1( p->eps(1))).cont(
93 gamma->epsParentPhoton(0).conj() ) );
94 vertex(1,1,(tds.cont1( p->eps(1))).cont(
95 gamma->epsParentPhoton(1).conj() ) );
96
97 vertex(2,0,(tds.cont1( p->eps(2))).cont(
98 gamma->epsParentPhoton(0).conj() ) );
99 vertex(2,1,(tds.cont1( p->eps(2))).cont(
100 gamma->epsParentPhoton(1).conj() ) );
101
102 return ;
103}
104
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
EvtTensor4C dual(const EvtTensor4C &t2)
Definition: EvtTensor4C.cc:379
NTuple::Item< double > m_p
Definition: MdcHistItem.h:75
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)
virtual EvtVector4C epsParentPhoton(int i)
Definition: EvtParticle.cc:585
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:574
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
EvtVector4C cont1(const EvtVector4C &v4) const
Definition: EvtTensor4C.cc:461
void getName(std::string &name)
Definition: EvtVSPPwave.cc:34
void initProbMax()
Definition: EvtVSPPwave.cc:60
void init()
Definition: EvtVSPPwave.cc:47
void decay(EvtParticle *p)
Definition: EvtVSPPwave.cc:65
virtual ~EvtVSPPwave()
Definition: EvtVSPPwave.cc:32
EvtDecayBase * clone()
Definition: EvtVSPPwave.cc:41
EvtVector4C conj() const
Definition: EvtVector4C.hh:206
double d3mag() const
Definition: EvtVector4R.cc:186
void set(int i, double d)
Definition: EvtVector4R.hh:183