BOSS 7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtDecayBase Class Referenceabstract

#include <EvtDecayBase.hh>

+ Inheritance diagram for EvtDecayBase:

Public Member Functions

virtual void getName (std::string &name)=0
 
virtual void decay (EvtParticle *p)=0
 
virtual void makeDecay (EvtParticle *p)=0
 
virtual EvtDecayBaseclone ()=0
 
virtual void init ()
 
virtual void initProbMax ()
 
virtual std::string commandName ()
 
virtual void command (std::string cmd)
 
double getProbMax (double prob)
 
double resetProbMax (double prob)
 
 EvtDecayBase ()
 
virtual ~EvtDecayBase ()
 
virtual bool matchingDecay (const EvtDecayBase &other) const
 
EvtId getParentId ()
 
double getBranchingFraction ()
 
void disableCheckQ ()
 
void checkQ ()
 
int getNDaug ()
 
EvtIdgetDaugs ()
 
EvtId getDaug (int i)
 
int getNArg ()
 
int getPHOTOS ()
 
void setPHOTOS ()
 
void setVerbose ()
 
void setSummary ()
 
double * getArgs ()
 
std::string * getArgsStr ()
 
double getArg (int j)
 
std::string getArgStr (int j)
 
std::string getModelName ()
 
int getDSum ()
 
int summary ()
 
int verbose ()
 
void saveDecayInfo (EvtId ipar, int ndaug, EvtId *daug, int narg, std::vector< std::string > &args, std::string name, double brfr)
 
void printSummary ()
 
void setProbMax (double prbmx)
 
void noProbMax ()
 
void checkNArg (int a1, int a2=-1, int a3=-1, int a4=-1)
 
void checkNDaug (int d1, int d2=-1)
 
void checkSpinParent (EvtSpinType::spintype sp)
 
void checkSpinDaughter (int d1, EvtSpinType::spintype sp)
 
virtual int nRealDaughters ()
 

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

bool _daugsDecayedByParentModel
 

Detailed Description

Definition at line 33 of file EvtDecayBase.hh.

Constructor & Destructor Documentation

◆ EvtDecayBase()

EvtDecayBase::EvtDecayBase ( )

Definition at line 228 of file EvtDecayBase.cc.

228 {
229
230 //the default is that the user module does _not_ set
231 // any probmax.
232 defaultprobmax=1;
233 ntimes_prob = 0;
234 probmax = 0.0;
235
236 _photos=0;
237 _verbose=0;
238 _summary=0;
239 _parent=EvtId(-1,-1);
240 _ndaug=0;
241 _narg=0;
242 _daug=0;
243 _args=0;
244 _argsD=0;
245 _modelname="**********";
246
247 //Default is to check that charge is conserved
248 _chkCharge=1;
249
250 //statistics collection!
251
252 max_prob=0.0;
253 sum_prob=0.0;
254
255}
Definition: EvtId.hh:27

◆ ~EvtDecayBase()

EvtDecayBase::~EvtDecayBase ( )
virtual

Definition at line 281 of file EvtDecayBase.cc.

281 {
282
283 if (_daug!=0){
284 delete [] _daug;
285 }
286
287 if (_args!=0){
288 delete [] _args;
289 }
290
291 if (_argsD!=0){
292 delete [] _argsD;
293 }
294
295}

Member Function Documentation

◆ checkNArg()

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

Definition at line 482 of file EvtDecayBase.cc.

482 {
483
484 if ( _narg != a1 && _narg != a2 && _narg != a3 && _narg != a4 ) {
485 report(ERROR,"EvtGen") << _modelname.c_str() << " generator expected "<<endl;
486 report(ERROR,"EvtGen") << a1<<endl;;
487 if ( a2>-1) {
488 report(ERROR,"EvtGen") << " or " << a2<<endl;
489 }
490 if ( a3>-1) {
491 report(ERROR,"EvtGen") << " or " << a3<<endl;
492 }
493 if ( a4>-1) {
494 report(ERROR,"EvtGen") << " or " << a4<<endl;
495 }
496 report(ERROR,"EvtGen") << " arguments but found:"<< _narg << endl;
497 printSummary();
498 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
499 ::abort();
500
501 }
502
503}
ostream & report(Severity severity, const char *facility)
Definition: EvtReport.cc:36
@ ERROR
Definition: EvtReport.hh:49
void printSummary()

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

◆ checkNDaug()

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

Definition at line 504 of file EvtDecayBase.cc.

504 {
505
506 if ( _ndaug != d1 && _ndaug != d2 ) {
507 report(ERROR,"EvtGen") << _modelname.c_str() << " generator expected ";
508 report(ERROR,"EvtGen") << d1;
509 if ( d2>-1) {
510 report(ERROR,"EvtGen") << " or " << d2;
511 }
512 report(ERROR,"EvtGen") << " daughters but found:"<< _ndaug << endl;
513 printSummary();
514 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
515 ::abort();
516 }
517
518}

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

◆ checkQ()

void EvtDecayBase::checkQ ( )

Definition at line 35 of file EvtDecayBase.cc.

35 {
36 int i;
37 int q=0;
38 int qpar;
39
40 //If there are no daughters (jetset etc) then we do not
41 //want to do this test. Why? Because sometimes the parent
42 //will have a nonzero charge.
43
44 if ( _ndaug != 0) {
45 for(i=0; i<_ndaug; i++ ) {
46 q += EvtPDL::chg3(_daug[i]);
47 }
48 qpar = EvtPDL::chg3(_parent);
49
50 if ( q != qpar ) {
51 report(ERROR,"EvtGen") <<_modelname.c_str()<< " generator expected "
52 << " charge to be conserved, found:"<<endl;
53 report(ERROR,"EvtGen") << "Parent charge of "<<(qpar/3)<<endl;
54 report(ERROR,"EvtGen") << "Sum of daughter charge of "<<(q/3)<<endl;
55 report(ERROR,"EvtGen") << "The parent is "<< EvtPDL::name(_parent).c_str()<<endl;
56 for(i=0; i<_ndaug; i++ ) {
57 report(ERROR,"EvtGen") << "Daughter "<< EvtPDL::name(_daug[i]).c_str()<<endl;
58 }
59 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
60
61 ::abort();
62 }
63 }
64}
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Definition: KKsem.h:33
static std::string name(EvtId i)
Definition: EvtPDL.hh:64
static int chg3(EvtId i)
Definition: EvtPDL.hh:60

