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

#include <EvtLambdaP_BarGamma.hh>

+ Inheritance diagram for EvtLambdaP_BarGamma:

Public Member Functions

 EvtLambdaP_BarGamma ()
 
 ~EvtLambdaP_BarGamma ()
 
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 31 of file EvtLambdaP_BarGamma.hh.

Constructor & Destructor Documentation

◆ EvtLambdaP_BarGamma()

EvtLambdaP_BarGamma::EvtLambdaP_BarGamma ( )

Definition at line 30 of file EvtLambdaP_BarGamma.cc.

30 :
31 _mLambdab ( 5.624), // Lambda_b mass
32 _mLambda0 ( 1.115684), // Lambda0 mass
33 _c7Eff ( -0.31), // Wilson coefficient
34 _mb ( 4.4), // running b mass
35 _mV ( 5.42), // pole mass vector current
36 _mA ( 5.86), // pole mass axial current
37 _GF ( 1.166E-5), // Fermi constant
38 _gLambdab ( 16), // coupling constant Lambda_b -> B- p
39 _e0 ( 1), // electromagnetic coupling (+1)
40 _g1 ( 0.64), // heavy-light form factors at q_mSqare
41 _g2 ( -0.10),
42 _f1 ( 0.64),
43 _f2 ( -0.31),
44 _VtbVtsStar ( 0.038) // |V_tb V_ts^*|
45{
46}

Referenced by clone().

◆ ~EvtLambdaP_BarGamma()

EvtLambdaP_BarGamma::~EvtLambdaP_BarGamma ( )
inline

Definition at line 36 of file EvtLambdaP_BarGamma.hh.

36{;}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtLambdaP_BarGamma::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 54 of file EvtLambdaP_BarGamma.cc.

54 {
55 return new EvtLambdaP_BarGamma;
56}

◆ decay()

void EvtLambdaP_BarGamma::decay ( EvtParticle * p)
virtual

Implements EvtDecayBase.

Definition at line 71 of file EvtLambdaP_BarGamma.cc.

71 {
72 EvtComplex I(0, 1);
73
75
76 EvtDiracParticle* theLambda = static_cast<EvtDiracParticle*>(p->getDaug(0));
77 EvtVector4R lambdaMomentum = theLambda->getP4Lab();
78
79 EvtDiracParticle* theAntiP = static_cast<EvtDiracParticle*>(p->getDaug(1));
80
81 EvtPhotonParticle* thePhoton = static_cast<EvtPhotonParticle*>(p->getDaug(2));
82 EvtVector4R photonMomentum = thePhoton->getP4Lab(); // get momentum in the same frame
83
84 // loop over all possible spin states
85 for (int i=0; i<2; ++i) {
86 EvtDiracSpinor lambdaPol = theLambda->spParent(i);
87 for (int j=0; j<2; ++j) {
88 EvtDiracSpinor antiP_Pol = theAntiP->spParent(j);
89 for (int k=0; k<2; ++k) {
90 EvtVector4C photonPol = thePhoton->epsParentPhoton(k); // one of two possible polarization states
91 EvtGammaMatrix photonGamma; // sigma[mu][nu] * epsilon[mu] * k[nu] (watch lower indices)
92 for (int mu=0; mu<4; ++mu)
93 for (int nu=0; nu<4; ++nu)
94 photonGamma += EvtGammaMatrix::sigmaLower(mu, nu) * photonPol.get(mu) * photonMomentum.get(nu);
95
96 EvtComplex amp =
97 -I*_gLambdab * lambdaPol.adjoint() * ((constA()*EvtGammaMatrix::id() + constB()*EvtGammaMatrix::g5())
98 * photonGamma * (slash(lambdaMomentum) + slash(photonMomentum) + _mLambdab*EvtGammaMatrix::id())
99 / ((lambdaMomentum + photonMomentum)*(lambdaMomentum + photonMomentum) - _mLambdab*_mLambdab)
100 * EvtGammaMatrix::g5() * antiP_Pol);
101 // use of parentheses so I do not have to define EvtDiracSpinor*EvtGammaMatrix, which shouldn't be defined to prevent errors in indexing
102 vertex(i, j, k, amp);
103 }
104 }
105 }
106}
const DifComplex I
EvtGammaMatrix slash(const EvtVector4C &p)
void vertex(const EvtComplex &amp)
EvtId * getDaugs()
EvtDiracSpinor spParent(int i) const
EvtDiracSpinor adjoint() const
static const EvtGammaMatrix & sigmaLower(unsigned int mu, unsigned int nu)
static const EvtGammaMatrix & id()
static const EvtGammaMatrix & g5()
EvtVector4R getP4Lab()
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
EvtVector4C epsParentPhoton(int i)
const EvtComplex & get(int) const
double get(int i) const

◆ getName()

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

Implements EvtDecayBase.

Definition at line 50 of file EvtLambdaP_BarGamma.cc.

50 {
51 modelName = "B_TO_LAMBDA_PBAR_GAMMA";
52}

◆ init()

void EvtLambdaP_BarGamma::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 58 of file EvtLambdaP_BarGamma.cc.

58 {
59 // no arguments, daughter lambda p_bar gamma
60 checkNArg(0);
61 checkNDaug(3);
62
67}
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 EvtLambdaP_BarGamma::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 108 of file EvtLambdaP_BarGamma.cc.

109{
110 // setProbMax(1);
111 setProbMax(9.0000E-13); // found by trial and error
112}
void setProbMax(double prbmx)

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