LCOV - code coverage report
Current view: top level - TEvtGen/EvtGen/EvtGenModels - EvtHQET2.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 44 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 10 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: EvtHQET2.cc
      12             : //
      13             : // Description: Routine to implement semileptonic B->D*lnu & B->Dlnu 
      14             : //              decays according to the model HQET
      15             : //
      16             : //   Lange Nov9/01 adding Dlnu and possible (w-1)^2 term
      17             : //
      18             : //
      19             : // Modification history:
      20             : //
      21             : //    Marco Bomben     March 10, 2003       Module created
      22             : //
      23             : //------------------------------------------------------------------------
      24             : // 
      25             : #include "EvtGenBase/EvtPatches.hh"
      26             : #include <stdlib.h>
      27             : #include <assert.h>
      28             : #include "EvtGenBase/EvtParticle.hh"
      29             : #include "EvtGenBase/EvtGenKine.hh"
      30             : #include "EvtGenBase/EvtPDL.hh"
      31             : #include "EvtGenBase/EvtReport.hh"
      32             : #include "EvtGenModels/EvtHQET2.hh"
      33             : #include "EvtGenModels/EvtHQET2FF.hh"
      34             : #include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh"
      35             : #include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh"
      36             : #include <string>
      37             : using std::endl;
      38             : 
      39           0 : EvtHQET2::EvtHQET2():
      40           0 :   hqetffmodel(0)
      41           0 :   ,calcamp(0)
      42           0 : {}
      43             : 
      44           0 : EvtHQET2::~EvtHQET2() {
      45           0 :   delete hqetffmodel;
      46           0 :   hqetffmodel=0;
      47           0 :   delete calcamp;
      48           0 :   calcamp=0;
      49           0 : }
      50             : 
      51             : std::string EvtHQET2::getName(){
      52             : 
      53           0 :   return "HQET2";     
      54             : 
      55             : }
      56             : 
      57             : 
      58             : 
      59             : EvtDecayBase* EvtHQET2::clone(){
      60             : 
      61           0 :   return new EvtHQET2;
      62             : 
      63           0 : }
      64             : 
      65             : 
      66             : void EvtHQET2::decay( EvtParticle *p ){
      67             : 
      68           0 :   p->initializePhaseSpace(getNDaug(),getDaugs());
      69           0 :   calcamp->CalcAmp(p,_amp2,hqetffmodel);
      70             : 
      71           0 : }
      72             : 
      73             : void EvtHQET2::initProbMax(){
      74             : 
      75           0 :   EvtId parnum,mesnum,lnum,nunum;
      76             : 
      77           0 :   parnum = getParentId();
      78           0 :   mesnum = getDaug(0);
      79           0 :   lnum = getDaug(1);
      80           0 :   nunum = getDaug(2);
      81             : 
      82           0 :   double mymaxprob = calcamp->CalcMaxProb(parnum,mesnum,
      83           0 :                            lnum,nunum,hqetffmodel);
      84             : 
      85           0 :   setProbMax(mymaxprob);
      86             : 
      87           0 : }
      88             : 
      89             : 
      90             : void EvtHQET2::init(){
      91             : 
      92           0 :   checkNDaug(3);
      93             : 
      94             :   //We expect the parent to be a scalar 
      95             :   //and the daughters to be X lepton neutrino
      96           0 :   checkSpinParent(EvtSpinType::SCALAR);
      97             : 
      98           0 :   checkSpinDaughter(1,EvtSpinType::DIRAC);
      99           0 :   checkSpinDaughter(2,EvtSpinType::NEUTRINO);
     100             : 
     101           0 :   EvtSpinType::spintype d1type = EvtPDL::getSpinType(getDaug(0));
     102           0 :   if ( d1type==EvtSpinType::SCALAR) {
     103           0 :     if ( getNArg()==2 ) {hqetffmodel = new EvtHQET2FF(getArg(0),getArg(1)); 
     104           0 :     calcamp = new EvtSemiLeptonicScalarAmp;} 
     105             :     else {
     106           0 :     report(Severity::Error,"EvtGen") << "HQET2 model for scalar meson daughters needs 2 arguments. Sorry."<<endl;
     107           0 :     ::abort();
     108             :   }  
     109           0 :   }
     110           0 :   else if ( d1type==EvtSpinType::VECTOR) {
     111           0 :     if ( getNArg()==4 ){ hqetffmodel = new EvtHQET2FF(getArg(0),getArg(1),getArg(2),getArg(3));
     112           0 :     calcamp = new EvtSemiLeptonicVectorAmp; }
     113             :     else  {
     114           0 :     report(Severity::Error,"EvtGen") << "HQET2 model for vector meson daughtersneeds 4 arguments. Sorry."<<endl;
     115           0 :     ::abort();
     116             :     }
     117             :   }
     118             :   else{
     119           0 :     report(Severity::Error,"EvtGen") << "HQET2 model handles only scalar and vector meson daughters. Sorry."<<endl;
     120           0 :     ::abort();
     121             :   }
     122             : 
     123             :   
     124           0 : }
     125             : 

Generated by: LCOV version 1.11