Referenced by saveDecayInfo().

◆ checkSpinDaughter()

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

Definition at line 533 of file EvtDecayBase.cc.

533 {
534
536 if ( parenttype != sp ) {
537 report(ERROR,"EvtGen") << _modelname.c_str()
538 << " did not get the correct daughter spin d="
539 << d1 << endl;
540 printSummary();
541 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
542 ::abort();
543 }
544
545}
EvtId getDaug(int i)
Definition: EvtDecayBase.hh:66
static EvtSpinType::spintype getSpinType(EvtId i)
Definition: EvtPDL.hh:61

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

◆ checkSpinParent()

void EvtDecayBase::checkSpinParent ( EvtSpinType::spintype  sp)

Definition at line 520 of file EvtDecayBase.cc.

520 {
521
523 if ( parenttype != sp ) {
524 report(ERROR,"EvtGen") << _modelname.c_str()
525 << " did not get the correct parent spin\n";
526 printSummary();
527 report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
528 ::abort();
529 }
530
531}
EvtId getParentId()
Definition: EvtDecayBase.hh:60

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

◆ clone()

virtual EvtDecayBase * EvtDecayBase::clone ( )
pure virtual

Implemented in EvtAngH2, EvtAngSam, EvtAngSam3, EvtAngSamLab, EvtAngSamX, EvtAV2GV, EvtBHadronic, EvtBody3, EvtBsquark, EvtBto2piCPiso, EvtBTo3piCP, EvtBTo4piCP, EvtBtoKD3P, EvtBtoKpiCPiso, EvtBToKpipiCP, EvtbTosllAli, EvtbTosllBall, EvtBtoXsEtap, EvtBtoXsgamma, EvtBtoXsll, EvtCalHelAmp, EvtCBTo3piMPP, EvtCBTo3piP00, EvtChi0BB1, EvtChi0BB2, EvtChi1BB1, EvtChi1BB2, EvtChi2BB1, EvtChi2BB2, EvtConExc, EvtD0mixDalitz, EvtD0ToKpipi0pi0, EvtD0ToKpipipi, EvtDDalitz, EvtDeBD, EvtDIY, EvtDMix, EvtDToKpienu, EvtDToKSpipipi, EvtDTopipienu, EvtEDM, EvtEtaDalitz, EvtEtap2gpipi, EvtEtap2gpipiB, EvtFlatQ2, EvtGoityRoberts, EvtHAngSam3, EvtHelAmp, EvtHelPPJ, EvtHQET, EvtHQET2, EvtHypNonLepton, EvtHypWK, EvtISGW, EvtISGW2, EvtJ2BB1, EvtJ2BB2, EvtJ2BB3, EvtJetSet, EvtJPE, EvtJpipi, EvtJscont, EvtJTO3P, EvtKKLambdaC, EvtKstarnunu, EvtKstarstargamma, EvtLambdac2pKpi, EvtLambdaP_BarGamma, EvtLNuGamma, EvtLunda, EvtLundCharm, EvtMassH1, EvtMassH2, EvtMBody3, EvtMelikhov, EvtmH2, EvtmPhsp, EvtMultibody, EvtOmegaDalitz, EvtOpenCharm, EvtP2GC0, EvtP2GC1, EvtP2GC2, EvtPartWave, EvtPBB1, EvtPBB2, EvtPhiDalitz, EvtPhokhara, EvtPhokhara_4pi, EvtPhokhara_K0K0, EvtPhokhara_KK, EvtPhokhara_LLB, EvtPhokhara_nnbar, EvtPhokhara_pi0pi0pipi, EvtPhokhara_pipi, EvtPhokhara_pipieta, EvtPhokhara_pipipi0, EvtPhokhara_ppbar, EvtPhsp, EvtPi0Dalitz, EvtPto3P, EvtPycont, EvtPyGaGa, EvtPythia, EvtRexc, EvtRhoPi, EvtS2GV, EvtSingleParticle, EvtSingleParticle2, EvtSinglePoint, EvtSLBKPole, EvtSll, EvtSLN, EvtSLPole, EvtSPL, EvtSSDCP, EvtSSSCP, EvtSSSCPpng, EvtSSSCPT, EvtSTS, EvtSTSCP, EvtSVPCP, EvtSVPHelAmp, EvtSVS, EvtSVSCP, EvtSVSCPiso, EvtSVSCPLH, EvtSVSNONCPEIGEN, EvtSVVCP, EvtSVVCPLH, EvtSVVHelAmp, EvtSVVNONCPEIGEN, EvtT2GV, EvtTauGamMu, EvtTauHadnu, EvtTaulnunu, EvtTauola, EvtTauScalarnu, EvtTauVectornu, EvtTrackGen, EvtTSS, EvtTVSPwave, EvtUclaII, EvtVectorIsr, EvtVll, EvtVPHOtoVISR, EvtVPHOtoVISRHi, EvtVSPPwave, EvtVSS, EvtVSSBMixCPT, EvtVSSMix, EvtVub, EvtVubHybrid, EvtVubNLO, EvtVVP, EvtVVpipi, EvtVVPIPI_WEIGHTED, and EvtVVSPwave.

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

◆ command()

void EvtDecayBase::command ( std::string  cmd)
virtual

◆ commandName()

