BOSS 7.0.4
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtSVVNONCPEIGEN Class Reference

#include <EvtSVVNONCPEIGEN.hh>

+ Inheritance diagram for EvtSVVNONCPEIGEN:

Public Member Functions

 EvtSVVNONCPEIGEN ()
 
virtual ~EvtSVVNONCPEIGEN ()
 
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 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 EvtDecayAmp
EvtAmp _amp2
 
- Protected Attributes inherited from EvtDecayBase
bool _daugsDecayedByParentModel
 

Detailed Description

Definition at line 28 of file EvtSVVNONCPEIGEN.hh.

Constructor & Destructor Documentation

◆ EvtSVVNONCPEIGEN()

EvtSVVNONCPEIGEN::EvtSVVNONCPEIGEN ( )
inline

Definition at line 32 of file EvtSVVNONCPEIGEN.hh.

32{}

Referenced by clone().

◆ ~EvtSVVNONCPEIGEN()

EvtSVVNONCPEIGEN::~EvtSVVNONCPEIGEN ( )
virtual

Definition at line 71 of file EvtSVVNONCPEIGEN.cc.

71{}

Member Function Documentation

◆ clone()

EvtDecayBase * EvtSVVNONCPEIGEN::clone ( )
virtual

Implements EvtDecayBase.

Definition at line 80 of file EvtSVVNONCPEIGEN.cc.

80 {
81
82 return new EvtSVVNONCPEIGEN;
83
84}

◆ decay()

void EvtSVVNONCPEIGEN::decay ( EvtParticle p)
virtual

Implements EvtDecayBase.

Definition at line 130 of file EvtSVVNONCPEIGEN.cc.

130 {
131
132 //added by Lange Jan4,2000
133 static EvtId B0=EvtPDL::getId("B0");
134 static EvtId B0B=EvtPDL::getId("anti-B0");
135
136 double t;
137 EvtId other_b;
138 EvtId daugs[2];
139
140
141 // MB: flip selects the final of the decay
142 int flip = ((p->getId() == B0) ? 0 : 1);
143 daugs[0]=getDaug(0);
144 daugs[1]=getDaug(1);
145 p->initializePhaseSpace(2,daugs);
146
147 EvtCPUtil::OtherB(p,t,other_b,0.5);
148
149 EvtComplex amp[3];
150
151 double dmt2 = getArg(0) * t / (2 * EvtConst::c);
152 double phiCKM = (2.0 * getArg(1) + getArg(2)); // 2b+g
153 EvtComplex ePlusIPhi(cos(phiCKM), sin(phiCKM));
154 EvtComplex eMinusIPhi(cos(-phiCKM), sin(-phiCKM));
155
156 // flip == 0 : D*-rho+
157 // flip == 1 : D*+rho-
158
159 if (!flip) {
160 if (other_b==B0B){
161 // At t=0 we have a B0
162 for (int i=0; i<3; ++i) {
163 amp[i] = _A_f[i]*cos(dmt2) + eMinusIPhi*EvtComplex(0.0,sin(dmt2))*_A_f[i+3];
164 }
165 }
166 if (other_b==B0){
167 // At t=0 we have a B0bar
168 for(int i=0; i<3; ++i) {
169 amp[i] = _A_f[i]*ePlusIPhi*EvtComplex(0.0,sin(dmt2)) + _A_f[i+3]*cos(dmt2);
170 }
171 }
172 } else{
173 if (other_b==B0B){
174 // At t=0 we have a B0
175
176 // M.Baak 01/16/2004
177 // Note: \bar{H}+- = H-+
178 // If one wants to use the correct helicities for B0 and B0bar decays but the same formula-notation (as done in EvtSVV_HelAmp),
179 // count the B0bar helicities backwards. (Equivalently, one could flip the chi angle.)
180
181 for(int i=0; i<3; ++i) {
182 amp[i] = _A_f[8-i]*cos(dmt2) + eMinusIPhi*EvtComplex(0.0,sin(dmt2))*_A_f[11-i];
183 }
184 }
185 if (other_b==B0){
186 // At t=0 we have a B0bar
187 for(int i=0; i<3; ++i) {
188 amp[i] = _A_f[8-i] * ePlusIPhi * EvtComplex(0.0,sin(dmt2)) + _A_f[11-i]*cos(dmt2);
189 }
190 }
191 }
192
193 EvtSVVHelAmp::SVVHel(p,_amp2,daugs[0],daugs[1],amp[0],amp[1],amp[2]);
194
195 return ;
196}
double sin(const BesAngle a)
double cos(const BesAngle a)
static void OtherB(EvtParticle *p, double &t, EvtId &otherb)
Definition: EvtCPUtil.cc:229
static const double c
Definition: EvtConst.hh:32
EvtAmp _amp2
Definition: EvtDecayAmp.hh:66
double getArg(int j)
EvtId getDaug(int i)
Definition: EvtDecayBase.hh:66
Definition: EvtId.hh:27
static EvtId getId(const std::string &name)
Definition: EvtPDL.cc:287
EvtId getId() const
Definition: EvtParticle.cc:113
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
static void SVVHel(EvtParticle *parent, EvtAmp &amp, EvtId n_v1, EvtId n_v2, const EvtComplex &hp, const EvtComplex &h0, const EvtComplex &hm)
Definition: EvtSVVHelAmp.cc:85
int t()
Definition: t.c:1

◆ getName()

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

Implements EvtDecayBase.

Definition at line 73 of file EvtSVVNONCPEIGEN.cc.

73 {
74
75 model_name="SVV_NONCPEIGEN";
76
77}

◆ init()

void EvtSVVNONCPEIGEN::init ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 86 of file EvtSVVNONCPEIGEN.cc.

86 {
87
88 // check that there are 27 arguments
89 checkNArg(27,15);
90 checkNDaug(2);
91
94
95 // The ordering of A_f is :
96 // A_f[0-2] = A_f
97 // A_f[3-5] = Abar_f
98 // A_f[6-8] = A_fbar
99 // A_f[9-11] = Abar_fbar
100 //
101 // Each of the 4 amplitudes include the 3 different helicity states in
102 // the order +, 0, -. See more about helicity amplitude ordering in ::decay
103
104 int i=0;
105 int j=(getNArg()-3)/2;
106
107 for(i=0; i<j; ++i){
108 _A_f[i] = getArg((2*i)+3) * EvtComplex( cos(getArg((2*i)+4)),sin(getArg((2*i)+4)) );
109 }
110
111 // If only 6 amplitudes are specified, calculate the last 6 from the first 6:
112 if(6 == j){
113 for(i = 0; i < 3; ++i){
114 _A_f[6+i] = _A_f[3+i];
115 _A_f[9+i] = _A_f[i];
116 }
117 }
118}
void checkSpinDaughter(int d1, 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 EvtSVVNONCPEIGEN::initProbMax ( )
virtual

Reimplemented from EvtDecayBase.

Definition at line 120 of file EvtSVVNONCPEIGEN.cc.

120 {
121 double probMax = 0;
122 for (int i = 0; i < 12; ++i){
123 double amp = abs(_A_f[i]);
124 probMax += amp * amp;
125 }
126
127 setProbMax(probMax);
128}
void setProbMax(double prbmx)

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