EvtD0mixDalitz Class Reference

#include <EvtD0mixDalitz.hh>

Inheritance diagram for EvtD0mixDalitz:

EvtDecayAmp EvtDecayBase List of all members.

Public Member Functions

 EvtD0mixDalitz ()
virtual ~EvtD0mixDalitz ()
void getName (std::string &model_name)
EvtDecayBaseclone ()
void initProbMax ()
void init ()
void decay (EvtParticle *p)
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 std::string commandName ()
virtual void command (std::string cmd)
double getProbMax (double prob)
double resetProbMax (double prob)
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::stringgetArgsStr ()
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 ()

Static Public Member Functions

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

bool daugsDecayedByParentModel ()

Protected Attributes

EvtAmp _amp2
bool _daugsDecayedByParentModel

Private Member Functions

void readPDGValues ()
EvtComplex dalitzKsPiPi (const EvtDalitzPoint &point)
EvtComplex dalitzKsKK (const EvtDalitzPoint &point)
EvtComplex h1 (const double &ct) const
EvtComplex h2 (const double &ct) const
void reportInvalidAndExit () const

Private Attributes

int _d1
int _d2
int _d3
double _x
double _y
EvtComplex _qp
bool _isKsPiPi
bool _isRBWmodel
EvtId _D0
EvtId _D0B
EvtId _KM
EvtId _KP
EvtId _K0
EvtId _K0B
EvtId _KL
EvtId _KS
EvtId _PIM
EvtId _PIP
double _mD0
double _mKs
double _mPi
double _mK
double _ctau
double _gamma
EvtComplex _iChi
EvtComplex _iChi2

Static Private Attributes

static const EvtSpinType::spintype_SCALAR = EvtSpinType::SCALAR
static const EvtSpinType::spintype_VECTOR = EvtSpinType::VECTOR
static const EvtSpinType::spintype_TENSOR = EvtSpinType::TENSOR
static const EvtDalitzReso::CouplingType_EtaPic = EvtDalitzReso::EtaPic
static const EvtDalitzReso::CouplingType_PicPicKK = EvtDalitzReso::PicPicKK
static const EvtDalitzReso::NumType_RBW = EvtDalitzReso::RBW_CLEO_ZEMACH
static const EvtDalitzReso::NumType_GS = EvtDalitzReso::GS_CLEO_ZEMACH
static const EvtDalitzReso::NumType_KMAT = EvtDalitzReso::K_MATRIX
static const EvtCyclic3::Pair_AB = EvtCyclic3::AB
static const EvtCyclic3::Pair_AC = EvtCyclic3::AC
static const EvtCyclic3::Pair_BC = EvtCyclic3::BC

Detailed Description

Definition at line 26 of file EvtD0mixDalitz.hh.


Constructor & Destructor Documentation

EvtD0mixDalitz::EvtD0mixDalitz (  )  [inline]

Definition at line 102 of file EvtD0mixDalitz.hh.

00102                    : _d1( 0 ), _d2( 0 ), _d3( 0 ),
00103                      _x( 0. ), _y( 0. ), _qp( 1. ),
00104                      _isKsPiPi( false ), _isRBWmodel( true )
00105   {}

virtual EvtD0mixDalitz::~EvtD0mixDalitz (  )  [inline, virtual]

Definition at line 107 of file EvtD0mixDalitz.hh.

00107 {};


Member Function Documentation

void EvtDecayBase::checkNArg ( int  a1,
int  a2 = -1,
int  a3 = -1,
int  a4 = -1 
) [inherited]

Definition at line 482 of file EvtDecayBase.cc.

References EvtDecayBase::_modelname, EvtDecayBase::_narg, calibUtil::ERROR, EvtDecayBase::printSummary(), and report().

Referenced by EvtVVSPwave::init(), EvtVVPIPI_WEIGHTED::init(), EvtVVpipi::init(), EvtVVP::init(), EvtVSSMix::init(), EvtVSSBMixCPT::init(), EvtVSS::init(), EvtVSPPwave::init(), EvtVPHOtoVISRHi::init(), EvtVPHOtoVISR::init(), EvtVll::init(), EvtVectorIsr::init(), EvtTVSPwave::init(), EvtTSS::init(), EvtTrackGen::init(), EvtTauVectornu::init(), EvtTauScalarnu::init(), EvtTaulnunu::init(), EvtTauHadnu::init(), EvtTauGamMu::init(), EvtT2GV::init(), EvtSVVNONCPEIGEN::init(), EvtSVVHelAmp::init(), EvtSVVCPLH::init(), EvtSVVCP::init(), EvtSVSNONCPEIGEN::init(), EvtSVSCPLH::init(), EvtSVSCPiso::init(), EvtSVSCP::init(), EvtSVS::init(), EvtSVPHelAmp::init(), EvtSVPCP::init(), EvtSTSCP::init(), EvtSTS::init(), EvtSSSCPT::init(), EvtSSSCPpng::init(), EvtSSSCP::init(), EvtSSDCP::init(), EvtSLN::init(), EvtSll::init(), EvtS2GV::init(), EvtRexc::init(), EvtPythia::init(), EvtPyGaGa::init(), EvtPycont::init(), EvtPi0Dalitz::init(), EvtPhsp::init(), EvtPhokhara_ppbar::init(), EvtPhokhara_pipipi0::init(), EvtPhokhara_pipi::init(), EvtPhokhara_pi0pi0pipi::init(), EvtPhokhara_nnbar::init(), EvtPhokhara_LLB::init(), EvtPhokhara_KK::init(), EvtPhokhara_K0K0::init(), EvtPhokhara_4pi::init(), EvtPhokhara::init(), EvtPhiDalitz::init(), EvtPartWave::init(), EvtP2GC2::init(), EvtP2GC1::init(), EvtP2GC0::init(), EvtOmegaDalitz::init(), EvtmH2::init(), EvtMelikhov::init(), EvtMBody3::init(), EvtMassH2::init(), EvtMassH1::init(), EvtLNuGamma::init(), EvtLambdaP_BarGamma::init(), EvtLambdac2pKpi::init(), EvtKstarstargamma::init(), EvtKstarnunu::init(), EvtJscont::init(), EvtJpipi::init(), EvtJPE::init(), EvtJetSet::init(), EvtISGW2::init(), EvtISGW::init(), EvtHypWK::init(), EvtHQET::init(), EvtHelPPJ::init(), EvtHelAmp::init(), EvtHAngSam3::init(), EvtGoityRoberts::init(), EvtFlatQ2::init(), EvtEtaDalitz::init(), EvtEDM::init(), EvtDMix::init(), EvtDeBD::init(), EvtDDalitz::init(), EvtChi2BB2::init(), EvtChi2BB1::init(), EvtChi1BB2::init(), EvtChi1BB1::init(), EvtChi0BB2::init(), EvtCBTo3piP00::init(), EvtCBTo3piMPP::init(), EvtCalHelAmp::init(), EvtBtoXsll::init(), EvtBtoXsEtap::init(), EvtbTosllBall::init(), EvtbTosllAli::init(), EvtBToKpipiCP::init(), EvtBtoKpiCPiso::init(), EvtBtoKD3P::init(), EvtBTo4piCP::init(), EvtBTo3piCP::init(), EvtBto2piCPiso::init(), EvtBsquark::init(), EvtBody3::init(), EvtBHadronic::init(), EvtAV2GV::init(), and EvtAngH2::init().

00482                                                            {
00483 
00484   if ( _narg != a1 && _narg != a2 && _narg != a3 && _narg != a4 ) {
00485     report(ERROR,"EvtGen") << _modelname.c_str() << " generator expected "<<endl;
00486     report(ERROR,"EvtGen") << a1<<endl;; 
00487     if ( a2>-1) {
00488       report(ERROR,"EvtGen") << " or " << a2<<endl; 
00489     }
00490     if ( a3>-1) {
00491       report(ERROR,"EvtGen") << " or " << a3<<endl; 
00492     }
00493     if ( a4>-1) {
00494       report(ERROR,"EvtGen") << " or " << a4<<endl; 
00495     }
00496     report(ERROR,"EvtGen") << " arguments but found:"<< _narg << endl;
00497     printSummary();
00498     report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
00499     ::abort();
00500 
00501   } 
00502 
00503 }

void EvtDecayBase::checkNDaug ( int  d1,
int  d2 = -1 
) [inherited]

Definition at line 504 of file EvtDecayBase.cc.

References EvtDecayBase::_modelname, EvtDecayBase::_ndaug, calibUtil::ERROR, EvtDecayBase::printSummary(), and report().

Referenced by EvtVVSPwave::init(), EvtVVPIPI_WEIGHTED::init(), EvtVVpipi::init(), EvtVVP::init(), EvtVubNLO::init(), EvtVubHybrid::init(), EvtVub::init(), EvtVSSMix::init(), EvtVSSBMixCPT::init(), EvtVSS::init(), EvtVSPPwave::init(), EvtVPHOtoVISRHi::init(), EvtVPHOtoVISR::init(), EvtVll::init(), EvtVectorIsr::init(), EvtTVSPwave::init(), EvtTSS::init(), EvtTauVectornu::init(), EvtTauScalarnu::init(), EvtTaulnunu::init(), EvtTauGamMu::init(), EvtSVVNONCPEIGEN::init(), EvtSVVHelAmp::init(), EvtSVVCPLH::init(), EvtSVVCP::init(), EvtSVSNONCPEIGEN::init(), EvtSVSCPLH::init(), EvtSVSCPiso::init(), EvtSVSCP::init(), EvtSVS::init(), EvtSVPHelAmp::init(), EvtSVPCP::init(), EvtSTSCP::init(), EvtSTS::init(), EvtSSSCPT::init(), EvtSSSCPpng::init(), EvtSSSCP::init(), EvtSSDCP::init(), EvtSPL::init(), EvtSLPole::init(), EvtSLN::init(), EvtSll::init(), EvtSLBKPole::init(), EvtS2GV::init(), EvtPi0Dalitz::init(), EvtPhokhara::init(), EvtPhiDalitz::init(), EvtPBB2::init(), EvtPBB1::init(), EvtPartWave::init(), EvtP2GC2::init(), EvtP2GC1::init(), EvtP2GC0::init(), EvtOmegaDalitz::init(), EvtMelikhov::init(), EvtLNuGamma::init(), EvtLambdaP_BarGamma::init(), EvtKstarstargamma::init(), EvtKstarnunu::init(), EvtKKLambdaC::init(), EvtJTO3P::init(), EvtJpipi::init(), EvtJPE::init(), EvtJ2BB3::init(), EvtJ2BB2::init(), EvtJ2BB1::init(), EvtISGW2::init(), EvtISGW::init(), EvtHypWK::init(), EvtHQET2::init(), EvtHQET::init(), EvtHelPPJ::init(), EvtHelAmp::init(), EvtGoityRoberts::init(), EvtFlatQ2::init(), EvtEtaDalitz::init(), EvtEDM::init(), EvtDeBD::init(), EvtDDalitz::init(), init(), EvtChi2BB2::init(), EvtChi2BB1::init(), EvtChi1BB2::init(), EvtChi1BB1::init(), EvtChi0BB2::init(), EvtChi0BB1::init(), EvtCBTo3piP00::init(), EvtCBTo3piMPP::init(), EvtBtoXsll::init(), EvtbTosllBall::init(), EvtbTosllAli::init(), EvtBToKpipiCP::init(), EvtBtoKpiCPiso::init(), EvtBtoKD3P::init(), EvtBTo4piCP::init(), EvtBTo3piCP::init(), EvtBto2piCPiso::init(), EvtAV2GV::init(), EvtAngSamLab::init(), EvtAngSam3::init(), and EvtAngSam::init().

00504                                            {
00505 
00506   if ( _ndaug != d1 && _ndaug != d2 ) {
00507     report(ERROR,"EvtGen") << _modelname.c_str() << " generator expected ";
00508     report(ERROR,"EvtGen") << d1; 
00509     if ( d2>-1) {
00510       report(ERROR,"EvtGen") << " or " << d2; 
00511     }
00512     report(ERROR,"EvtGen") << " daughters but found:"<< _ndaug << endl;
00513     printSummary();
00514     report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
00515     ::abort();
00516   } 
00517 
00518 }

void EvtDecayBase::checkQ (  )  [inherited]

Definition at line 35 of file EvtDecayBase.cc.

References EvtDecayBase::_daug, EvtDecayBase::_modelname, EvtDecayBase::_ndaug, EvtDecayBase::_parent, EvtCyclic3::c_str(), EvtPDL::chg3(), calibUtil::ERROR, genRecEmupikp::i, EvtPDL::name(), q, and report().

Referenced by EvtDecayBase::saveDecayInfo().

00035                           {
00036   int i;
00037   int q=0;
00038   int qpar;
00039 
00040   //If there are no daughters (jetset etc) then we do not
00041   //want to do this test.  Why?  Because sometimes the parent
00042   //will have a nonzero charge.
00043 
00044   if ( _ndaug != 0) {
00045     for(i=0; i<_ndaug; i++ ) {
00046       q += EvtPDL::chg3(_daug[i]);
00047     }
00048     qpar = EvtPDL::chg3(_parent);
00049 
00050     if ( q != qpar ) {
00051       report(ERROR,"EvtGen") <<_modelname.c_str()<< " generator expected "
00052                              << " charge to be conserved, found:"<<endl;
00053       report(ERROR,"EvtGen") << "Parent charge of "<<(qpar/3)<<endl;
00054       report(ERROR,"EvtGen") << "Sum of daughter charge of "<<(q/3)<<endl;
00055       report(ERROR,"EvtGen") << "The parent is "<< EvtPDL::name(_parent).c_str()<<endl;
00056       for(i=0; i<_ndaug; i++ ) {
00057       report(ERROR,"EvtGen") << "Daughter "<< EvtPDL::name(_daug[i]).c_str()<<endl;
00058       }
00059       report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
00060       
00061       ::abort();
00062     }
00063   }
00064 }

void EvtDecayBase::checkSpinDaughter ( int  d1,
EvtSpinType::spintype  sp 
) [inherited]

Definition at line 533 of file EvtDecayBase.cc.

References EvtDecayBase::_modelname, calibUtil::ERROR, EvtDecayBase::getDaug(), EvtPDL::getSpinType(), EvtDecayBase::printSummary(), and report().