std::string EvtDecayBase::commandName ( )
virtual

◆ daugsDecayedByParentModel()

bool EvtDecayBase::daugsDecayedByParentModel ( )
inlineprotected

◆ decay()

virtual void EvtDecayBase::decay ( EvtParticle p)
pure virtual

Implemented in EvtAngH2, EvtAngSam, EvtAngSam3, EvtAngSamLab, EvtAngSamX, EvtAV2GV, EvtBHadronic, EvtBody3, EvtBsquark, EvtBto2piCPiso, EvtBTo3piCP, EvtBTo4piCP, EvtBtoKD3P, EvtBtoKpiCPiso, EvtBToKpipiCP, EvtbTosllAli, EvtbTosllBall, EvtBtoXsEtap, EvtBtoXsgamma, EvtBtoXsll, EvtCalHelAmp, EvtCBTo3piMPP, EvtCBTo3piP00, EvtChi0BB1, EvtChi0BB2, EvtChi1BB1, EvtChi1BB2, EvtChi2BB1, EvtChi2BB2, EvtConExc, EvtD0mixDalitz, EvtD0ToKpipi0pi0, EvtD0ToKpipipi, EvtDDalitz, EvtDeBD, EvtDIY, EvtDMix, EvtDToKpienu, EvtDToKSpipipi, EvtDTopipienu, EvtEDM, EvtEtaDalitz, EvtEtap2gpipi, EvtEtap2gpipiB, EvtFlatQ2, EvtGoityRoberts, EvtHAngSam3, EvtHelAmp, EvtHelPPJ, EvtHQET, EvtHQET2, EvtHypNonLepton, EvtHypWK, EvtIntervalDecayAmp< T >, EvtIntervalDecayAmp< EvtDalitzPoint >, EvtISGW, EvtISGW2, EvtJ2BB1, EvtJ2BB2, EvtJ2BB3, EvtJetSet, EvtJPE, EvtJpipi, EvtJscont, EvtJTO3P, EvtKKLambdaC, EvtKstarnunu, EvtKstarstargamma, EvtLambdac2pKpi, EvtLambdaP_BarGamma, EvtLNuGamma, EvtLunda, EvtLundCharm, EvtMassH1, EvtMassH2, EvtMBody3, EvtMelikhov, EvtmH2, EvtmPhsp, EvtMultibody, EvtOmegaDalitz, EvtOpenCharm, EvtP2GC0, EvtP2GC1, EvtP2GC2, EvtPartWave, EvtPBB1, EvtPBB2, EvtPhiDalitz, EvtPhokhara, EvtPhokhara_4pi, EvtPhokhara_K0K0, EvtPhokhara_KK, EvtPhokhara_LLB, EvtPhokhara_nnbar, EvtPhokhara_pi0pi0pipi, EvtPhokhara_pipi, EvtPhokhara_pipieta, EvtPhokhara_pipipi0, EvtPhokhara_ppbar, EvtPhsp, EvtPi0Dalitz, EvtPycont, EvtPyGaGa, EvtPythia, EvtRexc, EvtRhoPi, EvtS2GV, EvtSingleParticle, EvtSingleParticle2, EvtSinglePoint, EvtSLBKPole, EvtSll, EvtSLN, EvtSLPole, EvtSPL, EvtSSDCP, EvtSSSCP, EvtSSSCPpng, EvtSSSCPT, EvtSTS, EvtSTSCP, EvtSVPCP, EvtSVPHelAmp, EvtSVS, EvtSVSCP, EvtSVSCPiso, EvtSVSCPLH, EvtSVSNONCPEIGEN, EvtSVVCP, EvtSVVCPLH, EvtSVVHelAmp, EvtSVVNONCPEIGEN, EvtT2GV, EvtTauGamMu, EvtTauHadnu, EvtTaulnunu, EvtTauola, EvtTauScalarnu, EvtTauVectornu, EvtTrackGen, EvtTSS, EvtTVSPwave, EvtUclaII, EvtVectorIsr, EvtVll, EvtVPHOtoVISR, EvtVPHOtoVISRHi, EvtVSPPwave, EvtVSS, EvtVSSBMixCPT, EvtVSSMix, EvtVub, EvtVubHybrid, EvtVubNLO, EvtVVP, EvtVVpipi, EvtVVPIPI_WEIGHTED, and EvtVVSPwave.

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

◆ disableCheckQ()

void EvtDecayBase::disableCheckQ ( )
inline

Definition at line 62 of file EvtDecayBase.hh.

62{_chkCharge=0;};

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

◆ findMass()

void EvtDecayBase::findMass ( EvtParticle p)
static

Definition at line 346 of file EvtDecayBase.cc.

