BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtBtoXsgammaAliGreub Class Reference

#include <EvtBtoXsgammaAliGreub.hh>

+ Inheritance diagram for EvtBtoXsgammaAliGreub:

Public Member Functions

 EvtBtoXsgammaAliGreub ()
 
virtual ~EvtBtoXsgammaAliGreub ()
 
void init (int, double *)
 
double GetMass (int code)
 
- Public Member Functions inherited from EvtBtoXsgammaAbsModel
 EvtBtoXsgammaAbsModel ()
 
virtual ~EvtBtoXsgammaAbsModel ()
 
virtual void init (int, double *)
 
virtual double GetMass (int code)=0
 

Detailed Description

Definition at line 28 of file EvtBtoXsgammaAliGreub.hh.

Constructor & Destructor Documentation

◆ EvtBtoXsgammaAliGreub()

EvtBtoXsgammaAliGreub::EvtBtoXsgammaAliGreub ( )
inline

Definition at line 32 of file EvtBtoXsgammaAliGreub.hh.

32{}

◆ ~EvtBtoXsgammaAliGreub()

EvtBtoXsgammaAliGreub::~EvtBtoXsgammaAliGreub ( )
virtual

Definition at line 47 of file EvtBtoXsgammaAliGreub.cc.

47{}

Member Function Documentation

◆ GetMass()

double EvtBtoXsgammaAliGreub::GetMass ( int  code)
virtual

Implements EvtBtoXsgammaAbsModel.

Definition at line 63 of file EvtBtoXsgammaAliGreub.cc.

63 {
64
65 // The special lineshape for strange hadrons X_s in b -> s gamma:
66 // An 18 parameter function fitted to the theoretical mass spectrum
67 // of Ali & Greub for a B meson mass of 5.279 GeV; top quark mass of
68 // 174.3 GeV; strange quark mass of 0.48 GeV (tuned to give minimum
69 // M_Xs of 0.64 GeV) and Fermi momentum of 265 MeV for spectator quark
70 // mass of 150 MeV (from CLEO fit). Truncated at max on high side
71 // and min (just above K pi or KK thresold) on low side.
72 double min=0.64;
73 double max=4.5;
74 double xbox, ybox, alifit;
75 double mass=0.0;
76
77 double par[18];
78 if ((Xscode == 30343) || (Xscode == -30343) ||
79 (Xscode == 30353) || (Xscode == -30353)) { // Xsu or Xsd
80 min=0.6373; // Just above K pi threshold for Xsd/u
81 //min=0.6333; // K pi threshold for neutral Xsd
82 par[0]=-2057.2380371094;
83 par[1]=2502.2556152344;
84 par[2]=1151.5632324219;
85 par[3]=0.82431584596634;
86 par[4]=-4110.5234375000;
87 par[5]=8445.6757812500;
88 par[6]=-3034.1894531250;
89 par[7]=1.1557708978653;
90 par[8]=1765.9311523438;
91 par[9]=1.3730158805847;
92 par[10]=0.51371538639069;
93 par[11]=2.0056934356689;
94 par[12]=37144.097656250;
95 par[13]=-50296.781250000;
96 par[14]=27319.095703125;
97 par[15]=-7408.0678710938;
98 par[16]=1000.8093261719;
99 par[17]=-53.834449768066;
100 } else if ((Xscode == 30363) || (Xscode == -30363)) {
101 min = 0.9964; // Just above KK threshold for Xss
102 par[0]=-32263.908203125;
103 par[1]=57186.589843750;
104 par[2]=-24230.728515625;
105 par[3]=1.1155973672867;
106 par[4]=-12161.131835938;
107 par[5]=20162.146484375;
108 par[6]=-7198.8564453125;
109 par[7]=1.3783323764801;
110 par[8]=1995.1691894531;
111 par[9]=1.4655895233154;
112 par[10]=0.48869228363037;
113 par[11]=2.1038570404053;
114 par[12]=55100.058593750;
115 par[13]=-75201.703125000;
116 par[14]=41096.066406250;
117 par[15]=-11205.986328125;
118 par[16]=1522.4024658203;
119 par[17]=-82.379623413086;
120 } else {
121 report(DEBUG,"EvtGen") << "In EvtBtoXsgammaAliGreub: Particle with id " << Xscode << " is not a Xss particle"<<endl;
122 return 0;
123 }
124
125 double boxheight=par[8];
126 double boxwidth=max-min;
127
128 while ((mass > max) || (mass < min)){
129 xbox = EvtRandom::Flat(boxwidth)+min;
130 ybox=EvtRandom::Flat(boxheight);
131 if (xbox<par[3]) {
132 alifit=par[0]+par[1]*xbox+par[2]*pow(xbox,2);
133 } else if (xbox<par[7]) {
134 alifit=par[4]+par[5]*xbox+par[6]*pow(xbox,2);
135 } else if (xbox<par[11]) {
136 alifit=par[8]*exp(-0.5*pow((xbox-par[9])/par[10],2));
137 } else {
138 alifit=par[12]+par[13]*xbox+par[14]*pow(xbox,2)+par[15]*pow(xbox,3)+par[16]*pow(xbox,4)+par[17]*pow(xbox,5);
139 }
140 if (ybox>alifit) {
141 mass=0.0;
142 } else {
143 mass=xbox;
144 }
145 }
146 return mass;
147}
double mass
EvtComplex exp(const EvtComplex &c)
Definition: EvtComplex.hh:252
ostream & report(Severity severity, const char *facility)
Definition: EvtReport.cc:36
@ DEBUG
Definition: EvtReport.hh:53
static double Flat()
Definition: EvtRandom.cc:74

◆ init()

void EvtBtoXsgammaAliGreub::init ( int  nArg,
double *  args 
)
virtual

Reimplemented from EvtBtoXsgammaAbsModel.

Definition at line 49 of file EvtBtoXsgammaAliGreub.cc.

49 {
50
51 if ((nArg - 1) != 0) {
52
53 report(ERROR,"EvtGen") << "EvtBtoXsgamma generator model "
54 << "EvtBtoXsgammaAliGreub expected "
55 << "zero arguments but found: "<<nArg-1<<endl;
56 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
57 ::abort();
58
59 }
60
61}
@ ERROR
Definition: EvtReport.hh:49

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