/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Generator/BesEvtGen/BesEvtGen-00-03-58/src/EvtGen/EvtGenModels/EvtTauGamMu.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) 2014      Ping Rong-Gang
00010 //
00011 // Module: EvtHypWK.hh
00012 //
00013 // Description:  To generate decay tau->gamma mu with uses' helicity amplitudes, it can be used
00014 //  for the decay Fermion -> photon Fermion .
00015 //
00016 // Modification history:
00017 //
00018 //    Pang C.-Y., Ping R.-G.    Mar, 2007       Module created
00019 //    Ping R.G. Apr. 2007  change to helicity amplitude method
00020 //------------------------------------------------------------------------
00021 //
00022 #include "EvtGenBase/EvtPatches.hh"
00023 #include <stdlib.h>
00024 #include <iostream>
00025 #include <string>
00026 #include "EvtGenBase/EvtParticle.hh"
00027 #include "EvtGenBase/EvtPDL.hh"
00028 #include "EvtGenBase/EvtGenKine.hh"
00029 #include "EvtGenModels/EvtTauGamMu.hh"
00030 #include "EvtGenBase/EvtDiracSpinor.hh"
00031 #include "EvtGenBase/EvtReport.hh"
00032 #include "EvtGenBase/EvtVector4C.hh"
00033 #include "EvtGenBase/EvtId.hh"
00034 #include "EvtGenBase/EvtHelSys.hh"
00035 #include "EvtGenBase/EvtdFunction.hh"
00036 
00037 using std::cout;
00038 using std::endl;
00039 
00040 EvtTauGamMu::~EvtTauGamMu() {}
00041 
00042 void EvtTauGamMu::getName(std::string& model_name){
00043 
00044   model_name="TauGamMu";     
00045 
00046 }
00047 
00048 
00049 
00050 EvtDecayBase* EvtTauGamMu::clone(){
00051 
00052   return new EvtTauGamMu;
00053 
00054 }
00055 
00056 void EvtTauGamMu::init(){
00057 
00058   // check that there are 0 arguments
00059   checkNArg(4);
00060   checkNDaug(2);
00061 
00062 
00063    checkSpinParent(EvtSpinType::DIRAC);
00064   
00065    checkSpinDaughter(0,EvtSpinType::PHOTON);
00066    checkSpinDaughter(1,EvtSpinType::DIRAC);
00067 
00068 
00069   for(int i=0;i<=1;i++){
00070     for(int j=0;j<=2;j++){
00071       for(int k=0;k<=1;k++){
00072         vertex(i,j,k,0);
00073       }
00074     }
00075   }
00076 
00077   //---
00078 }
00079 
00080 
00081 void EvtTauGamMu::decay(EvtParticle *p){
00082 
00083 
00084   p->initializePhaseSpace(getNDaug(),getDaugs());
00085 
00086   EvtParticle *l1, *l2;
00087   l1 = p->getDaug(0);
00088   l2 = p->getDaug(1);
00089   EvtVector4R DRP4=l1->getP4(); //photon
00090   EvtVector4R MEP4=l2->getP4(); //Mu
00091   EvtVector4R PRP4=p->getP4();  //Parent Momentum
00092   EvtHelSys angles(PRP4,DRP4);   //using helicity sys.angles
00093   double tht=angles.getHelAng(1);
00094   double ph =angles.getHelAng(2);
00095   double gmm=0;
00096 
00097   double H00=getArg(0); //H(1,1/2) for photon , mu
00098   double A00=getArg(1); //phase angle for H00
00099   double H11=getArg(2); //H(-1,-1/2) 
00100   double A11=getArg(3); //phase angle H11
00101 
00102   EvtComplex A000 = Djmn(0.5, 0.5, 0.5,ph,tht,gmm)*H00*exp(A00); //for 1/2 -> 1 1/2
00103   EvtComplex A100 = Djmn(0.5,-0.5, 0.5,ph,tht,gmm)*H00*exp(A00); //for -1/2 -> 1 1/2 
00104   EvtComplex A021 = Djmn(0.5, 0.5,-0.5,ph,tht,gmm)*H11*exp(A11);  // 1/2->-1,-1/2
00105   EvtComplex A121 = Djmn(0.5,-0.5,-0.5,ph,tht,gmm)*H11*exp(A11);  // -1/2->-1,-1/2
00106 
00107  
00108   vertex(0,0,0,A000);
00109   vertex(0,1,1,A021);
00110   vertex(1,0,0,A100);
00111   vertex(1,1,1,A121);
00112 
00113   return;
00114 
00115 }
00116 
00117 
00118 

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