346 {
347
348 //Need to also check that this mass does not screw
349 //up the parent
350 //This code assumes that for the ith daughter, 0..i-1
351 //already have a mass
352 double maxOkMass=findMaxMass(p);
353
354 int count=0;
355 double mass;
356 bool massOk=false;
357 int i;
358 while (!massOk) {
359 count++;
360 if ( count > 10000 ) {
361 report(INFO,"EvtGen") << "Can not find a valid mass for: " << EvtPDL::name(p->getId()).c_str() <<endl;
362 report(INFO,"EvtGen") << "Now printing parent and/or grandparent tree\n";
363 if ( p->getParent() ) {
364 if ( p->getParent()->getParent() ) {
365 p->getParent()->getParent()->printTree();
366 report(INFO,"EvtGen") << p->getParent()->getParent()->mass() <<endl;
367 report(INFO,"EvtGen") << p->getParent()->mass() <<endl;
368 }
369 else{
370 p->getParent()->printTree();
371 report(INFO,"EvtGen") << p->getParent()->mass() <<endl;
372 }
373 }
374 else p->printTree();
375 report(INFO,"EvtGen") << "maxokmass=" << maxOkMass << " " << EvtPDL::getMinMass(p->getId()) << " " << EvtPDL::getMaxMass(p->getId())<<endl;
376 if ( p->getNDaug() ) {
377 for (i=0; i<p->getNDaug(); i++) {
378 report(INFO,"EvtGen") << p->getDaug(i)->mass()<<" ";
379 }
380 report(INFO,"EvtGen") << endl;
381 }
382 if ( maxOkMass >= EvtPDL::getMinMass(p->getId()) ) {
383 report(INFO,"EvtGen") << "taking a default value\n";
384 p->setMass(maxOkMass);
385 return;
386 }
387 assert(0);
388 }
389 mass = EvtPDL::getMass(p->getId());
390 //Just need to check that this mass is > than
391 //the mass of all daughters
392 double massSum=0.;
393 if ( p->getNDaug() ) {
394 for (i=0; i<p->getNDaug(); i++) {
395 massSum+= p->getDaug(i)->mass();
396 }
397 }
398 //some special cases are handled with 0 (stable) or 1 (k0->ks/kl) daughters
399 if (p->getNDaug()<2) massOk=true;
400 if ( p->getParent() ) {
401 if ( p->getParent()->getNDaug()==1 ) massOk=true;
402 }
403 if ( !massOk ) {
404 if (massSum < mass) massOk=true;
405 if ( mass> maxOkMass) massOk=false;
406 }
407 }
408
409 p->setMass(mass);
410
411}
double mass
DOUBLE_PRECISION count[3]
@ INFO
Definition: EvtReport.hh:52
static double findMaxMass(EvtParticle *p)
static double getMinMass(EvtId i)
Definition: EvtPDL.hh:51
static double getMaxMass(EvtId i)
Definition: EvtPDL.hh:50
static double getMass(EvtId i)
Definition: EvtPDL.hh:46
void setMass(double m)
Definition: EvtParticle.hh:372
EvtId getId() const
Definition: EvtParticle.cc:113
EvtParticle * getParent()
Definition: EvtParticle.cc:87
void printTree() const
Definition: EvtParticle.cc:897
int getNDaug() const
Definition: EvtParticle.cc:125
EvtParticle * getDaug(int i)
Definition: EvtParticle.cc:85
double mass() const
Definition: EvtParticle.cc:127

◆ findMasses()

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

Definition at line 414 of file EvtDecayBase.cc.

415 {
416
417 int i;
418 double mass_sum;
419
420 int count=0;
421
422 if (!( p->firstornot() )) {
423 for (i = 0; i < ndaugs; i++ ) {
424 masses[i] = p->getDaug(i)->mass();
425 } //for
426 } //if
427 else {
428 p->setFirstOrNot();
429 // if only one daughter do it
430
431 if (ndaugs==1) {
432 masses[0]=p->mass();
433 return;
434 }
435
436 //until we get a combo whose masses are less than _parent mass.
437 do {
438 mass_sum = 0.0;
439
440 for (i = 0; i < ndaugs; i++ ) {
441 masses[i] = EvtPDL::getMass(daugs[i]);
442 mass_sum = mass_sum + masses[i];
443 }
444
445 count++;
446
447
448 if(count==10000) {
449 report(ERROR,"EvtGen") <<"Decaying particle:"<<
450 EvtPDL::name(p->getId()).c_str()<<" (m="<<p->mass()<<")"<<endl;
451 report(ERROR,"EvtGen") <<"To the following daugthers"<<endl;
452 for (i = 0; i < ndaugs; i++ ) {
453 report(ERROR,"EvtGen") <<
454 EvtPDL::name(daugs[i]).c_str() << endl;
455 }
456 report(ERROR,"EvtGen") << "Has been rejected "<<count
457 << " times, will now take minimal masses "
458 << " of daugthers"<<endl;
459
460 mass_sum=0.;
461 for (i = 0; i < ndaugs; i++ ) {
462 masses[i] = EvtPDL::getMinMass(daugs[i]);
463 mass_sum = mass_sum + masses[i];
464 }
465 if (mass_sum > p->mass()){
466 report(ERROR,"EvtGen") << "Parent mass="<<p->mass()
467 << "to light for daugthers."<<endl
468 << "Will throw the event away."<<endl;
469 //dont terminate - start over on the event.
471 mass_sum=0.;
472 // ::abort();
473 }
474
475 }
476 } while ( mass_sum > p->mass());
477 } //else
478
479 return;
480}
const float masses[5]
int firstornot() const
Definition: EvtParticle.cc:111
void setFirstOrNot()
Definition: EvtParticle.cc:74
static void setRejectFlag()
Definition: EvtStatus.hh:39

Referenced by EvtBtoXsll::decay().

◆ findMaxMass()

double EvtDecayBase::findMaxMass ( EvtParticle p)
static

Definition at line 311 of file EvtDecayBase.cc.

311 {
312
313
314 double maxOkMass=EvtPDL::getMaxMass(p->getId());
315
316 //protect against vphotons
317 if ( maxOkMass < 0.0000000001 ) return 10000000.;
318 //and against already determined masses
319 if ( p->hasValidP4() ) maxOkMass=p->mass();
320
321 EvtParticle *par=p->getParent();
322 if ( par ) {
323 double maxParMass=findMaxMass(par);
324 int i;
325 double minDaugMass=0.;
326 for(i=0;i<par->getNDaug();i++){
327 EvtParticle *dau=par->getDaug(i);
328 if ( dau!=p) {
329 // it might already have a mass
330 if ( dau->isInitialized() || dau->hasValidP4() )
331 minDaugMass+=dau->mass();
332 else
333 //give it a bit of phase space
334 minDaugMass+=1.000001*EvtPDL::getMinMass(dau->getId());
335 }
336 }
337 if ( maxOkMass>(maxParMass-minDaugMass)) maxOkMass=maxParMass-minDaugMass;
338 }
339 return maxOkMass;
340}
bool hasValidP4()
Definition: EvtParticle.hh:383
bool isInitialized()
Definition: EvtParticle.hh:382