Referenced by EvtVVSPwave::init(), EvtVVPIPI_WEIGHTED::init(), EvtVVpipi::init(), EvtVVP::init(), EvtVSSMix::init(), EvtVSSBMixCPT::init(), EvtVSS::init(), EvtVSPPwave::init(), EvtVPHOtoVISRHi::init(), EvtVPHOtoVISR::init(), EvtVll::init(), EvtVectorIsr::init(), EvtTVSPwave::init(), EvtTSS::init(), EvtTauVectornu::init(), EvtTauScalarnu::init(), EvtTaulnunu::init(), EvtTauHadnu::init(), EvtTauGamMu::init(), EvtSVVNONCPEIGEN::init(), EvtSVVHelAmp::init(), EvtSVVCPLH::init(), EvtSVVCP::init(), EvtSVSNONCPEIGEN::init(), EvtSVSCPLH::init(), EvtSVSCPiso::init(), EvtSVSCP::init(), EvtSVS::init(), EvtSVPHelAmp::init(), EvtSVPCP::init(), EvtSTSCP::init(), EvtSTS::init(), EvtSSSCPpng::init(), EvtSSSCP::init(), EvtSPL::init(), EvtSLPole::init(), EvtSLN::init(), EvtSll::init(), EvtSLBKPole::init(), EvtS2GV::init(), EvtPi0Dalitz::init(), EvtPhiDalitz::init(), EvtPBB2::init(), EvtPBB1::init(), EvtP2GC2::init(), EvtP2GC1::init(), EvtP2GC0::init(), EvtOmegaDalitz::init(), EvtMelikhov::init(), EvtLNuGamma::init(), EvtLambdaP_BarGamma::init(), EvtKstarstargamma::init(), EvtKstarnunu::init(), EvtKKLambdaC::init(), EvtJTO3P::init(), EvtJpipi::init(), EvtJPE::init(), EvtJ2BB3::init(), EvtJ2BB2::init(), EvtJ2BB1::init(), EvtISGW2::init(), EvtISGW::init(), EvtHypWK::init(), EvtHQET2::init(), EvtHQET::init(), EvtHelPPJ::init(), EvtGoityRoberts::init(), EvtFlatQ2::init(), EvtEtaDalitz::init(), EvtEDM::init(), EvtDeBD::init(), EvtDDalitz::init(), init(), EvtChi2BB2::init(), EvtChi2BB1::init(), EvtChi1BB2::init(), EvtChi1BB1::init(), EvtChi0BB2::init(), EvtChi0BB1::init(), EvtCBTo3piP00::init(), EvtCBTo3piMPP::init(), EvtbTosllBall::init(), EvtbTosllAli::init(), EvtBToKpipiCP::init(), EvtBtoKpiCPiso::init(), EvtBtoKD3P::init(), EvtBTo4piCP::init(), EvtBTo3piCP::init(), EvtBto2piCPiso::init(), and EvtAV2GV::init().

00533                                                                    {
00534 
00535   EvtSpinType::spintype parenttype = EvtPDL::getSpinType(getDaug(d1));
00536   if ( parenttype != sp ) {
00537     report(ERROR,"EvtGen") << _modelname.c_str() 
00538                            << " did not get the correct daughter spin d=" 
00539                            << d1 << endl;
00540     printSummary();
00541     report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
00542     ::abort();
00543   } 
00544 
00545 }

void EvtDecayBase::checkSpinParent ( EvtSpinType::spintype  sp  )  [inherited]

Definition at line 520 of file EvtDecayBase.cc.

References EvtDecayBase::_modelname, calibUtil::ERROR, EvtDecayBase::getParentId(), EvtPDL::getSpinType(), EvtDecayBase::printSummary(), and report().

Referenced by EvtVVSPwave::init(), EvtVVPIPI_WEIGHTED::init(), EvtVVpipi::init(), EvtVVP::init(), EvtVSSMix::init(), EvtVSSBMixCPT::init(), EvtVSS::init(), EvtVSPPwave::init(), EvtVPHOtoVISRHi::init(), EvtVPHOtoVISR::init(), EvtVll::init(), EvtVectorIsr::init(), EvtTVSPwave::init(), EvtTSS::init(), EvtTauVectornu::init(), EvtTauScalarnu::init(), EvtTaulnunu::init(), EvtTauHadnu::init(), EvtTauGamMu::init(), EvtSVVHelAmp::init(), EvtSVVCPLH::init(), EvtSVVCP::init(), EvtSVSCPLH::init(), EvtSVSCPiso::init(), EvtSVSCP::init(), EvtSVS::init(), EvtSVPHelAmp::init(), EvtSVPCP::init(), EvtSTSCP::init(), EvtSTS::init(), EvtSSSCPpng::init(), EvtSSSCP::init(), EvtSPL::init(), EvtSLPole::init(), EvtSLN::init(), EvtSll::init(), EvtSLBKPole::init(), EvtS2GV::init(), EvtPi0Dalitz::init(), EvtPhiDalitz::init(), EvtPBB2::init(), EvtPBB1::init(), EvtP2GC2::init(), EvtP2GC1::init(), EvtP2GC0::init(), EvtOmegaDalitz::init(), EvtMelikhov::init(), EvtLNuGamma::init(), EvtLambdaP_BarGamma::init(), EvtKstarstargamma::init(), EvtKstarnunu::init(), EvtKKLambdaC::init(), EvtJTO3P::init(), EvtJpipi::init(), EvtJPE::init(), EvtJ2BB3::init(), EvtJ2BB2::init(), EvtJ2BB1::init(), EvtISGW2::init(), EvtISGW::init(), EvtHypWK::init(), EvtHQET2::init(), EvtHQET::init(), EvtHelPPJ::init(), EvtGoityRoberts::init(), EvtFlatQ2::init(), EvtEtaDalitz::init(), EvtEDM::init(), EvtDeBD::init(), EvtDDalitz::init(), init(), EvtChi2BB2::init(), EvtChi2BB1::init(), EvtChi1BB2::init(), EvtChi1BB1::init(), EvtChi0BB2::init(), EvtChi0BB1::init(), EvtCBTo3piP00::init(), EvtCBTo3piMPP::init(), EvtbTosllBall::init(), EvtbTosllAli::init(), EvtBToKpipiCP::init(), EvtBtoKpiCPiso::init(), EvtBtoKD3P::init(), EvtBTo4piCP::init(), EvtBTo3piCP::init(), EvtBto2piCPiso::init(), and EvtAV2GV::init().

00520                                                          {
00521 
00522   EvtSpinType::spintype parenttype = EvtPDL::getSpinType(getParentId());
00523   if ( parenttype != sp ) {
00524     report(ERROR,"EvtGen") << _modelname.c_str() 
00525                            << " did not get the correct parent spin\n";
00526     printSummary();
00527     report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
00528     ::abort();
00529   } 
00530 
00531 }

EvtDecayBase* EvtD0mixDalitz::clone (  )  [inline, virtual]

Implements EvtDecayBase.

Definition at line 111 of file EvtD0mixDalitz.hh.

00111 { return new EvtD0mixDalitz; }

void EvtDecayBase::command ( std::string  cmd  )  [virtual, inherited]

Reimplemented in EvtJetSet, EvtLunda, EvtLundCharm, EvtOpenCharm, EvtPhokhara, EvtPhokhara_4pi, EvtPhokhara_K0K0, EvtPhokhara_KK, EvtPhokhara_LLB, EvtPhokhara_nnbar, EvtPhokhara_pi0pi0pipi, EvtPhokhara_pipi, EvtPhokhara_pipipi0, EvtPhokhara_ppbar, EvtPythia, and EvtTauola.

Definition at line 132 of file EvtDecayBase.cc.

References calibUtil::ERROR, and report().

Referenced by EvtModel::storeCommand().

00132                                        {
00133   report(ERROR,"EvtGen") << "Should never call EvtDecayBase::command"<<endl;
00134   ::abort();
00135 }

std::string EvtDecayBase::commandName (  )  [virtual, inherited]

Reimplemented in EvtJetSet, EvtLunda, EvtLundCharm, EvtOpenCharm, EvtPhokhara, EvtPhokhara_4pi, EvtPhokhara_K0K0, EvtPhokhara_KK, EvtPhokhara_LLB, EvtPhokhara_nnbar, EvtPhokhara_pi0pi0pipi, EvtPhokhara_pipi, EvtPhokhara_pipipi0, EvtPhokhara_ppbar, EvtPythia, and EvtTauola.

Definition at line 129 of file EvtDecayBase.cc.

References deljobs::string.

Referenced by EvtModel::Register().

00129                                    {
00130   return std::string("");
00131 }

EvtComplex EvtD0mixDalitz::dalitzKsKK ( const EvtDalitzPoint point  )  [private]

Definition at line 321 of file EvtD0mixDalitz.cc.

References _AB, _AC, _BC, _EtaPic, _mD0, _mK, _mKs, _PicPicKK, _RBW, _SCALAR, _TENSOR, _VECTOR, and EvtDalitzReso::evaluate().

Referenced by decay().

00322 {
00323   static const EvtDalitzPlot plot( _mKs, _mK, _mK, _mD0 );
00324 
00325   // Defining resonances.
00326   static EvtDalitzReso a00_980 ( plot, _AC, _BC, _SCALAR, 0.999  , _RBW, .550173, .324, _EtaPic   );
00327   static EvtDalitzReso phi     ( plot, _AC, _BC, _VECTOR, 1.01943,       .00459319    , _RBW      );
00328   static EvtDalitzReso a0p_980 ( plot, _AC, _AB, _SCALAR, 0.999  , _RBW, .550173, .324, _EtaPic   );
00329   static EvtDalitzReso f0_1370 ( plot, _AC, _BC, _SCALAR, 1.350  ,       .265         , _RBW      );
00330   static EvtDalitzReso a0m_980 ( plot, _AB, _AC, _SCALAR, 0.999  , _RBW, .550173, .324, _EtaPic   );
00331   static EvtDalitzReso f0_980  ( plot, _AC, _BC, _SCALAR, 0.965  , _RBW, .695   , .165, _PicPicKK );
00332   static EvtDalitzReso f2_1270 ( plot, _AC, _BC, _TENSOR, 1.2754 ,       .1851        , _RBW      );
00333   static EvtDalitzReso a00_1450( plot, _AC, _BC, _SCALAR, 1.474  ,       .265         , _RBW      );
00334   static EvtDalitzReso a0p_1450( plot, _AC, _AB, _SCALAR, 1.474  ,       .265         , _RBW      );
00335   static EvtDalitzReso a0m_1450( plot, _AB, _AC, _SCALAR, 1.474  ,       .265         , _RBW      );
00336 
00337   // Adding terms to the amplitude with their corresponding amplitude and phase terms.
00338   EvtComplex amp( 0., 0. ); // Phase space amplitude.
00339   amp += EvtComplex( 1.0          , 0.0        ) * a00_980 .evaluate( point );
00340   amp += EvtComplex( -.126314     ,  .188701   ) * phi     .evaluate( point );
00341   amp += EvtComplex( -.561428     ,  .0135338  ) * a0p_980 .evaluate( point );
00342   amp += EvtComplex(  .035        , -.00110488 ) * f0_1370 .evaluate( point );
00343   amp += EvtComplex( -.0872735    ,  .0791190  ) * a0m_980 .evaluate( point );
00344   amp += EvtComplex( 0.           , 0.         ) * f0_980  .evaluate( point );
00345   amp += EvtComplex(  .257341     , -.0408343  ) * f2_1270 .evaluate( point );
00346   amp += EvtComplex( -.0614342    , -.649930   ) * a00_1450.evaluate( point );
00347   amp += EvtComplex( -.104629     ,  .830120   ) * a0p_1450.evaluate( point );
00348   amp += EvtComplex( 0.           , 0.         ) * a0m_1450.evaluate( point );
00349 
00350   return 2.8 * amp; // Multiply by 2.8 in order to reuse the same probmax as Ks pi pi.
00351 }

EvtComplex EvtD0mixDalitz::dalitzKsPiPi ( const EvtDalitzPoint point  )  [private]

Definition at line 229 of file EvtD0mixDalitz.cc.

References _AB, _AC, _BC, _GS, _isRBWmodel, _KMAT, _mD0, _mKs, _mPi, _RBW, _SCALAR, _TENSOR, _VECTOR, and EvtDalitzReso::evaluate().

Referenced by decay().

