#include <EvtBtoXsgammaFlatEnergy.hh>
Inheritance diagram for EvtBtoXsgammaFlatEnergy:
Public Member Functions | |
EvtBtoXsgammaFlatEnergy () | |
virtual | ~EvtBtoXsgammaFlatEnergy () |
void | init (int, double *) |
double | GetMass (int code) |
Private Attributes | |
double | _eMin |
double | _eMax |
double | _mB0 |
double | _eRange |
Definition at line 27 of file EvtBtoXsgammaFlatEnergy.hh.
EvtBtoXsgammaFlatEnergy::EvtBtoXsgammaFlatEnergy | ( | ) | [inline] |
EvtBtoXsgammaFlatEnergy::~EvtBtoXsgammaFlatEnergy | ( | ) | [virtual] |
double EvtBtoXsgammaFlatEnergy::GetMass | ( | int | code | ) | [virtual] |
Implements EvtBtoXsgammaAbsModel.
Definition at line 64 of file EvtBtoXsgammaFlatEnergy.cc.
References _eMin, _eRange, _mB0, and EvtRandom::Flat().
00064 { 00065 00066 double eGamma = EvtRandom::Flat(_eRange)+_eMin; 00067 double mH = sqrt(pow(_mB0,2)-2.0*_mB0*eGamma); 00068 return mH; 00069 }
void EvtBtoXsgammaFlatEnergy::init | ( | int | , | |
double * | ||||
) | [virtual] |
Reimplemented from EvtBtoXsgammaAbsModel.
Definition at line 33 of file EvtBtoXsgammaFlatEnergy.cc.
References _eMax, _eMin, _eRange, _mB0, calibUtil::ERROR, mPi, and report().
00033 { 00034 00035 if ((nArg) > 3 || (nArg > 1 && nArg <3)){ 00036 00037 report(ERROR,"EvtGen") << "EvtBtoXsgamma generator model " 00038 << "EvtBtoXsgammaFlatEnergy expected " 00039 << "either 1(default config) or two arguments but found: "<<nArg<<endl; 00040 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl; 00041 ::abort(); 00042 } 00043 _mB0=5.2794; 00044 double mPi = 0.140; 00045 double mK = 0.494; 00046 if(nArg == 1){ 00047 _eMin = 1.7; 00048 //Invariant mass of Xsd must be greater the m_pi+m_K leads to 00049 //Egamma < (m_B**2-(m_pi+m_k)**2)/(2m_B) 00050 _eMax = (pow(_mB0,2)-pow(mPi+mK,2))/(2.0*_mB0); 00051 }else{ 00052 _eMin=args[1]; 00053 _eMax=args[2]; 00054 } 00055 if (_eMax>(pow(_mB0,2)-pow(mPi+mK,2))/(2.0*_mB0)){ 00056 report(ERROR,"EvtGen") << "Emax greater than Kinematic limit" << endl; 00057 report(ERROR,"EvtGen") << "Reset to the kinematic limit" << endl; 00058 report(ERROR,"EvtGen") << "(m_B**2-(m_pi+m_k)**2)/(2m_B)" << endl; 00059 _eMax = (pow(_mB0,2)-pow(mPi+mK,2))/(2.0*_mB0); 00060 } 00061 _eRange=_eMax-_eMin; 00062 }
double EvtBtoXsgammaFlatEnergy::_eMax [private] |
double EvtBtoXsgammaFlatEnergy::_eMin [private] |
double EvtBtoXsgammaFlatEnergy::_eRange [private] |
double EvtBtoXsgammaFlatEnergy::_mB0 [private] |