39 return "X38722-+_PSI_GAMMA";
83 <<
"' as first daughter are not supported. Choose among: 'gamma', 'omega', or 'rho0'."
91 double theProbMax = 1.;
127 const double pstar =
calcPstar( parentMass, d1Mass, d2Mass );
131 const int nsteps = 180;
134 double theta_max = 0;
136 for (
int i = 0; i <= nsteps; i++ ) {
139 p4_1.
set( sqrt( pow( pstar, 2 ) + pow( d1Mass, 2 ) ), 0,
140 +pstar * sin( theta ), +pstar * cos( theta ) );
142 p4_2.
set( sqrt( pow( pstar, 2 ) + pow( d2Mass, 2 ) ), 0,
143 -pstar * sin( theta ), -pstar * cos( theta ) );
152 if ( i_prob > prob_max ) {
159 <<
" " <<
getName() <<
" - probability " << prob_max
160 <<
" found for p* (child momenta in parent's frame) = " << pstar
161 <<
", at theta* = " << theta_max << std::endl;
163 theProbMax *= 1.01 * prob_max;
172 <<
" " <<
getName() <<
" - set up maximum probability to " << theProbMax
192 static const double mOmega2 =
194 static const double mRho2 =
198 for (
int iPsi = 0; iPsi < 3; iPsi++ ) {
199 for (
int iGamma = 0; iGamma < 2; iGamma++ ) {
200 for (
int iChi = 0; iChi < 4; iChi++ ) {
211 amp.
vertex( iChi, iGamma, iPsi,
222 for (
int iPsi = 0; iPsi < 3; iPsi++ ) {
223 for (
int iVect = 0; iVect < 3; iVect++ ) {
224 for (
int iChi = 0; iChi < 4; iChi++ ) {
235 amp.
vertex( iChi, iVect, iPsi,
242 for (
int iPsi = 0; iPsi < 3; iPsi++ ) {
243 for (
int iVect = 0; iVect < 3; iVect++ ) {
244 for (
int iChi = 0; iChi < 4; iChi++ ) {
263 double d2Mass )
const
266 sqrt( pow( parentMass, 2 ) - pow( ( d1Mass + d2Mass ), 2 ) ) *
267 sqrt( pow( parentMass, 2 ) - pow( ( d2Mass - d1Mass ), 2 ) ) /
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=nullptr)
EvtTensor4C dual(const EvtTensor4C &t2)
void vertex(const EvtComplex &)
EvtSpinDensity getSpinDensity() const
void init(EvtId p, int ndaug, const EvtId *daug)
void setWeight(double weight)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
void checkSpinParent(EvtSpinType::spintype sp)
double getArg(unsigned int j)
void setProbMax(double prbmx)
EvtId getParentId() const
EvtId getDaug(int i) const
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
const EvtId * getDaugs() const
std::string getName() const
static double getMass(EvtId i)
static double getMeanMass(EvtId i)
static double getMinMass(EvtId i)
static EvtId getId(const std::string &name)
virtual EvtVector4C epsParent(int i) const
virtual void init(EvtId part_n, const EvtVector4R &p4)=0
double initializePhaseSpace(size_t numdaughter, const EvtId *daughters, bool forceResetMasses=false, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
int getSpinStates() const
void setDiagonalSpinDensity()
const EvtVector4R & getP4() const
EvtParticle * getDaug(const int i)
virtual EvtVector4C epsParentPhoton(int i) const
virtual EvtTensor4C epsTensor(int i) const
void makeDaughters(size_t ndaug, const EvtId *id)
double normalizedProb(const EvtSpinDensity &d)
EvtVector4C cont1(const EvtVector4C &v4) const
void init(EvtId part_n, double e, double px, double py, double pz)
void set(int i, double d)
EvtComplex fT3(EvtVector4R p, EvtVector4R q, EvtTensor4C epsPI, EvtVector4C epsEps, EvtVector4C epsEta) const
EvtComplex fT2(EvtVector4R p, EvtVector4R q, EvtTensor4C epsPI, EvtVector4C epsEps, EvtVector4C epsEta) const
void calcAmp(EvtParticle &parent, EvtAmp &)
double calcPstar(double m_parent, double m_1, double m_2) const
void initProbMax() override
void decay(EvtParticle *p) override
std::string getName() const override
EvtDecayBase * clone() const override
EvtTensor3C directProd(const EvtVector3C &c1, const EvtVector3C &c2)