00230 {
00231   static const EvtDalitzPlot plot( _mKs, _mPi, _mPi, _mD0 );
00232 
00233   EvtComplex amp = 0.;
00234 
00235   if ( _isRBWmodel )
00236     {
00237       // This corresponds to relativistic Breit-Wigner distributions. Not K-matrix.
00238       // Defining resonances.
00239       static EvtDalitzReso KStarm      ( plot, _BC, _AC, _VECTOR, 0.893606, 0.0463407, _RBW );
00240       static EvtDalitzReso KStarp      ( plot, _BC, _AB, _VECTOR, 0.893606, 0.0463407, _RBW );
00241       static EvtDalitzReso rho0        ( plot, _AC, _BC, _VECTOR, 0.7758  , 0.1464   , _GS  );
00242       static EvtDalitzReso omega       ( plot, _AC, _BC, _VECTOR, 0.78259 , 0.00849  , _RBW );
00243       static EvtDalitzReso f0_980      ( plot, _AC, _BC, _SCALAR, 0.975   , 0.044    , _RBW );
00244       static EvtDalitzReso f0_1370     ( plot, _AC, _BC, _SCALAR, 1.434   , 0.173    , _RBW );
00245       static EvtDalitzReso f2_1270     ( plot, _AC, _BC, _TENSOR, 1.2754  , 0.1851   , _RBW );
00246       static EvtDalitzReso K0Starm_1430( plot, _BC, _AC, _SCALAR, 1.459   , 0.175    , _RBW );
00247       static EvtDalitzReso K0Starp_1430( plot, _BC, _AB, _SCALAR, 1.459   , 0.175    , _RBW );
00248       static EvtDalitzReso K2Starm_1430( plot, _BC, _AC, _TENSOR, 1.4256  , 0.0985   , _RBW );
00249       static EvtDalitzReso K2Starp_1430( plot, _BC, _AB, _TENSOR, 1.4256  , 0.0985   , _RBW );
00250       static EvtDalitzReso sigma       ( plot, _AC, _BC, _SCALAR, 0.527699, 0.511861 , _RBW );
00251       static EvtDalitzReso sigma2      ( plot, _AC, _BC, _SCALAR, 1.03327 , 0.0987890, _RBW );
00252       static EvtDalitzReso KStarm_1680 ( plot, _BC, _AC, _VECTOR, 1.677   , 0.205    , _RBW );
00253 
00254       // Adding terms to the amplitude with their corresponding amplitude and phase terms.
00255       amp += EvtComplex(   .848984 ,   .893618  );
00256       amp += EvtComplex( -1.16356  ,  1.19933   ) * KStarm      .evaluate( point );
00257       amp += EvtComplex(   .106051 , - .118513  ) * KStarp      .evaluate( point );
00258       amp += EvtComplex(  1.0      ,  0.0       ) * rho0        .evaluate( point );
00259       amp += EvtComplex( - .0249569,   .0388072 ) * omega       .evaluate( point );
00260       amp += EvtComplex( - .423586 , - .236099  ) * f0_980      .evaluate( point );
00261       amp += EvtComplex( -2.16486  ,  3.62385   ) * f0_1370     .evaluate( point );
00262       amp += EvtComplex(   .217748 , - .133327  ) * f2_1270     .evaluate( point );
00263       amp += EvtComplex(  1.62128  ,  1.06816   ) * K0Starm_1430.evaluate( point );
00264       amp += EvtComplex(   .148802 ,   .0897144 ) * K0Starp_1430.evaluate( point );
00265       amp += EvtComplex(  1.15489  , - .773363  ) * K2Starm_1430.evaluate( point );
00266       amp += EvtComplex(   .140865 , - .165378  ) * K2Starp_1430.evaluate( point );
00267       amp += EvtComplex( -1.55556  , - .931685  ) * sigma       .evaluate( point );
00268       amp += EvtComplex( - .273791 , - .0535596 ) * sigma2      .evaluate( point );
00269       amp += EvtComplex( -1.69720  ,   .128038  ) * KStarm_1680 .evaluate( point );
00270     }
00271   else
00272     {
00273       // This corresponds to the complete model (RBW, GS, LASS and K-matrix).
00274       // Defining resonances.
00275       static EvtDalitzReso KStarm      ( plot, _BC, _AC, _VECTOR, 0.893619, 0.0466508, _RBW );
00276       static EvtDalitzReso KStarp      ( plot, _BC, _AB, _VECTOR, 0.893619, 0.0466508, _RBW );
00277       static EvtDalitzReso rho0        ( plot, _AC, _BC, _VECTOR, 0.7758  , 0.1464   , _GS  );
00278       static EvtDalitzReso omega       ( plot, _AC, _BC, _VECTOR, 0.78259 , 0.00849  , _RBW );
00279       static EvtDalitzReso f2_1270     ( plot, _AC, _BC, _TENSOR, 1.2754  , 0.1851   , _RBW );
00280       static EvtDalitzReso K0Starm_1430( plot, _AC, 1.46312, 0.232393, 1.0746, -1.83214, .803516, 2.32788, 1., -5.31306 ); // LASS
00281       static EvtDalitzReso K0Starp_1430( plot, _AB, 1.46312, 0.232393, 1.0746, -1.83214, .803516, 2.32788, 1., -5.31306 ); // LASS
00282       static EvtDalitzReso K2Starm_1430( plot, _BC, _AC, _TENSOR, 1.4256  , 0.0985   , _RBW );
00283       static EvtDalitzReso K2Starp_1430( plot, _BC, _AB, _TENSOR, 1.4256  , 0.0985   , _RBW );
00284       static EvtDalitzReso KStarm_1680 ( plot, _BC, _AC, _VECTOR, 1.677   , 0.205    , _RBW );
00285 
00286       // Defining K-matrix.
00287       static EvtComplex fr12( 1.87981, -.628378 );
00288       static EvtComplex fr13( 4.3242 , 2.75019  );
00289       static EvtComplex fr14( 3.22336,  .271048 );
00290       static EvtComplex fr15(  .0    ,  .0      );
00291       static EvtDalitzReso Pole1  ( plot, _BC, "Pole1"  , _KMAT, fr12, fr13, fr14, fr15, -.0694725 );
00292       static EvtDalitzReso Pole2  ( plot, _BC, "Pole2"  , _KMAT, fr12, fr13, fr14, fr15, -.0694725 );
00293       static EvtDalitzReso Pole3  ( plot, _BC, "Pole3"  , _KMAT, fr12, fr13, fr14, fr15, -.0694725 );
00294       static EvtDalitzReso Pole4  ( plot, _BC, "Pole4"  , _KMAT, fr12, fr13, fr14, fr15, -.0694725 );
00295       static EvtDalitzReso kmatrix( plot, _BC, "f11prod", _KMAT, fr12, fr13, fr14, fr15, -.0694725 );
00296 
00297       // Adding terms to the amplitude with their corresponding amplitude and phase terms.
00298       amp += EvtComplex( - 1.31394   ,  1.14072   ) * KStarm      .evaluate( point );
00299       amp += EvtComplex(    .116239  , - .107287  ) * KStarp      .evaluate( point );
00300       amp += EvtComplex(   1.0       ,  0.0       ) * rho0        .evaluate( point );
00301       amp += EvtComplex( -  .0313343 ,   .0424013 ) * omega       .evaluate( point );
00302       amp += EvtComplex(    .559412  , - .232336  ) * f2_1270     .evaluate( point );
00303       amp += EvtComplex(   7.35400   , -3.67637   ) * K0Starm_1430.evaluate( point );
00304       amp += EvtComplex(    .255913  , - .190459  ) * K0Starp_1430.evaluate( point );
00305       amp += EvtComplex(   1.05397   , - .936297  ) * K2Starm_1430.evaluate( point );
00306       amp += EvtComplex( -  .00760136, - .0908624 ) * K2Starp_1430.evaluate( point );
00307       amp += EvtComplex( - 1.45336   , - .164494  ) * KStarm_1680 .evaluate( point );
00308       amp += EvtComplex( - 1.81830   ,  9.10680   ) * Pole1       .evaluate( point );
00309       amp += EvtComplex(  10.1751    ,  3.87961   ) * Pole2       .evaluate( point );
00310       amp += EvtComplex(  23.6569    , -4.94551   ) * Pole3       .evaluate( point );
00311       amp += EvtComplex(    .0725431 , -9.16264   ) * Pole4       .evaluate( point );
00312       amp += EvtComplex( - 2.19449   , -7.62666   ) * kmatrix     .evaluate( point );
00313 
00314       amp *= .97; // Multiply by a constant in order to use the same maximum as RBW model.
00315     }
00316 
00317   return amp;
00318 }

bool EvtDecayBase::daugsDecayedByParentModel (  )  [inline, protected, inherited]

Definition at line 110 of file EvtDecayBase.hh.

References EvtDecayBase::_daugsDecayedByParentModel.

Referenced by EvtDecayProb::makeDecay(), EvtDecayIncoherent::makeDecay(), and EvtDecayAmp::makeDecay().

void EvtD0mixDalitz::decay ( EvtParticle p  )  [virtual]

Implements EvtDecayBase.

Definition at line 117 of file EvtD0mixDalitz.cc.

References _d1, _d2, _d3, _gamma, _isKsPiPi, _mK, _mKs, _mPi, _qp, _y, dalitzKsKK(), dalitzKsPiPi(), exp(), EvtRandom::Flat(), EvtParticle::getDaug(), EvtDecayBase::getDaugs(), EvtDecayBase::getNDaug(), EvtParticle::getP4(), h1(), h2(), EvtParticle::initializePhaseSpace(), EvtParticle::setLifetime(), and EvtDecayAmp::vertex().

00118 {
00119   // Same structure for all of these decays.
00120   part->initializePhaseSpace( getNDaug(), getDaugs() );
00121   EvtVector4R pA = part->getDaug( _d1 )->getP4();
00122   EvtVector4R pB = part->getDaug( _d2 )->getP4();
00123   EvtVector4R pC = part->getDaug( _d3 )->getP4();
00124 
00125   // Squared invariant masses.
00126   double m2AB = ( pA + pB ).mass2();
00127   double m2AC = ( pA + pC ).mass2();
00128   double m2BC = ( pB + pC ).mass2();
00129 
00130   // Dalitz amplitudes of the decay of the particle and that of the antiparticle.
00131   EvtComplex ampDalitz;
00132   EvtComplex ampAntiDalitz;
00133 
00134   if ( _isKsPiPi )
00135     { // For Ks pi pi
00136       EvtDalitzPoint point    ( _mKs, _mPi, _mPi, m2AB, m2BC, m2AC );
00137       EvtDalitzPoint antiPoint( _mKs, _mPi, _mPi, m2AC, m2BC, m2AB );
00138 
00139       ampDalitz     = dalitzKsPiPi( point     );
00140       ampAntiDalitz = dalitzKsPiPi( antiPoint );
00141     }
00142   else
00143     { // For Ks K K
00144       EvtDalitzPoint point    ( _mKs, _mK, _mK, m2AB, m2BC, m2AC );
00145       EvtDalitzPoint antiPoint( _mKs, _mK, _mK, m2AC, m2BC, m2AB );
00146 
00147       ampDalitz     = dalitzKsKK( point     );
00148       ampAntiDalitz = dalitzKsKK( antiPoint );
00149     }
00150 
00151   //_i1    += ampDalitz     * conj( ampDalitz     ) / 1.e8;
00152   //_iChi  += ampAntiDalitz * conj( ampDalitz     ) / 1.e8;
00153   //_iChi2 += ampAntiDalitz * conj( ampAntiDalitz ) / 1.e8;
00154 
00155   //std::cout << "INTEGRALS: " << _i1 << " " << _iChi << " " << _iChi2 << " " << _iChi / _i1 << " " << _iChi2 / _i1 << std::endl;
00156 
00157   // Assume there's no direct CP violation.
00158   EvtComplex barAOverA = ampAntiDalitz / ampDalitz;
00159 
00160   // CP violation in the interference. _qp implements CP violation in the mixing.
00161   EvtComplex chi = _qp * barAOverA;
00162 
00163   // Generate a negative exponential life time. p( gt ) = ( 1 - y ) * e^{ - ( 1 - y ) gt }
00164   double gt = -log( EvtRandom::Flat() ) / ( 1. - _y );
00165   part->setLifetime( gt / _gamma );
00166 
00167   // Compute time dependent amplitude.
00168   EvtComplex amp = .5 * ampDalitz * exp( - _y * gt / 2. ) * ( ( 1. + chi ) * h1( gt ) + ( 1. - chi ) * h2( gt ) );
00169 
00170   vertex( amp );
00171 
00172   return;
00173 }

void EvtDecayBase::disableCheckQ (  )  [inline, inherited]

Definition at line 62 of file EvtDecayBase.hh.

References EvtDecayBase::_chkCharge.

Referenced by EvtSinglePoint::init(), EvtSingleParticle2::init(), and EvtSingleParticle::init().

00062 {_chkCharge=0;};

void EvtDecayBase::findMass ( EvtParticle p  )  [static, inherited]

Definition at line 346 of file EvtDecayBase.cc.

References EvtCyclic3::c_str(), count, EvtDecayBase::findMaxMass(), EvtParticle::getDaug(), EvtParticle::getId(), EvtPDL::getMass(), EvtPDL::getMaxMass(), EvtPDL::getMinMass(), EvtParticle::getNDaug(), EvtParticle::getParent(), genRecEmupikp::i, Bes_Common::INFO, EvtParticle::mass(), mass, EvtPDL::name(), EvtParticle::printTree(), report(), and EvtParticle::setMass().

00346                                           {
00347 
00348   //Need to also check that this mass does not screw
00349   //up the parent
00350   //This code assumes that for the ith daughter, 0..i-1
00351   //already have a mass
00352   double maxOkMass=findMaxMass(p);
00353 
00354   int count=0;
00355   double mass;
00356   bool massOk=false;
00357   int i;
00358   while (!massOk) { 
00359     count++;
00360     if ( count > 10000 ) {
00361       report(INFO,"EvtGen") << "Can not find a valid mass for: " << EvtPDL::name(p->getId()).c_str() <<endl;
00362       report(INFO,"EvtGen") << "Now printing parent and/or grandparent tree\n";
00363       if ( p->getParent() ) {
00364         if ( p->getParent()->getParent() ) {
00365           p->getParent()->getParent()->printTree();
00366           report(INFO,"EvtGen") << p->getParent()->getParent()->mass() <<endl;
00367           report(INFO,"EvtGen") << p->getParent()->mass() <<endl;
00368         }
00369         else{
00370           p->getParent()->printTree();
00371           report(INFO,"EvtGen") << p->getParent()->mass() <<endl;
00372         }
00373       }
00374       else  p->printTree();
00375       report(INFO,"EvtGen") << "maxokmass=" << maxOkMass << " " << EvtPDL::getMinMass(p->getId()) << " " << EvtPDL::getMaxMass(p->getId())<<endl;
00376       if ( p->getNDaug() ) { 
00377         for (i=0; i<p->getNDaug(); i++) {
00378           report(INFO,"EvtGen") << p->getDaug(i)->mass()<<" ";
00379         }
00380         report(INFO,"EvtGen") << endl;
00381       }
00382       if ( maxOkMass >= EvtPDL::getMinMass(p->getId()) ) {
00383         report(INFO,"EvtGen") << "taking a default value\n";
00384         p->setMass(maxOkMass);
00385         return;
00386       } 
00387       assert(0);
00388     }
00389     mass = EvtPDL::getMass(p->getId());
00390     //Just need to check that this mass is > than
00391     //the mass of all daughters
00392     double massSum=0.;
00393     if ( p->getNDaug() ) { 
00394       for (i=0; i<p->getNDaug(); i++) {
00395         massSum+= p->getDaug(i)->mass();
00396       }
00397     }
00398     //some special cases are handled with 0 (stable) or 1 (k0->ks/kl) daughters
00399     if (p->getNDaug()<2)  massOk=true;
00400     if ( p->getParent() ) {
00401       if ( p->getParent()->getNDaug()==1 ) massOk=true;
00402     }
00403     if ( !massOk ) { 
00404       if (massSum < mass) massOk=true;
00405       if ( mass> maxOkMass) massOk=false;
00406     }
00407   }
00408 
00409   p->setMass(mass);
00410   
00411 }

void EvtDecayBase::findMasses ( EvtParticle p,
int  ndaugs,
EvtId  daugs[10],
double  masses[10] 
) [static, inherited]

Definition at line 414 of file EvtDecayBase.cc.

References EvtCyclic3::c_str(), count, calibUtil::ERROR, EvtParticle::firstornot(), EvtParticle::getDaug(), EvtParticle::getId(), EvtPDL::getMass(), EvtPDL::getMinMass(), genRecEmupikp::i, EvtParticle::mass(), EvtPDL::name(), report(), EvtParticle::setFirstOrNot(), and EvtStatus::setRejectFlag().

Referenced by EvtBtoXsll::decay().

