BOSS 7.0.8
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtDeBD.cc
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2//
3// Environment:
4// This software is part of models developed at BES collaboration
5// based on the EvtGen framework. If you use all or part
6// of it, please give an appropriate acknowledgement.
7//
8// Copyright Information: See EvtGen/BesCopyright
9// Copyright (A) 2006 Ping Rong-Gang, Pang Cai-Ying@IHEP
10//
11// Module: EvtDeBD.cc
12//
13// Description: To generate events for decuplet baryon deacys.
14//
15// Modification history:
16//
17// Ping R.-G. Apr., 2007 Module created
18//
19//------------------------------------------------------------------------
20//
22#include <stdlib.h>
23#include <iostream>
24#include <string>
26#include "EvtGenBase/EvtPDL.hh"
32#include "EvtGenBase/EvtId.hh"
36
37using std::cout;
38using std::endl;
39
41
42void EvtDeBD::getName(std::string& model_name){
43
44 model_name="DeBD";
45
46}
47
48
50
51 return new EvtDeBD;
52
53}
54
56
57 // check that there are 0 arguments
58 checkNArg(0);
59 checkNDaug(2);
60
62
65
66}
67
68/*
69void EvtDeBD::initProbMax(){
70 setProbMax(10.0);
71}
72*/
73
75
76 static EvtId PIM=EvtPDL::getId("pi-");
77 static EvtId PI0=EvtPDL::getId("pi0");
78 static EvtId KM=EvtPDL::getId("K-");
79
80 static EvtId L0 =EvtPDL::getId("Lambda0");
81 static EvtId LB =EvtPDL::getId("anti-Lambda0");
82 static EvtId XM =EvtPDL::getId("Xi-");
83 static EvtId XMB=EvtPDL::getId("anti-Xi+");
84 static EvtId X0 =EvtPDL::getId("Xi0");
85 static EvtId X0B=EvtPDL::getId("anti-Xi0");
86
87 static EvtId OM =EvtPDL::getId("Omega-");
88 static EvtId OMB=EvtPDL::getId("anti-Omega+");
89
91
92 EvtParticle *l1, *l2;
93 l1 = p->getDaug(0);
94 l2 = p->getDaug(1);
95
96 EvtId p1,d1,d2;
97 p1=p ->getId();
98 d1=l1->getId();
99 d2=l2->getId();
100
101
102 EvtVector4R pDaug=l1->getP4();
103 double p3=pDaug.d3mag();
104
105 EvtVector4R pv,ps,ppr;
106 pv=l1->getP4Lab(); //baryon
107 ps=l2->getP4Lab(); //meson
108 ppr=p->getP4();
109
110 double theta,alpha;
111 EvtHelSys angles(ppr,pv); //using helicity sys.angles
112 theta=angles.getHelAng(1);
113 double phi =angles.getHelAng(2);
114 double gamma=0;
115
116 if((p1==OM)&&(d1==L0)){
117 alpha=0.0175;
118 }
119 else if((p1==OMB)&&(d1==LB)){
120 alpha=-0.0175;
121 }
122 else if((p1==OM)&&(d1==X0)){
123 alpha=0.09;
124 }
125 else if((p1==OMB)||(d1==X0B)){
126 alpha=-0.09;
127 }
128 else if((p1==OM)||(d1==XM)){
129 alpha=0.05;
130 }
131 else if((p1==OMB)||(d1==XMB)){
132 alpha=-0.05;
133 }
134
135 double FP,FM;
136 if(p1==OM||p1==OMB){
137 FM=sqrt((1+alpha)/2.);
138 FP=sqrt((1-alpha)/2.);
139 }
140 else {
141 FP=1;FM=1;
142 }
143
144 vertex(0,0,Djmn(1.5, 0.5, 0.5,phi,theta,gamma)*FP);
145 vertex(0,1,Djmn(1.5, 0.5,-0.5,phi,theta,gamma)*FM);
146 vertex(1,0,Djmn(1.5, 1.5, 0.5,phi,theta,gamma)*FP);
147 vertex(1,1,Djmn(1.5, 1.5,-0.5,phi,theta,gamma)*FM);
148 vertex(2,0,Djmn(1.5,-1.5, 0.5,phi,theta,gamma)*FP);
149 vertex(2,1,Djmn(1.5,-1.5,-0.5,phi,theta,gamma)*FM);
150 vertex(3,0,Djmn(1.5,-0.5, 0.5,phi,theta,gamma)*FP);
151 vertex(3,1,Djmn(1.5,-0.5,-0.5,phi,theta,gamma)*FM);
152
153 return;
154
155}
156
157
158
159
160
161
162
163
164
165
166
167
168
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition: EvtHelSys.cc:151
const double alpha
#define X0
EvtDeBD()
Definition: EvtDeBD.hh:32
virtual ~EvtDeBD()
Definition: EvtDeBD.cc:40
EvtDecayBase * clone()
Definition: EvtDeBD.cc:49
void getName(std::string &name)
Definition: EvtDeBD.cc:42
void decay(EvtParticle *p)
Definition: EvtDeBD.cc:74
void init()
Definition: EvtDeBD.cc:55
void vertex(const EvtComplex &amp)
Definition: EvtDecayAmp.hh:37
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
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)
double getHelAng(int i)
Definition: EvtHelSys.cc:54
Definition: EvtId.hh:27
static EvtId getId(const std::string &name)
Definition: EvtPDL.cc:287
EvtVector4R getP4Lab()
Definition: EvtParticle.cc:685
EvtId getId() const
Definition: EvtParticle.cc:113
const EvtVector4R & getP4() const
Definition: EvtParticle.cc:121
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:85
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
double d3mag() const
Definition: EvtVector4R.cc:186