BOSS 7.1.1
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtEDM Class Reference

#include <EvtEDM.hh>

+ Inheritance diagram for EvtEDM:

Public Member Functions

 EvtEDM ()
 
virtual ~EvtEDM ()
 
void getName (std::string &name)
 
EvtDecayBaseclone ()
 
void initProbMax ()
 
void init ()
 
void decay (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 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 22 of file EvtEDM.hh.

Constructor & Destructor Documentation

◆ EvtEDM()

EvtEDM::EvtEDM ( )
inline

Definition at line 26 of file EvtEDM.hh.

26{}

Referenced by clone().

◆ ~EvtEDM()

EvtEDM::~EvtEDM ( )
virtual

Definition at line 29 of file EvtEDM.cc.

29{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtEDM::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 38 of file EvtEDM.cc.

38 {
39
40 return new EvtEDM;
41
42}
EvtEDM()
Definition EvtEDM.hh:26

◆ decay()

void EvtEDM::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 63 of file EvtEDM.cc.

63 {
64
66
67 EvtParticle *l1, *l2;
68 l1 = p->getDaug(0);
69 l2 = p->getDaug(1);
70
71 double magtau = getArg(0);
72 double phstau = getArg(1);
73 double mage = getArg(2);
74 double phse = getArg(3);
75 EvtComplex ctau(magtau*cos(phstau),magtau*sin(phstau));
76 EvtComplex ce(mage*cos(phse),mage*sin(phse));
77
78
79 EvtTensor4C l11, l12, l21, l22;
80 l11=EvtLeptonTg5Current(l1->spParent(0),l2->spParent(0));
81 l12=EvtLeptonTg5Current(l1->spParent(0),l2->spParent(1));
82 l21=EvtLeptonTg5Current(l1->spParent(1),l2->spParent(0));
83 l22=EvtLeptonTg5Current(l1->spParent(1),l2->spParent(1));
84
85 EvtVector4C eps0=p->eps(0);
86 EvtVector4C eps1=p->eps(1);
87 EvtVector4C eps2=p->eps(2);
88 EvtVector4R parp4 = p->getP4();
89
90 EvtTensor4C p4eps0=directProd(eps0,parp4);
91 EvtTensor4C p4eps1=directProd(eps1,parp4);
92 EvtTensor4C p4eps2=directProd(eps2,parp4);
93
94 double M2=p->mass();
95 M2*=M2;
96 double m2=l1->mass();
97 m2*=m2;
98
99 double norm=1.0/sqrt(2*M2+4*m2-4*m2*m2/M2);
100 EvtComplex norm_edm = norm * ctau;
101 EvtComplex norm_e = norm * ce;
102
103 // for ee->gamma* ->ll pair without EDM contributions
104 EvtVector4C L11, L12, L21, L22;
105 L11=EvtLeptonVCurrent(l1->spParent(0),l2->spParent(0));
106 L12=EvtLeptonVCurrent(l1->spParent(0),l2->spParent(1));
107 L21=EvtLeptonVCurrent(l1->spParent(1),l2->spParent(0));
108 L22=EvtLeptonVCurrent(l1->spParent(1),l2->spParent(1));
109
110 EvtComplex A000,A001,A010,A011,A100,A101,A110,A111,A200,A201,A210,A211;
111 A000 = norm_e*(eps0*L11);
112 A001 = norm_e*(eps0*L12);
113 A010 = norm_e*(eps0*L21);
114 A011 = norm_e*(eps0*L22);
115
116 A100 = norm_e*(eps1*L11);
117 A101 = norm_e*(eps1*L12);
118 A110 = norm_e*(eps1*L21);
119 A111 = norm_e*(eps1*L22);
120
121 A200 = norm_e*(eps2*L11);
122 A201 = norm_e*(eps2*L12);
123 A210 = norm_e*(eps2*L21);
124 A211 = norm_e*(eps2*L22);
125
126 vertex(0,0,0,norm_edm*cont(p4eps0,l11) + A000);
127 vertex(0,0,1,norm_edm*cont(p4eps0,l12) + A001);
128 vertex(0,1,0,norm_edm*cont(p4eps0,l21) + A010);
129 vertex(0,1,1,norm_edm*cont(p4eps0,l22) + A011);
130
131 vertex(1,0,0,norm_edm*cont(p4eps1,l11) + A100);
132 vertex(1,0,1,norm_edm*cont(p4eps1,l12) + A101);
133 vertex(1,1,0,norm_edm*cont(p4eps1,l21) + A110);
134 vertex(1,1,1,norm_edm*cont(p4eps1,l22) + A111);
135
136 vertex(2,0,0,norm_edm*cont(p4eps2,l11) + A200);
137 vertex(2,0,1,norm_edm*cont(p4eps2,l12) + A201);
138 vertex(2,1,0,norm_edm*cont(p4eps2,l21) + A210);
139 vertex(2,1,1,norm_edm*cont(p4eps2,l22) + A211);
140
141 return;
142
143}
double sin(const BesAngle a)
Definition BesAngle.h:210
double cos(const BesAngle a)
Definition BesAngle.h:213
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
EvtTensor4C EvtLeptonTg5Current(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtVector4C EvtLeptonVCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtComplex cont(const EvtTensor4C &t1, const EvtTensor4C &t2)
void vertex(const EvtComplex &amp)
double getArg(int j)
EvtId * getDaugs()
virtual EvtDiracSpinor spParent(int) const
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double mass() const
virtual EvtVector4C eps(int i) const
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
double double * m2
Definition qcdloop1.h:75

◆ getName()

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

Implements EvtDecayBase.

Definition at line 31 of file EvtEDM.cc.

31 {
32
33 model_name="EDM";
34
35}

◆ init()

void EvtEDM::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 44 of file EvtEDM.cc.

44 {
45
46 // check that there are 0 arguments
47 checkNArg(4); // mag(d_tau) arg(d_tau) mag(g_e) arg(g_e)
48 checkNDaug(2);
49
51
54
55}
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)

◆ initProbMax()

void EvtEDM::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 57 of file EvtEDM.cc.

57 {
58
59 setProbMax(1.0);
60
61}
void setProbMax(double prbmx)

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