00415                                                                      {
00416 
00417   int i;
00418   double mass_sum;
00419 
00420   int count=0;
00421 
00422   if (!( p->firstornot() )) {
00423     for (i = 0; i < ndaugs; i++ ) {
00424       masses[i] = p->getDaug(i)->mass();
00425     } //for
00426   } //if
00427   else {
00428     p->setFirstOrNot();
00429     // if only one daughter do it
00430 
00431     if (ndaugs==1) {
00432       masses[0]=p->mass();
00433       return;
00434     }
00435     
00436     //until we get a combo whose masses are less than _parent mass.
00437     do {
00438       mass_sum = 0.0;
00439 
00440       for (i = 0; i < ndaugs; i++ ) {
00441         masses[i] = EvtPDL::getMass(daugs[i]);
00442         mass_sum = mass_sum + masses[i];
00443       } 
00444 
00445       count++;
00446 
00447      
00448       if(count==10000) {
00449         report(ERROR,"EvtGen") <<"Decaying particle:"<<
00450           EvtPDL::name(p->getId()).c_str()<<" (m="<<p->mass()<<")"<<endl;
00451         report(ERROR,"EvtGen") <<"To the following daugthers"<<endl;
00452         for (i = 0; i < ndaugs; i++ ) {
00453           report(ERROR,"EvtGen") <<  
00454             EvtPDL::name(daugs[i]).c_str() << endl;
00455         } 
00456         report(ERROR,"EvtGen") << "Has been rejected "<<count
00457                                << " times, will now take minimal masses "
00458                                << " of daugthers"<<endl;
00459         
00460         mass_sum=0.;
00461         for (i = 0; i < ndaugs; i++ ) {
00462           masses[i] = EvtPDL::getMinMass(daugs[i]);
00463           mass_sum = mass_sum + masses[i];
00464         } 
00465         if (mass_sum > p->mass()){
00466           report(ERROR,"EvtGen") << "Parent mass="<<p->mass()
00467                                  << "to light for daugthers."<<endl
00468                                  << "Will throw the event away."<<endl;
00469           //dont terminate - start over on the event.
00470           EvtStatus::setRejectFlag();
00471           mass_sum=0.;
00472           //      ::abort();
00473         }
00474 
00475       }
00476     } while ( mass_sum > p->mass());
00477   } //else
00478   
00479   return;
00480 }       

double EvtDecayBase::findMaxMass ( EvtParticle p  )  [static, inherited]

Definition at line 311 of file EvtDecayBase.cc.

References EvtParticle::getDaug(), EvtParticle::getId(), EvtPDL::getMaxMass(), EvtPDL::getMinMass(), EvtParticle::getNDaug(), EvtParticle::getParent(), EvtParticle::hasValidP4(), genRecEmupikp::i, and EvtParticle::mass().

Referenced by EvtDecayBase::findMass().

00311                                                {
00312 
00313   
00314   double maxOkMass=EvtPDL::getMaxMass(p->getId());
00315 
00316   //protect against vphotons
00317   if ( maxOkMass < 0.0000000001 ) return 10000000.;
00318   //and against already determined masses
00319   if ( p->hasValidP4() ) maxOkMass=p->mass();
00320 
00321   EvtParticle *par=p->getParent();
00322   if ( par ) {
00323     double maxParMass=findMaxMass(par);
00324     int i;
00325     double minDaugMass=0.;
00326     for(i=0;i<par->getNDaug();i++){
00327       EvtParticle *dau=par->getDaug(i);
00328       if ( dau!=p) {
00329         // it might already have a mass
00330         if ( dau->isInitialized() || dau->hasValidP4() )
00331           minDaugMass+=dau->mass();
00332         else
00333         //give it a bit of phase space 
00334           minDaugMass+=1.000001*EvtPDL::getMinMass(dau->getId());
00335       }
00336     }
00337     if ( maxOkMass>(maxParMass-minDaugMass)) maxOkMass=maxParMass-minDaugMass;
00338   }
00339   return maxOkMass;
00340 }

double EvtDecayBase::getArg ( int  j  )  [inherited]

Definition at line 564 of file EvtDecayBase.cc.

References EvtDecayBase::_args, EvtCyclic3::c_str(), genRecEmupikp::i, Bes_Common::INFO, and report().

Referenced by EvtVVSPwave::decay(), EvtVSSMix::decay(), EvtVPHOtoVISRHi::decay(), EvtVPHOtoVISR::decay(), EvtTVSPwave::decay(), EvtTauGamMu::decay(), EvtSVVNONCPEIGEN::decay(), EvtSVVHelAmp::decay(), EvtSVVCPLH::decay(), EvtSVVCP::decay(), EvtSVSCPiso::decay(), EvtSVSCP::decay(), EvtSVPHelAmp::decay(), EvtSVPCP::decay(), EvtSTSCP::decay(), EvtSSSCPT::decay(), EvtSSSCPpng::decay(), EvtSSSCP::decay(), EvtRhoPi::decay(), EvtPhokhara::decay(), EvtPBB2::decay(), EvtPBB1::decay(), EvtOpenCharm::decay(), EvtLunda::decay(), EvtJscont::decay(), EvtJ2BB3::decay(), EvtJ2BB2::decay(), EvtJ2BB1::decay(), EvtEDM::decay(), EvtDDalitz::decay(), EvtConExc::decay(), EvtChi2BB2::decay(), EvtChi2BB1::decay(), EvtChi1BB2::decay(), EvtChi1BB1::decay(), EvtChi0BB2::decay(), EvtCBTo3piP00::decay(), EvtCBTo3piMPP::decay(), EvtCalHelAmp::decay(), EvtBtoXsgamma::decay(), EvtBToKpipiCP::decay(), EvtBtoKpiCPiso::decay(), EvtBTo4piCP::decay(), EvtBTo3piCP::decay(), EvtBto2piCPiso::decay(), EvtBsquark::decay(), EvtBHadronic::decay(), EvtAngSamX::decay(), EvtAngSamLab::decay(), EvtAngSam3::decay(), EvtAngSam::decay(), EvtCalHelAmp::firstder(), EvtLNuGamma::getFormFactor(), EvtVubNLO::init(), EvtVubHybrid::init(), EvtVub::init(), EvtVSSBMixCPT::init(), EvtVectorIsr::init(), EvtTrackGen::init(), EvtTauHadnu::init(), EvtSVVNONCPEIGEN::init(), EvtSVSNONCPEIGEN::init(), EvtSVSCPLH::init(), EvtSSDCP::init(), EvtSinglePoint::init(), EvtSingleParticle2::init(), EvtSingleParticle::init(), EvtPycont::init(), EvtPartWave::init(), EvtmPhsp::init(), EvtmH2::init(), EvtMelikhov::init(), EvtLNuGamma::init(), EvtHypNonLepton::init(), EvtHQET2::init(), EvtHQET::init(), EvtHelAmp::init(), EvtDMix::init(), init(), EvtConExc::init(), EvtBtoXsll::init(), EvtBtoKD3P::init(), EvtPhokhara::init_evt(), EvtPhokhara::init_mode(), EvtSVVHelAmp::initProbMax(), EvtSVVCPLH::initProbMax(), EvtSVVCP::initProbMax(), EvtSVSCPLH::initProbMax(), EvtSVSCPiso::initProbMax(), EvtSVSCP::initProbMax(), EvtSVPHelAmp::initProbMax(), EvtSVPCP::initProbMax(), EvtSTSCP::initProbMax(), EvtSSSCPpng::initProbMax(), EvtSSSCP::initProbMax(), EvtPBB2::initProbMax(), EvtBtoKpiCPiso::initProbMax(), EvtBto2piCPiso::initProbMax(), and EvtVubHybrid::readWeights().

00564                                  {
00565 
00566   // Verify string
00567 
00568   const char* str = _args[j].c_str();
00569   int i = 0;
00570   while(str[i]!=0){
00571     if (isalpha(str[i]) && str[i]!='e') {
00572 
00573       report(INFO,"EvtGen") << "String " << str << " is not a number" << endl;
00574       assert(0);
00575     }
00576     i++;
00577   }
00578   
00579   char** tc=0; 
00580   return strtod(_args[j].c_str(),tc);
00581 }

double * EvtDecayBase::getArgs (  )  [inherited]

Definition at line 547 of file EvtDecayBase.cc.

References EvtDecayBase::_args, EvtDecayBase::_argsD, EvtDecayBase::_narg, EvtCyclic3::c_str(), and genRecEmupikp::i.

Referenced by EvtBtoXsgamma::decay(), EvtSLPole::init(), EvtSLBKPole::init(), and EvtKKLambdaC::init().

00547                               {
00548 
00549   if ( _argsD ) return _argsD;
00550   //The user has asked for a list of doubles - the arguments 
00551   //better all be doubles...
00552   if ( _narg==0 ) return _argsD;
00553 
00554   _argsD = new double[_narg];
00555 
00556   int i;
00557   char * tc;
00558   for(i=0;i<_narg;i++) { 
00559     _argsD[i] =  strtod(_args[i].c_str(),&tc);
00560   }
00561   return _argsD;
00562 }

std::string* EvtDecayBase::getArgsStr (  )  [inline, inherited]

Definition at line 73 of file EvtDecayBase.hh.

References EvtDecayBase::_args.

00073 {return _args;}

std::string EvtDecayBase::getArgStr ( int  j  )  [inline, inherited]

Definition at line 75 of file EvtDecayBase.hh.

References EvtDecayBase::_args.

Referenced by EvtParticleDecay::chargeConj(), EvtParticleDecayList::EvtParticleDecayList(), EvtDecayTable::findChannel(), EvtMultibody::init(), and EvtIntervalDecayAmp< EvtDalitzPoint >::init().

00075 {return _args[j];}

double EvtDecayBase::getBranchingFraction (  )  [inline, inherited]

Definition at line 61 of file EvtDecayBase.hh.

References EvtDecayBase::_brfr.

Referenced by EvtParticleDecay::chargeConj(), and EvtParticleDecayList::EvtParticleDecayList().

00061 {return _brfr;}

EvtId EvtDecayBase::getDaug ( int  i  )  [inline, inherited]

Definition at line 66 of file EvtDecayBase.hh.

References EvtDecayBase::_daug.

Referenced by EvtParticleDecayList::addMode(), EvtParticleDecay::chargeConj(), EvtDecayBase::checkSpinDaughter(), EvtVubNLO::decay(), EvtVubHybrid::decay(), EvtVub::decay(), EvtVSSBMixCPT::decay(), EvtVPHOtoVISRHi::decay(), EvtVPHOtoVISR::decay(), EvtVectorIsr::decay(), EvtTauHadnu::decay(), EvtSVVNONCPEIGEN::decay(), EvtSVVHelAmp::decay(), EvtSVVCPLH::decay(), EvtSVVCP::decay(), EvtSVSNONCPEIGEN::decay(), EvtSVSCPiso::decay(), EvtSSDCP::decay(), EvtSLN::decay(), EvtSinglePoint::decay(), EvtSingleParticle2::decay(), EvtSingleParticle::decay(), EvtKstarnunu::decay(), EvtJ2BB3::decay(), EvtJ2BB1::decay(), EvtGoityRoberts::decay(), EvtCBTo3piP00::decay(), EvtCBTo3piMPP::decay(), EvtBtoXsll::decay(), EvtBtoXsgamma::decay(), EvtBtoXsEtap::decay(), EvtBToKpipiCP::decay(), EvtBtoKpiCPiso::decay(), EvtBtoKD3P::decay(), EvtBTo3piCP::decay(), EvtPto3P::dp(), EvtDecayTable::findChannel(), EvtConExc::gamHXSection(), EvtVVPIPI_WEIGHTED::init(), EvtVVpipi::init(), EvtVSSBMixCPT::init(), EvtTrackGen::init(), EvtTauHadnu::init(), EvtSSDCP::init(), EvtSLPole::init(), EvtSLBKPole::init(), EvtS2GV::init(), EvtPartWave::init(), EvtP2GC2::init(), EvtP2GC1::init(), EvtP2GC0::init(), EvtJpipi::init(), EvtJPE::init(), EvtISGW2::init(), EvtISGW::init(), EvtHypNonLepton::init(), EvtHQET2::init(), EvtHQET::init(), EvtHelAmp::init(), EvtDDalitz::init(), init(), EvtBtoXsll::init(), EvtbTosllBall::init(), EvtbTosllAli::init(), EvtAV2GV::init(), EvtSVSCPiso::initProbMax(), EvtSSDCP::initProbMax(), EvtSLPole::initProbMax(), EvtSLN::initProbMax(), EvtSLBKPole::initProbMax(), EvtKKLambdaC::initProbMax(), EvtISGW2::initProbMax(), EvtHypNonLepton::initProbMax(), EvtHQET2::initProbMax(), EvtHQET::initProbMax(), EvtbTosllBall::initProbMax(), EvtbTosllAli::initProbMax(), EvtBtoKpiCPiso::initProbMax(), EvtTauHadnu::pi3G(), and EvtParticleDecayList::removeMode().

00066 {return _daug[i];}

EvtId* EvtDecayBase::getDaugs (  )  [inline, inherited]

Definition at line 65 of file EvtDecayBase.hh.

References EvtDecayBase::_daug.

Referenced by EvtVVSPwave::decay(), EvtVVPIPI_WEIGHTED::decay(), EvtVVpipi::decay(), EvtVVP::decay(), EvtVubNLO::decay(), EvtVubHybrid::decay(), EvtVub::decay(), EvtVSSMix::decay(), EvtVSSBMixCPT::decay(), EvtVSS::decay(), EvtVSPPwave::decay(), EvtVll::decay(), EvtVectorIsr::decay(), EvtTVSPwave::decay(), EvtTSS::decay(), EvtTrackGen::decay(), EvtTauVectornu::decay(), EvtTauScalarnu::decay(), EvtTaulnunu::decay(), EvtTauHadnu::decay(), EvtTauGamMu::decay(), EvtT2GV::decay(), EvtSVSCPLH::decay(), EvtSVSCP::decay(), EvtSVS::decay(), EvtSVPHelAmp::decay(), EvtSVPCP::decay(), EvtSTSCP::decay(), EvtSTS::decay(), EvtSSSCPT::decay(), EvtSSSCPpng::decay(), EvtSSSCP::decay(), EvtSPL::decay(), EvtSLPole::decay(), EvtSLN::decay(), EvtSll::decay(), EvtSLBKPole::decay(), EvtSinglePoint::decay(), EvtSingleParticle2::decay(), EvtSingleParticle::decay(), EvtS2GV::decay(), EvtRhoPi::decay(), EvtPi0Dalitz::decay(), EvtPhsp::decay(), EvtPhiDalitz::decay(), EvtPBB2::decay(), EvtPBB1::decay(), EvtPartWave::decay(), EvtP2GC2::decay(), EvtP2GC1::decay(), EvtP2GC0::decay(), EvtOmegaDalitz::decay(), EvtMultibody::decay(), EvtmPhsp::decay(), EvtmH2::decay(), EvtMelikhov::decay(), EvtMBody3::decay(), EvtMassH2::decay(), EvtMassH1::decay(), EvtLNuGamma::decay(), EvtLambdaP_BarGamma::decay(), EvtLambdac2pKpi::decay(), EvtKstarstargamma::decay(), EvtKstarnunu::decay(), EvtKKLambdaC::decay(), EvtJTO3P::decay(), EvtJpipi::decay(), EvtJPE::decay(), EvtJ2BB3::decay(), EvtJ2BB2::decay(), EvtJ2BB1::decay(), EvtISGW2::decay(), EvtISGW::decay(), EvtIntervalDecayAmp< EvtDalitzPoint >::decay(), EvtHypWK::decay(), EvtHypNonLepton::decay(), EvtHQET2::decay(), EvtHQET::decay(), EvtHelPPJ::decay(), EvtHelAmp::decay(), EvtHAngSam3::decay(), EvtFlatQ2::decay(), EvtEtaDalitz::decay(), EvtEDM::decay(), EvtDMix::decay(), EvtDIY::decay(), EvtDeBD::decay(), EvtDDalitz::decay(), decay(), EvtChi2BB2::decay(), EvtChi2BB1::decay(), EvtChi1BB2::decay(), EvtChi1BB1::decay(), EvtChi0BB2::decay(), EvtChi0BB1::decay(), EvtCBTo3piP00::decay(), EvtCBTo3piMPP::decay(), EvtCalHelAmp::decay(), EvtBtoXsll::decay(), EvtBtoXsgamma::decay(), EvtBtoXsEtap::decay(), EvtbTosllBall::decay(), EvtbTosllAli::decay(), EvtBToKpipiCP::decay(), EvtBtoKpiCPiso::decay(), EvtBtoKD3P::decay(), EvtBTo4piCP::decay(), EvtBTo3piCP::decay(), EvtBto2piCPiso::decay(), EvtBsquark::decay(), EvtBody3::decay(), EvtBHadronic::decay(), EvtAV2GV::decay(), EvtAngSamX::decay(), EvtAngSamLab::decay(), EvtAngSam3::decay(), EvtAngSam::decay(), EvtAngH2::decay(), EvtGoityRoberts::DecayBDpilnuGR(), EvtGoityRoberts::DecayBDstarpilnuGR(), EvtParticleDecayList::EvtParticleDecayList(), EvtConExc::get_mode(), EvtMultibody::init(), EvtLambdac2pKpi::init(), EvtConExc::init(), EvtConExc::init_mode(), EvtBto2piCPiso::initProbMax(), and EvtDecayAmp::makeDecay().