Referenced by findMass(), and findMaxMass().

◆ getArg()

double EvtDecayBase::getArg ( int  j)

Definition at line 564 of file EvtDecayBase.cc.

564 {
565
566 // Verify string
567
568 const char* str = _args[j].c_str();
569 int i = 0;
570 while(str[i]!=0){
571 if (isalpha(str[i]) && str[i]!='e') {
572
573 report(INFO,"EvtGen") << "String " << str << " is not a number" << endl;
574 assert(0);
575 }
576 i++;
577 }
578
579 char** tc=0;
580 return strtod(_args[j].c_str(),tc);
581}
char * c_str(Index i)
Definition: EvtCyclic3.cc:252

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

◆ getArgs()

double * EvtDecayBase::getArgs ( )

Definition at line 547 of file EvtDecayBase.cc.

547 {
548
549 if ( _argsD ) return _argsD;
550 //The user has asked for a list of doubles - the arguments
551 //better all be doubles...
552 if ( _narg==0 ) return _argsD;
553
554 _argsD = new double[_narg];
555
556 int i;
557 char * tc;
558 for(i=0;i<_narg;i++) {
559 _argsD[i] = strtod(_args[i].c_str(),&tc);
560 }
561 return _argsD;
562}

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

◆ getArgsStr()

std::string * EvtDecayBase::getArgsStr ( )
inline

Definition at line 73 of file EvtDecayBase.hh.

73{return _args;}

◆ getArgStr()

std::string EvtDecayBase::getArgStr ( int  j)
inline

◆ getBranchingFraction()

double EvtDecayBase::getBranchingFraction ( )
inline

Definition at line 61 of file EvtDecayBase.hh.

61{return _brfr;}

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

◆ getDaug()

EvtId EvtDecayBase::getDaug ( int  i)
inline

Definition at line 66 of file EvtDecayBase.hh.

66{return _daug[i];}

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

◆ getDaugs()

EvtId * EvtDecayBase::getDaugs ( )
inline

Definition at line 65 of file EvtDecayBase.hh.

65{return _daug;}

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

◆ getDSum()

int EvtDecayBase::getDSum ( )
inline

Definition at line 77 of file EvtDecayBase.hh.

77{return _dsum; }

Referenced by EvtDecayTable::inChannelList().

◆ getModelName()

std::string EvtDecayBase::getModelName ( )
inline

◆ getName()

virtual void EvtDecayBase::getName ( std::string &  name)
pure virtual

Implemented in EvtBtoKD3P, EvtD0mixDalitz, EvtPto3P, EvtSLBKPole, EvtAngH2, EvtAngSam, EvtAngSam3, EvtAngSamLab, EvtAngSamX, EvtAV2GV, EvtBHadronic, EvtBody3, EvtBsquark, EvtBto2piCPiso, EvtBTo3piCP, EvtBTo4piCP, EvtBtoKpiCPiso, EvtBToKpipiCP, EvtbTosllAli, EvtbTosllBall, EvtBtoXsEtap, EvtBtoXsgamma, EvtBtoXsll, EvtCalHelAmp, EvtCBTo3piMPP, EvtCBTo3piP00, EvtChi0BB1, EvtChi0BB2, EvtChi1BB1, EvtChi1BB2, EvtChi2BB1, EvtChi2BB2, EvtConExc, EvtD0ToKpipi0pi0, EvtD0ToKpipipi, EvtDDalitz, EvtDeBD, EvtDIY, EvtDMix, EvtDToKpienu, EvtDToKSpipipi, EvtDTopipienu, EvtEDM, EvtEtaDalitz, EvtEtap2gpipi, EvtEtap2gpipiB, EvtFlatQ2, EvtGoityRoberts, EvtHAngSam3, EvtHelAmp, EvtHelPPJ, EvtHQET, EvtHQET2, EvtHypNonLepton, EvtHypWK, EvtISGW, EvtISGW2, EvtJ2BB1, EvtJ2BB2, EvtJ2BB3, EvtJetSet, EvtJPE, EvtJpipi, EvtJscont, EvtJTO3P, EvtKKLambdaC, EvtKstarnunu, EvtKstarstargamma, EvtLambdac2pKpi, EvtLambdaP_BarGamma, EvtLNuGamma, EvtLunda, EvtLundCharm, EvtMassH1, EvtMassH2, EvtMBody3, EvtMelikhov, EvtmH2, EvtmPhsp, EvtMultibody, EvtOmegaDalitz, EvtOpenCharm, EvtP2GC0, EvtP2GC1, EvtP2GC2, EvtPartWave, EvtPBB1, EvtPBB2, EvtPhiDalitz, EvtPhokhara, EvtPhokhara_4pi, EvtPhokhara_K0K0, EvtPhokhara_KK, EvtPhokhara_LLB, EvtPhokhara_nnbar, EvtPhokhara_pi0pi0pipi, EvtPhokhara_pipi, EvtPhokhara_pipieta, EvtPhokhara_pipipi0, EvtPhokhara_ppbar, EvtPhsp, EvtPi0Dalitz, EvtPycont, EvtPyGaGa, EvtPythia, EvtRexc, EvtRhoPi, EvtS2GV, EvtSingleParticle, EvtSingleParticle2, EvtSinglePoint, EvtSll, EvtSLN, EvtSLPole, EvtSPL, EvtSSDCP, EvtSSSCP, EvtSSSCPpng, EvtSSSCPT, EvtSTS, EvtSTSCP, EvtSVPCP, EvtSVPHelAmp, EvtSVS, EvtSVSCP, EvtSVSCPiso, EvtSVSCPLH, EvtSVSNONCPEIGEN, EvtSVVCP, EvtSVVCPLH, EvtSVVHelAmp, EvtSVVNONCPEIGEN, EvtT2GV, EvtTauGamMu, EvtTauHadnu, EvtTaulnunu, EvtTauola, EvtTauScalarnu, EvtTauVectornu, EvtTrackGen, EvtTSS, EvtTVSPwave, EvtUclaII, EvtVectorIsr, EvtVll, EvtVPHOtoVISR, EvtVPHOtoVISRHi, EvtVSPPwave, EvtVSS, EvtVSSBMixCPT, EvtVSSMix, EvtVub, EvtVubHybrid, EvtVubNLO, EvtVVP, EvtVVpipi, EvtVVPIPI_WEIGHTED, and EvtVVSPwave.

