BOSS 8.0.0
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//
21#include "EvtDeBD.hh"
33#include <iostream>
34#include <stdlib.h>
35#include <string>
36
37using std::cout;
38using std::endl;
39
41
42void EvtDeBD::getName( std::string& model_name ) { model_name = "DeBD"; }
43
45
47
48 // check that there are 0 arguments
49 checkNArg( 0 );
50 checkNDaug( 2 );
51
53
56}
57
58/*
59void EvtDeBD::initProbMax(){
60 setProbMax(10.0);
61}
62*/
63
65
66 static EvtId PIM = EvtPDL::getId( "pi-" );
67 static EvtId PI0 = EvtPDL::getId( "pi0" );
68 static EvtId KM = EvtPDL::getId( "K-" );
69
70 static EvtId L0 = EvtPDL::getId( "Lambda0" );
71 static EvtId LB = EvtPDL::getId( "anti-Lambda0" );
72 static EvtId XM = EvtPDL::getId( "Xi-" );
73 static EvtId XMB = EvtPDL::getId( "anti-Xi+" );
74 static EvtId X0 = EvtPDL::getId( "Xi0" );
75 static EvtId X0B = EvtPDL::getId( "anti-Xi0" );
76
77 static EvtId OM = EvtPDL::getId( "Omega-" );
78 static EvtId OMB = EvtPDL::getId( "anti-Omega+" );
79
81
82 EvtParticle *l1, *l2;
83 l1 = p->getDaug( 0 );
84 l2 = p->getDaug( 1 );
85
86 EvtId p1, d1, d2;
87 p1 = p->getId();
88 d1 = l1->getId();
89 d2 = l2->getId();
90
91 EvtVector4R pDaug = l1->getP4();
92 double p3 = pDaug.d3mag();
93
94 EvtVector4R pv, ps, ppr;
95 pv = l1->getP4Lab(); // baryon
96 ps = l2->getP4Lab(); // meson
97 ppr = p->getP4();
98
99 double theta, alpha;
100 EvtHelSys angles( ppr, pv ); // using helicity sys.angles
101 theta = angles.getHelAng( 1 );
102 double phi = angles.getHelAng( 2 );
103 double gamma = 0;
104
105 if ( ( p1 == OM ) && ( d1 == L0 ) ) { alpha = 0.0175; }
106 else if ( ( p1 == OMB ) && ( d1 == LB ) ) { alpha = -0.0175; }
107 else if ( ( p1 == OM ) && ( d1 == X0 ) ) { alpha = 0.09; }
108 else if ( ( p1 == OMB ) || ( d1 == X0B ) ) { alpha = -0.09; }
109 else if ( ( p1 == OM ) || ( d1 == XM ) ) { alpha = 0.05; }
110 else if ( ( p1 == OMB ) || ( d1 == XMB ) ) { alpha = -0.05; }
111
112 double FP, FM;
113 if ( p1 == OM || p1 == OMB )
114 {
115 FM = sqrt( ( 1 + alpha ) / 2. );
116 FP = sqrt( ( 1 - alpha ) / 2. );
117 }
118 else
119 {
120 FP = 1;
121 FM = 1;
122 }
123
124 vertex( 0, 0, Djmn( 1.5, 0.5, 0.5, phi, theta, gamma ) * FP );
125 vertex( 0, 1, Djmn( 1.5, 0.5, -0.5, phi, theta, gamma ) * FM );
126 vertex( 1, 0, Djmn( 1.5, 1.5, 0.5, phi, theta, gamma ) * FP );
127 vertex( 1, 1, Djmn( 1.5, 1.5, -0.5, phi, theta, gamma ) * FM );
128 vertex( 2, 0, Djmn( 1.5, -1.5, 0.5, phi, theta, gamma ) * FP );
129 vertex( 2, 1, Djmn( 1.5, -1.5, -0.5, phi, theta, gamma ) * FM );
130 vertex( 3, 0, Djmn( 1.5, -0.5, 0.5, phi, theta, gamma ) * FP );
131 vertex( 3, 1, Djmn( 1.5, -0.5, -0.5, phi, theta, gamma ) * FM );
132
133 return;
134}
double p1[4]
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition EvtHelSys.cc:165
double alpha
#define X0
EvtDeBD()
Definition EvtDeBD.hh:31
virtual ~EvtDeBD()
Definition EvtDeBD.cc:40
EvtDecayBase * clone()
Definition EvtDeBD.cc:44
void getName(std::string &name)
Definition EvtDeBD.cc:42
void decay(EvtParticle *p)
Definition EvtDeBD.cc:64
void init()
Definition EvtDeBD.cc:46
void vertex(const EvtComplex &amp)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void checkNDaug(int d1, int d2=-1)
EvtId * getDaugs()
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
double getHelAng(int i)
Definition EvtHelSys.cc:52
Definition EvtId.hh:27
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:272
EvtVector4R getP4Lab()
EvtId getId() const
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
double d3mag() const