00065 {return _daug;}

int EvtDecayBase::getDSum (  )  [inline, inherited]

Definition at line 77 of file EvtDecayBase.hh.

References EvtDecayBase::_dsum.

00077 {return _dsum; }

std::string EvtDecayBase::getModelName (  )  [inline, inherited]

Definition at line 76 of file EvtDecayBase.hh.

References EvtDecayBase::_modelname.

Referenced by EvtParticleDecayList::addMode(), EvtParticleDecayList::EvtParticleDecayList(), EvtDecayTable::findChannel(), and EvtDecay::getModel().

00076 {return _modelname; }

void EvtD0mixDalitz::getName ( std::string model_name  )  [inline, virtual]

Implements EvtDecayBase.

Definition at line 110 of file EvtD0mixDalitz.hh.

00110 { model_name = "D0MIXDALITZ"; }

int EvtDecayBase::getNArg (  )  [inline, inherited]

Definition at line 67 of file EvtDecayBase.hh.

References EvtDecayBase::_narg.

Referenced by EvtParticleDecay::chargeConj(), EvtVPHOtoVISRHi::decay(), EvtVPHOtoVISR::decay(), EvtRhoPi::decay(), EvtOpenCharm::decay(), EvtmPhsp::decay(), EvtLunda::decay(), EvtJscont::decay(), EvtJ2BB3::decay(), EvtJ2BB2::decay(), EvtJ2BB1::decay(), EvtConExc::decay(), EvtCalHelAmp::decay(), EvtBtoXsgamma::decay(), EvtAngSamX::decay(), EvtAngSamLab::decay(), EvtAngSam3::decay(), EvtAngSam::decay(), EvtPto3P::dp(), EvtParticleDecayList::EvtParticleDecayList(), EvtDecayTable::findChannel(), EvtVubNLO::init(), EvtVubHybrid::init(), EvtVub::init(), EvtVSSBMixCPT::init(), EvtSVVNONCPEIGEN::init(), EvtSVSNONCPEIGEN::init(), EvtSSDCP::init(), EvtSLPole::init(), EvtSLBKPole::init(), EvtSinglePoint::init(), EvtSingleParticle2::init(), EvtSingleParticle::init(), EvtPycont::init(), EvtMultibody::init(), EvtmPhsp::init(), EvtLunda::init(), EvtLNuGamma::init(), EvtKKLambdaC::init(), EvtIntervalDecayAmp< EvtDalitzPoint >::init(), EvtHypNonLepton::init(), EvtHQET2::init(), EvtHQET::init(), init(), EvtConExc::init(), EvtCalHelAmp::init(), EvtBtoXsll::init(), EvtBtoXsgamma::init(), EvtAngSamX::init(), EvtAngSamLab::init(), EvtAngSam3::init(), and EvtAngSam::init().

00067 {return _narg;}

int EvtDecayBase::getNDaug (  )  [inline, inherited]

Definition at line 64 of file EvtDecayBase.hh.

References EvtDecayBase::_ndaug.

Referenced by EvtParticleDecayList::addMode(), EvtParticleDecay::chargeConj(), EvtVVSPwave::decay(), EvtVVPIPI_WEIGHTED::decay(), EvtVVpipi::decay(), EvtVVP::decay(), EvtVubNLO::decay(), EvtVubHybrid::decay(), EvtVub::decay(), EvtVSSMix::decay(), EvtVSSBMixCPT::decay(), EvtVSS::decay(), EvtVSPPwave::decay(), EvtVll::decay(), EvtVectorIsr::decay(), EvtTVSPwave::decay(), EvtTSS::decay(), EvtTrackGen::decay(), EvtTauVectornu::decay(), EvtTauScalarnu::decay(), EvtTaulnunu::decay(), EvtTauHadnu::decay(), EvtTauGamMu::decay(), EvtT2GV::decay(), EvtSVSCPLH::decay(), EvtSVSCPiso::decay(), EvtSVSCP::decay(), EvtSVS::decay(), EvtSVPHelAmp::decay(), EvtSVPCP::decay(), EvtSTSCP::decay(), EvtSTS::decay(), EvtSSSCPT::decay(), EvtSSSCPpng::decay(), EvtSSSCP::decay(), EvtSPL::decay(), EvtSLPole::decay(), EvtSLN::decay(), EvtSll::decay(), EvtSLBKPole::decay(), EvtSinglePoint::decay(), EvtSingleParticle2::decay(), EvtSingleParticle::decay(), EvtS2GV::decay(), EvtRhoPi::decay(), EvtPi0Dalitz::decay(), EvtPhsp::decay(), EvtPhiDalitz::decay(), EvtPBB2::decay(), EvtPBB1::decay(), EvtPartWave::decay(), EvtP2GC2::decay(), EvtP2GC1::decay(), EvtP2GC0::decay(), EvtOmegaDalitz::decay(), EvtMultibody::decay(), EvtmPhsp::decay(), EvtmH2::decay(), EvtMelikhov::decay(), EvtMBody3::decay(), EvtMassH2::decay(), EvtMassH1::decay(), EvtLNuGamma::decay(), EvtLambdaP_BarGamma::decay(), EvtLambdac2pKpi::decay(), EvtKstarstargamma::decay(), EvtKstarnunu::decay(), EvtKKLambdaC::decay(), EvtJTO3P::decay(), EvtJpipi::decay(), EvtJPE::decay(), EvtJ2BB3::decay(), EvtJ2BB2::decay(), EvtJ2BB1::decay(), EvtISGW2::decay(), EvtISGW::decay(), EvtHypWK::decay(), EvtHypNonLepton::decay(), EvtHQET2::decay(), EvtHQET::decay(), EvtHelPPJ::decay(), EvtHelAmp::decay(), EvtHAngSam3::decay(), EvtFlatQ2::decay(), EvtEtaDalitz::decay(), EvtEDM::decay(), EvtDMix::decay(), EvtDIY::decay(), EvtDeBD::decay(), EvtDDalitz::decay(), decay(), EvtChi2BB2::decay(), EvtChi2BB1::decay(), EvtChi1BB2::decay(), EvtChi1BB1::decay(), EvtChi0BB2::decay(), EvtChi0BB1::decay(), EvtCBTo3piP00::decay(), EvtCBTo3piMPP::decay(), EvtCalHelAmp::decay(), EvtBtoXsll::decay(), EvtBtoXsgamma::decay(), EvtBtoXsEtap::decay(), EvtbTosllBall::decay(), EvtbTosllAli::decay(), EvtBToKpipiCP::decay(), EvtBtoKpiCPiso::decay(), EvtBtoKD3P::decay(), EvtBTo4piCP::decay(), EvtBTo3piCP::decay(), EvtBto2piCPiso::decay(), EvtBsquark::decay(), EvtBody3::decay(), EvtBHadronic::decay(), EvtAV2GV::decay(), EvtAngSamX::decay(), EvtAngSamLab::decay(), EvtAngSam3::decay(), EvtAngSam::decay(), EvtAngH2::decay(), EvtGoityRoberts::DecayBDpilnuGR(), EvtGoityRoberts::DecayBDstarpilnuGR(), EvtPto3P::dp(), EvtParticleDecayList::EvtParticleDecayList(), EvtDecayTable::findChannel(), EvtDecayTable::inChannelList(), EvtVSSBMixCPT::init(), EvtTrackGen::init(), EvtTauHadnu::init(), EvtMultibody::init(), EvtHypNonLepton::init(), EvtConExc::init(), EvtTauHadnu::initProbMax(), EvtDecayAmp::makeDecay(), and EvtParticleDecayList::removeMode().

00064 {return _ndaug;}

EvtId EvtDecayBase::getParentId (  )  [inline, inherited]

Definition at line 60 of file EvtDecayBase.hh.

References EvtDecayBase::_parent.

Referenced by EvtParticleDecayList::addMode(), EvtParticleDecay::chargeConj(), EvtDecayBase::checkSpinParent(), EvtTauola::decay(), EvtPythia::decay(), EvtOpenCharm::decay(), EvtMultibody::decay(), EvtLundCharm::decay(), EvtLunda::decay(), EvtJPE::decay(), EvtJetSet::decay(), EvtJ2BB3::decay(), EvtJ2BB2::decay(), EvtJ2BB1::decay(), EvtPto3P::dp(), EvtParticleDecayList::EvtParticleDecayList(), EvtTauola::fixPolarizations(), EvtVSSBMixCPT::init(), EvtTauola::init(), EvtSSDCP::init(), EvtRhoPi::init(), EvtPythia::init(), EvtPhokhara_ppbar::init(), EvtPhokhara_pipipi0::init(), EvtPhokhara_pipi::init(), EvtPhokhara_pi0pi0pipi::init(), EvtPhokhara_nnbar::init(), EvtPhokhara_LLB::init(), EvtPhokhara_KK::init(), EvtPhokhara_K0K0::init(), EvtPhokhara_4pi::init(), EvtPhokhara::init(), EvtPartWave::init(), EvtOpenCharm::init(), EvtmH2::init(), EvtMassH2::init(), EvtMassH1::init(), EvtLundCharm::init(), EvtLunda::init(), EvtJetSet::init(), EvtHypNonLepton::init(), EvtHelAmp::init(), EvtHAngSam3::init(), EvtDIY::init(), EvtDDalitz::init(), init(), EvtBody3::init(), EvtAngSamX::init(), EvtAngSamLab::init(), EvtAngSam3::init(), EvtAngSam::init(), EvtAngH2::init(), EvtSLPole::initProbMax(), EvtSLN::initProbMax(), EvtSLBKPole::initProbMax(), EvtKKLambdaC::initProbMax(), EvtISGW2::initProbMax(), EvtHypNonLepton::initProbMax(), EvtHQET2::initProbMax(), EvtHQET::initProbMax(), EvtbTosllBall::initProbMax(), EvtbTosllAli::initProbMax(), and EvtParticleDecayList::removeMode().

00060 {return _parent;}

int EvtDecayBase::getPHOTOS (  )  [inline, inherited]

Definition at line 68 of file EvtDecayBase.hh.

References EvtDecayBase::_photos.

Referenced by EvtParticleDecay::chargeConj(), EvtParticleDecayList::EvtParticleDecayList(), EvtDecayProb::makeDecay(), EvtDecayIncoherent::makeDecay(), and EvtDecayAmp::makeDecay().

00068 {return _photos;}

double EvtDecayBase::getProbMax ( double  prob  )  [inherited]

Definition at line 67 of file EvtDecayBase.cc.

References EvtDecayBase::_daug, EvtDecayBase::_modelname, EvtDecayBase::_ndaug, EvtDecayBase::_parent, EvtCyclic3::c_str(), EvtDecayBase::defaultprobmax, genRecEmupikp::i, Bes_Common::INFO, EvtDecayBase::max_prob, EvtPDL::name(), EvtDecayBase::ntimes_prob, EvtDecayBase::probmax, report(), and EvtDecayBase::sum_prob.

Referenced by EvtBtoKD3P::decay(), EvtDecayProb::makeDecay(), and EvtDecayAmp::makeDecay().

00067                                              {
00068 
00069   int i;
00070 
00071   //diagnostics
00072   sum_prob+=prob;
00073   if (prob>max_prob) max_prob=prob;
00074 
00075 
00076   if ( defaultprobmax && ntimes_prob<=500 ) { 
00077     //We are building up probmax with this iteration
00078      ntimes_prob += 1;
00079      if ( prob > probmax ) { probmax = prob;}
00080      if (ntimes_prob==500) { 
00081        probmax*=1.2;
00082      }
00083      return 1000000.0*prob;
00084   }
00085 
00086   if ( prob> probmax*1.0001) {
00087 
00088     report(INFO,"EvtGen") << "prob > probmax:("<<prob<<">"<<probmax<<")";
00089     report(INFO,"") << "("<<_modelname.c_str()<<") ";
00090     report(INFO,"") << EvtPDL::name(_parent).c_str()<<" -> ";
00091     for(i=0;i<_ndaug;i++){
00092        report(INFO,"") << EvtPDL::name(_daug[i]).c_str() << " ";
00093     }
00094     report(INFO,"") << endl;
00095 
00096     if (defaultprobmax) probmax = prob;
00097 
00098   }
00099 
00100   ntimes_prob += 1;
00101 
00102 
00103   return probmax;
00104 
00105 } //getProbMax

EvtComplex EvtD0mixDalitz::h1 ( const double &  ct  )  const [private]

Definition at line 357 of file EvtD0mixDalitz.cc.

References _x, _y, and exp().

Referenced by decay().

00358 {
00359   return exp( - EvtComplex( _y, _x ) * gt / 2. );
00360 }

EvtComplex EvtD0mixDalitz::h2 ( const double &  ct  )  const [private]

Definition at line 363 of file EvtD0mixDalitz.cc.

References _x, _y, and exp().

Referenced by decay().

00364 {
00365   return exp(   EvtComplex( _y, _x ) * gt / 2. );
00366 }

void EvtD0mixDalitz::init (  )  [virtual]

Reimplemented from EvtDecayBase.

Definition at line 40 of file EvtD0mixDalitz.cc.

References _D0, _D0B, _d1, _d2, _d3, _isKsPiPi, _isRBWmodel, _K0, _K0B, _KL, _KM, _KP, _KS, _PIM, _PIP, _qp, _SCALAR, _x, _y, EvtDecayBase::checkNDaug(), EvtDecayBase::checkSpinDaughter(), EvtDecayBase::checkSpinParent(), calibUtil::ERROR, EvtDecayBase::getArg(), EvtDecayBase::getDaug(), EvtDecayBase::getNArg(), EvtDecayBase::getParentId(), readPDGValues(), report(), and reportInvalidAndExit().

