BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtKstarstargamma Class Reference

#include <EvtKstarstargamma.hh>

Inheritance diagram for EvtKstarstargamma:

Public Member Functions

 EvtKstarstargamma ()
virtual ~EvtKstarstargamma ()
void getName (std::string &name)
EvtDecayBaseclone ()
void decay (EvtParticle *p)
void init ()
void initProbMax ()
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 28 of file EvtKstarstargamma.hh.

Constructor & Destructor Documentation

◆ EvtKstarstargamma()

EvtKstarstargamma::EvtKstarstargamma ( )
inline

Definition at line 31 of file EvtKstarstargamma.hh.

31{}

Referenced by clone().

◆ ~EvtKstarstargamma()

EvtKstarstargamma::~EvtKstarstargamma ( )
virtual

Definition at line 39 of file EvtKstarstargamma.cc.

39{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtKstarstargamma::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 43 of file EvtKstarstargamma.cc.

43{ return new EvtKstarstargamma; }

◆ decay()

void EvtKstarstargamma::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 65 of file EvtKstarstargamma.cc.

65 {
66
68
69 EvtParticle* kaon = p->getDaug( 0 );
70 EvtParticle* pion = p->getDaug( 1 );
71 EvtParticle* photon = p->getDaug( 2 );
72
74 Hd1[0] = new EvtComplex[2];
75 Hd1[1] = new EvtComplex[2];
76 Hd1[2] = new EvtComplex[2];
77 Hd1[3] = new EvtComplex[2];
78 Hd1[4] = new EvtComplex[2];
79
80 Hd1[0][0] = 0.0;
81 Hd1[0][1] = 0.0;
82 Hd1[1][0] = 0.0;
83 Hd1[1][1] = 0.0;
84 Hd1[2][0] = 0.0;
85 Hd1[2][1] = 0.0;
86 Hd1[3][0] = 0.0;
87 Hd1[3][1] = 1.0;
88 Hd1[4][0] = 0.0;
89 Hd1[4][1] = 0.0;
90
92
93 EvtScalarParticle theB;
94
95 theB.init( p->getId(), p->getP4Restframe() );
96
97 EvtVector4R theKstarP4 = kaon->getP4() + pion->getP4();
98
99 EvtTensorParticle theKstar;
100 theKstar.init( EvtPDL::getId( std::string( "K_2*0" ) ), theKstarP4 );
101
102 EvtPhotonParticle thePhoton;
103 thePhoton.init( EvtPDL::getId( std::string( "K_2*0" ) ), photon->getP4() );
104
105 theKstar.addDaug( &theB );
106 thePhoton.addDaug( &theB );
107
108 EvtAmp amp1;
109
110 d1.evalAmp( &theB, amp1 );
111
112 EvtComplexPtrPtr Hd2 = new EvtComplexPtr[1];
113 Hd2[0] = new EvtComplex[1];
114
115 Hd2[0][0] = 1.0;
116
118
119 EvtVector4R theKstarP4boost( theKstarP4.get( 0 ), -theKstarP4.get( 1 ), -theKstarP4.get( 2 ),
120 -theKstarP4.get( 3 ) );
121
122 EvtScalarParticle theKaon;
123 theKaon.init( EvtPDL::getId( std::string( "K+" ) ),
124 boostTo( kaon->getP4(), theKstarP4boost ) );
125
126 EvtScalarParticle thePion;
127 thePion.init( EvtPDL::getId( std::string( "pi+" ) ),
128 boostTo( pion->getP4(), theKstarP4boost ) );
129
130 theKaon.addDaug( &theKstar );
131 thePion.addDaug( &theKstar );
132
133 // Calculate the propagator
134
135 double m = theKstarP4.mass();
136 EvtTwoBodyVertex v( 0.5, 0.14, 1.4, 2 );
137 EvtTwoBodyKine v1( 0.5, 0.14, m );
138 EvtPropBreitWignerRel prop( 1.4, 0.2 );
139
140 // Mass-dependent width correction and amplitude calculation
141
142 double width = prop.g0() * v.widthFactor( v1 );
143 prop.set_g0( width );
144 EvtComplex bwamp = prop.evaluate( m );
145
146 EvtAmp amp2;
147
148 d2.evalAmp( &theKstar, amp2 );
149
150 vertex( 0, bwamp * ( amp1._amp[0] * amp2._amp[0] + amp1._amp[1] * amp2._amp[1] +
151 amp1._amp[2] * amp2._amp[2] + amp1._amp[3] * amp2._amp[3] +
152 amp1._amp[4] * amp2._amp[4] ) );
153
154 vertex( 1, bwamp * ( amp1._amp[5] * amp2._amp[0] + amp1._amp[6] * amp2._amp[1] +
155 amp1._amp[7] * amp2._amp[2] + amp1._amp[8] * amp2._amp[3] +
156 amp1._amp[9] * amp2._amp[4] ) );
157
158 return;
159}
EvtComplex * EvtComplexPtr
Definition EvtComplex.hh:68
EvtComplexPtr * EvtComplexPtrPtr
Definition EvtComplex.hh:69
EvtDiracSpinor boostTo(const EvtDiracSpinor &sp, const EvtVector4R p4)
int pion
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
Definition KarLud.h:35
void vertex(const EvtComplex &amp)
EvtId * getDaugs()
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:272
EvtId getId() const
EvtVector4R getP4Restframe()
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
void addDaug(EvtParticle *node)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void init(EvtId part_n, double e, double px, double py, double pz)
void init(EvtId part_n, double e, double px, double py, double pz)
void init(EvtId part_n, double e, double px, double py, double pz)
double mass() const
double get(int i) const

◆ getName()

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

Implements EvtDecayBase.

Definition at line 41 of file EvtKstarstargamma.cc.

41{ model_name = "KSTARSTARGAMMA"; }

◆ init()

void EvtKstarstargamma::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 45 of file EvtKstarstargamma.cc.

45 {
46
47 // check that there are 0 arguments
48 checkNArg( 0 );
49
50 // check that there are 3 daughters
51 checkNDaug( 3 );
52
53 // check the parent and daughter spins
58}
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 EvtKstarstargamma::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 60 of file EvtKstarstargamma.cc.

60 {
61
62 // setProbMax(1.0);
63}

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