EvtPhokhara Class Reference

#include <EvtPhokhara.hh>

Inheritance diagram for EvtPhokhara:

EvtDecayIncoherent EvtDecayBase List of all members.

Public Member Functions

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

Static Public Member Functions

static void findMasses (EvtParticle *p, int ndaugs, EvtId daugs[10], double masses[10])
static void findMass (EvtParticle *p)
static double findMaxMass (EvtParticle *p)

Protected Member Functions

bool daugsDecayedByParentModel ()

Protected Attributes

bool _daugsDecayedByParentModel

Private Member Functions

void store (EvtDecayBase *jsdecay)

Private Attributes

int m_nm
int m_nlo
double m_w
int m_pion
int m_fsr
int m_fsrnlo
int m_ivac
int m_tagged
int m_NarrowRes
int m_FF_Kaon
int m_FF_Pion
int m_f0_model
double m_E
double m_q2min
double m_q2_min_c
double m_q2_max_c
double m_gmin
double m_phot1cut
double m_phot2cut
double m_pi1cut
double m_pi2cut
double qqmin
double qqmax
double cos1min
double cos1max
double cos2min
double cos2max
double cos3min
double cos3max
double dsigm1
double dsigm2
double sigma1
double sigma2
double sigma
double dsigm
double Ar [14]
double Ar_r [14]
int ievent
long int m_initSeed
std::vector< std::vector<
double > > 
theMmax
std::vector< int > nevtgen
std::vector< std::stringVfs

Static Private Attributes

static int nphokharadecays = 0
static EvtDecayBasePtrphokharadecays = 0
static int ntable = 0
static int ncommand = 0
static int lcommand = 0
static std::stringcommands = 0
static int nevt = 0

Detailed Description

Definition at line 33 of file EvtPhokhara.hh.


Constructor & Destructor Documentation

EvtPhokhara::EvtPhokhara (  ) 

Definition at line 66 of file EvtPhokhara.cc.

00066 {}

EvtPhokhara::~EvtPhokhara (  )  [virtual]

Definition at line 67 of file EvtPhokhara.cc.

References commands, dsigm, dsigm1, dsigm2, calibUtil::ERROR, flags_, genRecEmupikp::i, ievent, lambda_par_, maxima_, nphokharadecays, phokharadecays, report(), sigma, sigma1, and sigma2.

00067                          {
00068 
00069   //print out message
00070   // =================================================
00071   if(flags_.pion == 9)
00072     maxima_.Mmax[1] = maxima_.Mmax[1] * (1.0 + lambda_par_.alpha_lamb)*(1.0 + lambda_par_.alpha_lamb)
00073       * lambda_par_.ratio_lamb*lambda_par_.ratio_lamb;
00074 
00075   // --- value of the cross section ------------------
00076   if (flags_.nlo == 0) {
00077     sigma = maxima_.Mmax[0]/maxima_.count[0]*maxima_.tr[0];
00078     dsigm = maxima_.Mmax[0]*sqrt((maxima_.tr[0]/maxima_.count[0]-(maxima_.tr[0]/maxima_.count[0])*(maxima_.tr[0]/maxima_.count[0]))/maxima_.count[0]);
00079   } else {
00080     sigma1 = maxima_.Mmax[0]/maxima_.count[0]*maxima_.tr[0];
00081     sigma2 = maxima_.Mmax[1]/maxima_.count[1]*maxima_.tr[1];
00082     dsigm1 = maxima_.Mmax[0]*sqrt((maxima_.tr[0]/maxima_.count[0]-(maxima_.tr[0]/maxima_.count[0])*(maxima_.tr[0]/maxima_.count[0]))/maxima_.count[0]);
00083     dsigm2 = maxima_.Mmax[1]*sqrt((maxima_.tr[1]/maxima_.count[1]-(maxima_.tr[1]/maxima_.count[1])*(maxima_.tr[1]/maxima_.count[1]))/maxima_.count[1]);
00084 
00085     sigma = sigma1+sigma2;
00086     dsigm = sqrt(dsigm1*dsigm1 + dsigm2*dsigm2);
00087   }
00088   // --- output --------------------------------------
00089   cout << "-------------------------------------------------------------" << endl;
00090   cout << "     PHOKHARA 7.0 Final Statistics                            " << endl;
00091   cout << "-------------------------------------------------------------"  << endl;
00092   cout <<  int(maxima_.tr[0]+maxima_.tr[1]) << " total events accepted of " << endl;
00093   cout <<  int(ievent)            <<  " total events generated" << endl;
00094   cout <<  int(maxima_.tr[0])    <<  " one photon events accepted of " << endl;
00095   cout <<  int(maxima_.count[0]) <<  " events generated" << endl;
00096   cout <<  int(maxima_.tr[1])    <<  " two photon events accepted of " << endl;
00097   cout <<  int(maxima_.count[1]) <<  " events generated" << endl;
00098   cout << endl;
00099   if (flags_.nlo != 0) cout <<  "sigma1(nbarn) = " << sigma1 << " +- " << dsigm1 << endl;
00100   if (flags_.nlo != 0) cout <<  "sigma2(nbarn) = " << sigma2 << " +- " << dsigm2 << endl;
00101   cout <<  "sigma (nbarn) = " << sigma << " +- " << dsigm << endl;
00102   cout << endl;
00103   cout <<  "maximum1 = " << maxima_.gross[0] << "  minimum1 = " << maxima_.klein[0] << endl;
00104   cout <<  "Mmax1    = " << maxima_.Mmax[0]  << endl;
00105   cout <<  "maximum2 = " << maxima_.gross[1] << "  minimum2 = " << maxima_.klein[1] << endl;
00106   cout <<  "Mmax2    = " << maxima_.Mmax[1]  << endl;
00107   cout <<  "-------------------------------------------------------------" << endl;
00108 
00109 
00110   int i;
00111   //the deletion of commands is really uggly!
00112 
00113   if (nphokharadecays==0) {
00114     delete [] commands;
00115     commands=0;
00116     return;
00117   }
00118 
00119   for(i=0;i<nphokharadecays;i++){
00120     if (phokharadecays[i]==this){
00121       phokharadecays[i]=phokharadecays[nphokharadecays-1];
00122       nphokharadecays--;
00123       if (nphokharadecays==0) {
00124         delete [] commands;
00125         commands=0;
00126       }
00127       return;
00128     }
00129   }
00130 
00131   report(ERROR,"EvtGen") << "Error in destroying Phokhara model!"<<endl;
00132 
00133 }


Member Function Documentation

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

Definition at line 482 of file EvtDecayBase.cc.

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

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

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

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

Definition at line 504 of file EvtDecayBase.cc.

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

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

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

void EvtDecayBase::checkQ (  )  [inherited]

Definition at line 35 of file EvtDecayBase.cc.

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

Referenced by EvtDecayBase::saveDecayInfo().

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

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

Definition at line 533 of file EvtDecayBase.cc.

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

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

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

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

Definition at line 520 of file EvtDecayBase.cc.

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

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

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

EvtDecayBase * EvtPhokhara::clone (  )  [virtual]

Implements EvtDecayBase.

Definition at line 142 of file EvtPhokhara.cc.

00142                                 {
00143 
00144   return new EvtPhokhara;
00145 
00146 }

void EvtPhokhara::command ( std::string  cmd  )  [virtual]

Reimplemented from EvtDecayBase.

Definition at line 586 of file EvtPhokhara.cc.

References commands, genRecEmupikp::i, lcommand, ncommand, and deljobs::string.

00586                                       {
00587 
00588   if (ncommand==lcommand){
00589 
00590     lcommand=10+2*lcommand;
00591 
00592     std::string* newcommands=new std::string[lcommand];
00593     
00594     int i;
00595 
00596     for(i=0;i<ncommand;i++){
00597       newcommands[i]=commands[i];
00598     }
00599     
00600     delete [] commands;
00601 
00602     commands=newcommands;
00603 
00604   }
00605 
00606   commands[ncommand]=cmd;
00607 
00608   ncommand++;
00609 
00610 }

std::string EvtPhokhara::commandName (  )  [virtual]

Reimplemented from EvtDecayBase.

Definition at line 580 of file EvtPhokhara.cc.

References deljobs::string.

00580                                   {
00581      
00582   return std::string("PhokharaPar");
00583   
00584 }

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

Definition at line 110 of file EvtDecayBase.hh.

References EvtDecayBase::_daugsDecayedByParentModel.

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

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

Implements EvtDecayBase.

