BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtParticle Class Referenceabstract

#include <EvtParticle.hh>

Inheritance diagram for EvtParticle:

Public Member Functions

 EvtParticle ()
virtual ~EvtParticle ()
virtual EvtVector4C epsParent (int i) const
virtual EvtVector4C eps (int i) const
virtual EvtVector4C epsParentPhoton (int i)
virtual EvtVector4C epsPhoton (int i)
virtual EvtDiracSpinor spParent (int) const
virtual EvtDiracSpinor sp (int) const
virtual EvtDiracSpinor spParentNeutrino () const
virtual EvtDiracSpinor spNeutrino () const
virtual EvtTensor4C epsTensorParent (int i) const
virtual EvtTensor4C epsTensor (int i) const
virtual void init (EvtId part_n, const EvtVector4R &p4)=0
void addDaug (EvtParticle *node)
void decay ()
void deleteTree ()
void deleteDaughters (bool keepChannel=false)
void setChannel (int i)
void setGeneratorFlag (int flag)
int getGeneratorFlag ()
void setIntFlag (std::vector< int > vi)
std::vector< int > getIntFlag ()
void makeDaughters (int ndaug, EvtId *id)
double initializePhaseSpace (int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
EvtParticlegetDaug (int i)
EvtParticlenextIter (EvtParticle *rootOfTree=0)
void makeStdHep (EvtStdHep &stdhep, EvtSecondary &secondary, EvtId *stable_parent_ihep)
void makeStdHep (EvtStdHep &stdhep)
EvtVector4R getP4Lab ()
EvtVector4R getP4Restframe ()
EvtVector4R get4Pos ()
EvtParticlegetParent ()
void insertDaugPtr (int idaug, EvtParticle *partptr)
double mass () const
int firstornot () const
void setFirstOrNot ()
void resetFirstOrNot ()
EvtId getId () const
EvtSpinType::spintype getSpinType () const
int getSpinStates () const
const EvtVector4RgetP4 () const
void setP4 (const EvtVector4R &p4)
int getChannel () const
int getNDaug () const
void resetNDaug ()
void printTree () const
void printTreeRec (int level) const
std::string writeTreeRec (std::string) const
void dumpTree () const
void dumpTreeRec (int level, int dj) const
std::string treeStr () const
std::string treeStrRec (int level) const
void printParticle () const
void setLifetime (double tau)
void setLifetime ()
double getLifetime ()
void setDiagonalSpinDensity ()
void setVectorSpinDensity ()
void setPolarizedSpinDensity (double r00, double r11, double r22)
void setSpinDensityForward (const EvtSpinDensity &rho)
void setSpinDensityForwardHelicityBasis (const EvtSpinDensity &rho)
void setSpinDensityForwardHelicityBasis (const EvtSpinDensity &rho, double alpha, double beta, double gamma)
virtual EvtSpinDensity rotateToHelicityBasis () const =0
virtual EvtSpinDensity rotateToHelicityBasis (double alpha, double beta, double gamma) const =0
EvtSpinDensity getSpinDensityForward ()
void setSpinDensityBackward (const EvtSpinDensity &rho)
EvtSpinDensity getSpinDensityBackward ()
void noLifeTime ()
void setId (EvtId id)
void initDecay (bool useMinMass=false)
void generateMassTree ()
double compMassProb ()
void setMass (double m)
bool isInitialized ()
bool hasValidP4 ()
bool isDecayed ()
double * decayProb ()
void setDecayProb (double p)
void setInclusiveMode (int im)
int getInclusiveMode ()

Static Public Attributes

static int _NextLevelDauNum = 0
static EvtId _NextLevelId [20]
static EvtVector4R _NextLevelP4 [20]

Protected Member Functions

void setp (double e, double px, double py, double pz)
void setp (const EvtVector4R &p4)
void setpart_num (EvtId particle_number)

Protected Attributes

bool _validP4

Detailed Description

Definition at line 42 of file EvtParticle.hh.

Constructor & Destructor Documentation

◆ EvtParticle()

EvtParticle::EvtParticle ( )

Default constructor.

Definition at line 61 of file EvtParticle.cc.

61 {
62 _ndaug = 0;
63 _parent = 0;
64 _channel = -10;
65 _t = 0.0;
66 _genlifetime = 1;
67 _first = 1;
68 _isInit = false;
69 _validP4 = false;
70 _isDecayed = false;
71 _decayProb = 0;
72 // _mix=false;
73}

Referenced by addDaug(), compMassProb(), decay(), generateMassTree(), get4Pos(), getDaug(), getP4Lab(), getParent(), init(), initDecay(), insertDaugPtr(), makeDaughters(), nextIter(), EvtPhotonParticle::rotateToHelicityBasis(), and EvtPhotonParticle::rotateToHelicityBasis().

◆ ~EvtParticle()

EvtParticle::~EvtParticle ( )
virtual

Destructor.

Definition at line 59 of file EvtParticle.cc.

59{ delete _decayProb; }

Member Function Documentation

◆ addDaug()

void EvtParticle::addDaug ( EvtParticle * node)

Add another daughter to the particle

Definition at line 92 of file EvtParticle.cc.

92 {
93 node->_daug[node->_ndaug++] = this;
94 _ndaug = 0;
95 _parent = node;
96}

Referenced by EvtKstarstargamma::decay(), EvtPHOTOS::doRadCorr(), and makeDaughters().

◆ compMassProb()

double EvtParticle::compMassProb ( )

Definition at line 527 of file EvtParticle.cc.

527 {
528
529 EvtParticle* p = this;
530 // report(INFO,"EvtGen") << "compMassProb " << endl;
531 // p->printTree();
532 double mass = p->mass();
533 double parMass = 0.;
534 if ( p->getParent() ) { parMass = p->getParent()->mass(); }
535
536 int nDaug = p->getNDaug();
537 double* dMasses = 0;
538
539 int i;
540 if ( nDaug > 0 )
541 {
542 dMasses = new double[nDaug];
543 for ( i = 0; i < nDaug; i++ ) dMasses[i] = p->getDaug( i )->mass();
544 }
545
546 double temp = 1.0;
547 temp = EvtPDL::getMassProb( p->getId(), mass, parMass, nDaug, dMasses );
548
549 // report(INFO,"EvtGen") << temp << " " << EvtPDL::name(p->getId()) << endl;
550 // If the particle already has a mass, we dont need to include
551 // it in the probability calculation
552 if ( ( !p->getParent() || _validP4 ) && temp > 0.0 ) temp = 1.;
553
554 delete[] dMasses;
555 // if ( temp < 0.9999999 )
556 for ( i = 0; i < nDaug; i++ ) { temp *= p->getDaug( i )->compMassProb(); }
557 return temp;
558}
static double getMassProb(EvtId i, double mass, double massPar, int nDaug, double *massDau)
Definition EvtPDL.hh:50
EvtId getId() const
EvtParticle * getParent()
double compMassProb()
int getNDaug() const
EvtParticle * getDaug(int i)
double mass() const

Referenced by compMassProb(), and generateMassTree().

◆ decay()

void EvtParticle::decay ( )

Decay particle

Definition at line 407 of file EvtParticle.cc.

407 {
408
409 // P is particle to decay, typically 'this' but sometime
410 // modified by mixing
411 EvtParticle* p = this;
412 // Did it mix?
413 // if ( p->getMixed() ) {
414 // should take C(p) - this should only
415 // happen the first time we call decay for this
416 // particle
417 // p->takeCConj();
418 // p->setUnMixed();
419 // }
420 EvtSpinDensity myRho; // pingrg test code
421 EvtDecayBase* decayer;
422 decayer = EvtDecayTable::getDecayFunc( p );
423 // if ( decayer ) {
424 // report(INFO,"EvtGen") << "calling decay for " << EvtPDL::name(p->getId()) << " " <<
425 // p->mass() << " " << p->getP4() << " " << p->getNDaug() << " " << p << endl;
426 // report(INFO,"EvtGen") << "NDaug= " << decayer->getNDaug() << endl; int ti; for ( ti=0;
427 // ti<decayer->getNDaug(); ti++)
428 // report(INFO,"EvtGen") << "Daug " << ti << " " << EvtPDL::name(decayer->getDaug(ti))
429 // << endl;
430 // }
431 // if (p->_ndaug>0) {
432 // report(INFO,"EvtGen") <<"Is decaying particle with daughters!!!!!"<<endl;
433 // ::abort();
434 // return;
435 // call initdecay first - April 29,2002 - Lange
436 //}
437
438 // if there are already daughters, then this step is already done!
439 // figure out the masses
440 if ( _ndaug == 0 ) generateMassTree();
441 static EvtId BS0 = EvtPDL::getId( "B_s0" );
442 static EvtId BSB = EvtPDL::getId( "anti-B_s0" );
443 static EvtId BD0 = EvtPDL::getId( "B0" );
444 static EvtId BDB = EvtPDL::getId( "anti-B0" );
445 if ( _ndaug == 1 &&
446 ( getId() == BS0 || getId() == BSB || getId() == BD0 || getId() == BDB ) )
447 {
448 getDaug( 0 )->decay();
449 std::cout
450 << "if ( _ndaug==1 && (getId()==BS0||getId()==BSB||getId()==BD0||getId()==BDB) )"
451 << endl;
452 }
453
454 else
455 {
456 // now we have accepted a set of masses - time
457 if ( decayer )
458 {
459 decayer->makeDecay( p );
460 // p->printTree(); //for debugging
461 }
462 else { p->_rhoBackward.SetDiag( p->getSpinStates() ); }
463 }
464 _isDecayed = true;
465 return;
466}
virtual void makeDecay(EvtParticle *p)=0
static EvtDecayBase * getDecayFunc(EvtParticle *)
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:272
int getSpinStates() const
void generateMassTree()
void SetDiag(int n)

Referenced by EvtJetSet::decay(), EvtLunda::decay(), EvtLundCharm::decay(), decay(), EvtPythia::decay(), EvtTauola::decay(), EvtGen::generateDecay(), EvtDecayAmp::makeDecay(), EvtDecayIncoherent::makeDecay(), and EvtDecayProb::makeDecay().

◆ decayProb()

double * EvtParticle::decayProb ( )
inline

Definition at line 385 of file EvtParticle.hh.

385{ return _decayProb; }

◆ deleteDaughters()

void EvtParticle::deleteDaughters ( bool keepChannel = false)

Definition at line 560 of file EvtParticle.cc.

560 {
561 int i;
562
563 for ( i = 0; i < _ndaug; i++ ) { _daug[i]->deleteTree(); }
564
565 _ndaug = 0;
566 // if ( keepChannel ) report(INFO,"EvtGen") << "keeping \n";
567 if ( !keepChannel ) _channel = -10;
568 //_t=0.0;
569 //_genlifetime=1;
570 _first = 1;
571 _isInit = false;
572 // report(INFO,"EvtGen") << "calling deletedaughters " << EvtPDL::name(this->getId()) <<endl;
573}

Referenced by EvtJetSet::decay(), EvtLunda::decay(), EvtLundCharm::decay(), EvtPythia::decay(), EvtTauola::decay(), EvtVSSBMixCPT::decay(), deleteTree(), and initializePhaseSpace().

◆ deleteTree()

void EvtParticle::deleteTree ( )

Delete a decay chain

Definition at line 575 of file EvtParticle.cc.

575 {
576
577 this->deleteDaughters();
578
579 delete this;
580}
void deleteDaughters(bool keepChannel=false)

Referenced by EvtbTosllAmp::CalcMaxProb(), EvtSemiLeptonicAmp::CalcMaxProb(), EvtGen::generateDecay(), EvtGen::generateDecay(), EvtGen::generateEvent(), and EvtPsi3Sdecay::PHSPDecay().

◆ dumpTree()

void EvtParticle::dumpTree ( ) const

Definition at line 964 of file EvtParticle.cc.

964 { // pingrg, Mar. 25,2008
965
966 report( INFO, "EvtGen" ) << "This is the current decay chain to dump" << endl;
967 report( INFO, "" ) << "This top particle is " << EvtPDL::name( _id ).c_str() << endl;
968
969 this->dumpTreeRec( 0, 0 );
970 report( INFO, "EvtGen" ) << "End of decay chain." << endl;
971}
ostream & report(Severity severity, const char *facility)
Definition EvtReport.cc:34
@ INFO
Definition EvtReport.hh:52
static std::string name(EvtId i)
Definition EvtPDL.hh:70
void dumpTreeRec(int level, int dj) const

◆ dumpTreeRec()

void EvtParticle::dumpTreeRec ( int level,
int dj ) const

Definition at line 935 of file EvtParticle.cc.

935 { // pingrg, Mar. 25,2008
936
937 int newlevel, i;
938 newlevel = level + 1;
939
940 if ( _ndaug != 0 )
941 {
942
943 int Ids = EvtPDL::getStdHep( _id );
944 std::string c1, cid;
945 if ( Ids > 0 ) c1 = "p";
946 if ( Ids < 0 )
947 {
948 c1 = "m";
949 Ids = -1 * Ids;
950 }
951
952 cid = c1 + IntToStr( Ids );
953
954 report( INFO, "" ) << newlevel << " " << cid << " " << dj;
955 report( INFO, "" ) << " = ";
956
957 int Nchannel = this->getChannel() + 1;
958 report( INFO, "" ) << Nchannel << endl;
959
960 for ( i = 0; i < _ndaug; i++ ) { _daug[i]->dumpTreeRec( newlevel, i ); }
961 }
962}
std::string IntToStr(int a)
static int getStdHep(EvtId id)
Definition EvtPDL.hh:61
int getChannel() const

Referenced by dumpTree().

◆ eps()

EvtVector4C EvtParticle::eps ( int i) const
virtual

Returns polarization vector in the particles own restframe.

Reimplemented in EvtVectorParticle.

Definition at line 592 of file EvtParticle.cc.

592 {
593 EvtVector4C temp;
595 report( ERROR, "EvtGen" ) << "and you have asked for the:" << i << "th polarization vector."
596 << " I.e. you thought it was a"
597 << " vector particle!" << endl;
598 ::abort();
599 return temp;
600}
@ ERROR
Definition EvtReport.hh:49
void printParticle() const

Referenced by EvtEDM::decay(), EvtJpipi::decay(), EvtOmegaDalitz::decay(), EvtSVPCP::decay(), EvtSVPHelAmp::decay(), EvtVll::decay(), EvtVPHOtoVISR::decay(), EvtVPHOtoVISRHi::decay(), EvtVSPPwave::decay(), EvtVSS::decay(), EvtVSSBMixCPT::decay(), EvtVSSMix::decay(), EvtVVP::decay(), EvtVVpipi::decay(), EvtVVPIPI_WEIGHTED::decay(), EvtVVSPwave::decay(), and EvtSVVHelAmp::SVVHel().

◆ epsParent()

EvtVector4C EvtParticle::epsParent ( int i) const
virtual

Returns polarization vector in the parents restframe.

Reimplemented in EvtVectorParticle.

Definition at line 582 of file EvtParticle.cc.

582 {
583 EvtVector4C temp;
585 report( ERROR, "EvtGen" ) << "and you have asked for the:" << i << "th polarization vector."
586 << " I.e. you thought it was a"
587 << " vector particle!" << endl;
588 ::abort();
589 return temp;
590}

Referenced by EvtbTosllVectorAmp::CalcAmp(), EvtSemiLeptonicVectorAmp::CalcAmp(), EvtBHadronic::decay(), EvtKstarnunu::decay(), EvtSSDCP::decay(), EvtVectorIsr::decay(), EvtVPHOtoVISR::decay(), EvtVPHOtoVISRHi::decay(), and EvtVVPIPI_WEIGHTED::decay().

◆ epsParentPhoton()

EvtVector4C EvtParticle::epsParentPhoton ( int i)
virtual

Returns polarization vector in the parents restframe for a photon.

Reimplemented in EvtPhotonParticle.

Definition at line 602 of file EvtParticle.cc.

602 {
603 EvtVector4C temp;
605 report( ERROR, "EvtGen" ) << "and you have asked for the:" << i
606 << "th polarization vector of photon."
607 << " I.e. you thought it was a"
608 << " photon particle!" << endl;
609 ::abort();
610 return temp;
611}

Referenced by EvtLNuGamma::decay(), EvtSVPCP::decay(), EvtSVPHelAmp::decay(), EvtVectorIsr::decay(), EvtVSPPwave::decay(), and EvtVVP::decay().

◆ epsPhoton()

EvtVector4C EvtParticle::epsPhoton ( int i)
virtual

Returns polarization vector in the particles own restframe for a photon.

Reimplemented in EvtPhotonParticle.

Definition at line 613 of file EvtParticle.cc.

613 {
614 EvtVector4C temp;
616 report( ERROR, "EvtGen" ) << "and you have asked for the:" << i
617 << "th polarization vector of a photon."
618 << " I.e. you thought it was a"
619 << " photon particle!" << endl;
620 ::abort();
621 return temp;
622}

◆ epsTensor()

EvtTensor4C EvtParticle::epsTensor ( int i) const
virtual

Returns tensor in the particles own restframe for a spin 2 particle.

Reimplemented in EvtTensorParticle.

Definition at line 682 of file EvtParticle.cc.

682 {
683 int temp;
684 temp = i;
685 EvtTensor4C tempC;
687 report( ERROR, "EvtGen" ) << "and you have asked for the:" << i << "th tensor."
688 << " I.e. you thought it was a"
689 << " Tensor particle!" << endl;
690 ::abort();
691 return tempC;
692}

Referenced by EvtTSS::decay(), and EvtTVSPwave::decay().

◆ epsTensorParent()

EvtTensor4C EvtParticle::epsTensorParent ( int i) const
virtual

Returns tensor in the parents restframe for a spin 2 particle.

Reimplemented in EvtTensorParticle.

Definition at line 670 of file EvtParticle.cc.

670 {
671 int temp;
672 temp = i;
673 EvtTensor4C tempC;
675 report( ERROR, "EvtGen" ) << "and you have asked for the:" << i << "th tensor."
676 << " I.e. you thought it was a"
677 << " Tensor particle!" << endl;
678 ::abort();
679 return tempC;
680}

Referenced by EvtSSDCP::decay(), EvtSTS::decay(), and EvtSTSCP::decay().

◆ firstornot()

int EvtParticle::firstornot ( ) const

Used internally to decide if first time particle is decayed.

Definition at line 98 of file EvtParticle.cc.

98{ return _first; }

Referenced by EvtDecayBase::findMasses().

◆ generateMassTree()

void EvtParticle::generateMassTree ( )

Definition at line 468 of file EvtParticle.cc.

468 {
469 double massProb = 1.;
470 double ranNum = 2.;
471 int counter = 0;
472 EvtParticle* p = this;
473 while ( massProb < ranNum )
474 {
475 // check it out the first time.
476 p->initDecay();
477 // report(INFO,"EvtGen") << "calling massProb \n";
478 massProb = p->compMassProb();
479 ranNum = EvtRandom::Flat();
480 // report(INFO,"EvtGen") << "end of iter " << massProb <<endl;
481 counter++;
482
483 if ( counter > 10000 )
484 {
485 if ( counter == 10001 )
486 {
487 report( INFO, "EvtGen" )
488 << "Too many iterations to determine the mass tree. Parent mass= " << p->mass()
489 << _p << " " << massProb << endl;
490 p->printTree();
491 report( INFO, "EvtGen" ) << "will take next combo with non-zero likelihood\n";
492 }
493 if ( massProb > 0. ) massProb = 2.0;
494 if ( counter > 20000 )
495 {
496 // one last try - take the minimum masses
497 p->initDecay( true );
498 p->printTree();
499 massProb = p->compMassProb();
500 if ( massProb > 0. )
501 {
502 massProb = 2.0;
503 report( INFO, "EvtGen" )
504 << "Taking the minimum mass of all particles in the chain\n";
505 }
506 else
507 {
508 report( INFO, "EvtGen" ) << "Sorry, no luck finding a valid set of masses. This "
509 "may be a pathological combo\n";
510 std::cout << EvtPDL::name( p->getId() ) << ": Parent mass " << p->getP4().mass()
511 << " with momentum " << p->getP4() << std::endl;
513 {
515 return;
516 }
517 else { abort(); }
518 // assert(0);
519 }
520 }
521 }
522 }
523 // report(INFO,"EvtGen") << counter << endl;
524 // p->printTree();
525}
static bool ConExcPythia
void initDecay(bool useMinMass=false)
const EvtVector4R & getP4() const
void printTree() const
static double Flat()
Definition EvtRandom.cc:69
double mass() const

Referenced by EvtBtoKD3P::decay(), decay(), and initializePhaseSpace().

◆ get4Pos()

EvtVector4R EvtParticle::get4Pos ( )

Returns the 4position of the particle in the lab frame.

Definition at line 712 of file EvtParticle.cc.

712 {
713
714 EvtVector4R temp, mom;
715 EvtParticle* ptemp;
716
717 temp.set( 0.0, 0.0, 0.0, 0.0 );
718 ptemp = getParent();
719
720 if ( ptemp == 0 ) return temp;
721
722 temp = ( ptemp->_t / ptemp->mass() ) * ( ptemp->getP4() );
723
724 while ( ptemp->getParent() != 0 )
725 {
726 ptemp = ptemp->getParent();
727 mom = ptemp->getP4();
728 temp = boostTo( temp, mom );
729 temp = temp + ( ptemp->_t / ptemp->mass() ) * ( ptemp->getP4() );
730 }
731
732 return temp;
733}
EvtDiracSpinor boostTo(const EvtDiracSpinor &sp, const EvtVector4R p4)
void set(int i, double d)

Referenced by makeStdHep(), and makeStdHep().

◆ getChannel()

int EvtParticle::getChannel ( ) const

◆ getDaug()

EvtParticle * EvtParticle::getDaug ( int i)

Get pointer the the i:th daugther.

Definition at line 80 of file EvtParticle.cc.

80{ return _daug[i]; }

Referenced by EvtConExc::angularSampling(), EvtRexc::angularSampling(), EvtbTosllScalarAmp::CalcAmp(), EvtbTosllVectorAmp::CalcAmp(), EvtSemiLeptonicBaryonAmp::CalcAmp(), EvtSemiLeptonicTensorAmp::CalcAmp(), EvtSemiLeptonicVectorAmp::CalcAmp(), EvtHypNonLepton::calcAmp(), EvtbTosllAmp::CalcMaxProb(), EvtSemiLeptonicAmp::CalcMaxProb(), EvtConExc::checkdecay(), EvtPsi3Sdecay::choseDecay(), compMassProb(), EvtSecondary::createSecondary(), EvtAngH2::decay(), EvtAngSam3::decay(), EvtAngSam::decay(), EvtAngSamLab::decay(), EvtAngSamX::decay(), EvtAV2GV::decay(), EvtBHadronic::decay(), EvtBody3::decay(), EvtBsquark::decay(), EvtBTo3piCP::decay(), EvtBTo4piCP::decay(), EvtBtoKD3P::decay(), EvtBToKpipiCP::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(), EvtConExc::decay(), EvtD0mixDalitz::decay(), EvtD0To2pip2pim::decay(), EvtD0Toa0enu::decay(), EvtD0ToKKpi0::decay(), EvtD0ToKKpipi::decay(), EvtD0toKLpipiPlot::decay(), EvtD0ToKpiEtap::decay(), EvtD0toKpietaPlot::decay(), EvtD0toKpiomegaPlot::decay(), EvtD0ToKpipi0::decay(), EvtD0ToKpipi0pi0::decay(), EvtD0toKpipi0Plot::decay(), EvtD0ToKpipipi::decay(), EvtD0ToKSKK::decay(), EvtD0ToKSKppimpi0::decay(), EvtD0ToKSLKK::decay(), EvtD0ToKSpi0eta::decay(), EvtD0toKSpi0etaPlot::decay(), EvtD0toKSpi0omegaPlot::decay(), EvtD0ToKSpi0pi0::decay(), EvtD0ToKSpi0pi0pi0::decay(), EvtD0ToKSpipi::decay(), EvtD0ToKSpipipi0::decay(), EvtD0ToKSpipipi0pi0::decay(), EvtD0toKSpipiPlot::decay(), EvtD0Topipienu::decay(), EvtD0TopipiEta::decay(), EvtD0topipietaPlot::decay(), EvtD0Topipipi0::decay(), EvtD0Topippim2pi0::decay(), EvtDDalitz::decay(), EvtDeBD::decay(), EvtDIY::decay(), EvtDsToEta3pi::decay(), EvtDsToEtapi2pi0::decay(), EvtDsToEtapipi0::decay(), EvtDsToEtappipi0::decay(), EvtDsTof0enu::decay(), EvtDsToKKenu::decay(), EvtDsToKKmunu::decay(), EvtDsToKKpi::decay(), EvtDsToKKpipi0::decay(), EvtDsToKKpipipi::decay(), EvtDsToKpipi::decay(), EvtDsToKpPipPimPi0::decay(), EvtDsToKSKmPipPip::decay(), EvtDsToKSKpi0::decay(), EvtDsToKSKpPipPim::decay(), EvtDsToKSKSpi::decay(), EvtDsToKSpipi0::decay(), EvtDsToomegaenu::decay(), EvtDsTophienu::decay(), EvtDsTopipi0pi0::decay(), EvtDsTopipipipi0pi0::decay(), EvtDsToPipPipPimPi0::decay(), EvtDToa0enu::decay(), EvtDToKKpi::decay(), EvtDToKKpipi0::decay(), EvtDtoKKpiPlot::decay(), EvtDToKmPipPipPi0::decay(), EvtDToKpienu::decay(), EvtDtoKpipiPlot::decay(), EvtDToKppipi::decay(), EvtDToKppipipi0::decay(), EvtDToKSKmpippip::decay(), EvtDToKSKpi0::decay(), EvtDToKSKSK::decay(), EvtDToKSKSpi::decay(), EvtDToKSpieta::decay(), EvtDtoKSpietaPlot::decay(), EvtDtoKSpiomegaPlot::decay(), EvtDToKSpipi0pi0::decay(), EvtDToKSpipipi::decay(), EvtDTopi0pi0enu::decay(), EvtDTopiEtaEta::decay(), EvtDtopietaetaPlot::decay(), EvtDTopipi0Eta::decay(), EvtDToPiPi0Etap::decay(), EvtDtopipi0etaPlot::decay(), EvtDTopipi0pi0::decay(), EvtDtopipi0pi0Plot::decay(), EvtDTopipienu::decay(), EvtDtopipipiPlot::decay(), EvtEDM::decay(), EvtEtaDalitz::decay(), EvtEtap2gpipi::decay(), EvtEtap2pipieta::decay(), EvtFDC::decay(), EvtFlatQ2::decay(), EvtFromParent::decay(), EvtFromParent_antiLambda::decay(), EvtFromParent_Lambda::decay(), EvtHAngSam3::decay(), EvtHelPPJ::decay(), EvtHypWK::decay(), EvtIntervalDecayAmp< T >::decay(), EvtJ2BB1::decay(), EvtJ2BB2::decay(), EvtJ2BB3::decay(), EvtJetSet::decay(), EvtJPE::decay(), EvtJpipi::decay(), EvtJscont::decay(), EvtJTO3P::decay(), EvtKstarnunu::decay(), EvtKstarstargamma::decay(), EvtLambdac2pKpi::decay(), EvtLambdaP_BarGamma::decay(), EvtLNuGamma::decay(), EvtLunda::decay(), EvtLundCharm::decay(), EvtMassH1::decay(), EvtMassH2::decay(), EvtMBody3::decay(), EvtmH2::decay(), EvtmPhsp::decay(), EvtMultibody::decay(), EvtOmegaDalitz::decay(), EvtOpenCharm::decay(), EvtP2GC0::decay(), EvtP2GC1::decay(), EvtP2GC2::decay(), decay(), EvtPhiDalitz::decay(), EvtPhokhara::decay(), EvtPhokhara_4pi::decay(), EvtPhokhara_etagam::decay(), EvtPhokhara_etapgam::decay(), EvtPhokhara_K0K0::decay(), EvtPhokhara_KK::decay(), EvtPhokhara_Lambda::decay(), EvtPhokhara_LLB::decay(), EvtPhokhara_nnbar::decay(), EvtPhokhara_pi0gam::decay(), EvtPhokhara_pi0pi0pipi::decay(), EvtPhokhara_pipi::decay(), EvtPhokhara_pipieta::decay(), EvtPhokhara_pipipi0::decay(), EvtPhokhara_ppbar::decay(), EvtPhsp::decay(), EvtPhspStepf::decay(), EvtPi0Dalitz::decay(), EvtPycont::decay(), EvtPyGaGa::decay(), EvtPythia::decay(), EvtRexc::decay(), EvtRhoPi::decay(), EvtSingleParticle2::decay(), EvtSingleParticle::decay(), EvtSinglePoint::decay(), EvtSll::decay(), EvtSLN::decay(), EvtSPL::decay(), EvtSSDCP::decay(), EvtSTS::decay(), EvtSTSCP::decay(), EvtSVPCP::decay(), EvtSVPHelAmp::decay(), EvtSVS::decay(), EvtSVSCP::decay(), EvtSVSCPiso::decay(), EvtSVSCPLH::decay(), EvtSVSNONCPEIGEN::decay(), EvtT2GV::decay(), EvtTauGamMu::decay(), EvtTauHadnu::decay(), EvtTaulnunu::decay(), EvtTauola::decay(), EvtTauScalarnu::decay(), EvtTauVectornu::decay(), EvtTrackGen::decay(), EvtTSS::decay(), EvtTVSPwave::decay(), EvtVectorIsr::decay(), EvtVll::decay(), EvtVPHOtoVISR::decay(), EvtVPHOtoVISRHi::decay(), EvtVSPPwave::decay(), EvtVSS::decay(), EvtVSSBMixCPT::decay(), EvtVSSMix::decay(), EvtVub::decay(), EvtVubHybrid::decay(), EvtVubNLO::decay(), EvtVVP::decay(), EvtVVpipi::decay(), EvtVVPIPI_WEIGHTED::decay(), EvtVVSPwave::decay(), EvtConExc::difgamXs(), EvtPHOTOS::doRadCorr(), EvtEvalHelAmp::evalAmp(), EvtLunda::ExclusiveDecay(), EvtDecayBase::findMass(), EvtDecayBase::findMasses(), EvtDecayBase::findMaxMass(), EvtConExc::findMaxXS(), EvtFSPick::FSPick(), EvtConExc::gamHXSection(), EvtGen::generateDecay(), initDecay(), initializePhaseSpace(), EvtDecayAmp::makeDecay(), EvtDecayIncoherent::makeDecay(), EvtDecayProb::makeDecay(), EvtDecayTag::makeTag(), EvtCPUtil::OtherB(), EvtCPUtil::OtherB(), EvtConExc::photonSampling(), EvtPsi3Sdecay::PHSPDecay(), EvtConExc::Rad1difXs(), EvtConExc::Rad2difXs(), EvtConExc::SetP4(), EvtConExc::SetP4Rvalue(), and EvtSVVHelAmp::SVVHel().

◆ getGeneratorFlag()

int EvtParticle::getGeneratorFlag ( )
inline

get generator information; pingrg-2011-1-6

Definition at line 140 of file EvtParticle.hh.

140{ return _generatorFlag; }

◆ getId()

EvtId EvtParticle::getId ( ) const

Returns Id of particle.

Definition at line 100 of file EvtParticle.cc.

100{ return _id; }

Referenced by EvtConExc::angularSampling(), EvtRexc::angularSampling(), EvtbTosllScalarAmp::CalcAmp(), EvtbTosllVectorAmp::CalcAmp(), EvtSemiLeptonicBaryonAmp::CalcAmp(), EvtSemiLeptonicTensorAmp::CalcAmp(), EvtSemiLeptonicVectorAmp::CalcAmp(), EvtConExc::checkdecay(), EvtPsi3Sdecay::choseDecay(), compMassProb(), EvtSecondary::createSecondary(), EvtAngH2::decay(), EvtBsquark::decay(), EvtBTo3piCP::decay(), EvtBtoXsll::decay(), EvtCalHelAmp::decay(), EvtCBTo3piMPP::decay(), EvtCBTo3piP00::decay(), EvtConExc::decay(), EvtD0Toa0enu::decay(), EvtD0ToKKpipi::decay(), EvtD0ToKSKppimpi0::decay(), EvtD0ToKSpi0pi0pi0::decay(), EvtD0Topipienu::decay(), EvtDDalitz::decay(), EvtDeBD::decay(), EvtDMix::decay(), EvtDsTof0enu::decay(), EvtDsToKKenu::decay(), EvtDsToKKmunu::decay(), EvtDsToomegaenu::decay(), EvtDsTophienu::decay(), EvtDsTopipipipi0pi0::decay(), EvtDToa0enu::decay(), EvtDToKKpipi0::decay(), EvtDToKmPipPipPi0::decay(), EvtDToKpienu::decay(), EvtDToKSKmpippip::decay(), EvtDToKSpipi0pi0::decay(), EvtDTopi0pi0enu::decay(), EvtDTopipienu::decay(), EvtFromParent::decay(), EvtFromParent_antiLambda::decay(), EvtFromParent_Lambda::decay(), EvtHypWK::decay(), EvtJetSet::decay(), EvtJscont::decay(), EvtKstarstargamma::decay(), EvtLambdac2pKpi::decay(), EvtLNuGamma::decay(), EvtLunda::decay(), EvtLundCharm::decay(), EvtOpenCharm::decay(), decay(), EvtPhokhara::decay(), EvtPhokhara_4pi::decay(), EvtPhokhara_etagam::decay(), EvtPhokhara_etapgam::decay(), EvtPhokhara_K0K0::decay(), EvtPhokhara_KK::decay(), EvtPhokhara_Lambda::decay(), EvtPhokhara_LLB::decay(), EvtPhokhara_nnbar::decay(), EvtPhokhara_pi0gam::decay(), EvtPhokhara_pi0pi0pipi::decay(), EvtPhokhara_pipi::decay(), EvtPhokhara_pipieta::decay(), EvtPhokhara_pipipi0::decay(), EvtPhokhara_ppbar::decay(), EvtPycont::decay(), EvtPyGaGa::decay(), EvtPythia::decay(), EvtRexc::decay(), EvtSVSCPiso::decay(), EvtSVSNONCPEIGEN::decay(), EvtSVVNONCPEIGEN::decay(), EvtTauHadnu::decay(), EvtTaulnunu::decay(), EvtTauola::decay(), EvtTauScalarnu::decay(), EvtTauVectornu::decay(), EvtTrackGen::decay(), EvtVPHOtoVISR::decay(), EvtVPHOtoVISRHi::decay(), EvtVSSBMixCPT::decay(), EvtVSSMix::decay(), EvtPHOTOS::doRadCorr(), EvtLunda::ExclusiveDecay(), EvtDecayBase::findMass(), EvtDecayBase::findMasses(), EvtDecayBase::findMaxMass(), EvtConExc::findMaxXS(), EvtFSPick::FSPick(), EvtConExc::gamHXSection(), generateMassTree(), EvtDecayTable::getDecayFunc(), EvtParticleDecayList::getDecayModel(), initDecay(), initializePhaseSpace(), EvtDecayAmp::makeDecay(), EvtDecayProb::makeDecay(), makeStdHep(), makeStdHep(), EvtDecayTag::makeTag(), EvtCPUtil::OtherB(), EvtCPUtil::OtherB(), EvtConExc::photonSampling(), EvtPsi3Sdecay::PHSPDecay(), printTreeRec(), EvtDiracParticle::rotateToHelicityBasis(), EvtDiracParticle::rotateToHelicityBasis(), EvtHighSpinParticle::rotateToHelicityBasis(), EvtHighSpinParticle::rotateToHelicityBasis(), EvtRaritaSchwingerParticle::rotateToHelicityBasis(), EvtRaritaSchwingerParticle::rotateToHelicityBasis(), setLifetime(), EvtConExc::SetP4(), EvtConExc::SetP4Rvalue(), treeStrRec(), and writeTreeRec().

◆ getInclusiveMode()

int EvtParticle::getInclusiveMode ( )
inline

Definition at line 389 of file EvtParticle.hh.

389{ return _inclusiveMode; }

◆ getIntFlag()

std::vector< int > EvtParticle::getIntFlag ( )
inline

get int flag for ConExc: pingrg-2015-2-7

Definition at line 155 of file EvtParticle.hh.

155{ return _intFlag; }

◆ getLifetime()

double EvtParticle::getLifetime ( )

Returns the lifetime.

Definition at line 90 of file EvtParticle.cc.

90{ return _t; }

Referenced by EvtVSSBMixCPT::decay(), EvtVSSMix::decay(), EvtCPUtil::OtherB(), and EvtCPUtil::OtherB().

◆ getNDaug()

◆ getP4()

const EvtVector4R & EvtParticle::getP4 ( ) const

Returns 4momentum in parents restframe.

Definition at line 108 of file EvtParticle.cc.

108{ return _p; }

Referenced by EvtbTosllScalarAmp::CalcAmp(), EvtbTosllVectorAmp::CalcAmp(), EvtSemiLeptonicBaryonAmp::CalcAmp(), EvtSemiLeptonicTensorAmp::CalcAmp(), EvtSemiLeptonicVectorAmp::CalcAmp(), EvtAngSam3::decay(), EvtAngSam::decay(), EvtAngSamX::decay(), EvtAV2GV::decay(), EvtBHadronic::decay(), EvtBsquark::decay(), EvtBTo4piCP::decay(), EvtBtoKD3P::decay(), EvtCalHelAmp::decay(), EvtChi0BB1::decay(), EvtChi0BB2::decay(), EvtChi1BB1::decay(), EvtChi1BB2::decay(), EvtChi2BB1::decay(), EvtChi2BB2::decay(), EvtConExc::decay(), EvtD0mixDalitz::decay(), EvtD0To2pip2pim::decay(), EvtD0Toa0enu::decay(), EvtD0ToKKpi0::decay(), EvtD0ToKKpipi::decay(), EvtD0ToKpiEtap::decay(), EvtD0ToKpipi0::decay(), EvtD0ToKpipi0pi0::decay(), EvtD0ToKpipipi::decay(), EvtD0ToKSKK::decay(), EvtD0ToKSKppimpi0::decay(), EvtD0ToKSLKK::decay(), EvtD0ToKSpi0eta::decay(), EvtD0ToKSpi0pi0::decay(), EvtD0ToKSpi0pi0pi0::decay(), EvtD0ToKSpipi::decay(), EvtD0ToKSpipipi0::decay(), EvtD0ToKSpipipi0pi0::decay(), EvtD0Topipienu::decay(), EvtD0TopipiEta::decay(), EvtD0Topipipi0::decay(), EvtD0Topippim2pi0::decay(), EvtDDalitz::decay(), EvtDeBD::decay(), EvtDIY::decay(), EvtDsToEta3pi::decay(), EvtDsToEtapi2pi0::decay(), EvtDsToEtapipi0::decay(), EvtDsToEtappipi0::decay(), EvtDsTof0enu::decay(), EvtDsToKKenu::decay(), EvtDsToKKmunu::decay(), EvtDsToKKpi::decay(), EvtDsToKKpipi0::decay(), EvtDsToKKpipipi::decay(), EvtDsToKpipi::decay(), EvtDsToKpPipPimPi0::decay(), EvtDsToKSKmPipPip::decay(), EvtDsToKSKpi0::decay(), EvtDsToKSKpPipPim::decay(), EvtDsToKSKSpi::decay(), EvtDsToKSpipi0::decay(), EvtDsToomegaenu::decay(), EvtDsTophienu::decay(), EvtDsTopipi0pi0::decay(), EvtDsTopipipipi0pi0::decay(), EvtDsToPipPipPimPi0::decay(), EvtDToa0enu::decay(), EvtDToKKpi::decay(), EvtDToKKpipi0::decay(), EvtDToKmPipPipPi0::decay(), EvtDToKpienu::decay(), EvtDToKppipi::decay(), EvtDToKppipipi0::decay(), EvtDToKSKmpippip::decay(), EvtDToKSKpi0::decay(), EvtDToKSKSK::decay(), EvtDToKSKSpi::decay(), EvtDToKSpieta::decay(), EvtDToKSpipi0pi0::decay(), EvtDToKSpipipi::decay(), EvtDTopi0pi0enu::decay(), EvtDTopiEtaEta::decay(), EvtDTopipi0Eta::decay(), EvtDToPiPi0Etap::decay(), EvtDTopipi0pi0::decay(), EvtDTopipienu::decay(), EvtEDM::decay(), EvtEtaDalitz::decay(), EvtEtap2gpipi::decay(), EvtEtap2pipieta::decay(), EvtFlatQ2::decay(), EvtFromParent::decay(), EvtHAngSam3::decay(), EvtHelPPJ::decay(), EvtHypWK::decay(), EvtJ2BB1::decay(), EvtJ2BB2::decay(), EvtJ2BB3::decay(), EvtJPE::decay(), EvtJpipi::decay(), EvtJTO3P::decay(), EvtKstarnunu::decay(), EvtKstarstargamma::decay(), EvtLNuGamma::decay(), EvtMBody3::decay(), EvtOmegaDalitz::decay(), EvtOpenCharm::decay(), EvtP2GC0::decay(), EvtP2GC1::decay(), EvtP2GC2::decay(), EvtPhiDalitz::decay(), EvtPhsp::decay(), EvtPhspStepf::decay(), EvtPi0Dalitz::decay(), EvtRexc::decay(), EvtRhoPi::decay(), EvtSPL::decay(), EvtSSDCP::decay(), EvtSTS::decay(), EvtSTSCP::decay(), EvtSVPCP::decay(), EvtSVPHelAmp::decay(), EvtSVS::decay(), EvtSVSCP::decay(), EvtSVSNONCPEIGEN::decay(), EvtT2GV::decay(), EvtTauGamMu::decay(), EvtTauHadnu::decay(), EvtTauScalarnu::decay(), EvtTSS::decay(), EvtVSPPwave::decay(), EvtVSS::decay(), EvtVSSBMixCPT::decay(), EvtVSSMix::decay(), EvtVVpipi::decay(), EvtVVPIPI_WEIGHTED::decay(), EvtVVSPwave::decay(), EvtConExc::difgamXs(), EvtPHOTOS::doRadCorr(), EvtVectorParticle::epsParent(), EvtPhotonParticle::epsParentPhoton(), EvtTensorParticle::epsTensorParent(), EvtEvalHelAmp::evalAmp(), EvtConExc::findMaxXS(), EvtConExc::gamHXSection(), generateMassTree(), get4Pos(), getP4Lab(), EvtDecayAmp::makeDecay(), EvtPsi3Sdecay::PHSPDecay(), EvtConExc::Rad1difXs(), EvtConExc::Rad2difXs(), EvtDiracParticle::rotateToHelicityBasis(), EvtDiracParticle::rotateToHelicityBasis(), EvtRaritaSchwingerParticle::rotateToHelicityBasis(), EvtRaritaSchwingerParticle::rotateToHelicityBasis(), and EvtSVVHelAmp::SVVHel().

◆ getP4Lab()

EvtVector4R EvtParticle::getP4Lab ( )

Gets 4vector in the labframe, i.e., the frame in which the root particles momentum is measured.

Definition at line 694 of file EvtParticle.cc.

694 {
695 EvtVector4R temp, mom;
696 EvtParticle* ptemp;
697
698 temp = this->getP4();
699 ptemp = this;
700
701 while ( ptemp->getParent() != 0 )
702 {
703 ptemp = ptemp->getParent();
704 mom = ptemp->getP4();
705 temp = boostTo( temp, mom );
706 }
707 return temp;
708}

Referenced by EvtConExc::angularSampling(), EvtRexc::angularSampling(), EvtAngH2::decay(), EvtBody3::decay(), EvtD0To2pip2pim::decay(), EvtD0ToKKpi0::decay(), EvtD0toKLpipiPlot::decay(), EvtD0toKpietaPlot::decay(), EvtD0toKpiomegaPlot::decay(), EvtD0toKpipi0Plot::decay(), EvtD0toKSpi0etaPlot::decay(), EvtD0toKSpi0omegaPlot::decay(), EvtD0ToKSpipi::decay(), EvtD0ToKSpipipi0::decay(), EvtD0toKSpipiPlot::decay(), EvtD0topipietaPlot::decay(), EvtD0Topipipi0::decay(), EvtD0Topippim2pi0::decay(), EvtDeBD::decay(), EvtDIY::decay(), EvtDtoKKpiPlot::decay(), EvtDtoKpipiPlot::decay(), EvtDToKSKpi0::decay(), EvtDtoKSpietaPlot::decay(), EvtDtoKSpiomegaPlot::decay(), EvtDtopietaetaPlot::decay(), EvtDtopipi0etaPlot::decay(), EvtDtopipi0pi0Plot::decay(), EvtDtopipipiPlot::decay(), EvtFDC::decay(), EvtFromParent::decay(), EvtFromParent_antiLambda::decay(), EvtFromParent_Lambda::decay(), EvtLambdaP_BarGamma::decay(), EvtMassH1::decay(), EvtMassH2::decay(), EvtMBody3::decay(), EvtmH2::decay(), EvtmPhsp::decay(), EvtMultibody::decay(), EvtPhokhara_Lambda::decay(), EvtRhoPi::decay(), EvtSingleParticle2::decay(), EvtSingleParticle::decay(), EvtSPL::decay(), makeStdHep(), makeStdHep(), and EvtConExc::photonSampling().

◆ getP4Restframe()

EvtVector4R EvtParticle::getP4Restframe ( )

Gets 4vector in the particles restframe, i.e. this functiont will return (m,0,0,0)

Definition at line 710 of file EvtParticle.cc.

710{ return EvtVector4R( mass(), 0.0, 0.0, 0.0 ); }

Referenced by EvtKstarstargamma::decay(), EvtSSDCP::decay(), EvtSVSCPLH::decay(), EvtVPHOtoVISR::decay(), and EvtVPHOtoVISRHi::decay().

◆ getParent()

◆ getSpinDensityBackward()

EvtSpinDensity EvtParticle::getSpinDensityBackward ( )
inline

Get backward spin density matrix.

Definition at line 353 of file EvtParticle.hh.

353{ return _rhoBackward; }

Referenced by EvtDecayAmp::makeDecay().

◆ getSpinDensityForward()

EvtSpinDensity EvtParticle::getSpinDensityForward ( )
inline

Get forward spin density matrix.

Definition at line 343 of file EvtParticle.hh.

343{ return _rhoForward; }

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

◆ getSpinStates()

int EvtParticle::getSpinStates ( ) const

Returns number of spin states of the particle.

Definition at line 104 of file EvtParticle.cc.

104 {
106}
static EvtSpinType::spintype getSpinType(EvtId i)
Definition EvtPDL.hh:66
static int getSpinStates(spintype stype)

Referenced by EvtbTosllAmp::CalcMaxProb(), EvtSemiLeptonicAmp::CalcMaxProb(), decay(), EvtDecayIncoherent::makeDecay(), EvtDecayProb::makeDecay(), setDiagonalSpinDensity(), setPolarizedSpinDensity(), and setVectorSpinDensity().

◆ getSpinType()

EvtSpinType::spintype EvtParticle::getSpinType ( ) const

Returns particle type.

Definition at line 102 of file EvtParticle.cc.

102{ return EvtPDL::getSpinType( _id ); }

◆ hasValidP4()

bool EvtParticle::hasValidP4 ( )
inline

Definition at line 379 of file EvtParticle.hh.

379{ return _validP4; }

Referenced by EvtDecayBase::findMaxMass(), EvtParticleDecayList::getDecayModel(), and initDecay().

◆ init()

virtual void EvtParticle::init ( EvtId part_n,
const EvtVector4R & p4 )
pure virtual

Initialiaze particle with id and 4momentum.

Implemented in EvtDiracParticle, EvtHighSpinParticle, EvtNeutrinoParticle, EvtPhotonParticle, EvtRaritaSchwingerParticle, EvtScalarParticle, EvtStringParticle, EvtTensorParticle, and EvtVectorParticle.

Referenced by EvtbTosllAmp::CalcMaxProb(), EvtSemiLeptonicAmp::CalcMaxProb(), EvtBTo3piCP::decay(), EvtBtoKD3P::decay(), EvtBToKpipiCP::decay(), EvtBtoXsEtap::decay(), EvtBtoXsgamma::decay(), EvtBtoXsll::decay(), EvtCBTo3piMPP::decay(), EvtCBTo3piP00::decay(), EvtFromParent::decay(), EvtFromParent_antiLambda::decay(), EvtFromParent_Lambda::decay(), EvtIntervalDecayAmp< T >::decay(), EvtJetSet::decay(), EvtJscont::decay(), EvtLambdac2pKpi::decay(), EvtLunda::decay(), EvtLundCharm::decay(), EvtOpenCharm::decay(), EvtPhokhara::decay(), EvtPhokhara_4pi::decay(), EvtPhokhara_etagam::decay(), EvtPhokhara_etapgam::decay(), EvtPhokhara_K0K0::decay(), EvtPhokhara_KK::decay(), EvtPhokhara_Lambda::decay(), EvtPhokhara_LLB::decay(), EvtPhokhara_nnbar::decay(), EvtPhokhara_pi0gam::decay(), EvtPhokhara_pi0pi0pipi::decay(), EvtPhokhara_pipi::decay(), EvtPhokhara_pipieta::decay(), EvtPhokhara_pipipi0::decay(), EvtPhokhara_ppbar::decay(), EvtPycont::decay(), EvtPyGaGa::decay(), EvtPythia::decay(), EvtSingleParticle2::decay(), EvtSingleParticle::decay(), EvtSinglePoint::decay(), EvtTauola::decay(), EvtTrackGen::decay(), EvtVectorIsr::decay(), EvtVPHOtoVISR::decay(), EvtVPHOtoVISRHi::decay(), EvtVSSBMixCPT::decay(), EvtVub::decay(), EvtVubHybrid::decay(), EvtVubNLO::decay(), initializePhaseSpace(), EvtConExc::SetP4(), and EvtConExc::SetP4Rvalue().

◆ initDecay()

void EvtParticle::initDecay ( bool useMinMass = false)

Definition at line 215 of file EvtParticle.cc.

215 {
216
217 EvtParticle* p = this;
218 // carefull - the parent mass might be fixed in stone..
219 EvtParticle* par = p->getParent();
220 double parMass = -1.;
221 if ( par != 0 )
222 {
223 if ( par->hasValidP4() ) parMass = par->mass();
224 int i;
225 for ( i = 0; i < par->getNDaug(); i++ )
226 {
227 EvtParticle* tDaug = par->getDaug( i );
228 if ( p != tDaug ) parMass -= EvtPDL::getMinMass( tDaug->getId() );
229 }
230 }
231
232 if ( _isInit )
233 {
234 // we have already been here - just reroll the masses!
235 if ( _ndaug > 0 )
236 {
237 int ii;
238 for ( ii = 0; ii < _ndaug; ii++ )
239 {
240 if ( _ndaug == 1 || EvtPDL::getWidth( p->getDaug( ii )->getId() ) > 0.0000001 )
241 p->getDaug( ii )->initDecay( useMinMass );
242 else p->getDaug( ii )->setMass( EvtPDL::getMeanMass( p->getDaug( ii )->getId() ) );
243 }
244 }
245
246 int j;
247 EvtId* dauId = 0;
248 double* dauMasses = 0;
249 if ( _ndaug > 0 )
250 {
251 dauId = new EvtId[_ndaug];
252 dauMasses = new double[_ndaug];
253 for ( j = 0; j < _ndaug; j++ )
254 {
255 dauId[j] = p->getDaug( j )->getId();
256 dauMasses[j] = p->getDaug( j )->mass();
257 }
258 }
259 EvtId* parId = 0;
260 EvtId* othDauId = 0;
261 EvtParticle* tempPar = p->getParent();
262 if ( tempPar )
263 {
264 parId = new EvtId( tempPar->getId() );
265 if ( tempPar->getNDaug() == 2 )
266 {
267 if ( tempPar->getDaug( 0 ) == this )
268 othDauId = new EvtId( tempPar->getDaug( 1 )->getId() );
269 else othDauId = new EvtId( tempPar->getDaug( 0 )->getId() );
270 }
271 }
272 if ( p->getParent() && _validP4 == false )
273 {
274 if ( !useMinMass )
275 p->setMass( EvtPDL::getRandMass( p->getId(), parId, _ndaug, dauId, othDauId, parMass,
276 dauMasses ) );
277 else p->setMass( EvtPDL::getMinMass( p->getId() ) );
278 }
279 if ( parId ) delete parId;
280 if ( othDauId ) delete othDauId;
281 if ( dauId ) delete[] dauId;
282 if ( dauMasses ) delete[] dauMasses;
283 return;
284 }
285
286 // Will include effects of mixing here
287 // added by Lange Jan4,2000
288 static EvtId BS0 = EvtPDL::getId( "B_s0" );
289 static EvtId BSB = EvtPDL::getId( "anti-B_s0" );
290 static EvtId BD0 = EvtPDL::getId( "B0" );
291 static EvtId BDB = EvtPDL::getId( "anti-B0" );
292
293 // only makes sense if there is no parent particle
294 if ( ( getNDaug() == 0 && getParent() == 0 ) &&
295 ( getId() == BS0 || getId() == BSB || getId() == BD0 || getId() == BDB ) )
296 {
297 double t;
298 int mix;
300 setLifetime( t );
301
302 if ( mix )
303 {
304
305 EvtScalarParticle* scalar_part;
306
307 scalar_part = new EvtScalarParticle;
308 if ( getId() == BS0 )
309 {
310 EvtVector4R p_init( EvtPDL::getMass( BSB ), 0.0, 0.0, 0.0 );
311 scalar_part->init( BSB, p_init );
312 }
313 else if ( getId() == BSB )
314 {
315 EvtVector4R p_init( EvtPDL::getMass( BS0 ), 0.0, 0.0, 0.0 );
316 scalar_part->init( BS0, p_init );
317 }
318 else if ( getId() == BD0 )
319 {
320 EvtVector4R p_init( EvtPDL::getMass( BDB ), 0.0, 0.0, 0.0 );
321 scalar_part->init( BDB, p_init );
322 }
323 else if ( getId() == BDB )
324 {
325 EvtVector4R p_init( EvtPDL::getMass( BD0 ), 0.0, 0.0, 0.0 );
326 scalar_part->init( BD0, p_init );
327 }
328
329 scalar_part->setLifetime( 0 );
330
331 scalar_part->setDiagonalSpinDensity();
332
333 insertDaugPtr( 0, scalar_part );
334
335 _ndaug = 1;
336 _isInit = true;
337 p = scalar_part;
338 p->initDecay( useMinMass );
339 return;
340 }
341 }
342 if ( _ndaug == 1 ) std::cout << "hi " << EvtPDL::name( this->getId() ) << std::endl;
343
344 EvtDecayBase* decayer;
345 decayer = EvtDecayTable::getDecayFunc( p );
346
347 if ( decayer )
348 {
349 p->makeDaughters( decayer->nRealDaughters(), decayer->getDaugs() );
350 // report(INFO,"EvtGen") << "has found decay " << decayer->nRealDaughters() << endl;
351 // then loop over the daughters and init their decay
352 int i;
353 for ( i = 0; i < p->getNDaug(); i++ )
354 {
355 if ( EvtPDL::getWidth( p->getDaug( i )->getId() ) > 0.0000001 )
356 p->getDaug( i )->initDecay( useMinMass );
357 else p->getDaug( i )->setMass( EvtPDL::getMeanMass( p->getDaug( i )->getId() ) );
358 // report(INFO,"EvtGen") << "has inited " << EvtPDL::name(p->getDaug(i)->getId()) <<
359 // " " << EvtPDL::name(p->getId()) << endl;
360 }
361 }
362 // figure masses in separate step...
363 // if ( p->getParent() && _validP4==false ) EvtDecayBase::findMass(p);
364
365 int j;
366 EvtId* dauId = 0;
367 double* dauMasses = 0;
368 int nDaugT = p->getNDaug();
369 if ( nDaugT > 0 )
370 {
371 dauId = new EvtId[nDaugT];
372 dauMasses = new double[nDaugT];
373 for ( j = 0; j < nDaugT; j++ )
374 {
375 dauId[j] = p->getDaug( j )->getId();
376 dauMasses[j] = p->getDaug( j )->mass();
377 }
378 }
379
380 EvtId* parId = 0;
381 EvtId* othDauId = 0;
382 EvtParticle* tempPar = p->getParent();
383 if ( tempPar )
384 {
385 parId = new EvtId( tempPar->getId() );
386 if ( tempPar->getNDaug() == 2 )
387 {
388 if ( tempPar->getDaug( 0 ) == this )
389 othDauId = new EvtId( tempPar->getDaug( 1 )->getId() );
390 else othDauId = new EvtId( tempPar->getDaug( 0 )->getId() );
391 }
392 }
393 if ( p->getParent() && p->hasValidP4() == false )
394 {
395 if ( !useMinMass )
396 p->setMass( EvtPDL::getRandMass( p->getId(), parId, p->getNDaug(), dauId, othDauId,
397 parMass, dauMasses ) );
398 else p->setMass( EvtPDL::getMinMass( p->getId() ) );
399 }
400 if ( parId ) delete parId;
401 if ( othDauId ) delete othDauId;
402 if ( dauId ) delete[] dauId;
403 if ( dauMasses ) delete[] dauMasses;
404 _isInit = true;
405}
static void incoherentMix(const EvtId id, double &t, int &mix)
Definition EvtCPUtil.cc:289
virtual int nRealDaughters()
EvtId * getDaugs()
static double getWidth(EvtId i)
Definition EvtPDL.hh:59
static double getRandMass(EvtId i, EvtId *parId, int nDaug, EvtId *dauId, EvtId *othDaugId, double maxMass, double *dauMasses)
Definition EvtPDL.hh:45
static double getMeanMass(EvtId i)
Definition EvtPDL.hh:43
static double getMinMass(EvtId i)
Definition EvtPDL.hh:56
static double getMass(EvtId i)
Definition EvtPDL.hh:44
void setMass(double m)
void makeDaughters(int ndaug, EvtId *id)
void insertDaugPtr(int idaug, EvtParticle *partptr)
bool hasValidP4()
void setLifetime()
void setDiagonalSpinDensity()
void setLifetime(double tau)
void init(EvtId part_n, double e, double px, double py, double pz)
int t()
Definition t.c:1

Referenced by generateMassTree(), and initDecay().

◆ initializePhaseSpace()

double EvtParticle::initializePhaseSpace ( int numdaughter,
EvtId * daughters,
double poleSize = -1.,
int whichTwo1 = 0,
int whichTwo2 = 1 )

Similar to the routine above except that here momentum is generated according to phase space daughters are filled with this momentum.

Definition at line 1042 of file EvtParticle.cc.

1043 {
1044
1045 double m_b;
1046 int i;
1047 // lange
1048 // this->makeDaughters(numdaughter,daughters);
1049
1050 static EvtVector4R p4[100];
1051 static double mass[100];
1052
1053 m_b = this->mass();
1054
1055 // lange - Jan2,2002 - Need to check to see if the daughters of the parent
1056 // have changed. If so, delete them and start over.
1057 // report(INFO,"EvtGen") << "the parent is\n";
1058 // if ( this->getParent() ) {
1059 // if ( this->getParent()->getParent() ) this->getParent()->getParent()->printTree();
1060 // this->getParent()->printTree();
1061 //}
1062 // report(INFO,"EvtGen") << "and this is\n";
1063 // if ( this) this->printTree();
1064 bool resetDaughters = false;
1065 if ( numdaughter != this->getNDaug() && this->getNDaug() > 0 ) resetDaughters = true;
1066 if ( numdaughter == this->getNDaug() )
1067 for ( i = 0; i < numdaughter; i++ )
1068 {
1069 if ( this->getDaug( i )->getId() != daughters[i] ) resetDaughters = true;
1070 // report(INFO,"EvtGen") << this->getDaug(i)->getId() << " " << daughters[i] << endl;
1071 }
1072
1073 if ( resetDaughters )
1074 {
1075 // report(INFO,"EvtGen") << "reseting daughters\n";
1076 // for (i=0; i<numdaughter;i++) {
1077 // report(INFO,"EvtGen") << "reset " <<i<< " "<< EvtPDL::name(this->getDaug(i)->getId())
1078 // << " " << EvtPDL::name(daughters[i]) << endl;
1079 //}
1080 bool t1 = true;
1081 // but keep the decay channel of the parent.
1082 this->deleteDaughters( t1 );
1083 this->makeDaughters( numdaughter, daughters );
1084 this->generateMassTree();
1085 }
1086
1087 double weight = 0.;
1088 // EvtDecayBase::findMasses( this, numdaughter, daughters, mass );
1089 // get the list of masses
1090 // report(INFO,"EvtGen") << "mpar= " << m_b << " " << this <<endl;
1091 for ( i = 0; i < numdaughter; i++ )
1092 {
1093 mass[i] = this->getDaug( i )->mass();
1094 // report(INFO,"EvtGen") << "mass " << i << " " << mass[i] << " " << this->getDaug(i) <<
1095 // endl;
1096 }
1097
1098 if ( poleSize < -0.1 )
1099 {
1100 EvtGenKine::PhaseSpace( numdaughter, mass, p4, m_b );
1101 for ( i = 0; i < numdaughter; i++ ) { this->getDaug( i )->init( daughters[i], p4[i] ); }
1102 }
1103 else
1104 {
1105 if ( numdaughter != 3 )
1106 {
1107 report( ERROR, "EvtGen" ) << "Only can generate pole phase space "
1108 << "distributions for 3 body final states" << endl
1109 << "Will terminate." << endl;
1110 ::abort();
1111 }
1112 bool ok = false;
1113 if ( ( whichTwo1 == 1 && whichTwo2 == 0 ) || ( whichTwo1 == 0 && whichTwo2 == 1 ) )
1114 {
1115 weight = EvtGenKine::PhaseSpacePole( m_b, mass[0], mass[1], mass[2], poleSize, p4 );
1116 // report(INFO,"EvtGen") << "here " << weight << " " << poleSize << endl;
1117 this->getDaug( 0 )->init( daughters[0], p4[0] );
1118 this->getDaug( 1 )->init( daughters[1], p4[1] );
1119 this->getDaug( 2 )->init( daughters[2], p4[2] );
1120 ok = true;
1121 }
1122 if ( ( whichTwo1 == 1 && whichTwo2 == 2 ) || ( whichTwo1 == 2 && whichTwo2 == 1 ) )
1123 {
1124 weight = EvtGenKine::PhaseSpacePole( m_b, mass[2], mass[1], mass[0], poleSize, p4 );
1125 this->getDaug( 0 )->init( daughters[0], p4[2] );
1126 this->getDaug( 1 )->init( daughters[1], p4[1] );
1127 this->getDaug( 2 )->init( daughters[2], p4[0] );
1128 ok = true;
1129 }
1130 if ( ( whichTwo1 == 0 && whichTwo2 == 2 ) || ( whichTwo1 == 2 && whichTwo2 == 0 ) )
1131 {
1132 weight = EvtGenKine::PhaseSpacePole( m_b, mass[1], mass[0], mass[2], poleSize, p4 );
1133 this->getDaug( 0 )->init( daughters[0], p4[1] );
1134 this->getDaug( 1 )->init( daughters[1], p4[0] );
1135 this->getDaug( 2 )->init( daughters[2], p4[2] );
1136 ok = true;
1137 }
1138 if ( !ok )
1139 {
1140 report( ERROR, "EvtGen" ) << "Invalid pair of particle to generate a pole dist"
1141 << whichTwo1 << " " << whichTwo2 << endl
1142 << "Will terminate." << endl;
1143 ::abort();
1144 }
1145 }
1146
1147 return weight;
1148}
*********DOUBLE PRECISION m_pi INTEGER m_lenwt !max no of aux weights INTEGER m_phmax !maximum photon multiplicity ISR FSR *DOUBLE COMPLEX m_Pauli4 DOUBLE COMPLEX m_AmpBorn DOUBLE COMPLEX m_AmpBoxy DOUBLE COMPLEX m_AmpBorn1 DOUBLE COMPLEX m_AmpBorn2 DOUBLE COMPLEX m_AmpExpo2p DOUBLE COMPLEX m_Rmat DOUBLE COMPLEX m_BoxGZut !DOUBLE COMPLEX m_F1finPair2 !DOUBLE PRECISION m_Vcut DOUBLE PRECISION m_Alfinv DOUBLE PRECISION m_Lorin1 DOUBLE PRECISION m_Lorin2 DOUBLE PRECISION m_b
Definition GPS.h:30
*********Class see also m_nmax DOUBLE PRECISION m_MasPhot DOUBLE PRECISION m_phsu DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_r2 DOUBLE PRECISION m_WtMass INTEGER m_nmax INTEGER m_Nevgen INTEGER m_IsFSR INTEGER m_MarTot *COMMON c_KarFin $ !Output file $ !Event serial number $ !alpha QED at Thomson limit $ !minimum energy at CMS for remooval $ !infrared dimensionless $ !dummy photon IR regulator $ !crude photon multiplicity enhancement factor *EVENT $ !MC crude volume of PhhSpace *Sfactors $ !YFS formfactor IR part only $ !YFS formfactor non IR finite part $ !mass weight
Definition KarFin.h:34
static double PhaseSpacePole(double M, double m1, double m2, double m3, double a, EvtVector4R p4[10])
static double PhaseSpace(int ndaug, double mass[30], EvtVector4R p4[30], double mp)
Definition EvtGenKine.cc:47
virtual void init(EvtId part_n, const EvtVector4R &p4)=0

Referenced by EvtPsi3Sdecay::choseDecay(), EvtAngH2::decay(), EvtAngSam3::decay(), EvtAngSam::decay(), EvtAngSamLab::decay(), EvtAngSamX::decay(), EvtAV2GV::decay(), EvtBHadronic::decay(), EvtBody3::decay(), EvtBsquark::decay(), EvtBto2piCPiso::decay(), EvtBTo4piCP::decay(), EvtBtoKD3P::decay(), EvtBtoKpiCPiso::decay(), EvtbTosllAli::decay(), EvtbTosllBall::decay(), EvtCalHelAmp::decay(), EvtChi0BB1::decay(), EvtChi0BB2::decay(), EvtChi1BB1::decay(), EvtChi1BB2::decay(), EvtChi2BB1::decay(), EvtChi2BB2::decay(), EvtConExc::decay(), EvtD0mixDalitz::decay(), EvtD0To2pip2pim::decay(), EvtD0Toa0enu::decay(), EvtD0ToKKpi0::decay(), EvtD0ToKKpipi::decay(), EvtD0toKLpipiPlot::decay(), EvtD0ToKpiEtap::decay(), EvtD0toKpietaPlot::decay(), EvtD0toKpiomegaPlot::decay(), EvtD0ToKpipi0::decay(), EvtD0ToKpipi0pi0::decay(), EvtD0toKpipi0Plot::decay(), EvtD0ToKpipipi::decay(), EvtD0ToKSKK::decay(), EvtD0ToKSKppimpi0::decay(), EvtD0ToKSLKK::decay(), EvtD0ToKSpi0eta::decay(), EvtD0toKSpi0etaPlot::decay(), EvtD0toKSpi0omegaPlot::decay(), EvtD0ToKSpi0pi0::decay(), EvtD0ToKSpi0pi0pi0::decay(), EvtD0ToKSpipi::decay(), EvtD0ToKSpipipi0::decay(), EvtD0ToKSpipipi0pi0::decay(), EvtD0toKSpipiPlot::decay(), EvtD0Topipienu::decay(), EvtD0TopipiEta::decay(), EvtD0topipietaPlot::decay(), EvtD0Topipipi0::decay(), EvtD0Topippim2pi0::decay(), EvtDDalitz::decay(), EvtDeBD::decay(), EvtDIY::decay(), EvtDMix::decay(), EvtDsToEta3pi::decay(), EvtDsToEtapi2pi0::decay(), EvtDsToEtapipi0::decay(), EvtDsToEtappipi0::decay(), EvtDsTof0enu::decay(), EvtDsToKKenu::decay(), EvtDsToKKmunu::decay(), EvtDsToKKpi::decay(), EvtDsToKKpipi0::decay(), EvtDsToKKpipipi::decay(), EvtDsToKpipi::decay(), EvtDsToKpPipPimPi0::decay(), EvtDsToKSKmPipPip::decay(), EvtDsToKSKpi0::decay(), EvtDsToKSKpPipPim::decay(), EvtDsToKSKSpi::decay(), EvtDsToKSpipi0::decay(), EvtDsToomegaenu::decay(), EvtDsTophienu::decay(), EvtDsTopipi0pi0::decay(), EvtDsTopipipipi0pi0::decay(), EvtDsToPipPipPimPi0::decay(), EvtDToa0enu::decay(), EvtDToKKpi::decay(), EvtDToKKpipi0::decay(), EvtDtoKKpiPlot::decay(), EvtDToKmPipPipPi0::decay(), EvtDToKpienu::decay(), EvtDtoKpipiPlot::decay(), EvtDToKppipi::decay(), EvtDToKppipipi0::decay(), EvtDToKSKmpippip::decay(), EvtDToKSKpi0::decay(), EvtDToKSKSK::decay(), EvtDToKSKSpi::decay(), EvtDToKSpieta::decay(), EvtDtoKSpietaPlot::decay(), EvtDtoKSpiomegaPlot::decay(), EvtDToKSpipi0pi0::decay(), EvtDToKSpipipi::decay(), EvtDTopi0pi0enu::decay(), EvtDTopiEtaEta::decay(), EvtDtopietaetaPlot::decay(), EvtDTopipi0Eta::decay(), EvtDToPiPi0Etap::decay(), EvtDtopipi0etaPlot::decay(), EvtDTopipi0pi0::decay(), EvtDtopipi0pi0Plot::decay(), EvtDTopipienu::decay(), EvtDtopipipiPlot::decay(), EvtEDM::decay(), EvtEtaDalitz::decay(), EvtEtap2gpipi::decay(), EvtEtap2pipieta::decay(), EvtFDC::decay(), EvtFlatQ2::decay(), EvtHAngSam3::decay(), EvtHelAmp::decay(), EvtHelPPJ::decay(), EvtHQET2::decay(), EvtHQET::decay(), EvtHypNonLepton::decay(), EvtHypWK::decay(), EvtISGW2::decay(), EvtISGW::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(), EvtPhspStepf::decay(), EvtPi0Dalitz::decay(), EvtRexc::decay(), EvtRhoPi::decay(), EvtS2GV::decay(), EvtSLBKPole::decay(), EvtSll::decay(), EvtSLN::decay(), EvtSLPole::decay(), EvtSPL::decay(), EvtSSDCP::decay(), EvtSSSCP::decay(), EvtSSSCPpng::decay(), EvtSSSCPT::decay(), EvtSTS::decay(), EvtSTSCP::decay(), EvtSVPCP::decay(), EvtSVPHelAmp::decay(), EvtSVS::decay(), EvtSVSCP::decay(), EvtSVSCPiso::decay(), EvtSVSCPLH::decay(), EvtSVSNONCPEIGEN::decay(), EvtSVVNONCPEIGEN::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(), EvtLunda::ExclusiveDecay(), EvtPsi3Sdecay::PHSPDecay(), and EvtSVVHelAmp::SVVHel().

◆ insertDaugPtr()

void EvtParticle::insertDaugPtr ( int idaug,
EvtParticle * partptr )
inline

Makes partptr the idaug:th daugther.

Definition at line 213 of file EvtParticle.hh.

213 {
214 _daug[idaug] = partptr;
215 partptr->_parent = this;
216 }

Referenced by initDecay(), and EvtCPUtil::OtherB().

◆ isDecayed()

bool EvtParticle::isDecayed ( )
inline

Definition at line 380 of file EvtParticle.hh.

380{ return _isDecayed; }

◆ isInitialized()

bool EvtParticle::isInitialized ( )
inline

Definition at line 378 of file EvtParticle.hh.

378{ return _isInit; }

Referenced by EvtDecayBase::findMaxMass().

◆ makeDaughters()

void EvtParticle::makeDaughters ( int ndaug,
EvtId * id )

Creates the daughters in the list of ids and adds them to the parent. Note that momentum is left uninitialized, this is only creation.

Definition at line 1150 of file EvtParticle.cc.

1150 {
1151
1152 int i;
1153 if ( _channel < 0 )
1154 {
1155 // report(INFO,"EvtGen") << "setting channel " << EvtPDL::name(this->getId()) << endl;
1156 setChannel( 0 );
1157 }
1158 EvtParticle* pdaug;
1159 if ( _ndaug != 0 )
1160 {
1161 if ( _ndaug != ndaugstore )
1162 {
1163 report( ERROR, "EvtGen" ) << "Asking to make a different number of "
1164 << "daughters than what was previously created." << endl
1165 << "Will terminate." << endl;
1166 ::abort();
1167 }
1168 }
1169 else
1170 {
1171 for ( i = 0; i < ndaugstore; i++ )
1172 {
1174 pdaug->setId( id[i] );
1175 pdaug->addDaug( this );
1176 }
1177
1178 } // else
1179} // makeDaughters
static EvtParticle * particleFactory(EvtSpinType::spintype spinType)
void setChannel(int i)
void addDaug(EvtParticle *node)
void setId(EvtId id)

Referenced by EvtbTosllAmp::CalcMaxProb(), EvtSemiLeptonicAmp::CalcMaxProb(), EvtPsi3Sdecay::choseDecay(), EvtBTo3piCP::decay(), EvtBToKpipiCP::decay(), EvtBtoXsEtap::decay(), EvtBtoXsgamma::decay(), EvtBtoXsll::decay(), EvtCBTo3piMPP::decay(), EvtCBTo3piP00::decay(), EvtConExc::decay(), EvtFromParent::decay(), EvtFromParent_antiLambda::decay(), EvtFromParent_Lambda::decay(), EvtJetSet::decay(), EvtJscont::decay(), EvtLunda::decay(), EvtLundCharm::decay(), EvtOpenCharm::decay(), EvtPhokhara::decay(), EvtPhokhara_4pi::decay(), EvtPhokhara_etagam::decay(), EvtPhokhara_etapgam::decay(), EvtPhokhara_K0K0::decay(), EvtPhokhara_KK::decay(), EvtPhokhara_Lambda::decay(), EvtPhokhara_LLB::decay(), EvtPhokhara_nnbar::decay(), EvtPhokhara_pi0gam::decay(), EvtPhokhara_pi0pi0pipi::decay(), EvtPhokhara_pipi::decay(), EvtPhokhara_pipieta::decay(), EvtPhokhara_pipipi0::decay(), EvtPhokhara_ppbar::decay(), EvtPycont::decay(), EvtPyGaGa::decay(), EvtPythia::decay(), EvtRexc::decay(), EvtSingleParticle2::decay(), EvtSingleParticle::decay(), EvtSinglePoint::decay(), EvtTauola::decay(), EvtLunda::ExclusiveDecay(), initDecay(), initializePhaseSpace(), and EvtPsi3Sdecay::PHSPDecay().

◆ makeStdHep() [1/2]

void EvtParticle::makeStdHep ( EvtStdHep & stdhep)

Definition at line 797 of file EvtParticle.cc.

797 {
798
799 // first add particle to the stdhep list;
800 stdhep.createParticle( getP4Lab(), get4Pos(), -1, -1, EvtPDL::getStdHep( getId() ) );
801
802 int i;
803 for ( i = 0; i < _ndaug; i++ )
804 {
805 stdhep.createParticle( _daug[i]->getP4Lab(), _daug[i]->get4Pos(), 0, 0,
806 EvtPDL::getStdHep( _daug[i]->getId() ) );
807 }
808
809 for ( i = 0; i < _ndaug; i++ ) { _daug[i]->makeStdHepRec( 1 + i, 1 + i, stdhep ); }
810 return;
811}
EvtVector4R getP4Lab()
EvtVector4R get4Pos()
void createParticle(EvtVector4R p4, EvtVector4R x, int prntfirst, int prntlast, int id)
Definition EvtStdHep.cc:37

◆ makeStdHep() [2/2]

void EvtParticle::makeStdHep ( EvtStdHep & stdhep,
EvtSecondary & secondary,
EvtId * stable_parent_ihep )

Makes stdhep list

Definition at line 764 of file EvtParticle.cc.

765 {
766
767 // first add particle to the stdhep list;
768 stdhep.createParticle( getP4Lab(), get4Pos(), -1, -1, EvtPDL::getStdHep( getId() ) );
769
770 int ii = 0;
771
772 // lets see if this is a longlived particle and terminate the
773 // list building!
774
775 while ( list_of_stable[ii] != EvtId( -1, -1 ) )
776 {
777 if ( getId() == list_of_stable[ii] )
778 {
779 secondary.createSecondary( 0, this );
780 return;
781 }
782 ii++;
783 }
784
785 int i;
786 for ( i = 0; i < _ndaug; i++ )
787 {
788 stdhep.createParticle( _daug[i]->getP4Lab(), _daug[i]->get4Pos(), 0, 0,
789 EvtPDL::getStdHep( _daug[i]->getId() ) );
790 }
791
792 for ( i = 0; i < _ndaug; i++ )
793 { _daug[i]->makeStdHepRec( 1 + i, 1 + i, stdhep, secondary, list_of_stable ); }
794 return;
795}
void createSecondary(int stdhepindex, EvtParticle *prnt)

Referenced by EvtGen::generateDecay(), and EvtGen::generateEvent().

◆ mass()

double EvtParticle::mass ( ) const

Returns mass of particle.

Definition at line 114 of file EvtParticle.cc.

114{ return _p.mass(); }

Referenced by EvtbTosllScalarAmp::CalcAmp(), EvtbTosllVectorAmp::CalcAmp(), EvtSemiLeptonicBaryonAmp::CalcAmp(), EvtSemiLeptonicTensorAmp::CalcAmp(), EvtSemiLeptonicVectorAmp::CalcAmp(), EvtbTosllAmp::CalcMaxProb(), EvtSemiLeptonicAmp::CalcMaxProb(), EvtConExc::checkdecay(), EvtPsi3Sdecay::choseDecay(), compMassProb(), EvtBHadronic::decay(), EvtBsquark::decay(), EvtBtoXsEtap::decay(), EvtBtoXsgamma::decay(), EvtBtoXsll::decay(), EvtConExc::decay(), EvtDDalitz::decay(), EvtEDM::decay(), EvtEtaDalitz::decay(), EvtFromParent::decay(), EvtFromParent_antiLambda::decay(), EvtFromParent_Lambda::decay(), EvtHypWK::decay(), EvtJetSet::decay(), EvtJpipi::decay(), EvtJscont::decay(), EvtKstarnunu::decay(), EvtLunda::decay(), EvtLundCharm::decay(), EvtOmegaDalitz::decay(), EvtOpenCharm::decay(), EvtPhokhara::decay(), EvtPhokhara_4pi::decay(), EvtPhokhara_etagam::decay(), EvtPhokhara_etapgam::decay(), EvtPhokhara_K0K0::decay(), EvtPhokhara_KK::decay(), EvtPhokhara_Lambda::decay(), EvtPhokhara_LLB::decay(), EvtPhokhara_nnbar::decay(), EvtPhokhara_pi0gam::decay(), EvtPhokhara_pi0pi0pipi::decay(), EvtPhokhara_pipi::decay(), EvtPhokhara_pipieta::decay(), EvtPhokhara_pipipi0::decay(), EvtPhokhara_ppbar::decay(), EvtPycont::decay(), EvtPyGaGa::decay(), EvtPythia::decay(), EvtRexc::decay(), EvtSll::decay(), EvtSLN::decay(), EvtSSDCP::decay(), EvtSTS::decay(), EvtSTSCP::decay(), EvtSVS::decay(), EvtSVSCPLH::decay(), EvtSVSNONCPEIGEN::decay(), EvtTauola::decay(), EvtTVSPwave::decay(), EvtVectorIsr::decay(), EvtVll::decay(), EvtVPHOtoVISR::decay(), EvtVPHOtoVISRHi::decay(), EvtVSPPwave::decay(), EvtVub::decay(), EvtVubHybrid::decay(), EvtVubNLO::decay(), EvtVVpipi::decay(), EvtVVPIPI_WEIGHTED::decay(), EvtPHOTOS::doRadCorr(), EvtLunda::ExclusiveDecay(), EvtDecayBase::findMass(), EvtDecayBase::findMasses(), EvtDecayBase::findMaxMass(), generateMassTree(), get4Pos(), EvtParticleDecayList::getDecayModel(), getP4Restframe(), EvtDiracParticle::init(), EvtRaritaSchwingerParticle::init(), EvtPhokhara::init_evt(), EvtPhokhara::init_mode(), initDecay(), initializePhaseSpace(), EvtDecayAmp::makeDecay(), EvtDecayProb::makeDecay(), EvtPsi3Sdecay::PHSPDecay(), EvtDiracParticle::rotateToHelicityBasis(), EvtDiracParticle::rotateToHelicityBasis(), EvtRaritaSchwingerParticle::rotateToHelicityBasis(), and EvtRaritaSchwingerParticle::rotateToHelicityBasis().

◆ nextIter()

EvtParticle * EvtParticle::nextIter ( EvtParticle * rootOfTree = 0)

Iterates over the particles in a decay chain.

Definition at line 735 of file EvtParticle.cc.

735 {
736
737 EvtParticle* bpart;
738 EvtParticle* current;
739
740 current = this;
741 int i;
742
743 if ( _ndaug != 0 ) return _daug[0];
744
745 do {
746 bpart = current->_parent;
747 if ( bpart == 0 ) return 0;
748 i = 0;
749 while ( bpart->_daug[i] != current ) { i++; }
750
751 if ( bpart == rootOfTree )
752 {
753 if ( i == bpart->_ndaug - 1 ) return 0;
754 }
755
756 i++;
757 current = bpart;
758
759 } while ( i >= bpart->_ndaug );
760
761 return bpart->_daug[i];
762}

◆ noLifeTime()

void EvtParticle::noLifeTime ( )
inline

Definition at line 358 of file EvtParticle.hh.

358{ _genlifetime = 0; }

Referenced by EvtbTosllAmp::CalcMaxProb(), and EvtSemiLeptonicAmp::CalcMaxProb().

◆ printParticle()

void EvtParticle::printParticle ( ) const

Prints information for the particle.

Definition at line 983 of file EvtParticle.cc.

983 {
984
985 switch ( EvtPDL::getSpinType( _id ) )
986 {
988 report( INFO, "EvtGen" ) << "This is a scalar particle:" << EvtPDL::name( _id ).c_str()
989 << "\n";
990 break;
992 report( INFO, "EvtGen" ) << "This is a vector particle:" << EvtPDL::name( _id ).c_str()
993 << "\n";
994 break;
996 report( INFO, "EvtGen" ) << "This is a tensor particle:" << EvtPDL::name( _id ).c_str()
997 << "\n";
998 break;
1000 report( INFO, "EvtGen" ) << "This is a dirac particle:" << EvtPDL::name( _id ).c_str()
1001 << "\n";
1002 break;
1004 report( INFO, "EvtGen" ) << "This is a photon:" << EvtPDL::name( _id ).c_str() << "\n";
1005 break;
1007 report( INFO, "EvtGen" ) << "This is a neutrino:" << EvtPDL::name( _id ).c_str() << "\n";
1008 break;
1010 report( INFO, "EvtGen" ) << "This is a raritaschwinger:" << EvtPDL::name( _id ).c_str()
1011 << "\n";
1012 break;
1014 report( INFO, "EvtGen" ) << "This is a string:" << EvtPDL::name( _id ).c_str() << "\n";
1015 break;
1016 default:
1017 report( INFO, "EvtGen" ) << "Unknown particle type in EvtParticle::printParticle()"
1018 << endl;
1019 break;
1020 }
1021 report( INFO, "EvtGen" ) << "Number of daughters:" << _ndaug << "\n";
1022}

Referenced by eps(), epsParent(), epsParentPhoton(), epsPhoton(), epsTensor(), epsTensorParent(), sp(), spNeutrino(), spParent(), and spParentNeutrino().

◆ printTree()

void EvtParticle::printTree ( ) const

Prints out the particle "tree" of a given particle. The tree consists of all daughters (and their daughters, etc) and their properties.

Definition at line 883 of file EvtParticle.cc.

883 {
884
885 report( INFO, "EvtGen" ) << "This is the current decay chain" << endl;
886 report( INFO, "" ) << "This top particle is " << EvtPDL::name( _id ).c_str() << endl;
887
888 this->printTreeRec( 0 );
889 report( INFO, "EvtGen" ) << "End of decay chain." << endl;
890}
void printTreeRec(int level) const

Referenced by EvtConExc::decay(), EvtDecayBase::findMass(), and generateMassTree().

◆ printTreeRec()

void EvtParticle::printTreeRec ( int level) const

Definition at line 862 of file EvtParticle.cc.

862 {
863
864 int newlevel, i;
865 newlevel = level + 1;
866
867 if ( _ndaug != 0 )
868 {
869 if ( level > 0 )
870 {
871 for ( i = 0; i < ( 5 * level ); i++ ) { report( INFO, "" ) << " "; }
872 }
873 report( INFO, "" ) << EvtPDL::name( _id ).c_str();
874 report( INFO, "" ) << " -> ";
875 for ( i = 0; i < _ndaug; i++ )
876 { report( INFO, "" ) << EvtPDL::name( _daug[i]->getId() ).c_str() << " "; }
877 for ( i = 0; i < _ndaug; i++ ) { report( INFO, "" ) << _daug[i]->mass() << " "; }
878 report( INFO, "" ) << endl;
879 for ( i = 0; i < _ndaug; i++ ) { _daug[i]->printTreeRec( newlevel ); }
880 }
881}

Referenced by printTree().

◆ resetFirstOrNot()

void EvtParticle::resetFirstOrNot ( )

Definition at line 76 of file EvtParticle.cc.

76{ _first = 1; }

Referenced by EvtGen::generateDecay().

◆ resetNDaug()

void EvtParticle::resetNDaug ( )
inline

Definition at line 264 of file EvtParticle.hh.

264 {
265 _ndaug = 0;
266 return;
267 }

Referenced by EvtOpenCharm::decay(), and EvtGen::generateDecay().

◆ rotateToHelicityBasis() [1/2]

virtual EvtSpinDensity EvtParticle::rotateToHelicityBasis ( ) const
pure virtual

Returns a rotation matrix need to rotate the basis state to the helicity basis. The EvtSpinDensity matrix is just use as a matrix here. This function is to be implemented in each derived class.

Implemented in EvtDiracParticle, EvtHighSpinParticle, EvtNeutrinoParticle, EvtPhotonParticle, EvtRaritaSchwingerParticle, EvtScalarParticle, EvtStringParticle, EvtTensorParticle, and EvtVectorParticle.

Referenced by EvtMultibody::decay(), setSpinDensityForwardHelicityBasis(), and setSpinDensityForwardHelicityBasis().

◆ rotateToHelicityBasis() [2/2]

virtual EvtSpinDensity EvtParticle::rotateToHelicityBasis ( double alpha,
double beta,
double gamma ) const
pure virtual

◆ setChannel()

void EvtParticle::setChannel ( int i)

Should only be used internally.

Definition at line 78 of file EvtParticle.cc.

78{ _channel = i; }

Referenced by EvtParticleDecayList::getDecayModel(), and makeDaughters().

◆ setDecayProb()

void EvtParticle::setDecayProb ( double p)

Definition at line 1181 of file EvtParticle.cc.

1181 {
1182
1183 if ( _decayProb == 0 ) _decayProb = new double;
1184 *_decayProb = prob;
1185}

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

◆ setDiagonalSpinDensity()

void EvtParticle::setDiagonalSpinDensity ( )

Set diagonal spindensity matrix.

Definition at line 116 of file EvtParticle.cc.

116{ _rhoForward.SetDiag( getSpinStates() ); }

Referenced by EvtbTosllAmp::CalcMaxProb(), EvtSemiLeptonicAmp::CalcMaxProb(), EvtJetSet::decay(), EvtLunda::decay(), EvtLundCharm::decay(), EvtPythia::decay(), EvtTauola::decay(), and initDecay().

◆ setFirstOrNot()

void EvtParticle::setFirstOrNot ( )

Definition at line 75 of file EvtParticle.cc.

75{ _first = 0; }

Referenced by EvtDecayBase::findMasses().

◆ setGeneratorFlag()

void EvtParticle::setGeneratorFlag ( int flag)
inline

set generator information; pingrg-2011-1-6

Definition at line 135 of file EvtParticle.hh.

135{ _generatorFlag = flag; }

Referenced by EvtLundCharm::decay(), and EvtOpenCharm::decay().

◆ setId()

void EvtParticle::setId ( EvtId id)
inline

Definition at line 361 of file EvtParticle.hh.

361{ _id = id; }

Referenced by makeDaughters().

◆ setInclusiveMode()

void EvtParticle::setInclusiveMode ( int im)
inline

Definition at line 388 of file EvtParticle.hh.

388{ _inclusiveMode = im; }

◆ setIntFlag()

void EvtParticle::setIntFlag ( std::vector< int > vi)
inline

set int flag for ConExc: pingrg-2015-2-7

Definition at line 150 of file EvtParticle.hh.

150{ _intFlag = vi; }

Referenced by EvtConExc::decay().

◆ setLifetime() [1/2]

void EvtParticle::setLifetime ( )

◆ setLifetime() [2/2]

void EvtParticle::setLifetime ( double tau)

Set lifetime of the particle in parents restframe.

Definition at line 84 of file EvtParticle.cc.

84{ _t = tau; }

Referenced by EvtD0mixDalitz::decay(), EvtDMix::decay(), EvtVSSBMixCPT::decay(), EvtVSSMix::decay(), EvtVub::decay(), EvtVubHybrid::decay(), initDecay(), EvtCPUtil::OtherB(), and EvtCPUtil::OtherB().

◆ setMass()

void EvtParticle::setMass ( double m)
inline

◆ setp() [1/2]

void EvtParticle::setp ( const EvtVector4R & p4)
inlineprotected

Definition at line 393 of file EvtParticle.hh.

393{ _p = p4; }

◆ setp() [2/2]

◆ setP4()

void EvtParticle::setP4 ( const EvtVector4R & p4)
inline

Sets the 4momentum in the parents restframe.

Definition at line 253 of file EvtParticle.hh.

253{ _p = p4; }

Referenced by EvtPHOTOS::doRadCorr().

◆ setpart_num()

void EvtParticle::setpart_num ( EvtId particle_number)
inlineprotected

Definition at line 394 of file EvtParticle.hh.

394 {
395 assert( _channel == -10 || _id.getId() == particle_number.getId() || _id.getId() == -1 );
396 _id = particle_number;
397 }
int getId() const
Definition EvtId.hh:40

Referenced by EvtDiracParticle::init(), EvtHighSpinParticle::init(), EvtNeutrinoParticle::init(), EvtPhotonParticle::init(), EvtRaritaSchwingerParticle::init(), EvtScalarParticle::init(), EvtScalarParticle::init(), EvtStringParticle::init(), EvtTensorParticle::init(), EvtVectorParticle::init(), and EvtVectorParticle::init().

◆ setPolarizedSpinDensity()

void EvtParticle::setPolarizedSpinDensity ( double r00,
double r11,
double r22 )

Definition at line 136 of file EvtParticle.cc.

136 {
137
138 if ( getSpinStates() != 3 )
139 {
140 report( ERROR, "EvtGen" ) << "Error in EvtParticle::setVectorSpinDensity" << endl;
141 report( ERROR, "EvtGen" ) << "spin_states:" << getSpinStates() << endl;
142 report( ERROR, "EvtGen" ) << "particle:" << EvtPDL::name( _id ).c_str() << endl;
143 ::abort();
144 }
145
146 EvtSpinDensity rho;
147
148 // Set helicity +1 and -1 to 1.
149 rho.SetDiag( getSpinStates() );
150 rho.Set( 0, 0, EvtComplex( r00, 0. ) );
151 rho.Set( 1, 1, EvtComplex( r11, 0. ) );
152 rho.Set( 2, 2, EvtComplex( r22, 0. ) );
154}
void setSpinDensityForwardHelicityBasis(const EvtSpinDensity &rho)
void Set(int i, int j, const EvtComplex &rhoij)

◆ setSpinDensityBackward()

void EvtParticle::setSpinDensityBackward ( const EvtSpinDensity & rho)
inline

Set backward spin density matrix.

Definition at line 348 of file EvtParticle.hh.

348{ _rhoBackward = rho; }

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

◆ setSpinDensityForward()

void EvtParticle::setSpinDensityForward ( const EvtSpinDensity & rho)
inline

Set forward spin density matrix.

Definition at line 320 of file EvtParticle.hh.

320{ _rhoForward = rho; }

Referenced by EvtVectorIsr::decay(), EvtDecayAmp::makeDecay(), EvtDecayIncoherent::makeDecay(), EvtDecayProb::makeDecay(), and EvtParticleFactory::particleFactory().

◆ setSpinDensityForwardHelicityBasis() [1/2]

void EvtParticle::setSpinDensityForwardHelicityBasis ( const EvtSpinDensity & rho)

Set forward spin density matrix according to the density matrix rho in the helicity amplitude basis.

Definition at line 156 of file EvtParticle.cc.

156 {
157
158 EvtSpinDensity R = rotateToHelicityBasis();
159
160 assert( R.GetDim() == rho.GetDim() );
161
162 int n = rho.GetDim();
163
164 _rhoForward.SetDim( n );
165
166 int i, j, k, l;
167
168 for ( i = 0; i < n; i++ )
169 {
170 for ( j = 0; j < n; j++ )
171 {
172 EvtComplex tmp = 0.0;
173 for ( k = 0; k < n; k++ )
174 {
175 for ( l = 0; l < n; l++ )
176 { tmp += R.Get( l, i ) * rho.Get( l, k ) * conj( R.Get( k, j ) ); }
177 }
178 _rhoForward.Set( i, j, tmp );
179 }
180 }
181
182 // report(INFO,"EvtGen") << "_rhoForward:"<<_rhoForward<<endl;
183}
const Int_t n
Evt3Rank3C conj(const Evt3Rank3C &t2)
virtual EvtSpinDensity rotateToHelicityBasis() const =0
int GetDim() const
const EvtComplex & Get(int i, int j) const
complex_t R(double Q2, double M2, double G, double Mp2, double Mm2)
Definition TUtil.h:22

Referenced by setPolarizedSpinDensity(), and setVectorSpinDensity().

◆ setSpinDensityForwardHelicityBasis() [2/2]

void EvtParticle::setSpinDensityForwardHelicityBasis ( const EvtSpinDensity & rho,
double alpha,
double beta,
double gamma )

Definition at line 185 of file EvtParticle.cc.

186 {
187
188 EvtSpinDensity R = rotateToHelicityBasis( alpha, beta, gamma );
189
190 assert( R.GetDim() == rho.GetDim() );
191
192 int n = rho.GetDim();
193
194 _rhoForward.SetDim( n );
195
196 int i, j, k, l;
197
198 for ( i = 0; i < n; i++ )
199 {
200 for ( j = 0; j < n; j++ )
201 {
202 EvtComplex tmp = 0.0;
203 for ( k = 0; k < n; k++ )
204 {
205 for ( l = 0; l < n; l++ )
206 { tmp += R.Get( l, i ) * rho.Get( l, k ) * conj( R.Get( k, j ) ); }
207 }
208 _rhoForward.Set( i, j, tmp );
209 }
210 }
211
212 // report(INFO,"EvtGen") << "_rhoForward:"<<_rhoForward<<endl;
213}
double alpha

◆ setVectorSpinDensity()

void EvtParticle::setVectorSpinDensity ( )

Set spindensity matrix for e+e- -> V

Definition at line 118 of file EvtParticle.cc.

118 {
119
120 if ( getSpinStates() != 3 )
121 {
122 report( ERROR, "EvtGen" ) << "Error in EvtParticle::setVectorSpinDensity" << endl;
123 report( ERROR, "EvtGen" ) << "spin_states:" << getSpinStates() << endl;
124 report( ERROR, "EvtGen" ) << "particle:" << EvtPDL::name( _id ).c_str() << endl;
125 ::abort();
126 }
127
128 EvtSpinDensity rho;
129
130 // Set helicity +1 and -1 to 1.
131 rho.SetDiag( getSpinStates() );
132 rho.Set( 1, 1, EvtComplex( 0.0, 0.0 ) );
134}

Referenced by EvtGen::generateEvent().

◆ sp()

EvtDiracSpinor EvtParticle::sp ( int i) const
virtual

Returns Dirac spinor in the particles own restframe for a Dirac particle.

Reimplemented in EvtDiracParticle.

Definition at line 636 of file EvtParticle.cc.

636 {
637 EvtDiracSpinor tempD;
638 int temp;
639 temp = i;
641 report( ERROR, "EvtGen" ) << "and you have asked for the:" << i << "th dirac spinor."
642 << " I.e. you thought it was a"
643 << " Dirac particle!" << endl;
644 ::abort();
645 return tempD;
646}

Referenced by EvtSemiLeptonicBaryonAmp::CalcAmp(), EvtHypNonLepton::calcAmp(), EvtTauHadnu::decay(), EvtTaulnunu::decay(), EvtTauScalarnu::decay(), and EvtTauVectornu::decay().

◆ spNeutrino()

EvtDiracSpinor EvtParticle::spNeutrino ( ) const
virtual

Returns Dirac spinor in the particles own restframe for a Neutrino particle.

Reimplemented in EvtNeutrinoParticle.

Definition at line 659 of file EvtParticle.cc.

659 {
660 EvtDiracSpinor tempD;
662 report( ERROR, "EvtGen" ) << "and you have asked for the "
663 << "dirac spinor."
664 << " I.e. you thought it was a"
665 << " neutrino particle!" << endl;
666 ::abort();
667 return tempD;
668}

◆ spParent()

EvtDiracSpinor EvtParticle::spParent ( int i) const
virtual

Returns Dirac spinor in the parents restframe for a Dirac particle.

Reimplemented in EvtDiracParticle.

Definition at line 624 of file EvtParticle.cc.

624 {
625 EvtDiracSpinor tempD;
626 int temp;
627 temp = i;
629 report( ERROR, "EvtGen" ) << "and you have asked for the:" << i << "th dirac spinor."
630 << " I.e. you thought it was a"
631 << " Dirac particle!" << endl;
632 ::abort();
633 return tempD;
634}

Referenced by EvtbTosllScalarAmp::CalcAmp(), EvtbTosllVectorAmp::CalcAmp(), EvtSemiLeptonicBaryonAmp::CalcAmp(), EvtSemiLeptonicTensorAmp::CalcAmp(), EvtSemiLeptonicVectorAmp::CalcAmp(), EvtHypNonLepton::calcAmp(), EvtBsquark::decay(), EvtEDM::decay(), EvtLNuGamma::decay(), EvtSll::decay(), EvtSLN::decay(), EvtTaulnunu::decay(), and EvtVll::decay().

◆ spParentNeutrino()

EvtDiracSpinor EvtParticle::spParentNeutrino ( ) const
virtual

Returns Dirac spinor in the parents restframe for a Neutrino particle.

Reimplemented in EvtNeutrinoParticle.

Definition at line 648 of file EvtParticle.cc.

648 {
649 EvtDiracSpinor tempD;
651 report( ERROR, "EvtGen" ) << "and you have asked for the "
652 << "dirac spinor."
653 << " I.e. you thought it was a"
654 << " neutrino particle!" << endl;
655 ::abort();
656 return tempD;
657}

Referenced by EvtSemiLeptonicBaryonAmp::CalcAmp(), EvtSemiLeptonicTensorAmp::CalcAmp(), EvtSemiLeptonicVectorAmp::CalcAmp(), EvtKstarnunu::decay(), EvtLNuGamma::decay(), EvtSLN::decay(), EvtTauHadnu::decay(), EvtTaulnunu::decay(), EvtTauScalarnu::decay(), and EvtTauVectornu::decay().

◆ treeStr()

std::string EvtParticle::treeStr ( ) const

Definition at line 973 of file EvtParticle.cc.

973 {
974
975 std::string retval = EvtPDL::name( _id );
976 retval += " -> ";
977
978 retval += treeStrRec( 0 );
979
980 return retval;
981}
std::string treeStrRec(int level) const

◆ treeStrRec()

std::string EvtParticle::treeStrRec ( int level) const

Definition at line 892 of file EvtParticle.cc.

892 {
893
894 int newlevel, i;
895 newlevel = level + 1;
896
897 std::string retval = "";
898
899 for ( i = 0; i < _ndaug; i++ )
900 {
901 retval += EvtPDL::name( _daug[i]->getId() );
902 if ( _daug[i]->getNDaug() > 0 )
903 {
904 retval += " (";
905 retval += _daug[i]->treeStrRec( newlevel );
906 retval += ") ";
907 }
908 else
909 {
910 if ( i != _ndaug - 1 ) retval += " ";
911 }
912 }
913
914 return retval;
915}

Referenced by treeStr().

◆ writeTreeRec()

std::string EvtParticle::writeTreeRec ( std::string resonance) const

Definition at line 917 of file EvtParticle.cc.

917 { // pingrg, Jun. 6, 2008
918 std::string retval = "";
919
920 if ( resonance == EvtPDL::name( _id ).c_str() && _ndaug != 0 )
921 {
922 retval = resonance + ": " + IntToStr( _ndaug ) + " ";
923 for ( int i = 0; i < _ndaug; i++ )
924 {
925 retval += EvtPDL::name( _daug[i]->getId() ).c_str();
926 retval += " ";
927 }
928 }
929
930 for ( int i = 0; i < _ndaug; i++ ) { _daug[i]->writeTreeRec( resonance ); }
931 std::cout << retval;
932 return retval;
933}
char * c_str(Index i)

Member Data Documentation

◆ _NextLevelDauNum

int EvtParticle::_NextLevelDauNum = 0
static

◆ _NextLevelId

EvtId EvtParticle::_NextLevelId
static

Definition at line 144 of file EvtParticle.hh.

Referenced by EvtPhokhara_Lambda::decay().

◆ _NextLevelP4

◆ _validP4


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