CGEM BOSS 6.6.5.h
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtHypWK Class Reference

#include <EvtHypWK.hh>

+ Inheritance diagram for EvtHypWK:

Public Member Functions

 EvtHypWK ()
 
virtual ~EvtHypWK ()
 
void getName (std::string &name)
 
EvtDecayBaseclone ()
 
void init ()
 
void decay (EvtParticle *p)
 
void findMaxPro (EvtParticle *p)
 
- Public Member Functions inherited from EvtDecayAmp
void makeDecay (EvtParticle *p)
 
void setWeight (double weight)
 
void vertex (const EvtComplex &amp)
 
void vertex (int i1, const EvtComplex &amp)
 
void vertex (int i1, int i2, const EvtComplex &amp)
 
void vertex (int i1, int i2, int i3, const EvtComplex &amp)
 
void vertex (int *i1, const EvtComplex &amp)
 
virtual ~EvtDecayAmp ()
 
- Public Member Functions inherited from EvtDecayBase
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 EvtDecayAmp
EvtAmp _amp2
 
- Protected Attributes inherited from EvtDecayBase
bool _daugsDecayedByParentModel
 

Detailed Description

Definition at line 28 of file EvtHypWK.hh.

Constructor & Destructor Documentation

◆ EvtHypWK()

EvtHypWK::EvtHypWK ( )
inline

Definition at line 32 of file EvtHypWK.hh.

32{}

Referenced by clone().

◆ ~EvtHypWK()

EvtHypWK::~EvtHypWK ( )
virtual

Definition at line 39 of file EvtHypWK.cc.

39{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtHypWK::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 49 of file EvtHypWK.cc.

49 {
50
51 return new EvtHypWK;
52
53}

◆ decay()

void EvtHypWK::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 71 of file EvtHypWK.cc.

71 {
72
73 static EvtId PIP=EvtPDL::getId("pi+");
74 static EvtId PIM=EvtPDL::getId("pi-");
75 static EvtId PI0=EvtPDL::getId("pi0");
76 static EvtId PP=EvtPDL::getId("p+");
77 static EvtId PM=EvtPDL::getId("anti-p-");
78 static EvtId NP=EvtPDL::getId("n0");
79 static EvtId NM=EvtPDL::getId("anti-n0");
80
81 static EvtId LP=EvtPDL::getId("Lambda0");
82 static EvtId LM=EvtPDL::getId("anti-Lambda0");
83 static EvtId SPP=EvtPDL::getId("Sigma+");
84 static EvtId SPM=EvtPDL::getId("anti-Sigma-");
85 static EvtId SMP=EvtPDL::getId("Sigma-");
86 static EvtId SMM=EvtPDL::getId("anti-Sigma+");
87
88 static EvtId XP=EvtPDL::getId("Xi-");
89 static EvtId XM=EvtPDL::getId("anti-Xi+");
90 static EvtId X0P=EvtPDL::getId("Xi0");
91 static EvtId X0M=EvtPDL::getId("anti-Xi0");
92
93
94 static int count=0;
95
96// if(count==0) findMaxPro(p); //using the default getProbMax() in EvtGenBase/EvtDecayProb.cc
97 count+=1;
98
100
101 EvtParticle *l1, *l2;
102 l1 = p->getDaug(0);
103 l2 = p->getDaug(1);
104 EvtVector4R DRP4=l1->getP4(); //Dirac Daughter
105 EvtVector4R MEP4=l2->getP4(); //Meson Daughter
106 EvtVector4R PRP4=p->getP4(); //Parent Momentum
107 EvtHelSys angles(PRP4,DRP4); //using helicity sys.angles
108 double tht=angles.getHelAng(1);
109 double ph =angles.getHelAng(2);
110 double gmm=0;
111
112 EvtVector4R pDaug=l1->getP4();
113 double p3=pDaug.d3mag();
114
115
116 double M=p->mass();
117 double M2=M*M;
118 double m=l1->mass();
119 double m2=m*m;
120 double theta,phi,alpha,beta,ga; // the following is the
121
122 EvtId p1,d1,d2;
123 p1=p->getId();
124 d1=l1->getId();
125 d2=l2->getId();
126
127 if(p1==XP){ alpha=-0.46;phi=-2.1; }
128 else if(p1==XM){alpha=0.46;phi=-2.1;}
129 else if(p1==X0P){alpha=-0.41;phi=21.0;}
130 else if(p1==X0M){alpha=0.41;phi=21.0; }
131 else if(p1==LP){alpha=0.64;phi=-6.5; }
132 else if(p1==LM){ alpha=-0.64;phi=-6.5; }
133 else if(p1==SMP){alpha=-0.07;phi=10.0;}
134 else if(p1==SMM){alpha=0.07;phi=10.0; }
135 else if(p1==SPP){
136 if (d1==PP){ alpha=-0.98;phi=36.0; }
137 else if(d1==NP){ alpha=0.07;phi=167.0; }
138 else { cout<<"The decay is not discussed."<<endl; }
139 }
140 else if(p1==SPM){
141 if (d1==PM){ alpha=0.98;phi=36.0; }
142 else if(d1==NM){ alpha=-0.07;phi=167.0; }
143 else { cout<<"The decay is not discussed."<<endl; }
144 }
145 else { cout<<"The decay is not discussed.";
146 }
147
148 double FP=sqrt((1+alpha)/2.);
149 double FM=sqrt((1-alpha)/2.);
150
151 vertex(0,0,Djmn(0.5, 0.5, 0.5,ph,tht,gmm)*FP);
152 vertex(0,1,Djmn(0.5, 0.5,-0.5,ph,tht,gmm)*FM);
153 vertex(1,0,Djmn(0.5,-0.5, 0.5,ph,tht,gmm)*FP);
154 vertex(1,1,Djmn(0.5,-0.5,-0.5,ph,tht,gmm)*FM);
155
156 return;
157
158}
EvtComplex Djmn(int j, int m, int n, double phi, double theta, double gamma)
Definition EvtHelSys.cc:151
const double alpha
void vertex(const EvtComplex &amp)
EvtId * getDaugs()
Definition EvtId.hh:27
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:287
EvtId getId() const
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double mass() const
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
double d3mag() const
uint32_t count(const node_t &list)
Definition node.cxx:42

◆ findMaxPro()

void EvtHypWK::findMaxPro ( EvtParticle * p)

◆ getName()

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

Implements EvtDecayBase.

Definition at line 41 of file EvtHypWK.cc.

41 {
42
43 model_name="HypWK";
44
45}

◆ init()

void EvtHypWK::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 55 of file EvtHypWK.cc.

55 {
56
57 // check that there are 0 arguments
58 checkNArg(0);
59 checkNDaug(2);
60
61 // checkSpinParent(EvtSpinType::VECTOR);
63
66// checkSpinDaughter(1,EvtSpinType::DIRAC);
67
68}
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)

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