Definition at line 614 of file EvtPhokhara.cc.

References Ar, Ar_r, EvtCyclic3::c_str(), cos1max, cos1min, cos2max, cos2min, cos3max, cos3min, ctes_, calibUtil::ERROR, EvtPDL::evtIdFromStdHep(), flags_, GEN_1PH, GEN_2PH, EvtDecayBase::getArg(), EvtParticle::getDaug(), EvtParticle::getId(), EvtPDL::getId(), EvtPDL::getStdHep(), genRecEmupikp::i, ievent, EvtDecayTable::inChannelList(), EvtParticle::init(), init_evt(), init_mode(), m_pion, EvtParticle::makeDaughters(), EvtParticle::mass(), maxima_, EvtPDL::name(), nevtgen, qqmax, qqmin, RANLXDF, report(), EvtVector4R::set(), and Vfs.

00614                                       {
00615   EvtId myvpho=EvtPDL::getId("vpho");
00616   if(p->getId()!=myvpho) {std::cout<<"Parent particle is required to be vpho for Phokhara model"<<std::endl;abort();}
00617   m_pion=getArg(0);
00618   if(nevtgen[m_pion]==0) {init_mode(p);}
00619   else{init_evt(p);}
00620   std::cout<<"PHOKHARA : "<<Vfs[m_pion]<<" mode "<<std::endl;
00621 
00622   int istdheppar=EvtPDL::getStdHep(p->getId());
00623   int ntrials = 0;
00624   int tr_old[2];
00625   tr_old[0] = (int)maxima_.tr[0];
00626   tr_old[1] = (int)maxima_.tr[1];
00627 
00628   while( ntrials < 10000)
00629     {
00630       ievent++;
00631       RANLXDF(Ar_r,1);
00632       Ar[1] = Ar_r[0];
00633       
00634       if (Ar[1] <= (maxima_.Mmax[0]/(maxima_.Mmax[0]+maxima_.Mmax[1]))) {
00635         maxima_.count[0] = maxima_.count[0]+1.0;
00636         GEN_1PH(2,qqmin,qqmax,cos1min,cos1max,cos3min,cos3max);
00637       }
00638       else {
00639         maxima_.count[1] = maxima_.count[1]+1.0;
00640         GEN_2PH(2,qqmin,cos1min,cos1max,cos2min,cos2max,cos3min,cos3max);
00641       }
00642       
00643       if( ((int)maxima_.tr[0]+(int)maxima_.tr[1]) > (tr_old[0]+tr_old[1]) ) // event accepted after cuts
00644         {
00645           goto storedEvents;
00646         }
00647       ntrials ++;
00648     }
00649   
00650   std::cout <<"FATAL: Could not satisfy cuts after " << ntrials << "trials. Terminate." <<std::endl;
00651   //----
00652  storedEvents:
00653   int more=0;
00654   int numstable=0;
00655   int numparton=0;
00656   EvtId evtnumstable[100];//
00657   EvtVector4R p4[20];
00658 
00659   // except ISR photos, products depending on channel
00660   if (flags_.pion == 0) { // mu+ mu-
00661     // mu+
00662     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-13);
00663     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00664     numstable++;
00665     // mu -
00666     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(13);
00667     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00668     numstable++;
00669   }
00670   if (flags_.pion == 1) { // pi+ pi-
00671     // pi+
00672     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
00673     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00674     numstable++;
00675     // pi -
00676     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
00677     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00678     numstable++;
00679   }
00680   if (flags_.pion == 2) { // pi+ pi-2pi0
00681     // pi0
00682     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(111);
00683     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00684     numstable++;
00685     // pi0
00686     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(111);
00687     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00688     numstable++;
00689     // pi-
00690     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
00691     p4[numstable].set(ctes_.momenta[0][7],ctes_.momenta[1][7], ctes_.momenta[2][7], ctes_.momenta[3][7]);     
00692     numstable++;
00693     // pi +
00694     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
00695     p4[numstable].set(ctes_.momenta[0][8],ctes_.momenta[1][8], ctes_.momenta[2][8], ctes_.momenta[3][8]);     
00696     numstable++;
00697   }   
00698   if (flags_.pion == 3) { // 2(pi+ pi-)
00699     // pi+
00700     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
00701     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00702     numstable++;
00703     // pi-
00704     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
00705     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00706     numstable++;
00707     // pi+
00708     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
00709     p4[numstable].set(ctes_.momenta[0][7],ctes_.momenta[1][7], ctes_.momenta[2][7], ctes_.momenta[3][7]);     
00710     numstable++;
00711     // pi -
00712     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
00713     p4[numstable].set(ctes_.momenta[0][8],ctes_.momenta[1][8], ctes_.momenta[2][8], ctes_.momenta[3][8]);     
00714     numstable++;
00715   }   
00716   if (flags_.pion == 4) { // ppbar
00717     // pbar
00718     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-2212);
00719     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00720     numstable++;
00721     // p
00722     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(2212);
00723     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00724     numstable++;
00725   }
00726   if (flags_.pion == 5) { // nnbar
00727     // pbar
00728     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-2112);
00729     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00730     numstable++;
00731     // p
00732     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(2112);
00733     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00734     numstable++;
00735   }
00736   if (flags_.pion == 6) { // K+ K-
00737     // K+
00738     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(321);
00739     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00740     numstable++;
00741     // K -
00742     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-321);
00743     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00744     numstable++;
00745   }
00746   if (flags_.pion == 7) { // K0K0bar
00747     // Kbar
00748     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(310);
00749     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00750     numstable++;
00751     // K0
00752     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(130);
00753     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00754     numstable++;
00755   }
00756   if (flags_.pion == 8) { // pi+ pi-pi0
00757     // pi+
00758     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
00759     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00760     numstable++;
00761     // pi-
00762     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
00763     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00764     numstable++;
00765     // pi0
00766     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(111);
00767     p4[numstable].set(ctes_.momenta[0][7],ctes_.momenta[1][7], ctes_.momenta[2][7], ctes_.momenta[3][7]);     
00768     numstable++;
00769   } 
00770   if (flags_.pion == 9) { //Lambda Lambdabar-> pi+ pi- ppbar
00771     // pi+
00772     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
00773     p4[numstable].set(ctes_.momenta[0][7],ctes_.momenta[1][7], ctes_.momenta[2][7], ctes_.momenta[3][7]);     
00774     numstable++;
00775     // pbar
00776     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-2212);
00777     p4[numstable].set(ctes_.momenta[0][8],ctes_.momenta[1][8], ctes_.momenta[2][8], ctes_.momenta[3][8]);     
00778     numstable++;
00779     // pi-
00780     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
00781     p4[numstable].set(ctes_.momenta[0][9],ctes_.momenta[1][9], ctes_.momenta[2][9], ctes_.momenta[3][9]);     
00782     numstable++; 
00783     // p
00784     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(2212);
00785     p4[numstable].set(ctes_.momenta[0][10],ctes_.momenta[1][10], ctes_.momenta[2][10], ctes_.momenta[3][10]);     
00786     numstable++;
00787   }   
00788   
00789  // ISR gamma      
00790   evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(22);
00791   p4[numstable].set(ctes_.momenta[0][2],ctes_.momenta[1][2], ctes_.momenta[2][2], ctes_.momenta[3][2]);     
00792   numstable++;
00793   if( ctes_.momenta[0][3] != 0 ) // second photon exists
00794     {
00795       evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(22);
00796       p4[numstable].set(ctes_.momenta[0][3],ctes_.momenta[1][3], ctes_.momenta[2][3], ctes_.momenta[3][3]);     
00797       numstable++;
00798     }
00799   
00800   int channel=EvtDecayTable::inChannelList(p->getId(),numstable,evtnumstable);
00801   more=(channel!=-1);
00802   if(more) {std::cout<<"Existence of mode "<<channel<<" in exclusive decay list has the same final state as this one"<<std::endl;abort(); }
00803   
00804   p->makeDaughters(numstable,evtnumstable);
00805 
00806   int ndaugFound=0;
00807   EvtVector4R SUMP4(0,0,0,0);
00808   for(int i=0;i<numstable;i++){
00809     p->getDaug(i)->init(evtnumstable[i],p4[i]);
00810     ndaugFound++;
00811   }
00812   if ( ndaugFound == 0 ) {
00813     report(ERROR,"EvtGen") << "Phokhara has failed to do a decay ";
00814     report(ERROR,"EvtGen") << EvtPDL::name(p->getId()).c_str() << " " << p->mass()<<endl;
00815     assert(0);
00816   }
00817 
00818   nevtgen[m_pion]++;  
00819   return ;
00820   
00821 }

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

