/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Generator/BesEvtGen/BesEvtGen-00-03-58/src/EvtGen/EvtGenBase/EvtAmp.hh

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 //
00003 // Environment:
00004 //      This software is part of the EvtGen package developed jointly
00005 //      for the BaBar and CLEO collaborations.  If you use all or part
00006 //      of it, please give an appropriate acknowledgement.
00007 //
00008 // Copyright Information: See EvtGen/COPYRIGHT
00009 //      Copyright (C) 1998      Caltech, UCSB
00010 //
00011 // Module: EvtGen/EvtAmp.hh
00012 //
00013 // Description:This is the (new) amplitude class.
00014 //
00015 // Modification history:
00016 //
00017 //    DJL/RYD     May 29, 1997         Module created
00018 //
00019 //------------------------------------------------------------------------
00020 
00021 #ifndef EVTAMP_HH
00022 #define EVTAMP_HH
00023 
00024 #include "EvtGenBase/EvtComplex.hh"
00025 #include "EvtGenBase/EvtPatches.hh"
00026 
00027 class EvtSpinDensity;
00028 class EvtId;
00029 
00030 class EvtAmp {
00031 
00032 public:
00033 
00034   EvtAmp();
00035   virtual ~EvtAmp(){}
00036 
00037   EvtAmp(const EvtAmp& amp);
00038 
00039   void init(EvtId p,int ndaug,EvtId *daug);
00040 
00041   void setAmp(int *ind,const EvtComplex& amp);
00042 
00043   const EvtComplex& getAmp(int *ind)const;
00044 
00045   EvtSpinDensity getSpinDensity();
00046 
00047   EvtSpinDensity contract(int i,const EvtAmp& a);
00048   EvtAmp contract(int i, const EvtSpinDensity& rho);
00049 
00050   //sum over the i:th daugther of a1 and contract with parent of a2
00051   EvtAmp contract(int i, const EvtAmp& a1,const EvtAmp& a2);
00052 
00053 
00054   EvtSpinDensity getForwardSpinDensity(EvtSpinDensity *rho_list,int k);
00055   EvtSpinDensity getBackwardSpinDensity(EvtSpinDensity *rho_list);
00056 
00057   EvtAmp& operator=(const EvtAmp& amp);
00058 
00059 
00063   void vertex(const EvtComplex& amp);
00064 
00068   void vertex(int i1, const EvtComplex& amp);
00069 
00073   void vertex(int i1, int i2, const EvtComplex& amp);
00074 
00078   void vertex(int i1, int i2, int i3, const EvtComplex& amp);
00079 
00083   void vertex(int *i1, const EvtComplex& amp);
00084 
00085 
00086   void dump();
00087 
00088 private:
00089 
00090   friend class EvtDecayAmp;
00091   friend class EvtKstarstargamma; 
00092 
00093   void setNDaug(int n);
00094   void setNState(int parent_states,int *daug_states);
00095 
00096   // the amplitudes
00097   EvtComplex _amp[450];  //for run RaritaShwinger particle, the lowest dimension need 144, or crashed.  Deng z r and Ping rg 
00098 
00099   // the number of daughters
00100   int _ndaug;
00101 
00102   // the number of states of the parent
00103   int _pstates;
00104 
00105   // number of states of the daughter
00106   int dstates[10];
00107 
00108   // the nontrivial index of the daughter
00109   int _dnontrivial[10];
00110 
00111   // number of nontrivial daugts+parent
00112   int _nontrivial;
00113 
00114   // compact nstates
00115   int _nstate[5];
00116 
00117 };
00118 
00119 
00120 #endif
00121 

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