LCOV - code coverage report
Current view: top level - TEvtGen/EvtGen/EvtGenModels - EvtOmegaDalitz.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 31 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 8 0.0 %

          Line data    Source code
       1             : //--------------------------------------------------------------------------
       2             : //
       3             : // Environment:
       4             : //      This software is part of the EvtGen package developed jointly
       5             : //      for the BaBar and CLEO collaborations.  If you use all or part
       6             : //      of it, please give an appropriate acknowledgement.
       7             : //
       8             : // Copyright Information: See EvtGen/COPYRIGHT
       9             : //      Copyright (C) 1998      Caltech, UCSB
      10             : //
      11             : // Module: EvtOmegaDalitz.cc
      12             : //
      13             : // Description: Routine to decay omega -> pi pi pi0
      14             : //
      15             : // Modification history:
      16             : //
      17             : //    RYD     November 24, 1996         Module created
      18             : //
      19             : //------------------------------------------------------------------------
      20             : // 
      21             : #include "EvtGenBase/EvtPatches.hh"
      22             : #include <stdlib.h>
      23             : #include "EvtGenBase/EvtParticle.hh"
      24             : #include "EvtGenBase/EvtGenKine.hh"
      25             : #include "EvtGenBase/EvtTensor4C.hh"
      26             : #include "EvtGenBase/EvtVector4C.hh"
      27             : #include "EvtGenBase/EvtVector3R.hh"
      28             : #include "EvtGenBase/EvtPDL.hh"
      29             : #include "EvtGenModels/EvtOmegaDalitz.hh"
      30             : #include "EvtGenBase/EvtReport.hh"
      31             : #include <string>
      32             : 
      33           0 : EvtOmegaDalitz::~EvtOmegaDalitz() {}
      34             : 
      35             : std::string EvtOmegaDalitz::getName(){
      36             : 
      37           0 :   return "OMEGA_DALITZ";     
      38             : 
      39             : }
      40             : 
      41             : 
      42             : EvtDecayBase* EvtOmegaDalitz::clone(){
      43             : 
      44           0 :   return new EvtOmegaDalitz;
      45             : 
      46           0 : }
      47             : 
      48             : void EvtOmegaDalitz::init(){
      49             : 
      50             :   // check that there are 0 arguments
      51           0 :   checkNArg(0);
      52           0 :   checkNDaug(3);
      53             : 
      54           0 :   checkSpinParent(EvtSpinType::VECTOR);
      55             : 
      56           0 :   checkSpinDaughter(0,EvtSpinType::SCALAR);
      57           0 :   checkSpinDaughter(1,EvtSpinType::SCALAR);
      58           0 :   checkSpinDaughter(2,EvtSpinType::SCALAR);
      59             : 
      60           0 : }
      61             : 
      62             : void EvtOmegaDalitz::initProbMax() {
      63             : 
      64           0 :    setProbMax( 1.0);
      65             : 
      66           0 : }      
      67             : 
      68             : void EvtOmegaDalitz::decay( EvtParticle *p ){
      69             : 
      70           0 :   p->initializePhaseSpace(getNDaug(),getDaugs());
      71             : 
      72           0 :   EvtVector4C ep[3];
      73             : 
      74           0 :   ep[0] = p->eps(0);
      75           0 :   ep[1] = p->eps(1);
      76           0 :   ep[2] = p->eps(2);
      77             : 
      78           0 :   EvtVector4R mompi1 = p->getDaug(0)->getP4();
      79           0 :   EvtVector4R mompi2 = p->getDaug(1)->getP4();
      80             : 
      81           0 :   EvtVector3R p1(mompi1.get(1),mompi1.get(2),mompi1.get(3));
      82           0 :   EvtVector3R p2(mompi2.get(1),mompi2.get(2),mompi2.get(3));
      83           0 :   EvtVector3R q=cross(p2,p1);
      84             : 
      85           0 :   EvtVector3C e1(ep[0].get(1),ep[0].get(2),ep[0].get(3));
      86           0 :   EvtVector3C e2(ep[1].get(1),ep[1].get(2),ep[1].get(3));
      87           0 :   EvtVector3C e3(ep[2].get(1),ep[2].get(2),ep[2].get(3));
      88             : 
      89             :   //This is an approximate formula of the maximum value that
      90             :   //|q| can have.
      91           0 :   double norm=1.14/(p->mass()*p->mass()/9.0-mompi1.mass2());
      92             :   
      93           0 :   vertex(0,norm*e1*q);
      94           0 :   vertex(1,norm*e2*q);
      95           0 :   vertex(2,norm*e3*q);
      96             : 
      97             :   return ;
      98             :    
      99           0 : }
     100             : 

Generated by: LCOV version 1.11