/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Generator/BesEvtGen/BesEvtGen-00-03-58/src/EvtGen/EvtGenModels/EvtJTO3P.cc

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 //
00003 // Environment:
00004 //      This software is part of models developed at BES collaboration
00005 //      based on the EvtGen framework.  If you use all or part
00006 //      of it, please give an appropriate acknowledgement.
00007 //
00008 // Copyright Information: See EvtGen/BesCopyright
00009 //      Copyright (A) 2006      Ping Rong-Gang @IHEP
00010 //
00011 // Module:  EvtJTO3P.cc
00012 //
00013 // Description: Routine to a vector decays into 3 pseudoscalar with only contact term
00014     
00015 //
00016 // Modification history:
00017 //
00018 //  Ping R.-G.    December, 2007       Module created
00019 //
00020 //------------------------------------------------------------------------
00021 
00022 #include "EvtGenBase/EvtPatches.hh"
00023 #include <stdlib.h>
00024 #include "EvtGenBase/EvtParticle.hh"
00025 #include "EvtGenBase/EvtGenKine.hh"
00026 #include "EvtGenBase/EvtPDL.hh"
00027 #include "EvtGenBase/EvtVector4C.hh"
00028 #include "EvtGenBase/EvtVector4R.hh"
00029 #include "EvtGenBase/EvtTensor4C.hh"
00030 #include "EvtGenBase/EvtDiracParticle.hh"
00031 #include "EvtGenBase/EvtScalarParticle.hh"
00032 #include "EvtGenBase/EvtVectorParticle.hh"
00033 #include "EvtGenBase/EvtTensorParticle.hh"
00034 #include "EvtGenBase/EvtPhotonParticle.hh" 
00035 #include "EvtGenBase/EvtNeutrinoParticle.hh"
00036 #include "EvtGenBase/EvtStringParticle.hh"
00037 #include "EvtGenBase/EvtRaritaSchwingerParticle.hh"
00038 #include "EvtGenBase/EvtHighSpinParticle.hh"
00039 #include "EvtGenBase/EvtReport.hh"
00040 #include "EvtGenModels/EvtJTO3P.hh"
00041 #include "EvtGenBase/EvtRandom.hh"
00042 #include "EvtGenBase/EvtEulerAngles.hh"
00043 #include <string>
00044 using namespace std;  //::endl;
00045 
00046 EvtJTO3P::~EvtJTO3P() {}
00047 
00048 void EvtJTO3P::getName(std::string& model_name){
00049 
00050   model_name="JTO3P";     
00051 
00052 }
00053 
00054 EvtDecayBase* EvtJTO3P::clone(){
00055 
00056   return new EvtJTO3P;
00057 
00058 }
00059 
00060 
00061 void EvtJTO3P::init(){
00062 
00063 // check that there are 1 arguments:angular distribution parameter 
00064 //  checkNArg(0);
00065   checkNDaug(3);
00066   checkSpinParent(EvtSpinType::VECTOR);
00067   checkSpinDaughter(0,EvtSpinType::SCALAR);
00068   checkSpinDaughter(1,EvtSpinType::SCALAR);
00069   checkSpinDaughter(2,EvtSpinType::SCALAR);
00070 }
00071 
00072 //void EvtJTO3P::initProbMax(){
00073 // setProbMax(1.0);
00074 //}
00075 
00076 
00077 void EvtJTO3P::decay( EvtParticle *p ){
00078 
00079  p->initializePhaseSpace(getNDaug(),getDaugs());
00080        
00081        EvtVector4R mompi1 = p->getDaug(0)->getP4();
00082        EvtVector4R mompi2 = p->getDaug(1)->getP4();
00083        EvtVector4R mompi3 = p->getDaug(2)->getP4();
00084        EvtVector4R Zaxis  = mompi2.cross(mompi3);
00085        
00086        EvtEulerAngles EA(mompi1,Zaxis);
00087        double alpha=EA.getAlpha();
00088        double beta =EA.getBeta();
00089        double gamma=EA.getGamma();
00090 
00091        EvtVector4R h1,h2; //rotate pi1 and pi2 momentum to helicity system
00092        h1 = rotateEuler(mompi1,-gamma,-beta,-alpha);
00093        h2 = rotateEuler(mompi2,-gamma,-beta,-alpha);
00094        //       cout<<h1<<h2<<endl;
00095        double F0 = h1.get(1)*h2.get(2)-h1.get(2)*h2.get(1);
00096        //       cout<<"F0 = "<<F0<<endl;       
00097  
00098        vertex(0,Djmn(1, 1,0,alpha,beta,gamma)*F0);
00099        vertex(1,Djmn(1,-1,0,alpha,beta,gamma)*F0);
00100        vertex(2,Djmn(1, 0,0,alpha,beta,gamma)*F0);
00101 
00102 }
00103 
00104 

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