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

Go to the documentation of this file.
00001 /*****************************************************************************
00002  * Project: BaBar detector at the SLAC PEP-II B-factory
00003  * Package: EvtGenModels
00004  *    File: $Id: EvtD0mixDalitz.hh,v 1.1 2009/05/08 01:59:56 pingrg Exp $
00005  *
00006  * Description:
00007  *   The D0mixDalitz model, with many resonances and mixing implemented.
00008  *
00009  * Modification history:
00010  *   Jordi Garra Ticó     2008/07/03         File created
00011  *****************************************************************************/
00012 
00013 #ifndef __EVTD0MIXDALITZ_HH__
00014 #define __EVTD0MIXDALITZ_HH__
00015 
00016 #include "EvtGenBase/EvtComplex.hh"
00017 #include "EvtGenBase/EvtPDL.hh"
00018 #include "EvtGenBase/EvtId.hh"
00019 #include "EvtGenBase/EvtDecayAmp.hh"
00020 #include "EvtGenBase/EvtDalitzPoint.hh"
00021 #include "EvtGenBase/EvtSpinType.hh"
00022 #include "EvtGenBase/EvtDalitzReso.hh"
00023 #include "EvtGenBase/EvtCyclic3.hh"
00024 
00025 
00026 class EvtD0mixDalitz : public EvtDecayAmp
00027 {
00028 private:
00029   int _d1;
00030   int _d2;
00031   int _d3;
00032 
00033   // Mixing parameters.
00034   double _x;
00035   double _y;
00036 
00037   // q/p CP violation in the mixing.
00038   EvtComplex _qp;
00039 
00040   // Checker of the decay mode.
00041   bool _isKsPiPi;
00042   bool _isRBWmodel;
00043 
00044   // Useful constants.
00045   static const EvtSpinType::spintype& _SCALAR;
00046   static const EvtSpinType::spintype& _VECTOR;
00047   static const EvtSpinType::spintype& _TENSOR;
00048 
00049   static const EvtDalitzReso::CouplingType& _EtaPic;
00050   static const EvtDalitzReso::CouplingType& _PicPicKK;
00051 
00052   static const EvtDalitzReso::NumType& _RBW;
00053   static const EvtDalitzReso::NumType& _GS;
00054   static const EvtDalitzReso::NumType& _KMAT;
00055 
00056   static const EvtCyclic3::Pair& _AB;
00057   static const EvtCyclic3::Pair& _AC;
00058   static const EvtCyclic3::Pair& _BC;
00059 
00060   // Values to be read or computed based on values in the evt.pdl file.
00061   // IDs of the relevant particles.
00062   EvtId _D0;
00063   EvtId _D0B;
00064   EvtId _KM;
00065   EvtId _KP;
00066   EvtId _K0;
00067   EvtId _K0B;
00068   EvtId _KL;
00069   EvtId _KS;
00070   EvtId _PIM;
00071   EvtId _PIP;
00072 
00073   // Masses of the relevant particles.
00074   double _mD0;
00075   double _mKs;
00076   double _mPi;
00077   double _mK;
00078 
00079   // Life time and decay rate.
00080   double _ctau;
00081   double _gamma;
00082 
00083   // Some useful integrals over the Dalitz plot.
00084   EvtComplex _iChi;
00085   EvtComplex _iChi2;
00086 
00087   void readPDGValues();
00088   EvtComplex dalitzKsPiPi( const EvtDalitzPoint& point );
00089   EvtComplex dalitzKsKK  ( const EvtDalitzPoint& point );
00090 
00091   // Time evolution functions for hamiltonian eigenstates.
00092   //    Negative exponential part removed.
00093   EvtComplex h1( const double& ct ) const;
00094   EvtComplex h2( const double& ct ) const;
00095 
00096   void reportInvalidAndExit() const
00097   {
00098     report( ERROR, "EvtD0mixDalitz" ) << "EvtD0mixDalitz: Invalid mode." << std::endl;
00099     exit( 1 );
00100   }
00101 public:
00102   EvtD0mixDalitz() : _d1( 0 ), _d2( 0 ), _d3( 0 ),
00103                      _x( 0. ), _y( 0. ), _qp( 1. ),
00104                      _isKsPiPi( false ), _isRBWmodel( true )
00105   {}
00106 
00107   virtual ~EvtD0mixDalitz() {};
00108 
00109   // One-line inline functions.
00110   void  getName(std::string& model_name) { model_name = "D0MIXDALITZ"; }
00111   EvtDecayBase* clone()   { return new EvtD0mixDalitz; }
00112   void initProbMax()      { setProbMax( 5200. );       }
00113 
00114   void init();
00115   void decay( EvtParticle* p );
00116 };
00117 
00118 #endif
00119 

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