Referenced by EvtParticleDecay::chargeConj(), EvtDDalitz::decay(), and EvtModel::Register().

◆ getNArg()

◆ getNDaug()

int EvtDecayBase::getNDaug ( )
inline

Definition at line 64 of file EvtDecayBase.hh.

64{return _ndaug;}

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

◆ getParentId()

EvtId EvtDecayBase::getParentId ( )
inline

Definition at line 60 of file EvtDecayBase.hh.

60{return _parent;}

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

◆ getPHOTOS()

int EvtDecayBase::getPHOTOS ( )
inline

◆ getProbMax()

double EvtDecayBase::getProbMax ( double  prob)

Definition at line 67 of file EvtDecayBase.cc.

67 {
68
69 int i;
70
71 //diagnostics
72 sum_prob+=prob;
73 if (prob>max_prob) max_prob=prob;
74
75
76 if ( defaultprobmax && ntimes_prob<=500 ) {
77 //We are building up probmax with this iteration
78 ntimes_prob += 1;
79 if ( prob > probmax ) { probmax = prob;}
80 if (ntimes_prob==500) {
81 probmax*=1.2;
82 }
83 return 1000000.0*prob;
84 }
85
86 if ( prob> probmax*1.0001) {
87
88 report(INFO,"EvtGen") << "prob > probmax:("<<prob<<">"<<probmax<<")";
89 report(INFO,"") << "("<<_modelname.c_str()<<") ";
90 report(INFO,"") << EvtPDL::name(_parent).c_str()<<" -> ";
91 for(i=0;i<_ndaug;i++){
92 report(INFO,"") << EvtPDL::name(_daug[i]).c_str() << " ";
93 }
94 report(INFO,"") << endl;
95
96 if (defaultprobmax) probmax = prob;
97
98 }
99
100 ntimes_prob += 1;
101
102
103 return probmax;
104
105} //getProbMax

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

◆ init()

void EvtDecayBase::init ( )
virtual

Reimplemented in EvtAngH2, EvtAngSam, EvtAngSam3, EvtAngSamLab, EvtAngSamX, EvtAV2GV, EvtBHadronic, EvtBody3, EvtBsquark, EvtBto2piCPiso, EvtBTo3piCP, EvtBTo4piCP, EvtBtoKD3P, EvtBtoKpiCPiso, EvtBToKpipiCP, EvtbTosllAli, EvtbTosllBall, EvtBtoXsEtap, EvtBtoXsgamma, EvtBtoXsll, EvtCalHelAmp, EvtCBTo3piMPP, EvtCBTo3piP00, EvtChi0BB1, EvtChi0BB2, EvtChi1BB1, EvtChi1BB2, EvtChi2BB1, EvtChi2BB2, EvtConExc, EvtD0mixDalitz, EvtD0ToKpipi0pi0, EvtD0ToKpipipi, EvtDDalitz, EvtDeBD, EvtDIY, EvtDMix, EvtDToKpienu, EvtDToKSpipipi, EvtDTopipienu, EvtEDM, EvtEtaDalitz, EvtEtap2gpipi, EvtEtap2gpipiB, EvtFlatQ2, EvtGoityRoberts, EvtHAngSam3, EvtHelAmp, EvtHelPPJ, EvtHQET, EvtHQET2, EvtHypNonLepton, EvtHypWK, EvtIntervalDecayAmp< T >, EvtIntervalDecayAmp< EvtDalitzPoint >, EvtISGW, EvtISGW2, EvtJ2BB1, EvtJ2BB2, EvtJ2BB3, EvtJetSet, EvtJPE, EvtJpipi, EvtJscont, EvtJTO3P, EvtKKLambdaC, EvtKstarnunu, EvtKstarstargamma, EvtLambdac2pKpi, EvtLambdaP_BarGamma, EvtLNuGamma, EvtLunda, EvtLundCharm, EvtMassH1, EvtMassH2, EvtMBody3, EvtMelikhov, EvtmH2, EvtmPhsp, EvtMultibody, EvtOmegaDalitz, EvtOpenCharm, EvtP2GC0, EvtP2GC1, EvtP2GC2, EvtPartWave, EvtPBB1, EvtPBB2, EvtPhiDalitz, EvtPhokhara, EvtPhokhara_4pi, EvtPhokhara_K0K0, EvtPhokhara_KK, EvtPhokhara_LLB, EvtPhokhara_nnbar, EvtPhokhara_pi0pi0pipi, EvtPhokhara_pipi, EvtPhokhara_pipieta, EvtPhokhara_pipipi0, EvtPhokhara_ppbar, EvtPhsp, EvtPi0Dalitz, EvtPycont, EvtPyGaGa, EvtPythia, EvtRexc, EvtRhoPi, EvtS2GV, EvtSingleParticle, EvtSingleParticle2, EvtSinglePoint, EvtSLBKPole, EvtSll, EvtSLN, EvtSLPole, EvtSPL, EvtSSDCP, EvtSSSCP, EvtSSSCPpng, EvtSSSCPT, EvtSTS, EvtSTSCP, EvtSVPCP, EvtSVPHelAmp, EvtSVS, EvtSVSCP, EvtSVSCPiso, EvtSVSCPLH, EvtSVSNONCPEIGEN, EvtSVVCP, EvtSVVCPLH, EvtSVVHelAmp, EvtSVVNONCPEIGEN, EvtT2GV, EvtTauGamMu, EvtTauHadnu, EvtTaulnunu, EvtTauola, EvtTauScalarnu, EvtTauVectornu, EvtTrackGen, EvtTSS, EvtTVSPwave, EvtUclaII, EvtVectorIsr, EvtVll, EvtVPHOtoVISR, EvtVPHOtoVISRHi, EvtVSPPwave, EvtVSS, EvtVSSBMixCPT, EvtVSSMix, EvtVub, EvtVubHybrid, EvtVubNLO, EvtVVP, EvtVVpipi, EvtVVPIPI_WEIGHTED, and EvtVVSPwave.