Definition at line 62 of file EvtDecayBase.hh.

References EvtDecayBase::_chkCharge.

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

00062 {_chkCharge=0;};

void EvtPhokhara::ExclusiveDecay ( EvtParticle p  ) 

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

Definition at line 346 of file EvtDecayBase.cc.

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

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

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

Definition at line 414 of file EvtDecayBase.cc.

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

Referenced by EvtBtoXsll::decay().

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

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

Definition at line 311 of file EvtDecayBase.cc.

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

Referenced by EvtDecayBase::findMass().

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

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

Definition at line 564 of file EvtDecayBase.cc.

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

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

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

double * EvtDecayBase::getArgs (  )  [inherited]

Definition at line 547 of file EvtDecayBase.cc.

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

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

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

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

Definition at line 73 of file EvtDecayBase.hh.

References EvtDecayBase::_args.

00073 {return _args;}

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

Definition at line 75 of file EvtDecayBase.hh.

References EvtDecayBase::_args.

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

00075 {return _args[j];}

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

Definition at line 61 of file EvtDecayBase.hh.

References EvtDecayBase::_brfr.

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

00061 {return _brfr;}

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

Definition at line 66 of file EvtDecayBase.hh.

References EvtDecayBase::_daug.

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

00066 {return _daug[i];}

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

Definition at line 65 of file EvtDecayBase.hh.

References EvtDecayBase::_daug.

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

00065 {return _daug;}

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

Definition at line 77 of file EvtDecayBase.hh.

References EvtDecayBase::_dsum.

00077 {return _dsum; }

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

Definition at line 76 of file EvtDecayBase.hh.

References EvtDecayBase::_modelname.

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

00076 {return _modelname; }

void EvtPhokhara::getName ( std::string name  )  [virtual]

Implements EvtDecayBase.

Definition at line 136 of file EvtPhokhara.cc.

00136                                               {
00137 
00138   model_name="PHOKHARA";     
00139 
00140 }

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

Definition at line 67 of file EvtDecayBase.hh.

References EvtDecayBase::_narg.

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

00067 {return _narg;}

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

Definition at line 64 of file EvtDecayBase.hh.

References EvtDecayBase::_ndaug.

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

00064 {return _ndaug;}

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

Definition at line 60 of file EvtDecayBase.hh.

References EvtDecayBase::_parent.

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

00060 {return _parent;}

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

Definition at line 68 of file EvtDecayBase.hh.

References EvtDecayBase::_photos.

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

00068 {return _photos;}

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

Definition at line 67 of file EvtDecayBase.cc.

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

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

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

int EvtPhokhara::getTotalEvt (  )  [inline]

Definition at line 52 of file EvtPhokhara.hh.

References nevt.

00052 {return nevt;}

void EvtPhokhara::init (  )  [virtual]

Reimplemented from EvtDecayBase.

Definition at line 540 of file EvtPhokhara.cc.

References EvtDecayBase::checkNArg(), EvtDecayBase::checkNDaug(), calibUtil::ERROR, EvtDecayBase::getParentId(), genRecEmupikp::i, EvtPDL::name(), nevtgen, report(), deljobs::string, theMmax, and Vfs.

00540                       {
00541   checkNDaug(0);
00542   checkNArg(1);
00543   nevtgen.resize(10);
00544   theMmax.resize(10);
00545   for(int i=0;i<=10;i++){ theMmax[i].resize(2); nevtgen[i]=0;}
00546 
00547   Vfs.push_back(" mu+mu-");
00548   Vfs.push_back(" pi+pi-");
00549   Vfs.push_back(" 2pi0pi+pi-");
00550   Vfs.push_back(" 2pi+2pi-");
00551   Vfs.push_back(" ppbar");
00552   Vfs.push_back(" nnbar");
00553   Vfs.push_back(" K+K-");
00554   Vfs.push_back(" K0K0bar");
00555   Vfs.push_back(" pi+pi-pi0");
00556   Vfs.push_back(" Lambda Lambdabar");
00557 
00558   std::string locvp=getenv("BESEVTGENROOT");
00559   system("cat $BESEVTGENROOT/share/phokhara.param>phokhara.param");
00560 
00561   
00562   if (getParentId().isAlias()){
00563     
00564     report(ERROR,"EvtGen") << "EvtPhokhara finds that you are decaying the"<<endl
00565                            << " aliased particle "
00566                            << EvtPDL::name(getParentId()).c_str()
00567                            << " with the Phokhara model"<<endl
00568                            << " this does not work, please modify decay table."
00569                            << endl;
00570     report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
00571     ::abort();
00572 
00573   }
00574 
00575   //store(this);
00576 
00577 }

void EvtPhokhara::init_evt ( EvtParticle p  ) 

Definition at line 859 of file EvtPhokhara.cc.

References cos(), cos1max, cos1min, cos2max, cos2min, cos3max, cos3min, ctes_, cuts_, flags_, EvtDecayBase::getArg(), EvtPDL::getId(), genRecEmupikp::i, INPUT, m_E, m_f0_model, m_FF_Kaon, m_FF_Pion, m_fsr, m_fsrnlo, m_gmin, m_ivac, m_NarrowRes, m_nlo, m_nm, m_phot1cut, m_phot2cut, m_pi1cut, m_pi2cut, m_pion, m_q2_max_c, m_q2_min_c, m_q2min, m_tagged, m_w, EvtParticle::mass(), maxima_, qqmax, qqmin, and theMmax.

Referenced by decay().

