40 double prob, prob_max;
49 rho =
m_amp2.getSpinDensity();
55 <<
"Negative prob:" << p->
getId().
getId() <<
" "
66 <<
"Forward density matrix:" << endl;
70 <<
"Decay density matrix:" << endl;
80 <<
"Momentum:" << p->
getP4() <<
" " << p->
mass() << endl;
99 for (
size_t i = 0; i < p->
getNDaug(); i++ ) {
107 <<
"daughter momenta :" << endl;
109 for (
size_t i = 0; i < p->
getNDaug(); i++ ) {
127 }
while ( ntimes && more );
131 <<
"Tried accept/reject: 10000"
132 <<
" times, and rejected all the times!" << endl;
137 <<
"Is therefore accepting the last event!" << endl;
143 for (
size_t ii = 0; ii < p->
getNDaug(); ii++ ) {
145 <<
"Daughter " << ii <<
":"
147 <<
" with mass " << p->
getDaug( ii )->
mass() << endl;
157 if (
m_amp2.m_pstates != 1 ) {
169 for (
size_t i = 0; i < p->
getNDaug(); i++ ) {
172 if (
m_amp2.m_dstates[i] == 1 ) {
178 if ( !rho.
check() ) {
180 <<
"-------start error-------" << endl;
182 <<
"forward rho failed Check:"
188 for (
size_t idaug = 0; idaug < p->
getNDaug(); idaug++ ) {
190 if ( daughter !=
nullptr ) {
196 if ( pParent !=
nullptr ) {
203 if ( grandParent !=
nullptr ) {
212 <<
" EvtSpinDensity rho: " << rho;
216 for (
size_t ii = 0; ii < i + 1; ii++ ) {
218 <<
"rho_list[" << ii <<
"] = " << rho_list[ii];
222 <<
"-------Done with error-------" << endl;
230 if (
m_amp2.m_dstates[i] != 1 ) {
240 <<
"rho_backward failed Check" << p->
getId().
getId() <<
" "
254 for (
int i = n_daug_orig; i < n_daug_new; i++ ) {
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=nullptr)
EvtSpinDensity contract(int i, const EvtAmp &a) const
void makeDecay(EvtParticle *p, bool recursive=true) override
virtual void decay(EvtParticle *p)=0
bool daugsDecayedByParentModel() const
bool m_daugsDecayedByParentModel
double getProbMax(double prob)
const EvtId * getDaugs() const
static std::string name(EvtId i)
void setSpinDensityBackward(const EvtSpinDensity &rho)
void setSpinDensityForward(const EvtSpinDensity &rho)
void setDecayProb(double p)
const EvtVector4R & getP4() const
EvtParticle * getDaug(const int i)
EvtSpinDensity getSpinDensityBackward()
EvtParticle * getParent() const
EvtSpinDensity getSpinDensityForward()
static bool alwaysRadCorr()
static bool neverRadCorr()
static void doRadCorr(EvtParticle *p)
double normalizedProb(const EvtSpinDensity &d)
void set(int i, int j, const EvtComplex &rhoij)