Definition at line 139 of file EvtDecayBase.cc.

139 {
140
141 //This default version of init does nothing;
142 //A specialized version of this function can be
143 //supplied for each decay model to do initialization.
144
145 return;
146
147}

Referenced by saveDecayInfo().

◆ initProbMax()

void EvtDecayBase::initProbMax ( )
virtual

Reimplemented in EvtAngH2, EvtAngSam, EvtAngSam3, EvtAngSamLab, EvtAngSamX, EvtAV2GV, EvtBody3, EvtBsquark, EvtBto2piCPiso, EvtBTo3piCP, EvtBtoKD3P, EvtBtoKpiCPiso, EvtbTosllAli, EvtbTosllBall, EvtBtoXsEtap, EvtBtoXsgamma, EvtBtoXsll, EvtCalHelAmp, EvtCBTo3piMPP, EvtCBTo3piP00, EvtConExc, EvtD0mixDalitz, EvtD0ToKpipi0pi0, EvtD0ToKpipipi, EvtDDalitz, EvtDIY, EvtDMix, EvtDToKpienu, EvtDToKSpipipi, EvtDTopipienu, EvtEDM, EvtEtaDalitz, EvtEtap2gpipi, EvtEtap2gpipiB, EvtFlatQ2, EvtGoityRoberts, EvtHAngSam3, EvtHelAmp, EvtHQET, EvtHQET2, EvtHypNonLepton, EvtIntervalDecayAmp< T >, EvtIntervalDecayAmp< EvtDalitzPoint >, EvtISGW2, EvtJetSet, EvtJpipi, EvtJscont, EvtKKLambdaC, EvtKstarstargamma, EvtLambdac2pKpi, EvtLambdaP_BarGamma, EvtLNuGamma, EvtLunda, EvtLundCharm, EvtMassH1, EvtMassH2, EvtMBody3, EvtmH2, EvtmPhsp, EvtMultibody, EvtOmegaDalitz, EvtOpenCharm, EvtP2GC0, EvtP2GC1, EvtP2GC2, EvtPartWave, EvtPBB1, EvtPBB2, EvtPhokhara, EvtPhokhara_4pi, EvtPhokhara_K0K0, EvtPhokhara_KK, EvtPhokhara_LLB, EvtPhokhara_nnbar, EvtPhokhara_pi0pi0pipi, EvtPhokhara_pipi, EvtPhokhara_pipieta, EvtPhokhara_pipipi0, EvtPhokhara_ppbar, EvtPhsp, EvtPi0Dalitz, EvtPycont, EvtPyGaGa, EvtPythia, EvtRexc, EvtRhoPi, EvtS2GV, EvtSLBKPole, EvtSLN, EvtSLPole, EvtSPL, EvtSSDCP, EvtSSSCP, EvtSSSCPpng, EvtSTS, EvtSTSCP, EvtSVPCP, EvtSVPHelAmp, EvtSVS, EvtSVSCP, EvtSVSCPiso, EvtSVSCPLH, EvtSVSNONCPEIGEN, EvtSVVCP, EvtSVVCPLH, EvtSVVHelAmp, EvtSVVNONCPEIGEN, EvtT2GV, EvtTauHadnu, EvtTaulnunu, EvtTauola, EvtTauScalarnu, EvtTauVectornu, EvtTrackGen, EvtTSS, EvtTVSPwave, EvtUclaII, EvtVectorIsr, EvtVll, EvtVPHOtoVISR, EvtVPHOtoVISRHi, EvtVSPPwave, EvtVSS, EvtVSSBMixCPT, EvtVSSMix, EvtVub, EvtVubHybrid, EvtVubNLO, EvtVVP, EvtVVpipi, EvtVVPIPI_WEIGHTED, and EvtVVSPwave.

Definition at line 149 of file EvtDecayBase.cc.

149 {
150
151 //This function is called if the decay does not have a
152 //specialized initialization.
153 //The default is to set the maximum
154 //probability to 0 and the number of times called to 0
155 //and defaultprobmax to 1 such that the decay will be
156 //generated many many times
157 //in order to generate a reasonable maximum probability
158 //for the decay.
159
160 defaultprobmax=1;
161 ntimes_prob = 0;
162 probmax = 0.0;
163
164} //initProbMax

Referenced by saveDecayInfo().

◆ makeDecay()

virtual void EvtDecayBase::makeDecay ( EvtParticle p)
pure virtual

Implemented in EvtDecayAmp, EvtDecayIncoherent, and EvtDecayProb.

Referenced by EvtParticle::decay().

◆ matchingDecay()

bool EvtDecayBase::matchingDecay ( const EvtDecayBase other) const
virtual

Definition at line 587 of file EvtDecayBase.cc.