00041 {
00042   // check that there are 0 arguments
00043   checkNDaug( 3 );
00044 
00045   if ( getNArg() )
00046     if ( getNArg() == 2 )
00047       {
00048         _x = getArg( 0 );
00049         _y = getArg( 1 );
00050       }
00051     else if ( getNArg() == 4 )
00052       {
00053         _x = getArg( 0 );
00054         _y = getArg( 1 );
00055         _qp = EvtComplex( getArg( 2 ), getArg( 3 ) );
00056       }
00057     else if ( getNArg() == 5 )
00058       {
00059         _x = getArg( 0 );
00060         _y = getArg( 1 );
00061         _qp = EvtComplex( getArg( 2 ), getArg( 3 ) );
00062         _isRBWmodel = ! getArg( 4 ); // RBW by default. If arg4 is set, do K-matrix.
00063       }
00064     else
00065       {
00066         report( ERROR, "EvtD0mixDalitz" ) << "Number of arguments for this model must be 0, 2, 4 or 5:" << std::endl
00067                                           << "[ x y ][ qp.re qp.im ][ doK-matrix ]" << std::endl
00068                                           << "Check your dec file." << std::endl;
00069         exit( 1 );
00070       }
00071 
00072   checkSpinParent  (    _SCALAR );
00073   checkSpinDaughter( 0, _SCALAR );
00074   checkSpinDaughter( 1, _SCALAR );
00075   checkSpinDaughter( 2, _SCALAR );
00076 
00077   readPDGValues();
00078 
00079   // Get the EvtId of the D0 and its (3) daughters.
00080   EvtId parId = getParentId();
00081 
00082   EvtId dau[ 3 ];
00083   for ( int index = 0; index < 3; index++ )
00084     dau[ index ] = getDaug( index );
00085 
00086   if ( parId == _D0 ) // Look for K0bar h+ h-. The order must be K[0SL] h+ h-
00087     for ( int index = 0; index < 3; index++ )
00088       if      ( ( dau[ index ] == _K0B ) || ( dau[ index ] == _KS ) || ( dau[ index ] == _KL ) )
00089         _d1 = index;
00090       else if ( ( dau[ index ] == _PIP ) || ( dau[ index ] == _KP ) )
00091         _d2 = index;
00092       else if ( ( dau[ index ] == _PIM ) || ( dau[ index ] == _KM ) )
00093         _d3 = index;
00094       else
00095         reportInvalidAndExit();
00096   else if ( parId == _D0B ) // Look for K0 h+ h-. The order must be K[0SL] h- h+
00097     for ( int index = 0; index < 3; index++ )
00098       if      ( ( dau[ index ] == _K0  ) || ( dau[ index ] == _KS ) || ( dau[ index ] == _KL ) )
00099         _d1 = index;
00100       else if ( ( dau[ index ] == _PIM ) || ( dau[ index ] == _KM ) )
00101         _d2 = index;
00102       else if ( ( dau[ index ] == _PIP ) || ( dau[ index ] == _KP ) )
00103         _d3 = index;
00104       else
00105         reportInvalidAndExit();
00106   else
00107     reportInvalidAndExit();
00108 
00109   // Check if we're dealing with Ks pi pi or with Ks K K.
00110   _isKsPiPi = false;
00111   if ( dau[ _d2 ] == _PIP || dau[ _d2 ] == _PIM )
00112     _isKsPiPi = true;
00113 }

void EvtD0mixDalitz::initProbMax (  )  [inline, virtual]

Reimplemented from EvtDecayBase.

Definition at line 112 of file EvtD0mixDalitz.hh.

References EvtDecayBase::setProbMax().

00112 { setProbMax( 5200. );       }

void EvtDecayAmp::makeDecay ( EvtParticle p  )  [virtual, inherited]

Implements EvtDecayBase.

Definition at line 35 of file EvtDecayAmp.cc.

References EvtDecayAmp::_amp2, EvtDecayBase::_daugsDecayedByParentModel, EvtAmp::_dnontrivial, EvtAmp::_pstates, EvtDecayAmp::_weight, EvtRadCorr::alwaysRadCorr(), EvtCyclic3::c_str(), EvtSpinDensity::Check(), EvtAmp::contract(), EvtDecayBase::daugsDecayedByParentModel(), Bes_Common::DEBUG, EvtParticle::decay(), EvtDecayBase::decay(), EvtRadCorr::doRadCorr(), EvtAmp::dstates, EvtAmp::dump(), calibUtil::ERROR, EvtRandom::Flat(), EvtAmp::getBackwardSpinDensity(), EvtParticle::getChannel(), EvtParticle::getDaug(), EvtDecayBase::getDaugs(), EvtId::getId(), EvtParticle::getId(), EvtParticle::getNDaug(), EvtDecayBase::getNDaug(), EvtParticle::getP4(), EvtParticle::getParent(), EvtDecayBase::getPHOTOS(), EvtDecayBase::getProbMax(), EvtAmp::getSpinDensity(), EvtParticle::getSpinDensityBackward(), EvtParticle::getSpinDensityForward(), genRecEmupikp::i, EvtAmp::init(), EvtParticle::mass(), EvtPDL::name(), EvtSpinDensity::NormalizedProb(), report(), EvtSpinDensity::Set(), EvtParticle::setDecayProb(), EvtSpinDensity::SetDim(), EvtParticle::setSpinDensityBackward(), and EvtParticle::setSpinDensityForward().

00035                                          {
00036 
00037   int ntimes=10000;
00038 
00039   int i,more;
00040 
00041   EvtSpinDensity rho;
00042   double prob,prob_max;
00043 
00044   _amp2.init(p->getId(),getNDaug(),getDaugs());
00045 //  report(INFO,"EvtGen") << "Decaying " << EvtPDL::name(p->getId()) << endl;
00046   do{
00047 
00048     _daugsDecayedByParentModel=false;
00049     _weight = 1.0;
00050     decay(p);
00051 
00052     rho=_amp2.getSpinDensity();
00053     prob=p->getSpinDensityForward().NormalizedProb(rho);
00054     if (prob<0.0) {
00055 
00056       report(ERROR,"EvtGen")<<"Negative prob:"<<p->getId().getId()
00057                             <<" "<<p->getChannel()<<endl;
00058 
00059       report(ERROR,"EvtGen") << "rho_forward:"<<endl;
00060       report(ERROR,"EvtGen") << p->getSpinDensityForward();
00061       report(ERROR,"EvtGen") << "rho decay:"<<endl;
00062       report(ERROR,"EvtGen") << rho <<endl;
00063     }
00064 
00065     if (prob!=prob) {
00066 
00067       report(DEBUG,"EvtGen") << "Forward density matrix:"<<endl;
00068       report(ERROR,"EvtGen") << p->getSpinDensityForward();
00069 
00070       report(DEBUG,"EvtGen") << "Decay density matrix:"<<endl;
00071       report(ERROR,"EvtGen") << rho;
00072 
00073       report(DEBUG,"EvtGen") << "prob:"<<prob<<endl;
00074       
00075       report(DEBUG,"EvtGen") << "Particle:"
00076                              <<EvtPDL::name(p->getId()).c_str()<<endl;
00077       report(DEBUG,"EvtGen") << "channel        :"<<p->getChannel()<<endl;
00078       report(DEBUG,"EvtGen") << "Momentum:" << p->getP4() << " " << p->mass() << endl;
00079       if( p->getParent()!=0){
00080         report(DEBUG,"EvtGen") << "parent:"
00081                                <<EvtPDL::name(
00082                                 p->getParent()->getId()).c_str()<<endl;
00083         report(DEBUG,"EvtGen") << "parent channel        :"
00084                                <<p->getParent()->getChannel()<<endl;
00085 
00086         int i;
00087         report(DEBUG,"EvtGen") << "parent daughters  :";
00088         for (i=0;i<p->getParent()->getNDaug();i++){
00089           report(DEBUG,"") << EvtPDL::name(
00090                             p->getParent()->getDaug(i)->getId()).c_str()
00091                                  << " ";
00092         }
00093         report(DEBUG,"") << endl;
00094 
00095         report(DEBUG,"EvtGen") << "daughters  :";
00096         for (i=0;i<p->getNDaug();i++){
00097           report(DEBUG,"") << EvtPDL::name(
00098                             p->getDaug(i)->getId()).c_str()
00099                                  << " ";
00100         }
00101         report(DEBUG,"") << endl;
00102 
00103         report(DEBUG,"EvtGen") << "daughter momenta  :" << endl;;
00104         for (i=0;i<p->getNDaug();i++){
00105           report(DEBUG,"") << p->getDaug(i)->getP4() << " " << p->getDaug(i)->mass();
00106           report(DEBUG,"") << endl;
00107         }
00108 
00109       }
00110     }
00111 
00112 
00113     prob/=_weight;
00114 
00115 
00116     prob_max = getProbMax(prob);
00117     p->setDecayProb(prob/prob_max);
00118 
00119     //report(INFO,"EvtGen") << "Prob,prob_max,weight:"<<prob<<" "<<prob_max<<" "<<_weight<<endl;
00120 
00121     more=prob<EvtRandom::Flat(prob_max);
00122 
00123     ntimes--;
00124 
00125   }while(ntimes&&more);
00126   //report(INFO,"EvtGen") << "Done\n";
00127 
00128   if (ntimes==0){
00129     report(DEBUG,"EvtGen") << "Tried accept/reject:10000"
00130                            <<" times, and rejected all the times!"<<endl;
00131     report(DEBUG,"")<<p->getSpinDensityForward()<<endl;
00132     report(DEBUG,"EvtGen") << "Is therefore accepting the last event!"<<endl;
00133     report(DEBUG,"EvtGen") << "Decay of particle:"<<
00134       EvtPDL::name(p->getId()).c_str()<<"(channel:"<<
00135       p->getChannel()<<") with mass "<<p->mass()<<endl;
00136     
00137     int ii;
00138     for(ii=0;ii<p->getNDaug();ii++){
00139       report(DEBUG,"EvtGen") <<"Daughter "<<ii<<":"<<
00140         EvtPDL::name(p->getDaug(ii)->getId()).c_str()<<" with mass "<<
00141         p->getDaug(ii)->mass()<<endl;
00142     }                              
00143   }
00144 
00145 
00146   EvtSpinDensity rho_list[10];
00147 
00148   rho_list[0]=p->getSpinDensityForward();
00149    
00150 
00151   EvtAmp ampcont;
00152 
00153   if (_amp2._pstates!=1){
00154     ampcont=_amp2.contract(0,p->getSpinDensityForward());   // J2BB2 bugging here
00155 
00156   }
00157   else{
00158     ampcont=_amp2;
00159   }
00160 
00161           
00162 
00163   // it may be that the parent decay model has already
00164   // done the decay - this should be rare and the
00165   // model better know what it is doing..
00166   
00167   if ( !daugsDecayedByParentModel() ){
00168     
00169 
00170  //   report(INFO,"EvtGen") << "Found " << p->getNDaug() << " daughters\n";
00171     for(i=0;i<p->getNDaug();i++){
00172     
00173       rho.SetDim(_amp2.dstates[i]);
00174 
00175       if (_amp2.dstates[i]==1) {
00176         rho.Set(0,0,EvtComplex(1.0,0.0));
00177       }
00178       else{
00179         rho=ampcont.contract(_amp2._dnontrivial[i],_amp2);
00180       }
00181       
00182       if (!rho.Check()) {
00183         
00184         report(ERROR,"EvtGen") << "-------start error-------"<<endl;
00185         report(ERROR,"EvtGen")<<"forward rho failed Check:"<<
00186           EvtPDL::name(p->getId()).c_str()<<" "<<p->getChannel()<<" "<<i<<endl;
00187         
00188         report(ERROR,"EvtGen")<<"Parent:"<<EvtPDL::name(p->getParent()->getId()).c_str()<<endl;
00189         report(ERROR,"EvtGen")<<"GrandParent:"<<EvtPDL::name(p->getParent()->getParent()->getId()).c_str()<<endl;
00190         report(ERROR,"EvtGen")<<"GrandGrandParent:"<<EvtPDL::name(p->getParent()->getParent()->getParent()->getId()).c_str()<<endl;
00191         
00192         report(ERROR,"EvtGen") << rho;
00193         int ii; 
00194         _amp2.dump();
00195         
00196         for(ii=0;ii<i+1;ii++){
00197           report(ERROR,"EvtGen") << rho_list[ii];
00198         }
00199         report(ERROR,"EvtGen") << "-------Done with error-------"<<endl;  
00200       }
00201 
00202 
00203       
00204       p->getDaug(i)->setSpinDensityForward(rho);
00205 
00206       //debugging
00207       // p->printTree();
00208      p->getDaug(i)->decay();
00209 
00210      rho_list[i+1]= p->getDaug(i)->getSpinDensityBackward();
00211 
00212       if (_amp2.dstates[i]!=1){
00213         ampcont=ampcont.contract(_amp2._dnontrivial[i],rho_list[i+1]);
00214       }
00215   
00216       
00217     }
00218 
00219     p->setSpinDensityBackward(_amp2.getBackwardSpinDensity(rho_list));
00220    
00221     
00222     if (!p->getSpinDensityBackward().Check()) {
00223       
00224       report(ERROR,"EvtGen")<<"rho_backward failed Check"<<
00225         p->getId().getId()<<" "<<p->getChannel()<<endl;
00226       
00227       report(ERROR,"EvtGen") << p->getSpinDensityBackward();
00228       
00229     }
00230   }
00231 
00232   if (getPHOTOS() || EvtRadCorr::alwaysRadCorr()) {
00233     EvtRadCorr::doRadCorr(p);
00234 
00235   }
00236 
00237 }

bool EvtDecayBase::matchingDecay ( const EvtDecayBase other  )  const [virtual, inherited]

Definition at line 587 of file EvtDecayBase.cc.

References EvtDecayBase::_daug, EvtDecayBase::_ndaug, EvtDecayBase::_parent, genRecEmupikp::i, ganga-rec::j, and EvtCyclic3::other().

Referenced by EvtParticleDecayList::addMode(), and EvtParticleDecayList::removeMode().

00587                                                                 {
00588 
00589   if ( _ndaug != other._ndaug) return false;
00590   if ( _parent != other._parent) return false;
00591   
00592   std::vector<int> useDs;
00593   for ( unsigned int i=0; i<_ndaug; i++) useDs.push_back(0);
00594 
00595   for ( unsigned int i=0; i<_ndaug; i++) {
00596     bool foundIt=false;
00597     for ( unsigned int j=0; j<_ndaug; j++) {
00598       if ( useDs[j] == 1 ) continue;
00599       if ( _daug[i] == other._daug[j] && _daug[i].getAlias() == other._daug[j].getAlias()) {
00600         foundIt=true;
00601         useDs[j]=1;
00602         break;
00603       }
00604     }
00605     if ( foundIt==false) return false;
00606   }
00607   for ( unsigned int i=0; i<_ndaug; i++) if ( useDs[i]==0) return false;
00608 
00609   return true;
00610 
00611 }

