CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtBsquark Class Reference

#include <EvtBsquark.hh>

+ Inheritance diagram for EvtBsquark:

Public Member Functions

 EvtBsquark ()
 
virtual ~EvtBsquark ()
 
void getName (std::string &name)
 
EvtDecayBaseclone ()
 
void initProbMax ()
 
void init ()
 
void decay (EvtParticle *p)
 
- Public Member Functions inherited from EvtDecayProb
void makeDecay (EvtParticle *p)
 
void setProb (double prob)
 
double getProb ()
 
void setWeight (double weight)
 
virtual ~EvtDecayProb ()
 
- Public Member Functions inherited from EvtDecayBase
virtual void getName (std::string &name)=0
 
virtual void decay (EvtParticle *p)=0
 
virtual void makeDecay (EvtParticle *p)=0
 
virtual EvtDecayBaseclone ()=0
 
virtual void init ()
 
virtual void initProbMax ()
 
virtual std::string commandName ()
 
virtual void command (std::string cmd)
 
double getProbMax (double prob)
 
double resetProbMax (double prob)
 
 EvtDecayBase ()
 
virtual ~EvtDecayBase ()
 
virtual bool matchingDecay (const EvtDecayBase &other) const
 
EvtId getParentId ()
 
double getBranchingFraction ()
 
void disableCheckQ ()
 
void checkQ ()
 
int getNDaug ()
 
EvtIdgetDaugs ()
 
EvtId getDaug (int i)
 
int getNArg ()
 
int getPHOTOS ()
 
void setPHOTOS ()
 
void setVerbose ()
 
void setSummary ()
 
double * getArgs ()
 
std::string * getArgsStr ()
 
double getArg (int j)
 
std::string getArgStr (int j)
 
std::string getModelName ()
 
int getDSum ()
 
int summary ()
 
int verbose ()
 
void saveDecayInfo (EvtId ipar, int ndaug, EvtId *daug, int narg, std::vector< std::string > &args, std::string name, double brfr)
 
void printSummary ()
 
void setProbMax (double prbmx)
 
void noProbMax ()
 
void checkNArg (int a1, int a2=-1, int a3=-1, int a4=-1)
 
void checkNDaug (int d1, int d2=-1)
 
void checkSpinParent (EvtSpinType::spintype sp)
 
void checkSpinDaughter (int d1, EvtSpinType::spintype sp)
 
virtual int nRealDaughters ()
 

Additional Inherited Members

- Static Public Member Functions inherited from EvtDecayBase
static void findMasses (EvtParticle *p, int ndaugs, EvtId daugs[10], double masses[10])
 
static void findMass (EvtParticle *p)
 
static double findMaxMass (EvtParticle *p)
 
- Protected Member Functions inherited from EvtDecayBase
bool daugsDecayedByParentModel ()
 
- Protected Attributes inherited from EvtDecayBase
bool _daugsDecayedByParentModel
 

Detailed Description

Definition at line 28 of file EvtBsquark.hh.

Constructor & Destructor Documentation

◆ EvtBsquark()

EvtBsquark::EvtBsquark ( )
inline

Definition at line 32 of file EvtBsquark.hh.

32{}

Referenced by clone().

◆ ~EvtBsquark()

EvtBsquark::~EvtBsquark ( )
virtual

Definition at line 36 of file EvtBsquark.cc.