00859                                         {
00860  m_pion=getArg(0); 
00861  // mu+mu-(0),pi+pi-(1),2pi0pi+pi-(2),
00862  // 2pi+2pi-(3),ppbar(4),nnbar(5),
00863  // K+K-(6),K0K0bar(7),pi+pi-pi0(8), 
00864  // Lamb Lambbar->pi-pi+ppbar(9) 
00865   if(m_pion<0 || m_pion>9){std::cout<<"mode index for phokhar 0~9, but you give "<<m_pion<<std::endl;abort();}
00866   EvtId myvpho=EvtPDL::getId("vpho");
00867   m_E = p->mass();//EvtPDL::getMeanMass(myvpho);
00869   m_tagged = 0;
00870   m_nm = 50000 ; // # of events to determine the maximum
00871   m_nlo = 1;     // Born(0), NLO(1)
00872   m_w = 0.0001;  // soft photon cutoff
00873   m_fsr = 1;     // ISR only(0), ISR+FSR(1), ISR+INT+FSR(2)
00874   m_fsrnlo = 1 ; // yes(1), no(0)
00875   m_NarrowRes = 1 ;// none(0) jpsi(1) psip(2)
00876   m_FF_Kaon = 1 ;  // constrained (0), unconstrained (1), Kuhn-Khodjamirian-Bruch (2)
00877   m_ivac = 0;      // yes(1), no(0)
00878   m_FF_Pion = 0 ;  // KS Pionformfactor(0), GS Pionformfactor old(1) and new(2)
00879   m_f0_model = 0 ; // f0+f0(600): KK model(0), no structure(1),  no f0+f0(600)(2), f0 KLOE(3)
00880   m_q2min = 0.0;   // minimal  hadrons(muons)-gamma-inv mass squared (GeV^2)
00881   m_q2_min_c = 0.0447 ; // minimal inv. mass squared of the hadrons(muons)(GeV^2)
00882   m_q2_max_c = m_E*m_E;    // maximal inv. mass squared of the hadrons(muons)(GeV^2)
00883   m_gmin = 0.001;       // minimal photon energy/missing energy   (GeV)
00884   m_phot1cut = 0.0;     // maximal photon angle/missing momentum angle (grad)
00885   m_phot2cut = 180.0;   // maximal photon angle/missing momentum angle (grad)
00886   m_pi1cut = 0.0 ;      // minimal hadrons(muons) angle (grad)
00887   m_pi2cut = 180.0;     // maximal hadrons(muons) angle (grad)
00888 
00889   if(!(m_pion==0 || m_pion==1 || m_pion==6)){m_fsr = 0;  m_fsrnlo = 0 ;}
00890   if( m_pion==9 ){m_nlo = 0 ;}
00891   // --- input parameter initialization -----------
00892   maxima_.iprint = 0;
00893   flags_.nlo = m_nlo;
00894   flags_.pion = m_pion;
00895   flags_.fsr = m_fsr;
00896   flags_.fsrnlo = m_fsrnlo;
00897   flags_.ivac = m_ivac;
00898   flags_.FF_pion  = m_FF_Pion;
00899   flags_.f0_model = m_f0_model;
00900   flags_.FF_kaon  = m_FF_Kaon;
00901   flags_.narr_res = m_NarrowRes;
00902 
00903   ctes_.Sp = m_E*m_E;        ;
00904 
00905   cuts_.w = m_w;
00906   cuts_.q2min = m_q2min;
00907   cuts_.q2_min_c = m_q2_min_c;
00908   cuts_.q2_max_c = m_q2_max_c;
00909   cuts_.gmin = m_gmin;
00910   cuts_.phot1cut = m_phot1cut;
00911   cuts_.phot2cut = m_phot2cut;
00912   cuts_.pi1cut = m_pi1cut;
00913   cuts_.pi2cut = m_pi2cut;
00914 
00915   INPUT();
00916 
00917     cos1min = cos(cuts_.phot2cut*ctes_.pi/180.0);     // photon1 angle cuts in the 
00918     cos1max = cos(cuts_.phot1cut*ctes_.pi/180.0);     // LAB rest frame   
00919       cos2min = -1.0;                        // photon2 angle limits      
00920       cos2max =  1.0;                        //                           
00921       cos3min = -1.0;                        // hadrons/muons angle limits    
00922       cos3max =  1.0;                        // in their rest frame            
00923       if (flags_.pion == 0)                   // virtual photon energy cut 
00924         qqmin = 4.0*ctes_.mmu*ctes_.mmu;
00925       else if (flags_.pion == 1)
00926         qqmin = 4.0*ctes_.mpi*ctes_.mpi;
00927       else if (flags_.pion == 2)
00928         qqmin = 4.0*(ctes_.mpi+ctes_.mpi0)*(ctes_.mpi+ctes_.mpi0);
00929       else if (flags_.pion == 3)
00930         qqmin = 16.0*ctes_.mpi*ctes_.mpi;
00931       else if (flags_.pion == 4)
00932         qqmin = 4.0*ctes_.mp*ctes_.mp;
00933       else if (flags_.pion == 5)
00934         qqmin = 4.0*ctes_.mnt*ctes_.mnt;
00935       else if (flags_.pion == 6)
00936         qqmin = 4.0*ctes_.mKp*ctes_.mKp;
00937       else if (flags_.pion == 7)
00938         qqmin = 4.0*ctes_.mKn*ctes_.mKn;
00939       else if (flags_.pion == 8)
00940         qqmin = (2.0*ctes_.mpi+ctes_.mpi0)*(2.0*ctes_.mpi+ctes_.mpi0);
00941       else if (flags_.pion == 9)
00942         qqmin = 4.0*ctes_.mlamb*ctes_.mlamb;
00943       qqmax = ctes_.Sp-2.0*sqrt(ctes_.Sp)*cuts_.gmin;         // if only one photon 
00944       if (cuts_.q2_max_c < qqmax)
00945         qqmax=cuts_.q2_max_c;      // external cuts      
00946 
00947       // -------------------
00948       if ( (cuts_.q2_min_c > qqmin) && (cuts_.q2_min_c < (ctes_.Sp*(1.0-2.0*(cuts_.gmin/sqrt(ctes_.Sp)+cuts_.w))) ) )
00949         qqmin = cuts_.q2_min_c;
00950       else {
00951       }
00952 
00953 
00954  // =================================================
00955 // --- finding the maximum -------------------------
00956       for(int i = 0; i<2; i++)
00957         {
00958           maxima_.Mmax[i] = 1.0;
00959           maxima_.gross[i] = 0.0;
00960           maxima_.klein[i] = 0.0;
00961         }
00962 
00963       if (flags_.nlo == 0)
00964         maxima_.Mmax[1]=0.0;   // only 1 photon events generated
00965 
00966       maxima_.tr[0] = 0.0;
00967       maxima_.tr[1] = 0.0;
00968       maxima_.count[0] = 0.0;
00969       maxima_.count[1] = 0.0;
00970 
00971       // =================================================
00972       // --- for the second run ---
00973       maxima_.Mmax[0] = theMmax[m_pion][0];
00974       maxima_.Mmax[1] = theMmax[m_pion][1]; 
00975       if((flags_.pion == 1) && (flags_.fsrnlo == 1))
00976         maxima_.Mmax[1]=maxima_.Mmax[1]*1.5;
00977       if((flags_.pion == 0) && (flags_.fsrnlo == 1))
00978         maxima_.Mmax[1]=maxima_.Mmax[1]*1.5;
00979 
00980       if((flags_.pion == 0) && (flags_.fsr == 1) && (flags_.fsrnlo == 0))
00981         maxima_.Mmax[1]=maxima_.Mmax[1]*1.2;
00982 
00983       if((flags_.pion == 2) || (flags_.pion == 3)){
00984         maxima_.Mmax[0]=maxima_.Mmax[0]*1.1;
00985         maxima_.Mmax[1]=maxima_.Mmax[1]*1.1;
00986       }
00987 
00988       if(flags_.pion == 8){
00989         maxima_.Mmax[0]=maxima_.Mmax[0]*1.08;
00990         maxima_.Mmax[1]=maxima_.Mmax[1]*1.1;
00991       }
00992 // --- end of the second run -----------------------
00993 
00994       maxima_.tr[0] = 0.0;
00995       maxima_.tr[1] = 0.0;
00996       maxima_.count[0] = 0.0;
00997       maxima_.count[1] = 0.0;
00998 }

void EvtPhokhara::init_mode ( EvtParticle p  ) 

Definition at line 156 of file EvtPhokhara.cc.

References Ar, Ar_r, cos(), cos1max, cos1min, cos2max, cos2min, cos3max, cos3min, ctes_, cuts_, flags_, GEN_1PH, EvtDecayBase::getArg(), EvtPDL::getId(), genRecEmupikp::i, INPUT, ganga-rec::j, m_E, m_f0_model, m_FF_Kaon, m_FF_Pion, m_fsr, m_fsrnlo, m_gmin, m_initSeed, m_ivac, m_NarrowRes, m_nlo, m_nm, m_phot1cut, m_phot2cut, m_pi1cut, m_pi2cut, m_pion, m_q2_max_c, m_q2_min_c, m_q2min, m_tagged, m_w, EvtParticle::mass(), maxima_, qqmax, qqmin, RANLXDF, and RLXDINIT.

Referenced by decay().

00156                                          {
00157  m_pion=getArg(0); 
00158  // mu+mu-(0),pi+pi-(1),2pi0pi+pi-(2),
00159  // 2pi+2pi-(3),ppbar(4),nnbar(5),
00160  // K+K-(6),K0K0bar(7),pi+pi-pi0(8), 
00161  // Lamb Lambbar->pi-pi+ppbar(9) 
00162   if(m_pion<0 || m_pion>9){std::cout<<"mode index for phokhar 0~9, but you give "<<m_pion<<std::endl;abort();}
00163   EvtId myvpho=EvtPDL::getId("vpho");
00164   m_E = p->mass();//EvtPDL::getMeanMass(myvpho);
00166   m_tagged = 0;
00167   m_nm = 50000 ; // # of events to determine the maximum
00168   m_nlo = 1;     // Born(0), NLO(1)
00169   m_w = 0.0001;  // soft photon cutoff
00170   m_fsr = 1;     // ISR only(0), ISR+FSR(1), ISR+INT+FSR(2)
00171   m_fsrnlo = 1 ; // yes(1), no(0)
00172   m_NarrowRes = 1 ;// none(0) jpsi(1) psip(2)
00173   m_FF_Kaon = 1 ;  // constrained (0), unconstrained (1), Kuhn-Khodjamirian-Bruch (2)
00174   m_ivac = 0;      // yes(1), no(0)
00175   m_FF_Pion = 0 ;  // KS Pionformfactor(0), GS Pionformfactor old(1) and new(2)
00176   m_f0_model = 0 ; // f0+f0(600): KK model(0), no structure(1),  no f0+f0(600)(2), f0 KLOE(3)
00177   m_q2min = 0.0;   // minimal  hadrons(muons)-gamma-inv mass squared (GeV^2)
00178   m_q2_min_c = 0.0447 ; // minimal inv. mass squared of the hadrons(muons)(GeV^2)
00179   m_q2_max_c = m_E*m_E;    // maximal inv. mass squared of the hadrons(muons)(GeV^2)
00180   m_gmin = 0.001;       // minimal photon energy/missing energy   (GeV)
00181   m_phot1cut = 0.0;     // maximal photon angle/missing momentum angle (grad)
00182   m_phot2cut = 180.0;   // maximal photon angle/missing momentum angle (grad)
00183   m_pi1cut = 0.0 ;      // minimal hadrons(muons) angle (grad)
00184   m_pi2cut = 180.0;     // maximal hadrons(muons) angle (grad)
00185 
00186   if(!(m_pion==0 || m_pion==1 || m_pion==6)){m_fsr = 0;  m_fsrnlo = 0 ;}
00187   if( m_pion==9 ){m_nlo = 0 ;}
00188   // --- input parameter initialization -----------
00189   m_initSeed = 123456789;
00190   RLXDINIT(1, m_initSeed);
00191   maxima_.iprint = 0;
00192   flags_.nlo = m_nlo;
00193   flags_.pion = m_pion;
00194   flags_.fsr = m_fsr;
00195   flags_.fsrnlo = m_fsrnlo;
00196   flags_.ivac = m_ivac;
00197   flags_.FF_pion  = m_FF_Pion;
00198   flags_.f0_model = m_f0_model;
00199   flags_.FF_kaon  = m_FF_Kaon;
00200   flags_.narr_res = m_NarrowRes;
00201 
00202   ctes_.Sp = m_E*m_E;        ;
00203 
00204   cuts_.w = m_w;
00205   cuts_.q2min = m_q2min;
00206   cuts_.q2_min_c = m_q2_min_c;
00207   cuts_.q2_max_c = m_q2_max_c;
00208   cuts_.gmin = m_gmin;
00209   cuts_.phot1cut = m_phot1cut;
00210   cuts_.phot2cut = m_phot2cut;
00211   cuts_.pi1cut = m_pi1cut;
00212   cuts_.pi2cut = m_pi2cut;
00213 
00214   INPUT();
00215 
00216   // --- print run data ------------------------------
00217   cout << "-------------------------------------------------------------" << endl;
00218   if (flags_.pion == 0)
00219     cout << "     PHOKHARA 7.0 : e^+ e^- -> mu^+ mu^- gamma" << endl;
00220   else if (flags_.pion == 1)
00221     cout << "     PHOKHARA 7.0: e^+ e^- -> pi^+ pi^- gamma" << endl;
00222   else if (flags_.pion == 2)
00223     cout << "   PHOKHARA 7.0: e^+ e^- -> pi^+ pi^- 2pi^0 gamma" << endl;
00224   else if (flags_.pion == 3)
00225     cout << "   PHOKHARA 7.0: e^+ e^- -> 2pi^+ 2pi^- gamma" << endl;
00226   else if (flags_.pion == 4)
00227     cout << "   PHOKHARA 7.0: e^+ e^- -> p pbar gamma" << endl;
00228   else if (flags_.pion == 5)
00229     cout << "   PHOKHARA 7.0: e^+ e^- -> n nbar gamma" << endl;
00230   else if (flags_.pion == 6)
00231     cout << "   PHOKHARA 7.0: e^+ e^- -> K^+ K^- gamma" << endl;
00232   else if (flags_.pion == 7)
00233    cout << "   PHOKHARA 7.0: e^+ e^- -> K_0 K_0bar gamma" << endl;
00234   else if (flags_.pion == 8)
00235     cout << "   PHOKHARA 7.0: e^+ e^- -> pi^+ pi^- pi^0 gamma" << endl;
00236   else if (flags_.pion == 9) {
00237     cout <<  "PHOKHARA 7.0 : e^+ e^- ->" << endl;
00238     cout << "  Lambda (-> pi^- p) Lambda bar (-> pi^+ pbar) gamma" << endl;
00239   } else
00240     cout <<  "     PHOKHARA 7.0: not yet implemented" << endl;
00241 
00242   // --------------------------------
00243   cout <<  "--------------------------------------------------------------" << endl;
00244   printf(" %s %f %s\n","cms total energy                       = ",sqrt(ctes_.Sp)," GeV  ");
00245   
00246   //if((cuts_.gmin/2.0/ctes_.ebeam) < 0.000098){
00247   if(cuts_.gmin<0.001){
00248     cerr << " minimal missing energy set too small" << endl;
00249     abort();
00250   }
00251   printf(" %s %f %s\n","minimal tagged photon energy           = ",cuts_.gmin," GeV  ");
00252   printf(" %s %f,%f\n","angular cuts on tagged photon          = ",cuts_.phot1cut,cuts_.phot2cut);
00253   
00254   // --------------------------------
00255   if (flags_.pion == 0)
00256     printf(" %s %f,%f\n","angular cuts on muons                  = ",cuts_.pi1cut,cuts_.pi2cut);
00257   else if (flags_.pion == 4)
00258     printf(" %s %f,%f\n","angular cuts on protons                = ",cuts_.pi1cut,cuts_.pi2cut);
00259   else if (flags_.pion == 5)
00260     printf(" %s %f,%f\n","angular cuts on neutrons               = ", cuts_.pi1cut,cuts_.pi2cut);
00261   else if ((flags_.pion == 6)||(flags_.pion == 7))
00262     printf(" %s %f,%f\n","angular cuts on kaons                  = ", cuts_.pi1cut,cuts_.pi2cut);
00263   else if (flags_.pion == 9)
00264     printf(" %s %f,%f\n","angular cuts on pions and protons      = ", cuts_.pi1cut,cuts_.pi2cut);
00265   else
00266     printf(" %s %f,%f\n","angular cuts on pions                  = ", cuts_.pi1cut,cuts_.pi2cut);
00267     if (flags_.pion == 0)
00268       printf(" %s %f %s\n","min. muons-tagged photon inv.mass^2    = ", cuts_.q2min," GeV^2");
00269     else if (flags_.pion == 4)
00270       printf(" %s %f %s\n","min. protons-tagged photon inv.mass^2  = ", cuts_.q2min," GeV^2" );
00271     else if (flags_.pion == 5)
00272       printf(" %s %f %s\n","min. neutrons-tagged photon inv.mass^2 = ", cuts_.q2min," GeV^2" );
00273     else if ((flags_.pion == 6)||(flags_.pion == 7))
00274       printf(" %s %f %s\n","min. kaons-tagged photon inv.mass^2    = ", cuts_.q2min," GeV^2" );
00275     else if (flags_.pion == 9)
00276       printf(" %s %f %s\n"," min. lambdas-tagged photon inv.mass^2 = ", cuts_.q2min," GeV^2" );
00277     else
00278       printf(" %s %f %s\n","min. pions-tagged photon inv.mass^2    = ", cuts_.q2min," GeV^2" );
00279     cos1min = cos(cuts_.phot2cut*ctes_.pi/180.0);     // photon1 angle cuts in the 
00280     cos1max = cos(cuts_.phot1cut*ctes_.pi/180.0);     // LAB rest frame   
00281       cos2min = -1.0;                        // photon2 angle limits      
00282       cos2max =  1.0;                        //                           
00283       cos3min = -1.0;                        // hadrons/muons angle limits    
00284       cos3max =  1.0;                        // in their rest frame            
00285       if (flags_.pion == 0)                   // virtual photon energy cut 
00286         qqmin = 4.0*ctes_.mmu*ctes_.mmu;
00287       else if (flags_.pion == 1)
00288         qqmin = 4.0*ctes_.mpi*ctes_.mpi;
00289       else if (flags_.pion == 2)
00290         qqmin = 4.0*(ctes_.mpi+ctes_.mpi0)*(ctes_.mpi+ctes_.mpi0);
00291       else if (flags_.pion == 3)
00292         qqmin = 16.0*ctes_.mpi*ctes_.mpi;
00293       else if (flags_.pion == 4)
00294         qqmin = 4.0*ctes_.mp*ctes_.mp;
00295       else if (flags_.pion == 5)
00296         qqmin = 4.0*ctes_.mnt*ctes_.mnt;
00297       else if (flags_.pion == 6)
00298         qqmin = 4.0*ctes_.mKp*ctes_.mKp;
00299       else if (flags_.pion == 7)
00300         qqmin = 4.0*ctes_.mKn*ctes_.mKn;
00301       else if (flags_.pion == 8)
00302         qqmin = (2.0*ctes_.mpi+ctes_.mpi0)*(2.0*ctes_.mpi+ctes_.mpi0);
00303       else if (flags_.pion == 9)
00304         qqmin = 4.0*ctes_.mlamb*ctes_.mlamb;
00305       qqmax = ctes_.Sp-2.0*sqrt(ctes_.Sp)*cuts_.gmin;         // if only one photon 
00306       if (cuts_.q2_max_c < qqmax)
00307         qqmax=cuts_.q2_max_c;      // external cuts      
00308 
00309       // -------------------
00310       if ( (cuts_.q2_min_c > qqmin) && (cuts_.q2_min_c < (ctes_.Sp*(1.0-2.0*(cuts_.gmin/sqrt(ctes_.Sp)+cuts_.w))) ) )
00311         qqmin = cuts_.q2_min_c;
00312       else {
00313         cerr << "------------------------------" << endl;
00314         cerr << " Q^2_min TOO SMALL" << endl;
00315         cerr << " Q^2_min CHANGED BY PHOKHARA = " << qqmin << " GeV^2" << endl;
00316         cerr << "------------------------------" << endl;
00317       }
00318       // -------------------
00319       if(qqmax <= qqmin){
00320         cerr << " Q^2_max to small " << endl;
00321         cerr << " Q^2_max = " << qqmax << endl;
00322         cerr << " Q^2_min = " << qqmin << endl;
00323         abort();
00324       }
00325 
00326       // -------------------
00327       if (flags_.pion == 0) {
00328         printf(" %s %f %s\n", "minimal muon-pair invariant mass^2     = ", qqmin," GeV^2");
00329         printf(" %s %f %s\n", "maximal muon-pair invariant mass^2     = ", qqmax," GeV^2");
00330       } else if (flags_.pion == 1) {
00331         printf(" %s %f %s\n", "minimal pion-pair invariant mass^2     = ", qqmin," GeV^2");
00332         printf(" %s %f %s\n", "maximal pion-pair invariant mass^2     = ", qqmax," GeV^2");
00333       } else if (flags_.pion == 4) {
00334         printf(" %s %f %s\n", "minimal proton-pair invariant mass^2   = ", qqmin," GeV^2");
00335         printf(" %s %f %s\n", "maximal proton-pair invariant mass^2   = ", qqmax," GeV^2");
00336       } else if (flags_.pion == 5) {
00337         printf(" %s %f %s\n", "minimal neutron-pair invariant mass^2  = ", qqmin," GeV^2");
00338         printf(" %s %f %s\n", "maximal neutron-pair invariant mass^2  = ", qqmax," GeV^2");
00339       } else if ((flags_.pion == 6) || (flags_.pion == 7)) {
00340         printf(" %s %f %s\n", "minimal kaon-pair invariant mass^2     = ", qqmin," GeV^2");
00341         printf(" %s %f %s\n", "maximal kaon-pair invariant mass^2     = ", qqmax," GeV^2");
00342       } else if(flags_.pion == 8){
00343         printf(" %s %f %s\n", "minimal three-pion invariant mass^2    = ", qqmin," GeV^2");
00344         printf(" %s %f %s\n", "maximal three-pion invariant mass^2    = ", qqmax," GeV^2");
00345       } else if(flags_.pion == 9){
00346         printf(" %s %f %s\n", "minimal lambda-pair invariant mass^2  = ", qqmin," GeV^2");
00347         printf(" %s %f %s\n", "maximal lambda-pair invariant mass^2  = ", qqmax," GeV^2");
00348       } else {
00349         printf(" %s %f %s\n", "minimal four-pion invariant mass^2     = ", qqmin," GeV^2" );
00350         printf(" %s %f %s\n", "maximal four-pion invariant mass^2     = ", qqmax," GeV^2");
00351       }
00352       // -------------------
00353       if (flags_.nlo == 0) {
00354         cout <<  "Born" << endl;
00355          if(flags_.fsrnlo != 0){
00356            cerr << "WRONG FSRNLO flag - only fsrnlo=0 allowed for Born" << endl;
00357            abort();
00358          }
00359       }
00360       // -------------------
00361       if((flags_.pion == 9) && (flags_.nlo != 0)) {
00362         cerr << "WRONG NLO flag - only Born allowed for Lambdas"<< endl;
00363         cerr << "If you feel that you need NLO"<< endl;
00364         cerr << "please contact the authors"<< endl;
00365         abort();
00366       }
00367       // -------------------
00368       if (flags_.nlo == 1) printf(" %s %f\n", "NLO:    soft photon cutoff w           = ",cuts_.w);
00369       if ((flags_.pion <= 1) || (flags_.pion == 6))
00370         {
00371 
00372           if( ! ((flags_.fsr == 1) || (flags_.fsr == 2) || (flags_.fsrnlo == 0)
00373               || (flags_.fsr == 1) || (flags_.fsrnlo == 1)
00374                  || (flags_.fsr == 0) || (flags_.fsrnlo == 0))) {
00375             cerr << "WRONG combination of FSR, FSRNLO flags" <<endl;
00376             abort();
00377           }
00378          // ------------------
00379           if (flags_.fsr == 0)
00380             cout << "ISR only" << endl;
00381           else if (flags_.fsr == 1)
00382             cout << "ISR+FSR" << endl;
00383           else if (flags_.fsr == 2) {
00384             if (flags_.nlo == 0)
00385               cout << "ISR+INT+FSR" << endl;
00386             else {
00387               cerr << "WRONG FSR flag: interference is included only for nlo=0" << endl;
00388               abort();
00389             }
00390           }
00391           else {
00392             cerr << "WRONG FSR flag" << flags_.fsr << endl;
00393             abort();
00394           }
00395           if(flags_.fsrnlo == 1)
00396             cout << "IFSNLO included" << endl;
00397         }
00398       else
00399         {
00400           if((flags_.fsr == 0) && (flags_.fsrnlo == 0))
00401             cout << "ISR only" << endl;
00402           else {
00403             cerr << "FSR is implemented only for pi+pi-, mu+mu- and K+K- modes" << endl;
00404             abort();
00405           }
00406         }
00407      // ------------------
00408       if(flags_.ivac == 0){
00409         cout << "Vacuum polarization is NOT included" << endl;}
00410         else if(flags_.ivac == 1){
00411         cout << "Vacuum polarization  by Fred Jegerlehner (http://www-com.physik.hu-berlin.de/fjeger/alphaQEDn.uu)"  << endl;}
00412         else if(flags_.ivac == 2){
00413         cout << "Vacuum polarization (VP_HLMNT_v1_3nonr) by Daisuke Nomura and Thomas Teubner" << endl;}
00414         else {
00415         cout << "WRONG vacuum polarization switch" << endl;
00416         abort();
00417         }
00418 
00419 // -----------------
00420       if(flags_.pion == 1){
00421         if(flags_.FF_pion == 0)
00422           cout << "Kuhn-Santamaria PionFormFactor" << endl;
00423         else if(flags_.FF_pion == 1)
00424           cout << "Gounaris-Sakurai PionFormFactor old" << endl;
00425         else if(flags_.FF_pion == 2)
00426           cout << "Gounaris-Sakurai PionFormFactor new" << endl;
00427         else {
00428           cout << "WRONG PionFormFactor switch" << endl;
00429           abort();
00430         }
00431          if(flags_.fsr != 0){
00432          if(flags_.f0_model == 0)
00433            cout << "f0+f0(600): K+K- model" << endl;
00434          else if(flags_.f0_model == 1)
00435            cout << "f0+f0(600): \"no structure\" model" << endl;
00436          else if(flags_.f0_model == 2)
00437            cout << "NO f0+f0(600)" << endl;
00438          else if(flags_.f0_model == 3)
00439            cout << "only f0, KLOE: Cesare Bini-private communication" << endl;
00440          else {
00441            cout << "WRONG f0+f0(600) switch" << endl;
00442            abort();
00443          }
00444         }
00445       }
00446 //-------
00447       if((flags_.pion == 6) || (flags_.pion==7)){
00448         if(flags_.FF_kaon == 0)
00449           cout << "constrained KaonFormFactor" << endl;
00450         else if(flags_.FF_kaon == 1) {
00451           cout << "unconstrained KaonFormFactor" << endl;}
00452         else if(flags_.FF_kaon == 2) {
00453           cout << "Kuhn-Khodjamirian-Bruch KaonFormFactor" << endl;}
00454         else{
00455           cout << "WRONG KaonFormFactor switch" << endl;
00456           abort();
00457         }
00458       }
00459 // --------------------
00460      if((flags_.pion == 0) || (flags_.pion==1) || (flags_.pion == 6) || (flags_.pion == 7)){
00461         if(flags_.narr_res == 1){
00462           cout << "THE NARROW RESONANCE J/PSI INCLUDED" << endl;}
00463         else if(flags_.narr_res == 2){
00464           cout << "THE NARROW RESONANCE PSI(2S) INCLUDED" << endl;}
00465         else if(flags_.narr_res != 0){
00466           cout << "wrong flag narr_res: only 0, 1 or 2 allowed" << endl;
00467           abort();
00468         }
00469        }
00470 // ------
00471   cout << "--------------------------------------------------------------" << endl;
00472 //
00473  // =================================================
00474 // --- finding the maximum -------------------------
00475       for(int i = 0; i<2; i++)
00476         {
00477           maxima_.Mmax[i] = 1.0;
00478           maxima_.gross[i] = 0.0;
00479           maxima_.klein[i] = 0.0;
00480         }
00481 
00482       if (flags_.nlo == 0)
00483         maxima_.Mmax[1]=0.0;   // only 1 photon events generated
00484 
00485       maxima_.tr[0] = 0.0;
00486       maxima_.tr[1] = 0.0;
00487       maxima_.count[0] = 0.0;
00488       maxima_.count[1] = 0.0;
00489 
00490       // =================================================
00491       // --- beginning the MC loop event generation ------
00492       for(int j = 1; j <= m_nm; j++)
00493         {
00494           RANLXDF(Ar_r,1);
00495           Ar[1] = Ar_r[0];
00496           if (Ar[1] <= (maxima_.Mmax[0]/(maxima_.Mmax[0]+maxima_.Mmax[1]))) {
00497             maxima_.count[0] = maxima_.count[0]+1.0;
00498             GEN_1PH(1,qqmin,qqmax,cos1min,cos1max,cos3min,cos3max);
00499           }
00500           else {
00501             maxima_.count[1] = maxima_.count[1]+1.0;
00502             GEN_2PH(1,qqmin,cos1min,cos1max,cos2min,cos2max,cos3min,cos3max);
00503           }
00504         }
00505       // --- end of the MC loop --------------------------
00506       // =================================================
00507       // --- for the second run ---
00508       maxima_.Mmax[0] = maxima_.gross[0]+.05*sqrt(maxima_.gross[0]*maxima_.gross[0]);
00509       maxima_.Mmax[1] = maxima_.gross[1]+(.03+.02*ctes_.Sp)*sqrt(maxima_.gross[1]*maxima_.gross[1]);
00510       theMmax[m_pion][0]=maxima_.Mmax[0];
00511       theMmax[m_pion][1]=maxima_.Mmax[1];
00512 
00513       if((flags_.pion == 1) && (flags_.fsrnlo == 1))
00514         maxima_.Mmax[1]=maxima_.Mmax[1]*1.5;
00515       if((flags_.pion == 0) && (flags_.fsrnlo == 1))
00516         maxima_.Mmax[1]=maxima_.Mmax[1]*1.5;
00517 
00518       if((flags_.pion == 0) && (flags_.fsr == 1) && (flags_.fsrnlo == 0))
00519         maxima_.Mmax[1]=maxima_.Mmax[1]*1.2;
00520 
00521       if((flags_.pion == 2) || (flags_.pion == 3)){
00522         maxima_.Mmax[0]=maxima_.Mmax[0]*1.1;
00523         maxima_.Mmax[1]=maxima_.Mmax[1]*1.1;
00524       }
00525 
00526       if(flags_.pion == 8){
00527         maxima_.Mmax[0]=maxima_.Mmax[0]*1.08;
00528         maxima_.Mmax[1]=maxima_.Mmax[1]*1.1;
00529       }
00530 // --- end of the second run -----------------------
00531 
00532       maxima_.tr[0] = 0.0;
00533       maxima_.tr[1] = 0.0;
00534       maxima_.count[0] = 0.0;
00535       maxima_.count[1] = 0.0;
00536 }

void EvtPhokhara::initProbMax (  )  [virtual]

Reimplemented from EvtDecayBase.

Definition at line 149 of file EvtPhokhara.cc.

References EvtDecayBase::noProbMax().

00149                              {
00150 
00151   noProbMax();
00152 
00153 }

int EvtDecayIncoherent::isDaughterSpinDensitySet ( int  daughter  )  [inline, inherited]

Definition at line 39 of file EvtDecayIncoherent.hh.

References EvtDecayIncoherent::spinDensitySet.

Referenced by EvtDecayIncoherent::makeDecay().

00040   {return spinDensitySet[daughter];}

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

Implements EvtDecayBase.

Definition at line 29 of file EvtDecayIncoherent.cc.

References EvtDecayBase::_daugsDecayedByParentModel, EvtRadCorr::alwaysRadCorr(), EvtDecayBase::daugsDecayedByParentModel(), EvtParticle::decay(), EvtDecayBase::decay(), EvtRadCorr::doRadCorr(), EvtParticle::getDaug(), EvtParticle::getNDaug(), EvtDecayBase::getPHOTOS(), EvtParticle::getSpinDensityForward(), EvtParticle::getSpinStates(), genRecEmupikp::i, EvtDecayIncoherent::isDaughterSpinDensitySet(), MAX_DAUG, EvtParticle::setDecayProb(), EvtSpinDensity::SetDiag(), EvtParticle::setSpinDensityBackward(), EvtParticle::setSpinDensityForward(), EvtDecayIncoherent::spinDensitySet, and subSeperate::temp.

00029                                                 {
00030 
00031   int i;
00032   //initialize this the hard way..
00033   //Lange June 26, 2000
00034   for (i=0; i<MAX_DAUG; i++ ) { spinDensitySet[i]=0;}
00035   _daugsDecayedByParentModel=false;
00036 
00037   decay(p);
00038   p->setDecayProb(1.);
00039 
00040   EvtSpinDensity rho;
00041 
00042   rho.SetDiag(p->getSpinStates());
00043 
00044   p->setSpinDensityBackward(rho);
00045 
00046   if (getPHOTOS() || EvtRadCorr::alwaysRadCorr()) {
00047     EvtRadCorr::doRadCorr(p);
00048   }
00049 
00050   //Now decay the daughters.
00051 
00052   if ( !daugsDecayedByParentModel()) {
00053     
00054     for(i=0;i<p->getNDaug();i++){
00055       //Need to set the spin density of the daughters to be
00056       //diagonal.
00057       rho.SetDiag(p->getDaug(i)->getSpinStates());
00058       //if (p->getDaug(i)->getNDaug()==0){
00059       //only do this if the user has not already set the 
00060       //spin density matrix herself.
00061       //Lange June 26, 2000
00062       if ( isDaughterSpinDensitySet(i)==0 ) { 
00063         p->getDaug(i)->setSpinDensityForward(rho);
00064       }
00065       else{
00066         //report(INFO,"EvtGen") << "spinDensitymatrix already set!!!\n";
00067         EvtSpinDensity temp=p->getDaug(i)->getSpinDensityForward();
00068         //      report(INFO,"EvtGen") <<temp<<endl;
00069       }
00070       //Now decay the daughter.  Really!
00071       p->getDaug(i)->decay();
00072     }
00073 
00074   } 
00075 }

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

Definition at line 587 of file EvtDecayBase.cc.

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

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

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

void EvtDecayBase::noProbMax (  )  [inherited]

Definition at line 304 of file EvtDecayBase.cc.

References EvtDecayBase::defaultprobmax.

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

00304                             {
00305 
00306   defaultprobmax=0;
00307 
00308 }

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

Reimplemented in EvtBtoKD3P, and EvtVSSBMixCPT.

Definition at line 105 of file EvtDecayBase.hh.

References EvtDecayBase::_ndaug.

Referenced by EvtDecayTable::readDecayFile().

00105 { return _ndaug;}

void EvtPhokhara::PhokharaInit ( int  dummy  ) 

Definition at line 846 of file EvtPhokhara.cc.

References first.

00846                                        {
00847   static int first=1;
00848   if (first){
00849     
00850     first=0;
00851     //for(int i=0;i<ncommand;i++)
00852     // lugive0_(commands[i].c_str(),strlen(commands[i].c_str()));
00853   }
00854   
00855 }

void EvtDecayBase::printSummary (  )  [inherited]

Definition at line 259 of file EvtDecayBase.cc.

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

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

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

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

Definition at line 108 of file EvtDecayBase.cc.

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

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

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

Definition at line 167 of file EvtDecayBase.cc.

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

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

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

void EvtDecayIncoherent::setDaughterSpinDensity ( int  daughter  )  [inline, inherited]

Definition at line 36 of file EvtDecayIncoherent.hh.

References EvtDecayIncoherent::spinDensitySet.

Referenced by EvtVectorIsr::decay(), EvtTauola::fixPolarizations(), EvtPythia::fixPolarizations(), EvtOpenCharm::fixPolarizations(), EvtLundCharm::fixPolarizations(), EvtLunda::fixPolarizations(), and EvtJetSet::fixPolarizations().

00037   { spinDensitySet[daughter]=1; return;}

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

Definition at line 69 of file EvtDecayBase.hh.

References EvtDecayBase::_photos.

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

00069 {_photos=1;}

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

Definition at line 297 of file EvtDecayBase.cc.

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

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

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

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

Definition at line 71 of file EvtDecayBase.hh.

References EvtDecayBase::_summary.

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

00071 {_summary=1;}

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

Definition at line 70 of file EvtDecayBase.hh.

References EvtDecayBase::_verbose.

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

00070 {_verbose=1;}

void EvtPhokhara::store ( EvtDecayBase jsdecay  )  [private]

Definition at line 825 of file EvtPhokhara.cc.

References genRecEmupikp::i, nphokharadecays, ntable, and phokharadecays.

00825                                             {
00826 
00827   if (nphokharadecays==ntable){
00828 
00829     EvtDecayBasePtr* newphokharadecays=new EvtDecayBasePtr[2*ntable+10];
00830     int i;
00831     for(i=0;i<ntable;i++){
00832       newphokharadecays[i]=phokharadecays[i];
00833     }
00834     ntable=2*ntable+10;
00835     delete [] phokharadecays;
00836     phokharadecays=newphokharadecays;
00837   }
00838 
00839   phokharadecays[nphokharadecays++]=jsdecay;
00840 
00841 
00842 
00843 }

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

Definition at line 78 of file EvtDecayBase.hh.

References EvtDecayBase::_summary.

Referenced by EvtParticleDecayList::EvtParticleDecayList().

00078 {return _summary; }

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

Definition at line 79 of file EvtDecayBase.hh.

References EvtDecayBase::_verbose.

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

00079 {return _verbose; }


Member Data Documentation

bool EvtDecayBase::_daugsDecayedByParentModel [protected, inherited]

Definition at line 109 of file EvtDecayBase.hh.

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

double EvtPhokhara::Ar[14] [private]

Definition at line 95 of file EvtPhokhara.hh.

Referenced by decay(), and init_mode().

double EvtPhokhara::Ar_r[14] [private]

Definition at line 95 of file EvtPhokhara.hh.

Referenced by decay(), and init_mode().

std::string * EvtPhokhara::commands = 0 [static, private]

Definition at line 66 of file EvtPhokhara.hh.

Referenced by command(), and ~EvtPhokhara().

double EvtPhokhara::cos1max [private]

Definition at line 94 of file EvtPhokhara.hh.

Referenced by decay(), init_evt(), and init_mode().

double EvtPhokhara::cos1min [private]

Definition at line 94 of file EvtPhokhara.hh.

Referenced by decay(), init_evt(), and init_mode().

double EvtPhokhara::cos2max [private]

Definition at line 94 of file EvtPhokhara.hh.

Referenced by decay(), init_evt(), and init_mode().

double EvtPhokhara::cos2min [private]

Definition at line 94 of file EvtPhokhara.hh.

Referenced by decay(), init_evt(), and init_mode().

double EvtPhokhara::cos3max [private]

Definition at line 94 of file EvtPhokhara.hh.

Referenced by decay(), init_evt(), and init_mode().

double EvtPhokhara::cos3min [private]

Definition at line 94 of file EvtPhokhara.hh.

Referenced by decay(), init_evt(), and init_mode().

double EvtPhokhara::dsigm [private]

Definition at line 95 of file EvtPhokhara.hh.

Referenced by ~EvtPhokhara().

double EvtPhokhara::dsigm1 [private]

Definition at line 95 of file EvtPhokhara.hh.

Referenced by ~EvtPhokhara().

double EvtPhokhara::dsigm2 [private]

Definition at line 95 of file EvtPhokhara.hh.

Referenced by ~EvtPhokhara().

int EvtPhokhara::ievent [private]

Definition at line 97 of file EvtPhokhara.hh.

Referenced by decay(), and ~EvtPhokhara().

int EvtPhokhara::lcommand = 0 [static, private]

Definition at line 65 of file EvtPhokhara.hh.

Referenced by command().

double EvtPhokhara::m_E [private]

Definition at line 83 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

int EvtPhokhara::m_f0_model [private]

Definition at line 82 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

int EvtPhokhara::m_FF_Kaon [private]

Definition at line 80 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

int EvtPhokhara::m_FF_Pion [private]

Definition at line 81 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

int EvtPhokhara::m_fsr [private]

Definition at line 75 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

int EvtPhokhara::m_fsrnlo [private]

Definition at line 76 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

double EvtPhokhara::m_gmin [private]

Definition at line 87 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

long int EvtPhokhara::m_initSeed [private]

Definition at line 98 of file EvtPhokhara.hh.

Referenced by init_mode().

int EvtPhokhara::m_ivac [private]

Definition at line 77 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

int EvtPhokhara::m_NarrowRes [private]

Definition at line 79 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

int EvtPhokhara::m_nlo [private]

Definition at line 71 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

int EvtPhokhara::m_nm [private]

Definition at line 70 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

double EvtPhokhara::m_phot1cut [private]

Definition at line 88 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

double EvtPhokhara::m_phot2cut [private]

Definition at line 89 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

double EvtPhokhara::m_pi1cut [private]

Definition at line 90 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

double EvtPhokhara::m_pi2cut [private]

Definition at line 91 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

int EvtPhokhara::m_pion [private]

Definition at line 73 of file EvtPhokhara.hh.

Referenced by decay(), init_evt(), and init_mode().

double EvtPhokhara::m_q2_max_c [private]

Definition at line 86 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

double EvtPhokhara::m_q2_min_c [private]

Definition at line 85 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

double EvtPhokhara::m_q2min [private]

Definition at line 84 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

int EvtPhokhara::m_tagged [private]

Definition at line 78 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

double EvtPhokhara::m_w [private]

Definition at line 72 of file EvtPhokhara.hh.

Referenced by init_evt(), and init_mode().

int EvtPhokhara::ncommand = 0 [static, private]

Definition at line 64 of file EvtPhokhara.hh.

Referenced by command().

int EvtPhokhara::nevt = 0 [static, private]

Definition at line 67 of file EvtPhokhara.hh.

Referenced by getTotalEvt().

std::vector<int> EvtPhokhara::nevtgen [private]

Definition at line 100 of file EvtPhokhara.hh.

Referenced by decay(), and init().

int EvtPhokhara::nphokharadecays = 0 [static, private]

Definition at line 60 of file EvtPhokhara.hh.

Referenced by store(), and ~EvtPhokhara().

int EvtPhokhara::ntable = 0 [static, private]

Definition at line 62 of file EvtPhokhara.hh.

Referenced by store().

EvtDecayBasePtr * EvtPhokhara::phokharadecays = 0 [static, private]

Definition at line 61 of file EvtPhokhara.hh.

Referenced by store(), and ~EvtPhokhara().

double EvtPhokhara::qqmax [private]

Definition at line 93 of file EvtPhokhara.hh.

Referenced by decay(), init_evt(), and init_mode().

double EvtPhokhara::qqmin [private]

Definition at line 93 of file EvtPhokhara.hh.

Referenced by decay(), init_evt(), and init_mode().

double EvtPhokhara::sigma [private]

Definition at line 95 of file EvtPhokhara.hh.

Referenced by ~EvtPhokhara().

double EvtPhokhara::sigma1 [private]

Definition at line 95 of file EvtPhokhara.hh.

Referenced by ~EvtPhokhara().

double EvtPhokhara::sigma2 [private]

Definition at line 95 of file EvtPhokhara.hh.

Referenced by ~EvtPhokhara().

std::vector<std::vector<double> > EvtPhokhara::theMmax [private]

Definition at line 99 of file EvtPhokhara.hh.

Referenced by init(), and init_evt().

std::vector<std::string> EvtPhokhara::Vfs [private]

Definition at line 101 of file EvtPhokhara.hh.

Referenced by decay(), and init().


Generated on Tue Nov 29 23:19:11 2016 for BOSS_7.0.2 by  doxygen 1.4.7