Page MenuHomeHEPForge

EvtBToVlnuBall.cpp
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

EvtBToVlnuBall.cpp

//--------------------------------------------------------------------------
//
// Environment:
// This software is part of the EvtGen package developed jointly
// for the BaBar and CLEO collaborations. If you use all or part
// of it, please give an appropriate acknowledgement.
//
// Copyright Information: See EvtGen/COPYRIGHT
// Copyright (C) 1998 Caltech, UCSB
//
// Module: EvtGenModels/EvtBToVlnuBall.cc
//
// Description: B->Xu l nu with the Ball/Zwicky decay model
// Xu is a vector (rho, rho0, omega)
//
//
// Modification history:
//
// Wells Wulsin 2008 Aug 14 Module created
//
//------------------------------------------------------------------------
//
#include "EvtGenBase/EvtPatches.hh"
#include <stdlib.h>
#include <assert.h>
#include "EvtGenBase/EvtParticle.hh"
#include "EvtGenBase/EvtGenKine.hh"
#include "EvtGenBase/EvtPDL.hh"
#include "EvtGenBase/EvtReport.hh"
#include "EvtGenModels/EvtBToVlnuBall.hh"
#include "EvtGenModels/EvtBToVlnuBallFF.hh"
#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh"
#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh"
#include <string>
using std::endl;
EvtBToVlnuBall::EvtBToVlnuBall():
_Ballmodel(0)
,_calcamp(0)
{}
EvtBToVlnuBall::~EvtBToVlnuBall() {
delete _Ballmodel;
_Ballmodel=0;
delete _calcamp;
_calcamp=0;
}
std::string EvtBToVlnuBall::getName(){
return "BTOVLNUBALL";
}
EvtDecayBase* EvtBToVlnuBall::clone(){
return new EvtBToVlnuBall;
}
void EvtBToVlnuBall::decay( EvtParticle *p ){
p->initializePhaseSpace(getNDaug(),getDaugs());
_calcamp->CalcAmp(p,_amp2,_Ballmodel);
}
void EvtBToVlnuBall::initProbMax(){
EvtId parnum,mesnum,lnum,nunum;
parnum = getParentId();
mesnum = getDaug(0);
lnum = getDaug(1);
nunum = getDaug(2);
double mymaxprob = _calcamp->CalcMaxProb(parnum,mesnum,
lnum,nunum,_Ballmodel);
setProbMax(mymaxprob);
}
void EvtBToVlnuBall::init(){
checkNDaug(3);
//We expect the parent to be a scalar
//and the daughters to be X lepton neutrino
checkSpinParent(EvtSpinType::SCALAR);
checkSpinDaughter(1,EvtSpinType::DIRAC);
checkSpinDaughter(2,EvtSpinType::NEUTRINO);
EvtSpinType::spintype d1type = EvtPDL::getSpinType(getDaug(0));
if ( d1type==EvtSpinType::VECTOR) {
checkNArg(8); // the number of arguments needed for the Ball model
_Ballmodel = new EvtBToVlnuBallFF(getArg(0),getArg(1),getArg(2),getArg(3),getArg(4),getArg(5),getArg(6),getArg(7));
_calcamp = new EvtSemiLeptonicVectorAmp;
} else {
report(ERROR,"EvtGen") << "Ball model handles only vector meson daughters. Sorry." << endl;
::abort();
}
}

File Metadata

Mime Type
text/x-c
Expires
Tue, Sep 30, 6:14 AM (8 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6538145
Default Alt Text
EvtBToVlnuBall.cpp (2 KB)

Event Timeline