36{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtBsquark::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 45 of file EvtBsquark.cc.

45 {
46
47 return new EvtBsquark;
48
49}

◆ decay()

void EvtBsquark::decay ( EvtParticle p)
virtual

Implements EvtDecayBase.

Definition at line 65 of file EvtBsquark.cc.

65 {
66
67 static EvtId cquark=EvtPDL::getId("c");
68 static EvtId anticquark=EvtPDL::getId("anti-c");
69
70 static EvtIdSet leptons("e-","mu-","tau-");
71
73
74
75 int charge=1;
76
77 EvtParticle* lepton;
78 lepton = p->getDaug(1);
79 if (leptons.contains(lepton->getId())){
80 charge=-1;
81 }
82
83
84 EvtDiracParticle charmquark;
85
86 //this is a very crude approximation...
87 if (charge==-1){
88 charmquark.init(cquark,p->getDaug(0)->getP4());
89 }
90 else{
91 charmquark.init(anticquark,p->getDaug(0)->getP4());
92 }
93
94 EvtVector4R p4c = p->getDaug(0)->getP4();
95
96 EvtVector4R p4sn = p->getDaug(2)->getP4();
97
98 EvtVector4R p4b(p->mass(),0.0,0.0,0.0);
99
100 EvtComplex M[2][2];
101
102 int il,ic;
103
104 //project out the right handed current
106
107 double tanbeta=getArg(1);
108 double cosbeta=cos(atan(tanbeta));
109 double sinbeta=sin(atan(tanbeta));
110
111 double mb=4.9;
112 double mc=1.3;
113 double mw=80.4;
114
115 double Mass=getArg(2);
116 double mu=getArg(3);
117 double mchargino=getArg(4);
118
119
120 double tan2phim=2*sqrt(2.0)*mw*(mu*cosbeta+Mass*sinbeta)/
121 (Mass*Mass-mu*mu+2*mw*mw*cos(2*atan(tanbeta)));
122
123 double phim=0.5*atan(tan2phim);
124
125 EvtComplex U11=cos(phim);
126 EvtComplex U12=sin(phim);
127 EvtComplex U21=-sin(phim);
128 EvtComplex U22=cos(phim);
129
130 double tan2phip=2*sqrt(2.0)*mw*(mu*cosbeta+Mass*sinbeta)/
131 (Mass*Mass-mu*mu-2*mw*mw*cos(2*atan(tanbeta)));
132
133 double phip=0.5*atan(tan2phip);
134
135 EvtComplex V11=cos(phip);
136 EvtComplex V12=sin(phip);
137 EvtComplex V21=-sin(phip);
138 EvtComplex V22=cos(phip);
139
140
141 double theta=getArg(0);
142 double ctheta=cos(theta);
143 double stheta=sin(theta);
144
145 double vcsb=0.08;
146 double mchi1=mchargino;
147 double mchi2=mchargino;
148
149 //overall scale factor
150 double g=1.0;
151
152 EvtComplex a1=mchi1*(U11*ctheta-mb*U12*stheta/(sqrt(2.0)*mw*cosbeta));
153 EvtComplex a2=mchi2*(U21*ctheta-mb*U22*stheta/(sqrt(2.0)*mw*cosbeta));
154
155 EvtComplex b1=mc*conj(V12)*ctheta/(sqrt(2.0)*mw*sinbeta);
156 EvtComplex b2=mc*conj(V22)*ctheta/(sqrt(2.0)*mw*sinbeta);
157
158 EvtComplex f1=-(g*g*V11*vcsb)/((p4b-p4c).mass2()-mchi1*mchi1);
159 EvtComplex f2=-(g*g*V21*vcsb)/((p4b-p4c).mass2()-mchi1*mchi2);
160
161 //report(INFO,"EvtGen") <<g<<" "<<V11<<" "<<FL<<" "<<vcsb<<" "<<mchi1<<endl;
162 //report(INFO,"EvtGen") << "f1:"<<f1<<" "<<(p4b-p4c).mass2()<<endl;
163 //report(INFO,"EvtGen") << "f2:"<<f2<<" "<<(p4b-p4c).mass2()<<endl;
164
165 //report(INFO,"EvtGen") << "p4sn:"<<p4sn<<endl;
166
167 EvtGammaMatrix pslash=p4sn.get(0)*EvtGammaMatrix::g0()
168 -p4sn.get(1)*EvtGammaMatrix::g1()
169 -p4sn.get(2)*EvtGammaMatrix::g2()
170 -p4sn.get(3)*EvtGammaMatrix::g3();
171
172 //report(INFO,"EvtGen") << "pslash:"<<pslash<<endl;
173
174
175
176 for(il=0;il<2;il++){
177 for(ic=0;ic<2;ic++){
178
179 EvtComplex a=0.0;
180 EvtComplex b=0.0;
181
182 if (charge==-1){
183 a=charmquark.spParent(ic)*(PR*lepton->spParent(il));
184 b=charmquark.spParent(ic)*((pslash*PR)*lepton->spParent(il));
185 }
186 else{
187 a=lepton->spParent(il)*(PR*charmquark.spParent(ic));
188 b=lepton->spParent(il)*((pslash*PR)*charmquark.spParent(ic));
189 }
190
191 //report(INFO,"EvtGen") <<"pslash*PR:"<<pslash*PR<<endl;
192 //report(INFO,"EvtGen") <<"sp charm:"<<charmquark.spParent(ic)<<endl;
193 //report(INFO,"EvtGen") <<"sp lepton:"<<lepton->spParent(il)<<endl;
194
195 M[ic][il]=f1*(a1*a+b1*b)+f2*(a2*a+b2*b);
196
197 //report(INFO,"EvtGen") << "Contr1:"<<a1<<" "<<a<<" "<<b1<<" "<<b<<endl;
198 //report(INFO,"EvtGen") << "Contr2:"<<a2<<" "<<a<<" "<<b2<<" "<<b<<endl;
199
200 //report(INFO,"EvtGen") <<"case1:"<<f1<<" "<<a1<<" "<<b1<<" "<<a<<" "<<b<<endl;
201 //report(INFO,"EvtGen") <<"case2:"<<f2<<" "<<a2<<" "<<b2<<" "<<a<<" "<<b<<endl;
202
203 }
204 }
205
206 double prob=real(M[0][0]*conj(M[0][0])+
207 M[1][0]*conj(M[1][0])+
208 M[0][1]*conj(M[0][1])+
209 M[1][1]*conj(M[1][1]));
210
211 //report(INFO,"EvtGen") <<"prob:"<<prob<<endl;
212
213 setProb(prob);
214
215 return;
216
217}
double sin(const BesAngle a)
Definition: BesAngle.h:210
double cos(const BesAngle a)
Definition: BesAngle.h:213
TFile * f1
Evt3Rank3C conj(const Evt3Rank3C &t2)
Definition: Evt3Rank3C.cc:175
double real(const EvtComplex &c)
Definition: EvtComplex.hh:240
double getArg(int j)
EvtId * getDaugs()
Definition: EvtDecayBase.hh:65
void setProb(double prob)
Definition: EvtDecayProb.hh:34
void init(EvtId part_n, const EvtVector4R &p4)
EvtDiracSpinor spParent(int i) const
static const EvtGammaMatrix & id()
static const EvtGammaMatrix & g0()
static const EvtGammaMatrix & g2()
static const EvtGammaMatrix & g1()
static const EvtGammaMatrix & g3()
static const EvtGammaMatrix & g5()
Definition: EvtId.hh:27
static EvtId getId(const std::string &name)
Definition: EvtPDL.cc:287
EvtId getId() const
Definition: EvtParticle.cc:113
virtual EvtDiracSpinor spParent(int) const
Definition: EvtParticle.cc:607
const EvtVector4R & getP4() const
Definition: EvtParticle.cc:121
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:85
double mass() const
Definition: EvtParticle.cc:127
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
double get(int i) const
Definition: EvtVector4R.hh:179

◆ getName()

void EvtBsquark::getName ( std::string &  name)
virtual

Implements EvtDecayBase.

Definition at line 38 of file EvtBsquark.cc.

38 {
39
40 model_name="BSQUARK";
41
42}

◆ init()

void EvtBsquark::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 51 of file EvtBsquark.cc.

51 {
52
53 // check that there are 5 arguments
54 checkNArg(5);
55}
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)

◆ initProbMax()

void EvtBsquark::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 57 of file EvtBsquark.cc.

57 {
58
59 //For now do not set a maximum.
60
61 //SetProbMax(0.000000000005);
62
63}

The documentation for this class was generated from the following files: