EvtPhokhara_4pi Class Reference

#include <EvtPhokhara_4pi.hh>

Inheritance diagram for EvtPhokhara_4pi:

EvtDecayIncoherent EvtDecayBase List of all members.

Public Member Functions

 EvtPhokhara_4pi ()
virtual ~EvtPhokhara_4pi ()
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 init_pars ()
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
double theMmax0
double theMmax1

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
static int nevtgen = 0

Detailed Description

Definition at line 33 of file EvtPhokhara_4pi.hh.


Constructor & Destructor Documentation

EvtPhokhara_4pi::EvtPhokhara_4pi (  ) 

Definition at line 67 of file EvtPhokhara_4pi.cc.

00067 {}

EvtPhokhara_4pi::~EvtPhokhara_4pi (  )  [virtual]

Definition at line 68 of file EvtPhokhara_4pi.cc.

References commands, calibUtil::ERROR, genRecEmupikp::i, nphokharadecays, phokharadecays, and report().

00068                                  {
00069   int i;
00070   //the deletion of commands is really uggly!
00071 
00072   if (nphokharadecays==0) {
00073     delete [] commands;
00074     commands=0;
00075     return;
00076   }
00077 
00078   for(i=0;i<nphokharadecays;i++){
00079     if (phokharadecays[i]==this){
00080       phokharadecays[i]=phokharadecays[nphokharadecays-1];
00081       nphokharadecays--;
00082       if (nphokharadecays==0) {
00083         delete [] commands;
00084         commands=0;
00085       }
00086       return;
00087     }
00088   }
00089 
00090   report(ERROR,"EvtGen") << "Error in destroying Phokhara model!"<<endl;
00091  
00092 }


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(), init(), EvtPhokhara::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(), EvtPhokhara::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_4pi::clone (  )  [virtual]

Implements EvtDecayBase.

Definition at line 101 of file EvtPhokhara_4pi.cc.

00101                                     {
00102 
00103   return new EvtPhokhara_4pi;
00104 
00105 }

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

Reimplemented from EvtDecayBase.

Definition at line 508 of file EvtPhokhara_4pi.cc.

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

00508                                           {
00509 
00510   if (ncommand==lcommand){
00511 
00512     lcommand=10+2*lcommand;
00513 
00514     std::string* newcommands=new std::string[lcommand];
00515     
00516     int i;
00517 
00518     for(i=0;i<ncommand;i++){
00519       newcommands[i]=commands[i];
00520     }
00521     
00522     delete [] commands;
00523 
00524     commands=newcommands;
00525 
00526   }
00527 
00528   commands[ncommand]=cmd;
00529 
00530   ncommand++;
00531 
00532 }

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

Reimplemented from EvtDecayBase.

Definition at line 502 of file EvtPhokhara_4pi.cc.

References deljobs::string.

00502                                       {
00503      
00504   return std::string("PhokharaPar");
00505   
00506 }

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_4pi::decay ( EvtParticle p  )  [virtual]

Implements EvtDecayBase.

Definition at line 536 of file EvtPhokhara_4pi.cc.

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

00536                                           {
00537   EvtId myvpho=EvtPDL::getId("vpho");
00538   if(p->getId()!=myvpho) {std::cout<<"Parent particle is required to be vpho for Phokhara model"<<std::endl;abort();}
00539   if(nevtgen==0) {init_mode(p);}
00540   else{init_evt(p);}
00541  std::cout<<"PHOKHARA :  2(pi+pi-)  mode "<<std::endl;
00542 
00543 
00544   int istdheppar=EvtPDL::getStdHep(p->getId());
00545   int ntrials = 0;
00546   int tr_old[2];
00547   tr_old[0] = (int)maxima_.tr[0];
00548   tr_old[1] = (int)maxima_.tr[1];
00549 
00550   while( ntrials < 10000)
00551     {
00552       ievent++;
00553       RANLXDF(Ar_r,1);
00554       Ar[1] = Ar_r[0];
00555       
00556       if (Ar[1] <= (maxima_.Mmax[0]/(maxima_.Mmax[0]+maxima_.Mmax[1]))) {
00557         maxima_.count[0] = maxima_.count[0]+1.0;
00558         GEN_1PH(2,qqmin,qqmax,cos1min,cos1max,cos3min,cos3max);
00559       }
00560       else {
00561         maxima_.count[1] = maxima_.count[1]+1.0;
00562         GEN_2PH(2,qqmin,cos1min,cos1max,cos2min,cos2max,cos3min,cos3max);
00563       }
00564       
00565       if( ((int)maxima_.tr[0]+(int)maxima_.tr[1]) > (tr_old[0]+tr_old[1]) ) // event accepted after cuts
00566         {
00567           goto storedEvents;
00568         }
00569       ntrials ++;
00570     }
00571   
00572   std::cout <<"FATAL: Could not satisfy cuts after " << ntrials << "trials. Terminate." <<std::endl;
00573   //----
00574  storedEvents:
00575   int more=0;
00576   int numstable=0;
00577   int numparton=0;
00578   EvtId evtnumstable[100];//
00579   EvtVector4R p4[20];
00580 
00581   // except ISR photos, products depending on channel
00582   if (flags_.pion == 0) { // mu+ mu-
00583     // mu+
00584     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-13);
00585     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00586     numstable++;
00587     // mu -
00588     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(13);
00589     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00590     numstable++;
00591   }
00592   if (flags_.pion == 1) { // pi+ pi-
00593     // pi+
00594     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
00595     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00596     numstable++;
00597     // pi -
00598     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
00599     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00600     numstable++;
00601   }
00602   if (flags_.pion == 2) { // pi+ pi-2pi0
00603     // pi0
00604     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(111);
00605     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00606     numstable++;
00607     // pi0
00608     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(111);
00609     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00610     numstable++;
00611     // pi-
00612     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
00613     p4[numstable].set(ctes_.momenta[0][7],ctes_.momenta[1][7], ctes_.momenta[2][7], ctes_.momenta[3][7]);     
00614     numstable++;
00615     // pi +
00616     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
00617     p4[numstable].set(ctes_.momenta[0][8],ctes_.momenta[1][8], ctes_.momenta[2][8], ctes_.momenta[3][8]);     
00618     numstable++;
00619   }   
00620   if (flags_.pion == 3) { // 2(pi+ pi-)
00621     // pi+
00622     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
00623     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00624     numstable++;
00625     // pi-
00626     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
00627     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00628     numstable++;
00629     // pi+
00630     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
00631     p4[numstable].set(ctes_.momenta[0][7],ctes_.momenta[1][7], ctes_.momenta[2][7], ctes_.momenta[3][7]);     
00632     numstable++;
00633     // pi -
00634     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
00635     p4[numstable].set(ctes_.momenta[0][8],ctes_.momenta[1][8], ctes_.momenta[2][8], ctes_.momenta[3][8]);     
00636     numstable++;
00637   }   
00638   if (flags_.pion == 4) { // ppbar
00639     // pbar
00640     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-2212);
00641     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00642     numstable++;
00643     // p
00644     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(2212);
00645     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00646     numstable++;
00647   }
00648   if (flags_.pion == 5) { // nnbar
00649     // pbar
00650     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-2112);
00651     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00652     numstable++;
00653     // p
00654     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(2112);
00655     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00656     numstable++;
00657   }
00658   if (flags_.pion == 6) { // K+ K-
00659     // K+
00660     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(321);
00661     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00662     numstable++;
00663     // K -
00664     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-321);
00665     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00666     numstable++;
00667   }
00668   if (flags_.pion == 7) { // K0K0bar
00669     // Kbar
00670     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(311);
00671     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00672     numstable++;
00673     // K0
00674     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-311);
00675     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00676     numstable++;
00677   }
00678   if (flags_.pion == 8) { // pi+ pi-pi0
00679     // pi+
00680     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
00681     p4[numstable].set(ctes_.momenta[0][5],ctes_.momenta[1][5], ctes_.momenta[2][5], ctes_.momenta[3][5]);     
00682     numstable++;
00683     // pi-
00684     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
00685     p4[numstable].set(ctes_.momenta[0][6],ctes_.momenta[1][6], ctes_.momenta[2][6], ctes_.momenta[3][6]);     
00686     numstable++;
00687     // pi0
00688     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(111);
00689     p4[numstable].set(ctes_.momenta[0][7],ctes_.momenta[1][7], ctes_.momenta[2][7], ctes_.momenta[3][7]);     
00690     numstable++;
00691   } 
00692   if (flags_.pion == 9) { //Lambda Lambdabar-> pi+ pi- ppbar
00693     // pi+
00694     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(211);
00695     p4[numstable].set(ctes_.momenta[0][7],ctes_.momenta[1][7], ctes_.momenta[2][7], ctes_.momenta[3][7]);     
00696     numstable++;
00697     // pbar
00698     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-2212);
00699     p4[numstable].set(ctes_.momenta[0][8],ctes_.momenta[1][8], ctes_.momenta[2][8], ctes_.momenta[3][8]);     
00700     numstable++;
00701     // pi-
00702     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(-211);
00703     p4[numstable].set(ctes_.momenta[0][9],ctes_.momenta[1][9], ctes_.momenta[2][9], ctes_.momenta[3][9]);     
00704     numstable++; 
00705     // p
00706     evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(2212);
00707     p4[numstable].set(ctes_.momenta[0][10],ctes_.momenta[1][10], ctes_.momenta[2][10], ctes_.momenta[3][10]);     
00708     numstable++;
00709   }   
00710   
00711  // ISR gamma      
00712   evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(22);
00713   p4[numstable].set(ctes_.momenta[0][2],ctes_.momenta[1][2], ctes_.momenta[2][2], ctes_.momenta[3][2]);     
00714   numstable++;
00715   if( ctes_.momenta[0][3] != 0 ) // second photon exists
00716     {
00717       evtnumstable[numstable]=EvtPDL::evtIdFromStdHep(22);
00718       p4[numstable].set(ctes_.momenta[0][3],ctes_.momenta[1][3], ctes_.momenta[2][3], ctes_.momenta[3][3]);     
00719       numstable++;
00720     }
00721   
00722   int channel=EvtDecayTable::inChannelList(p->getId(),numstable,evtnumstable);
00723   more=(channel!=-1);
00724   if(more) {std::cout<<"Existence of mode "<<channel<<" in exclusive decay list has the same final state as this one"<<std::endl;abort(); }
00725   
00726   p->makeDaughters(numstable,evtnumstable);
00727   //double weight = p->initializePhaseSpace(getNDaug(),getDaugs());
00728 
00729   int ndaugFound=0;
00730   EvtVector4R SUMP4(0,0,0,0);
00731   for(int i=0;i<numstable;i++){
00732     p->getDaug(i)->init(evtnumstable[i],p4[i]);
00733     ndaugFound++;
00734   }
00735   if ( ndaugFound == 0 ) {
00736     report(ERROR,"EvtGen") << "Phokhara has failed to do a decay ";
00737     report(ERROR,"EvtGen") << EvtPDL::name(p->getId()).c_str() << " " << p->mass()<<endl;
00738     assert(0);
00739   }
00740 
00741   nevtgen++;  
00742   return ;
00743   
00744 }

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_4pi::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(), EvtPhokhara::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(), EvtPhokhara::init_evt(), EvtPhokhara::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_4pi::getName ( std::string name  )  [virtual]

Implements EvtDecayBase.

Definition at line 95 of file EvtPhokhara_4pi.cc.

00095                                                   {
00096 
00097   model_name="PHOKHARA_4pi";     
00098 
00099 }

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(), init(), EvtPhokhara::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_4pi::getTotalEvt (  )  [inline]

Definition at line 52 of file EvtPhokhara_4pi.hh.

References nevt.

00052 {return nevt;}

void EvtPhokhara_4pi::init (  )  [virtual]

Reimplemented from EvtDecayBase.

Definition at line 477 of file EvtPhokhara_4pi.cc.

References EvtDecayBase::checkNArg(), calibUtil::ERROR, EvtDecayBase::getParentId(), EvtPDL::name(), report(), store(), and deljobs::string.

00477                           {
00478   checkNArg(0);
00479 
00480   std::string locvp=getenv("BESEVTGENROOT");
00481   system("cat $BESEVTGENROOT/share/phokhara.param>phokhara.param");
00482 
00483   
00484   if (getParentId().isAlias()){
00485     
00486     report(ERROR,"EvtGen") << "EvtPhokhara finds that you are decaying the"<<endl
00487                            << " aliased particle "
00488                            << EvtPDL::name(getParentId()).c_str()
00489                            << " with the Phokhara model"<<endl
00490                            << " this does not work, please modify decay table."
00491                            << endl;
00492     report(ERROR,"EvtGen") << "Will terminate execution!"<<endl;
00493     ::abort();
00494 
00495   }
00496 
00497   store(this);
00498 
00499 }

void EvtPhokhara_4pi::init_evt ( EvtParticle p  ) 

Definition at line 782 of file EvtPhokhara_4pi.cc.

References cos(), cos1max, cos1min, cos2max, cos2min, cos3max, cos3min, ctes_, cuts_, flags_, EvtPDL::getId(), genRecEmupikp::i, init_pars(), 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_phot1cut, m_phot2cut, m_pi1cut, m_pi2cut, m_pion, m_q2_max_c, m_q2_min_c, m_q2min, m_w, EvtParticle::mass(), maxima_, qqmax, qqmin, theMmax0, and theMmax1.

Referenced by decay().

00782                                             {
00783  m_pion=3; 
00784  // mu+mu-(0),pi+pi-(1),2pi0pi+pi-(2),
00785  // 2pi+2pi-(3),ppbar(4),nnbar(5),
00786  // K+K-(6),K0K0bar(7),pi+pi-pi0(8), 
00787  // Lamb Lambbar->pi-pi+ppbar(9) 
00788   if(m_pion<0 || m_pion>9){std::cout<<"mode index for phokhar 0~9, but you give "<<m_pion<<std::endl;abort();}
00789   EvtId myvpho=EvtPDL::getId("vpho");
00790   m_E = p->mass();//EvtPDL::getMeanMass(myvpho);
00792   init_pars();
00793 // --- input parameter initialization -----------
00794   maxima_.iprint = 0;
00795   flags_.nlo = m_nlo;
00796   flags_.pion = m_pion;
00797   flags_.fsr = m_fsr;
00798   flags_.fsrnlo = m_fsrnlo;
00799   flags_.ivac = m_ivac;
00800   flags_.FF_pion  = m_FF_Pion;
00801   flags_.f0_model = m_f0_model;
00802   flags_.FF_kaon  = m_FF_Kaon;
00803   flags_.narr_res = m_NarrowRes;
00804 
00805   ctes_.Sp = m_E*m_E;        ;
00806 
00807   cuts_.w = m_w;
00808   cuts_.q2min = m_q2min;
00809   cuts_.q2_min_c = m_q2_min_c;
00810   cuts_.q2_max_c = m_q2_max_c;
00811   cuts_.gmin = m_gmin;
00812   cuts_.phot1cut = m_phot1cut;
00813   cuts_.phot2cut = m_phot2cut;
00814   cuts_.pi1cut = m_pi1cut;
00815   cuts_.pi2cut = m_pi2cut;
00816 
00817   INPUT();
00818 
00819     cos1min = cos(cuts_.phot2cut*ctes_.pi/180.0);     // photon1 angle cuts in the 
00820     cos1max = cos(cuts_.phot1cut*ctes_.pi/180.0);     // LAB rest frame   
00821       cos2min = -1.0;                        // photon2 angle limits      
00822       cos2max =  1.0;                        //                           
00823       cos3min = -1.0;                        // hadrons/muons angle limits    
00824       cos3max =  1.0;                        // in their rest frame            
00825       if (flags_.pion == 0)                   // virtual photon energy cut 
00826         qqmin = 4.0*ctes_.mmu*ctes_.mmu;
00827       else if (flags_.pion == 1)
00828         qqmin = 4.0*ctes_.mpi*ctes_.mpi;
00829       else if (flags_.pion == 2)
00830         qqmin = 4.0*(ctes_.mpi+ctes_.mpi0)*(ctes_.mpi+ctes_.mpi0);
00831       else if (flags_.pion == 3)
00832         qqmin = 16.0*ctes_.mpi*ctes_.mpi;
00833       else if (flags_.pion == 4)
00834         qqmin = 4.0*ctes_.mp*ctes_.mp;
00835       else if (flags_.pion == 5)
00836         qqmin = 4.0*ctes_.mnt*ctes_.mnt;
00837       else if (flags_.pion == 6)
00838         qqmin = 4.0*ctes_.mKp*ctes_.mKp;
00839       else if (flags_.pion == 7)
00840         qqmin = 4.0*ctes_.mKn*ctes_.mKn;
00841       else if (flags_.pion == 8)
00842         qqmin = (2.0*ctes_.mpi+ctes_.mpi0)*(2.0*ctes_.mpi+ctes_.mpi0);
00843       else if (flags_.pion == 9)
00844         qqmin = 4.0*ctes_.mlamb*ctes_.mlamb;
00845       qqmax = ctes_.Sp-2.0*sqrt(ctes_.Sp)*cuts_.gmin;         // if only one photon 
00846       if (cuts_.q2_max_c < qqmax)
00847         qqmax=cuts_.q2_max_c;      // external cuts      
00848 
00849       // -------------------
00850       if ( (cuts_.q2_min_c > qqmin) && (cuts_.q2_min_c < (ctes_.Sp*(1.0-2.0*(cuts_.gmin/sqrt(ctes_.Sp)+cuts_.w))) ) )
00851         qqmin = cuts_.q2_min_c;
00852       else {
00853       }
00854 
00855 
00856  // =================================================
00857 // --- finding the maximum -------------------------
00858       for(int i = 0; i<2; i++)
00859         {
00860           maxima_.Mmax[i] = 1.0;
00861           maxima_.gross[i] = 0.0;
00862           maxima_.klein[i] = 0.0;
00863         }
00864       if (flags_.nlo == 0)
00865         maxima_.Mmax[1]=0.0;   // only 1 photon events generated
00866 
00867       maxima_.tr[0] = 0.0;
00868       maxima_.tr[1] = 0.0;
00869       maxima_.count[0] = 0.0;
00870       maxima_.count[1] = 0.0;
00871 
00872       // =================================================
00873       // --- for the second run ---
00874       maxima_.Mmax[0] = theMmax0; 
00875       maxima_.Mmax[1] = theMmax1; 
00876       if((flags_.pion == 1) && (flags_.fsrnlo == 1))
00877         maxima_.Mmax[1]=maxima_.Mmax[1]*1.5;
00878       if((flags_.pion == 0) && (flags_.fsrnlo == 1))
00879         maxima_.Mmax[1]=maxima_.Mmax[1]*1.5;
00880 
00881       if((flags_.pion == 0) && (flags_.fsr == 1) && (flags_.fsrnlo == 0))
00882         maxima_.Mmax[1]=maxima_.Mmax[1]*1.2;
00883 
00884       if((flags_.pion == 2) || (flags_.pion == 3)){
00885         maxima_.Mmax[0]=maxima_.Mmax[0]*1.1;
00886         maxima_.Mmax[1]=maxima_.Mmax[1]*1.1;
00887       }
00888 
00889       if(flags_.pion == 8){
00890         maxima_.Mmax[0]=maxima_.Mmax[0]*1.08;
00891         maxima_.Mmax[1]=maxima_.Mmax[1]*1.1;
00892       }
00893 // --- end of the second run -----------------------
00894 
00895       maxima_.tr[0] = 0.0;
00896       maxima_.tr[1] = 0.0;
00897       maxima_.count[0] = 0.0;
00898       maxima_.count[1] = 0.0;
00899 }

void EvtPhokhara_4pi::init_mode ( EvtParticle p  ) 

Definition at line 115 of file EvtPhokhara_4pi.cc.

References Ar, Ar_r, cos(), cos1max, cos1min, cos2max, cos2min, cos3max, cos3min, ctes_, cuts_, flags_, GEN_1PH, EvtPDL::getId(), genRecEmupikp::i, init_pars(), 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_w, EvtParticle::mass(), maxima_, qqmax, qqmin, RANLXDF, and RLXDINIT.

Referenced by decay().

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

void EvtPhokhara_4pi::init_pars (  ) 

Definition at line 902 of file EvtPhokhara_4pi.cc.

References 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, and m_w.

Referenced by init_evt(), and init_mode().

00902                                {
00903   m_tagged = 0;
00904   m_nm = 50000 ; // # of events to determine the maximum
00905   m_nlo = 1;     // Born(0), NLO(1)
00906   m_w = 0.00001;  // soft photon cutoff
00907   m_fsr = 0;     // ISR only(0), ISR+FSR(1), ISR+INT+FSR(2)
00908   m_fsrnlo = 0 ; // yes(1), no(0)
00909   m_NarrowRes = 0 ;// none(0) jpsi(1) psip(2)
00910   m_FF_Kaon = 1 ;  // constrained (0), unconstrained (1), Kuhn-Khodjamirian-Bruch (2)
00911   m_ivac = 0;      // yes(1), no(0)
00912   m_FF_Pion = 0 ;  // KS Pionformfactor(0), GS Pionformfactor old(1) and new(2)
00913   m_f0_model = 0 ; // f0+f0(600): KK model(0), no structure(1),  no f0+f0(600)(2), f0 KLOE(3)
00914   m_q2min    = (4*0.135)*(4*0.135); // minimal  hadrons(muons)-gamma-inv mass squared (GeV^2)
00915   m_q2_min_c =  m_q2min ; // minimal inv. mass squared of the hadrons(muons)(GeV^2)
00916   m_q2_max_c = m_E*m_E;    // maximal inv. mass squared of the hadrons(muons)(GeV^2)
00917   m_gmin = 0.001;       // minimal photon energy/missing energy   (GeV) //total Ecm will reduce m_gmin
00918   m_phot1cut = 0.0;     // maximal photon angle/missing momentum angle (grad)
00919   m_phot2cut = 180.0;   // maximal photon angle/missing momentum angle (grad)
00920   m_pi1cut = 0.0 ;      // minimal hadrons(muons) angle (grad)
00921   m_pi2cut = 180.0;     // maximal hadrons(muons) angle (grad)
00922   if(!(m_pion==0 || m_pion==1 || m_pion==6)){m_fsr = 0;  m_fsrnlo = 0 ;}
00923   if( m_pion==9 ){m_nlo = 0 ;}
00924 }

void EvtPhokhara_4pi::initProbMax (  )  [virtual]

Reimplemented from EvtDecayBase.

Definition at line 108 of file EvtPhokhara_4pi.cc.

References EvtDecayBase::noProbMax().

00108                                  {
00109 
00110   noProbMax();
00111 
00112 }

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(), initProbMax(), EvtPhokhara::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_4pi::PhokharaInit ( int  dummy  ) 

Definition at line 769 of file EvtPhokhara_4pi.cc.

References first.

00769                                            {
00770   static int first=1;
00771   if (first){
00772     
00773     first=0;
00774     //for(int i=0;i<ncommand;i++)
00775     // lugive0_(commands[i].c_str(),strlen(commands[i].c_str()));
00776   }
00777   
00778 }

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_4pi::store ( EvtDecayBase jsdecay  )  [private]

Definition at line 748 of file EvtPhokhara_4pi.cc.

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

Referenced by init().

00748                                                 {
00749 
00750   if (nphokharadecays==ntable){
00751 
00752     EvtDecayBasePtr* newphokharadecays=new EvtDecayBasePtr[2*ntable+10];
00753     int i;
00754     for(i=0;i<ntable;i++){
00755       newphokharadecays[i]=phokharadecays[i];
00756     }
00757     ntable=2*ntable+10;
00758     delete [] phokharadecays;
00759     phokharadecays=newphokharadecays;
00760   }
00761 
00762   phokharadecays[nphokharadecays++]=jsdecay;
00763 
00764 
00765 
00766 }

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_4pi::Ar[14] [private]

Definition at line 97 of file EvtPhokhara_4pi.hh.

Referenced by decay(), and init_mode().

double EvtPhokhara_4pi::Ar_r[14] [private]

Definition at line 97 of file EvtPhokhara_4pi.hh.

Referenced by decay(), and init_mode().

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

Definition at line 67 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::cos1max [private]

Definition at line 96 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::cos1min [private]

Definition at line 96 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::cos2max [private]

Definition at line 96 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::cos2min [private]

Definition at line 96 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::cos3max [private]

Definition at line 96 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::cos3min [private]

Definition at line 96 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::dsigm [private]

Definition at line 97 of file EvtPhokhara_4pi.hh.

double EvtPhokhara_4pi::dsigm1 [private]

Definition at line 97 of file EvtPhokhara_4pi.hh.

double EvtPhokhara_4pi::dsigm2 [private]

Definition at line 97 of file EvtPhokhara_4pi.hh.

int EvtPhokhara_4pi::ievent [private]

Definition at line 99 of file EvtPhokhara_4pi.hh.

Referenced by decay().

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

Definition at line 66 of file EvtPhokhara_4pi.hh.

Referenced by command().

double EvtPhokhara_4pi::m_E [private]

Definition at line 85 of file EvtPhokhara_4pi.hh.

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

int EvtPhokhara_4pi::m_f0_model [private]

Definition at line 84 of file EvtPhokhara_4pi.hh.

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

int EvtPhokhara_4pi::m_FF_Kaon [private]

Definition at line 82 of file EvtPhokhara_4pi.hh.

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

int EvtPhokhara_4pi::m_FF_Pion [private]

Definition at line 83 of file EvtPhokhara_4pi.hh.

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

int EvtPhokhara_4pi::m_fsr [private]

Definition at line 77 of file EvtPhokhara_4pi.hh.

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

int EvtPhokhara_4pi::m_fsrnlo [private]

Definition at line 78 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::m_gmin [private]

Definition at line 89 of file EvtPhokhara_4pi.hh.

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

long int EvtPhokhara_4pi::m_initSeed [private]

Definition at line 100 of file EvtPhokhara_4pi.hh.

Referenced by init_mode().

int EvtPhokhara_4pi::m_ivac [private]

Definition at line 79 of file EvtPhokhara_4pi.hh.

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

int EvtPhokhara_4pi::m_NarrowRes [private]

Definition at line 81 of file EvtPhokhara_4pi.hh.

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

int EvtPhokhara_4pi::m_nlo [private]

Definition at line 73 of file EvtPhokhara_4pi.hh.

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

int EvtPhokhara_4pi::m_nm [private]

Definition at line 72 of file EvtPhokhara_4pi.hh.

Referenced by init_mode(), and init_pars().

double EvtPhokhara_4pi::m_phot1cut [private]

Definition at line 90 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::m_phot2cut [private]

Definition at line 91 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::m_pi1cut [private]

Definition at line 92 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::m_pi2cut [private]

Definition at line 93 of file EvtPhokhara_4pi.hh.

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

int EvtPhokhara_4pi::m_pion [private]

Definition at line 75 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::m_q2_max_c [private]

Definition at line 88 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::m_q2_min_c [private]

Definition at line 87 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::m_q2min [private]

Definition at line 86 of file EvtPhokhara_4pi.hh.

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

int EvtPhokhara_4pi::m_tagged [private]

Definition at line 80 of file EvtPhokhara_4pi.hh.

Referenced by init_pars().

double EvtPhokhara_4pi::m_w [private]

Definition at line 74 of file EvtPhokhara_4pi.hh.

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

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

Definition at line 65 of file EvtPhokhara_4pi.hh.

Referenced by command().

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

Definition at line 68 of file EvtPhokhara_4pi.hh.

Referenced by getTotalEvt().

int EvtPhokhara_4pi::nevtgen = 0 [static, private]

Definition at line 69 of file EvtPhokhara_4pi.hh.

Referenced by decay().

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

Definition at line 61 of file EvtPhokhara_4pi.hh.

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

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

Definition at line 63 of file EvtPhokhara_4pi.hh.

Referenced by store().

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

Definition at line 62 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::qqmax [private]

Definition at line 95 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::qqmin [private]

Definition at line 95 of file EvtPhokhara_4pi.hh.

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

double EvtPhokhara_4pi::sigma [private]

Definition at line 97 of file EvtPhokhara_4pi.hh.

double EvtPhokhara_4pi::sigma1 [private]

Definition at line 97 of file EvtPhokhara_4pi.hh.

double EvtPhokhara_4pi::sigma2 [private]

Definition at line 97 of file EvtPhokhara_4pi.hh.

double EvtPhokhara_4pi::theMmax0 [private]

Definition at line 101 of file EvtPhokhara_4pi.hh.

Referenced by init_evt().

double EvtPhokhara_4pi::theMmax1 [private]

Definition at line 101 of file EvtPhokhara_4pi.hh.

Referenced by init_evt().


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