void EvtDecayBase::noProbMax (  )  [inherited]

Definition at line 304 of file EvtDecayBase.cc.

References EvtDecayBase::defaultprobmax.

Referenced by EvtVubNLO::initProbMax(), EvtVubHybrid::initProbMax(), EvtVub::initProbMax(), EvtVectorIsr::initProbMax(), EvtTrackGen::initProbMax(), EvtTauola::initProbMax(), EvtRhoPi::initProbMax(), EvtRexc::initProbMax(), EvtPythia::initProbMax(), EvtPyGaGa::initProbMax(), EvtPycont::initProbMax(), EvtPhsp::initProbMax(), EvtPhokhara_ppbar::initProbMax(), EvtPhokhara_pipipi0::initProbMax(), EvtPhokhara_pipi::initProbMax(), EvtPhokhara_pi0pi0pipi::initProbMax(), EvtPhokhara_nnbar::initProbMax(), EvtPhokhara_LLB::initProbMax(), EvtPhokhara_KK::initProbMax(), EvtPhokhara_K0K0::initProbMax(), EvtPhokhara_4pi::initProbMax(), EvtPhokhara::initProbMax(), EvtOpenCharm::initProbMax(), EvtmPhsp::initProbMax(), EvtmH2::initProbMax(), EvtMBody3::initProbMax(), EvtMassH2::initProbMax(), EvtMassH1::initProbMax(), EvtLundCharm::initProbMax(), EvtLunda::initProbMax(), EvtLambdac2pKpi::initProbMax(), EvtJscont::initProbMax(), EvtJetSet::initProbMax(), EvtHAngSam3::initProbMax(), EvtDMix::initProbMax(), EvtDIY::initProbMax(), EvtConExc::initProbMax(), EvtCalHelAmp::initProbMax(), EvtBtoXsll::initProbMax(), EvtBtoXsgamma::initProbMax(), EvtBtoXsEtap::initProbMax(), EvtBody3::initProbMax(), EvtAngSamX::initProbMax(), EvtAngSamLab::initProbMax(), EvtAngSam3::initProbMax(), EvtAngSam::initProbMax(), and EvtAngH2::initProbMax().

00304                             {
00305 
00306   defaultprobmax=0;
00307 
00308 }

virtual int EvtDecayBase::nRealDaughters (  )  [inline, virtual, inherited]

Reimplemented in EvtBtoKD3P, and EvtVSSBMixCPT.

Definition at line 105 of file EvtDecayBase.hh.

References EvtDecayBase::_ndaug.

Referenced by EvtDecayTable::readDecayFile().

00105 { return _ndaug;}

void EvtDecayBase::printSummary (  )  [inherited]

Definition at line 259 of file EvtDecayBase.cc.

References EvtDecayBase::_daug, EvtDecayBase::_modelname, EvtDecayBase::_ndaug, EvtDecayBase::_parent, EvtCyclic3::c_str(), genRecEmupikp::i, Bes_Common::INFO, EvtDecayBase::max_prob, EvtPDL::name(), EvtDecayBase::ntimes_prob, EvtDecayBase::probmax, report(), and EvtDecayBase::sum_prob.

Referenced by EvtDecayBase::checkNArg(), EvtDecayBase::checkNDaug(), EvtDecayBase::checkSpinDaughter(), EvtDecayBase::checkSpinParent(), and EvtParticleDecay::printSummary().

00259                                 {
00260 
00261   int i;
00262 
00263   if (ntimes_prob>0) {
00264 
00265     report(INFO,"EvtGen") << "Calls="<<ntimes_prob<<" eff:"<<
00266       sum_prob/(probmax*ntimes_prob)<<" frac. max:"<<max_prob/probmax;
00267     report(INFO,"") <<" probmax:"<<probmax<<" max:"<<max_prob<<" : ";
00268   }
00269 
00270   report(INFO,"") << EvtPDL::name(_parent).c_str()<<" -> ";
00271   for(i=0;i<_ndaug;i++){
00272     report(INFO,"") << EvtPDL::name(_daug[i]).c_str() << " ";
00273   }
00274   report(INFO,"") << " ("<<_modelname.c_str()<<"):"<< endl;
00275   
00276   
00277   
00278 }

void EvtD0mixDalitz::readPDGValues (  )  [private]

Definition at line 176 of file EvtD0mixDalitz.cc.

References _ctau, _D0, _D0B, _gamma, _K0, _K0B, _KL, _KM, _KP, _KS, _mD0, _mK, _mKs, _mPi, _PIM, _PIP, EvtPDL::getctau(), EvtPDL::getId(), and EvtPDL::getMass().

Referenced by init().

00177 {
00178   // Define the EvtIds.
00179   _D0  = EvtPDL::getId( "D0"      );
00180   _D0B = EvtPDL::getId( "anti-D0" );
00181   _KM  = EvtPDL::getId( "K-"      );
00182   _KP  = EvtPDL::getId( "K+"      );
00183   _K0  = EvtPDL::getId( "K0"      );
00184   _K0B = EvtPDL::getId( "anti-K0" );
00185   _KL  = EvtPDL::getId( "K_L0"    );
00186   _KS  = EvtPDL::getId( "K_S0"    );
00187   _PIM = EvtPDL::getId( "pi-"     );
00188   _PIP = EvtPDL::getId( "pi+"     );
00189 
00190   // Read the relevant masses.
00191   _mD0 = EvtPDL::getMass( _D0  );
00192   _mKs = EvtPDL::getMass( _KS  );
00193   _mPi = EvtPDL::getMass( _PIP );
00194   _mK  = EvtPDL::getMass( _KP  );
00195 
00196   // Compute the decay rate from the parameter in the evt.pdl file.
00197   _ctau = EvtPDL::getctau( EvtPDL::getId( "D0" ) );
00198 
00199   //_iChi  = _qp * EvtComplex( 0.089723 , 0.0004776  ); // All resonances RBW, also Rho0.
00200 
00201   //_iChi  = _qp * EvtComplex( 0.0481807, 0.0003043  ); // KStarm only
00202   //_iChi  = _qp * EvtComplex( 0.0594099, 0.00023803 ); // All resonances RBW but GS Rho
00203   //_iChi  = _qp * EvtComplex( 0.0780186, 0.000417646 ); // All resonances for KsKK
00204   //_iChi2 = _qp * 1.;
00205 
00206   /*
00207   // Compute the gamma correction factor avgBeta = Gamma tau.
00208   //    Compute the norm of the unnormalized p(\beta).
00209   double factorY = ( 1. + abs( _iChi2 ) ) / 2. - _y * real( _iChi );
00210   double factorX = ( 1. - abs( _iChi2 ) ) / 2. + _x * imag( _iChi );
00211   double norm = factorY / ( 1. - pow( _y, 2 ) ) + factorX / ( 1. + pow( _x, 2 ) );
00212 
00213   //    Compute the integral of p(\beta) \beta d\beta.
00214   double termY = ( 1. + abs( _iChi2 ) ) / 2. - 2. * _y / ( 1. + pow( _y, 2 ) ) * real( _iChi );
00215   double termX = ( 1. - abs( _iChi2 ) ) / 2. + 2. * _x / ( 1. - pow( _x, 2 ) ) * imag( _iChi );
00216   double quotientY = ( 1. + pow( _y, 2 ) ) / pow( 1. - pow( _y, 2 ), 2 );
00217   double quotientX = ( 1. - pow( _x, 2 ) ) / pow( 1. + pow( _x, 2 ), 2 );
00218   double normTimesAvg = termY * quotientY + termX * quotientX;
00219 
00220   double avgBeta = normTimesAvg / norm;
00221 
00222   _gamma = avgBeta / _ctau;
00223   */
00224 
00225   _gamma = 1. / _ctau; // ALERT: Gamma is not 1 / tau.
00226 }

void EvtD0mixDalitz::reportInvalidAndExit (  )  const [inline, private]

Definition at line 96 of file EvtD0mixDalitz.hh.

References calibUtil::ERROR, and report().

Referenced by init().

00097   {
00098     report( ERROR, "EvtD0mixDalitz" ) << "EvtD0mixDalitz: Invalid mode." << std::endl;
00099     exit( 1 );
00100   }

double EvtDecayBase::resetProbMax ( double  prob  )  [inherited]

Definition at line 108 of file EvtDecayBase.cc.

References EvtDecayBase::_daug, EvtDecayBase::_modelname, EvtDecayBase::_ndaug, EvtDecayBase::_parent, EvtDecayBase::defaultprobmax, EvtPDL::getStdHep(), genRecEmupikp::i, Bes_Common::INFO, EvtDecayBase::ntimes_prob, EvtDecayBase::probmax, and report().

00108                                              {
00109   
00110   report(INFO,"EvtGen") << "Reseting prob max\n"; 
00111   report(INFO,"EvtGen") << "prob > probmax:("<<prob<<">"<<probmax<<")";
00112   report(INFO,"") << "("<<_modelname.c_str()<<")";
00113   report(INFO,"") << EvtPDL::getStdHep(_parent)<<"->";
00114   
00115   for( int i=0;i<_ndaug;i++){
00116     report(INFO,"") << EvtPDL::getStdHep(_daug[i]) << " ";
00117   }
00118   report(INFO,"") << endl;
00119   
00120   probmax = 0.0;
00121   defaultprobmax = 0;
00122   ntimes_prob = 0;
00123   
00124   return prob;
00125 
00126 }

void EvtDecayBase::saveDecayInfo ( EvtId  ipar,
int  ndaug,
EvtId daug,
int  narg,
std::vector< std::string > &  args,
std::string  name,
double  brfr 
) [inherited]

Definition at line 167 of file EvtDecayBase.cc.

References EvtDecayBase::_args, EvtDecayBase::_brfr, EvtDecayBase::_chkCharge, EvtDecayBase::_daug, EvtDecayBase::_dsum, EvtDecayBase::_modelname, EvtDecayBase::_narg, EvtDecayBase::_ndaug, EvtDecayBase::_parent, EvtCyclic3::c_str(), EvtDecayBase::checkQ(), EvtDecayBase::defaultprobmax, EvtId::getAlias(), genRecEmupikp::i, Bes_Common::INFO, EvtDecayBase::init(), EvtDecayBase::initProbMax(), EvtPDL::name(), report(), and deljobs::string.

Referenced by EvtParticleDecay::chargeConj(), EvtParticleDecayList::EvtParticleDecayList(), and EvtDecayTable::readDecayFile().

00170                                               {
00171 
00172   int i;
00173 
00174   _brfr=brfr;
00175   _ndaug=ndaug;
00176   _narg=narg;
00177   _parent=ipar; 
00178 
00179   _dsum=0;
00180 
00181   if (_ndaug>0) {
00182     _daug=new EvtId [_ndaug];
00183     for(i=0;i<_ndaug;i++){
00184       _daug[i]=daug[i];
00185       _dsum+=daug[i].getAlias();
00186     }
00187   }
00188   else{
00189     _daug=0;
00190   }
00191 
00192   if (_narg>0) {
00193     _args=new std::string[_narg+1];
00194     for(i=0;i<_narg;i++){
00195       _args[i]=args[i];
00196     }
00197   }
00198   else{
00199      _args = 0;
00200   }
00201 
00202   _modelname=name;
00203 
00204   this->init();
00205   this->initProbMax();
00206 
00207   if (_chkCharge){
00208     this->checkQ();
00209   }
00210 
00211 
00212   if (defaultprobmax){
00213     report(INFO,"EvtGen") << "No default probmax for ";
00214     report(INFO,"") << "("<<_modelname.c_str()<<") ";
00215     report(INFO,"") << EvtPDL::name(_parent).c_str()<<" -> ";
00216     for(i=0;i<_ndaug;i++){
00217       report(INFO,"") << EvtPDL::name(_daug[i]).c_str() << " ";
00218     }
00219     report(INFO,"") << endl;
00220     report(INFO,"") << "This is fine for development, but must be provided for production."<<endl;
00221     report(INFO,"EvtGen") << "Never fear though - the decay will use the \n";
00222     report(INFO,"EvtGen") << "500 iterations to build up a good probmax \n";
00223     report(INFO,"EvtGen") << "before accepting a decay. "<<endl;
00224   }
00225 
00226 }

void EvtDecayBase::setPHOTOS (  )  [inline, inherited]

Definition at line 69 of file EvtDecayBase.hh.

References EvtDecayBase::_photos.

Referenced by EvtParticleDecay::chargeConj(), EvtParticleDecayList::EvtParticleDecayList(), and EvtDecayTable::readDecayFile().

00069 {_photos=1;}

void EvtDecayBase::setProbMax ( double  prbmx  )  [inherited]

Definition at line 297 of file EvtDecayBase.cc.

References EvtDecayBase::defaultprobmax, and EvtDecayBase::probmax.

Referenced by EvtBtoKD3P::decay(), EvtVVSPwave::initProbMax(), EvtVVPIPI_WEIGHTED::initProbMax(), EvtVVpipi::initProbMax(), EvtVVP::initProbMax(), EvtVSSMix::initProbMax(), EvtVSSBMixCPT::initProbMax(), EvtVSS::initProbMax(), EvtVSPPwave::initProbMax(), EvtVPHOtoVISRHi::initProbMax(), EvtVll::initProbMax(), EvtTVSPwave::initProbMax(), EvtTSS::initProbMax(), EvtTauVectornu::initProbMax(), EvtTauScalarnu::initProbMax(), EvtTaulnunu::initProbMax(), EvtTauHadnu::initProbMax(), EvtT2GV::initProbMax(), EvtSVVNONCPEIGEN::initProbMax(), EvtSVVHelAmp::initProbMax(), EvtSVVCPLH::initProbMax(), EvtSVVCP::initProbMax(), EvtSVSNONCPEIGEN::initProbMax(), EvtSVSCPLH::initProbMax(), EvtSVSCPiso::initProbMax(), EvtSVSCP::initProbMax(), EvtSVS::initProbMax(), EvtSVPHelAmp::initProbMax(), EvtSVPCP::initProbMax(), EvtSTSCP::initProbMax(), EvtSTS::initProbMax(), EvtSSSCPpng::initProbMax(), EvtSSSCP::initProbMax(), EvtSSDCP::initProbMax(), EvtSPL::initProbMax(), EvtSLPole::initProbMax(), EvtSLN::initProbMax(), EvtSLBKPole::initProbMax(), EvtS2GV::initProbMax(), EvtPi0Dalitz::initProbMax(), EvtPBB2::initProbMax(), EvtPBB1::initProbMax(), EvtPartWave::initProbMax(), EvtP2GC2::initProbMax(), EvtP2GC1::initProbMax(), EvtP2GC0::initProbMax(), EvtOmegaDalitz::initProbMax(), EvtLNuGamma::initProbMax(), EvtLambdaP_BarGamma::initProbMax(), EvtKKLambdaC::initProbMax(), EvtJpipi::initProbMax(), EvtISGW2::initProbMax(), EvtIntervalDecayAmp< EvtDalitzPoint >::initProbMax(), EvtHypNonLepton::initProbMax(), EvtHQET2::initProbMax(), EvtHQET::initProbMax(), EvtHelAmp::initProbMax(), EvtGoityRoberts::initProbMax(), EvtFlatQ2::initProbMax(), EvtEtaDalitz::initProbMax(), EvtEDM::initProbMax(), EvtDDalitz::initProbMax(), initProbMax(), EvtCBTo3piP00::initProbMax(), EvtCBTo3piMPP::initProbMax(), EvtbTosllBall::initProbMax(), EvtbTosllAli::initProbMax(), EvtBtoKpiCPiso::initProbMax(), EvtBtoKD3P::initProbMax(), EvtBTo3piCP::initProbMax(), EvtBto2piCPiso::initProbMax(), and EvtAV2GV::initProbMax().

00297                                          {
00298 
00299   defaultprobmax=0;
00300   probmax=prbmx;
00301 
00302 }

void EvtDecayBase::setSummary (  )  [inline, inherited]

Definition at line 71 of file EvtDecayBase.hh.

References EvtDecayBase::_summary.

Referenced by EvtParticleDecayList::EvtParticleDecayList(), and EvtDecayTable::readDecayFile().

00071 {_summary=1;}

void EvtDecayBase::setVerbose (  )  [inline, inherited]

Definition at line 70 of file EvtDecayBase.hh.

References EvtDecayBase::_verbose.

Referenced by EvtParticleDecayList::EvtParticleDecayList(), and EvtDecayTable::readDecayFile().

00070 {_verbose=1;}

void EvtDecayAmp::setWeight ( double  weight  )  [inline, inherited]

Definition at line 32 of file EvtDecayAmp.hh.

References EvtDecayAmp::_weight.

Referenced by EvtbTosllBall::decay(), and EvtbTosllAli::decay().

00032 {_weight=weight;}

int EvtDecayBase::summary (  )  [inline, inherited]

Definition at line 78 of file EvtDecayBase.hh.

References EvtDecayBase::_summary.

Referenced by EvtParticleDecayList::EvtParticleDecayList().

00078 {return _summary; }

int EvtDecayBase::verbose (  )  [inline, inherited]

Definition at line 79 of file EvtDecayBase.hh.

References EvtDecayBase::_verbose.

Referenced by EvtParticleDecayList::EvtParticleDecayList(), EvtSVSCPLH::init(), EvtSSDCP::init(), EvtPartWave::init(), EvtHelAmp::init(), EvtBtoXsll::init(), EvtPartWave::initProbMax(), and EvtHelAmp::initProbMax().

00079 {return _verbose; }

void EvtDecayAmp::vertex ( int *  i1,
const EvtComplex amp 
) [inline, inherited]

sets the amplitudes calculated in the decay objects

Definition at line 60 of file EvtDecayAmp.hh.

References EvtDecayAmp::_amp2, and EvtAmp::vertex().

00061   { _amp2.vertex(i1,amp);}

void EvtDecayAmp::vertex ( int  i1,
int  i2,
int  i3,
const EvtComplex amp 
) [inline, inherited]

sets the amplitudes calculated in the decay objects

Definition at line 54 of file EvtDecayAmp.hh.

References EvtDecayAmp::_amp2, and EvtAmp::vertex().

00055   {_amp2.vertex(i1,i2,i3,amp);}

void EvtDecayAmp::vertex ( int  i1,
int  i2,
const EvtComplex amp 
) [inline, inherited]

sets the amplitudes calculated in the decay objects

Definition at line 47 of file EvtDecayAmp.hh.

References EvtDecayAmp::_amp2, and EvtAmp::vertex().

00048   {_amp2.vertex(i1,i2,amp);}

void EvtDecayAmp::vertex ( int  i1,
const EvtComplex amp 
) [inline, inherited]

sets the amplitudes calculated in the decay objects

Definition at line 42 of file EvtDecayAmp.hh.

References EvtDecayAmp::_amp2, and EvtAmp::vertex().

00042 {_amp2.vertex(i1,amp);}

void EvtDecayAmp::vertex ( const EvtComplex amp  )  [inline, inherited]

sets the amplitudes calculated in the decay objects

Definition at line 37 of file EvtDecayAmp.hh.

References EvtDecayAmp::_amp2, and EvtAmp::vertex().

Referenced by EvtVVSPwave::decay(), EvtVVPIPI_WEIGHTED::decay(), EvtVVpipi::decay(), EvtVVP::decay(), EvtVSSMix::decay(), EvtVSSBMixCPT::decay(), EvtVSS::decay(), EvtVSPPwave::decay(), EvtVPHOtoVISRHi::decay(), EvtVPHOtoVISR::decay(), EvtVll::decay(), EvtTVSPwave::decay(), EvtTSS::decay(), EvtTauVectornu::decay(), EvtTauScalarnu::decay(), EvtTaulnunu::decay(), EvtTauHadnu::decay(), EvtTauGamMu::decay(), EvtT2GV::decay(), EvtSVSNONCPEIGEN::decay(), EvtSVSCPLH::decay(), EvtSVSCPiso::decay(), EvtSVSCP::decay(), EvtSVS::decay(), EvtSVPHelAmp::decay(), EvtSVPCP::decay(), EvtSTSCP::decay(), EvtSTS::decay(), EvtSSSCPT::decay(), EvtSSSCPpng::decay(), EvtSSSCP::decay(), EvtSSDCP::decay(), EvtSPL::decay(), EvtSLN::decay(), EvtSll::decay(), EvtS2GV::decay(), EvtPhiDalitz::decay(), EvtPBB2::decay(), EvtPBB1::decay(), EvtP2GC2::decay(), EvtP2GC1::decay(), EvtP2GC0::decay(), EvtOmegaDalitz::decay(), EvtMultibody::decay(), EvtLNuGamma::decay(), EvtLambdaP_BarGamma::decay(), EvtKstarstargamma::decay(), EvtKstarnunu::decay(), EvtJTO3P::decay(), EvtJpipi::decay(), EvtJPE::decay(), EvtJ2BB3::decay(), EvtJ2BB2::decay(), EvtJ2BB1::decay(), EvtIntervalDecayAmp< EvtDalitzPoint >::decay(), EvtHypWK::decay(), EvtHelPPJ::decay(), EvtEtaDalitz::decay(), EvtEDM::decay(), EvtDeBD::decay(), EvtDDalitz::decay(), decay(), EvtChi2BB2::decay(), EvtChi2BB1::decay(), EvtChi1BB2::decay(), EvtChi1BB1::decay(), EvtChi0BB2::decay(), EvtChi0BB1::decay(), EvtCBTo3piP00::decay(), EvtCBTo3piMPP::decay(), EvtBToKpipiCP::decay(), EvtBtoKpiCPiso::decay(), EvtBtoKD3P::decay(), EvtBTo4piCP::decay(), EvtBTo3piCP::decay(), EvtBto2piCPiso::decay(), EvtBHadronic::decay(), EvtAV2GV::decay(), EvtGoityRoberts::DecayBDpilnuGR(), EvtGoityRoberts::DecayBDstarpilnuGR(), and EvtTauGamMu::init().

00037 {_amp2.vertex(amp);}


Member Data Documentation

const EvtCyclic3::Pair & EvtD0mixDalitz::_AB = EvtCyclic3::AB [static, private]

Definition at line 56 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsKK(), and dalitzKsPiPi().

const EvtCyclic3::Pair & EvtD0mixDalitz::_AC = EvtCyclic3::AC [static, private]

Definition at line 57 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsKK(), and dalitzKsPiPi().

EvtAmp EvtDecayAmp::_amp2 [protected, inherited]

Definition at line 66 of file EvtDecayAmp.hh.

Referenced by EvtSVVNONCPEIGEN::decay(), EvtSVVHelAmp::decay(), EvtSVVCPLH::decay(), EvtSVVCP::decay(), EvtSLPole::decay(), EvtSLBKPole::decay(), EvtPartWave::decay(), EvtMelikhov::decay(), EvtKKLambdaC::decay(), EvtISGW2::decay(), EvtISGW::decay(), EvtHypNonLepton::decay(), EvtHQET2::decay(), EvtHQET::decay(), EvtHelAmp::decay(), EvtbTosllBall::decay(), EvtbTosllAli::decay(), EvtDecayAmp::makeDecay(), and EvtDecayAmp::vertex().

const EvtCyclic3::Pair & EvtD0mixDalitz::_BC = EvtCyclic3::BC [static, private]

Definition at line 58 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsKK(), and dalitzKsPiPi().

double EvtD0mixDalitz::_ctau [private]

Definition at line 80 of file EvtD0mixDalitz.hh.

Referenced by readPDGValues().

EvtId EvtD0mixDalitz::_D0 [private]

Definition at line 62 of file EvtD0mixDalitz.hh.

Referenced by init(), and readPDGValues().

EvtId EvtD0mixDalitz::_D0B [private]

Definition at line 63 of file EvtD0mixDalitz.hh.

Referenced by init(), and readPDGValues().

int EvtD0mixDalitz::_d1 [private]

Definition at line 29 of file EvtD0mixDalitz.hh.

Referenced by decay(), and init().

int EvtD0mixDalitz::_d2 [private]

Definition at line 30 of file EvtD0mixDalitz.hh.

Referenced by decay(), and init().

int EvtD0mixDalitz::_d3 [private]

Definition at line 31 of file EvtD0mixDalitz.hh.

Referenced by decay(), and init().

bool EvtDecayBase::_daugsDecayedByParentModel [protected, inherited]

Definition at line 109 of file EvtDecayBase.hh.

Referenced by EvtDecayBase::daugsDecayedByParentModel(), EvtBtoKD3P::decay(), EvtDecayProb::makeDecay(), EvtDecayIncoherent::makeDecay(), and EvtDecayAmp::makeDecay().

const EvtDalitzReso::CouplingType & EvtD0mixDalitz::_EtaPic = EvtDalitzReso::EtaPic [static, private]

Definition at line 49 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsKK().

double EvtD0mixDalitz::_gamma [private]

Definition at line 81 of file EvtD0mixDalitz.hh.

Referenced by decay(), and readPDGValues().

const EvtDalitzReso::NumType & EvtD0mixDalitz::_GS = EvtDalitzReso::GS_CLEO_ZEMACH [static, private]

Definition at line 53 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsPiPi().

EvtComplex EvtD0mixDalitz::_iChi [private]

Definition at line 84 of file EvtD0mixDalitz.hh.

EvtComplex EvtD0mixDalitz::_iChi2 [private]

Definition at line 85 of file EvtD0mixDalitz.hh.

bool EvtD0mixDalitz::_isKsPiPi [private]

Definition at line 41 of file EvtD0mixDalitz.hh.

Referenced by decay(), and init().

bool EvtD0mixDalitz::_isRBWmodel [private]

Definition at line 42 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsPiPi(), and init().

EvtId EvtD0mixDalitz::_K0 [private]

Definition at line 66 of file EvtD0mixDalitz.hh.

Referenced by init(), and readPDGValues().

EvtId EvtD0mixDalitz::_K0B [private]

Definition at line 67 of file EvtD0mixDalitz.hh.

Referenced by init(), and readPDGValues().

EvtId EvtD0mixDalitz::_KL [private]

Definition at line 68 of file EvtD0mixDalitz.hh.

Referenced by init(), and readPDGValues().

EvtId EvtD0mixDalitz::_KM [private]

Definition at line 64 of file EvtD0mixDalitz.hh.

Referenced by init(), and readPDGValues().

const EvtDalitzReso::NumType & EvtD0mixDalitz::_KMAT = EvtDalitzReso::K_MATRIX [static, private]

Definition at line 54 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsPiPi().

EvtId EvtD0mixDalitz::_KP [private]

Definition at line 65 of file EvtD0mixDalitz.hh.

Referenced by init(), and readPDGValues().

EvtId EvtD0mixDalitz::_KS [private]

Definition at line 69 of file EvtD0mixDalitz.hh.

Referenced by init(), and readPDGValues().

double EvtD0mixDalitz::_mD0 [private]

Definition at line 74 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsKK(), dalitzKsPiPi(), and readPDGValues().

double EvtD0mixDalitz::_mK [private]

Definition at line 77 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsKK(), decay(), and readPDGValues().

double EvtD0mixDalitz::_mKs [private]

Definition at line 75 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsKK(), dalitzKsPiPi(), decay(), and readPDGValues().

double EvtD0mixDalitz::_mPi [private]

Definition at line 76 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsPiPi(), decay(), and readPDGValues().

const EvtDalitzReso::CouplingType & EvtD0mixDalitz::_PicPicKK = EvtDalitzReso::PicPicKK [static, private]

Definition at line 50 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsKK().

EvtId EvtD0mixDalitz::_PIM [private]

Definition at line 70 of file EvtD0mixDalitz.hh.

Referenced by init(), and readPDGValues().

EvtId EvtD0mixDalitz::_PIP [private]

Definition at line 71 of file EvtD0mixDalitz.hh.

Referenced by init(), and readPDGValues().

EvtComplex EvtD0mixDalitz::_qp [private]

Definition at line 38 of file EvtD0mixDalitz.hh.

Referenced by decay(), and init().

const EvtDalitzReso::NumType & EvtD0mixDalitz::_RBW = EvtDalitzReso::RBW_CLEO_ZEMACH [static, private]

Definition at line 52 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsKK(), and dalitzKsPiPi().

const EvtSpinType::spintype & EvtD0mixDalitz::_SCALAR = EvtSpinType::SCALAR [static, private]

Definition at line 45 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsKK(), dalitzKsPiPi(), and init().

const EvtSpinType::spintype & EvtD0mixDalitz::_TENSOR = EvtSpinType::TENSOR [static, private]

Definition at line 47 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsKK(), and dalitzKsPiPi().

const EvtSpinType::spintype & EvtD0mixDalitz::_VECTOR = EvtSpinType::VECTOR [static, private]

Definition at line 46 of file EvtD0mixDalitz.hh.

Referenced by dalitzKsKK(), and dalitzKsPiPi().

double EvtD0mixDalitz::_x [private]

Definition at line 34 of file EvtD0mixDalitz.hh.

Referenced by h1(), h2(), and init().

double EvtD0mixDalitz::_y [private]

Definition at line 35 of file EvtD0mixDalitz.hh.

Referenced by decay(), h1(), h2(), and init().


Generated on Tue Nov 29 23:18:57 2016 for BOSS_7.0.2 by  doxygen 1.4.7