BOSS 7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtVSSMix.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: EvtVSSMix.cc
12//
13// Description: Routine to decay vector-> scalar scalar
14//
15// Modification history:
16//
17// RYD November 24, 1996 Module created
18//
19//------------------------------------------------------------------------
20//
22#include <stdlib.h>
25#include "EvtGenBase/EvtPDL.hh"
29#include "EvtGenBase/EvtId.hh"
30#include <string>
32
34
35void EvtVSSMix::getName(std::string& model_name){
36
37 model_name="VSS_MIX";
38
39}
40
41
43
44 return new EvtVSSMix;
45
46}
47
49
50 // check that there are 1 arguments
51 checkNArg(1);
52 checkNDaug(2);
53
55
58
59}
60
62
63 setProbMax(0.5);
64
65}
66
68
69 //added by Lange Jan4,2000
70 static EvtId B0=EvtPDL::getId("B0");
71 static EvtId B0B=EvtPDL::getId("anti-B0");
72
74 EvtParticle *s1,*s2;
75 s1 = p->getDaug(0);
76 s2 = p->getDaug(1);
77 EvtVector4R s1mom = s1->getP4();
78
79 double t1,t2,dm;
80
81 s1->setLifetime();
82 s2->setLifetime();
83
84 t1=s1->getLifetime();
85 t2=s2->getLifetime();
86
87 //dm should probably be a parameter to this model.
88
89 dm=getArg(0)/EvtConst::c;
90
91 EvtId d1,d2;
92
93 d1=s1->getId();
94 d2=s2->getId();
95
96 double mix_amp=0.;
97 if (d1==B0&&d2==B0B) mix_amp=cos(0.5*dm*(t1-t2));
98 if (d1==B0B&&d2==B0) mix_amp=cos(0.5*dm*(t1-t2));
99 if (d1==B0&&d2==B0) mix_amp=sin(0.5*dm*(t1-t2));
100 if (d1==B0B&&d2==B0B) mix_amp=sin(0.5*dm*(t1-t2));
101
102 double norm=1.0/s1mom.d3mag();
103
104 vertex(0,norm*mix_amp*s1mom*(p->eps(0)));
105 vertex(1,norm*mix_amp*s1mom*(p->eps(1)));
106 vertex(2,norm*mix_amp*s1mom*(p->eps(2)));
107
108 return ;
109}
110
double sin(const BesAngle a)
double cos(const BesAngle a)
static const double c
Definition: EvtConst.hh:32
void vertex(const EvtComplex &amp)
Definition: EvtDecayAmp.hh:37
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
double getArg(int j)
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)
Definition: EvtId.hh:27
static EvtId getId(const std::string &name)
Definition: EvtPDL.cc:287
EvtId getId() const
Definition: EvtParticle.cc:113
double getLifetime()
Definition: EvtParticle.cc:99
const EvtVector4R & getP4() const
Definition: EvtParticle.cc:121
void setLifetime(double tau)
Definition: EvtParticle.cc:89
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:85
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)
void init()
Definition: EvtVSSMix.cc:48
void getName(std::string &name)
Definition: EvtVSSMix.cc:35
EvtDecayBase * clone()
Definition: EvtVSSMix.cc:42
virtual ~EvtVSSMix()
Definition: EvtVSSMix.cc:33
void decay(EvtParticle *p)
Definition: EvtVSSMix.cc:67
void initProbMax()
Definition: EvtVSSMix.cc:61
double d3mag() const
Definition: EvtVector4R.cc:186