587 {
588
589 if ( _ndaug != other._ndaug) return false;
590 if ( _parent != other._parent) return false;
591
592 std::vector<int> useDs;
593 for ( unsigned int i=0; i<_ndaug; i++) useDs.push_back(0);
594
595 for ( unsigned int i=0; i<_ndaug; i++) {
596 bool foundIt=false;
597 for ( unsigned int j=0; j<_ndaug; j++) {
598 if ( useDs[j] == 1 ) continue;
599 if ( _daug[i] == other._daug[j] && _daug[i].getAlias() == other._daug[j].getAlias()) {
600 foundIt=true;
601 useDs[j]=1;
602 break;
603 }
604 }
605 if ( foundIt==false) return false;
606 }
607 for ( unsigned int i=0; i<_ndaug; i++) if ( useDs[i]==0) return false;
608
609 return true;
610
611}
Index other(Index i, Index j)
Definition: EvtCyclic3.cc:118

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

◆ noProbMax()

void EvtDecayBase::noProbMax ( )

Definition at line 304 of file EvtDecayBase.cc.

304 {
305
306 defaultprobmax=0;
307
308}

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

◆ nRealDaughters()

virtual int EvtDecayBase::nRealDaughters ( )
inlinevirtual

Reimplemented in EvtBtoKD3P, and EvtVSSBMixCPT.

Definition at line 105 of file EvtDecayBase.hh.

105{ return _ndaug;}

Referenced by EvtParticle::initDecay(), and EvtDecayTable::readDecayFile().

◆ printSummary()

void EvtDecayBase::printSummary ( )

Definition at line 259 of file EvtDecayBase.cc.

259 {
260
261 int i;
262
263 if (ntimes_prob>0) {
264
265 report(INFO,"EvtGen") << "Calls="<<ntimes_prob<<" eff:"<<
266 sum_prob/(probmax*ntimes_prob)<<" frac. max:"<<max_prob/probmax;
267 report(INFO,"") <<" probmax:"<<probmax<<" max:"<<max_prob<<" : ";
268 }
269
270 report(INFO,"") << EvtPDL::name(_parent).c_str()<<" -> ";
271 for(i=0;i<_ndaug;i++){
272 report(INFO,"") << EvtPDL::name(_daug[i]).c_str() << " ";
273 }
274 report(INFO,"") << " ("<<_modelname.c_str()<<"):"<< endl;
275
276
277
278}

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

◆ resetProbMax()

double EvtDecayBase::resetProbMax ( double  prob)

Definition at line 108 of file EvtDecayBase.cc.

108 {
109
110 report(INFO,"EvtGen") << "Reseting prob max\n";
111 report(INFO,"EvtGen") << "prob > probmax:("<<prob<<">"<<probmax<<")";
112 report(INFO,"") << "("<<_modelname.c_str()<<")";
113 report(INFO,"") << EvtPDL::getStdHep(_parent)<<"->";
114
115 for( int i=0;i<_ndaug;i++){
116 report(INFO,"") << EvtPDL::getStdHep(_daug[i]) << " ";
117 }
118 report(INFO,"") << endl;
119
120 probmax = 0.0;
121 defaultprobmax = 0;
122 ntimes_prob = 0;
123
124 return prob;
125
126}
static int getStdHep(EvtId id)
Definition: EvtPDL.hh:56

◆ saveDecayInfo()

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

Definition at line 167 of file EvtDecayBase.cc.

170 {
171
172 int i;
173
174 _brfr=brfr;
175 _ndaug=ndaug;
176 _narg=narg;
177 _parent=ipar;
178
179 _dsum=0;
180
181 if (_ndaug>0) {
182 _daug=new EvtId [_ndaug];
183 for(i=0;i<_ndaug;i++){
184 _daug[i]=daug[i];
185 _dsum+=daug[i].getAlias();
186 }
187 }
188 else{
189 _daug=0;
190 }
191
192 if (_narg>0) {
193 _args=new std::string[_narg+1];
194 for(i=0;i<_narg;i++){
195 _args[i]=args[i];
196 }
197 }
198 else{
199 _args = 0;
200 }
201
202 _modelname=name;
203
204 this->init();
205 this->initProbMax();
206
207 if (_chkCharge){
208 this->checkQ();
209 }
210
211
212 if (defaultprobmax){
213 report(INFO,"EvtGen") << "No default probmax for ";
214 report(INFO,"") << "("<<_modelname.c_str()<<") ";
215 report(INFO,"") << EvtPDL::name(_parent).c_str()<<" -> ";
216 for(i=0;i<_ndaug;i++){
217 report(INFO,"") << EvtPDL::name(_daug[i]).c_str() << " ";
218 }
219 report(INFO,"") << endl;
220 report(INFO,"") << "This is fine for development, but must be provided for production."<<endl;
221 report(INFO,"EvtGen") << "Never fear though - the decay will use the \n";
222 report(INFO,"EvtGen") << "500 iterations to build up a good probmax \n";
223 report(INFO,"EvtGen") << "before accepting a decay. "<<endl;
224 }
225
226}
virtual void init()
virtual void initProbMax()
int getAlias() const
Definition: EvtId.hh:43

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

◆ setPHOTOS()

void EvtDecayBase::setPHOTOS ( )
inline

◆ setProbMax()

void EvtDecayBase::setProbMax ( double  prbmx)

Definition at line 297 of file EvtDecayBase.cc.

297 {
298
299 defaultprobmax=0;
300 probmax=prbmx;
301
302}

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

◆ setSummary()

void EvtDecayBase::setSummary ( )
inline

Definition at line 71 of file EvtDecayBase.hh.

71{_summary=1;}

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

◆ setVerbose()

void EvtDecayBase::setVerbose ( )
inline

Definition at line 70 of file EvtDecayBase.hh.

70{_verbose=1;}

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

◆ summary()

int EvtDecayBase::summary ( )
inline

Definition at line 78 of file EvtDecayBase.hh.

78{return _summary; }

Referenced by EvtParticleDecayList::EvtParticleDecayList().

◆ verbose()

Member Data Documentation

◆ _daugsDecayedByParentModel

bool EvtDecayBase::_daugsDecayedByParentModel
protected

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