1 #include "EvtGenBase/EvtPatches.hh"
2 /*******************************************************************************
3 * Project: BaBar detector at the SLAC PEP-II B-factory
5 * Author: D. Dujmic, ddujmic@slac.stanford.edu
7 * Copyright (C) 2005 SLAC
9 *******************************************************************************/
14 #include "EvtGenBase/EvtComplex.hh"
15 #include "EvtGenBase/EvtPto3PAmpSmpResolution.hh"
16 #include "EvtGenBase/EvtPto3PAmp.hh"
17 #include "EvtGenBase/EvtDalitzCoord.hh"
18 #include "EvtGenBase/EvtCyclic3.hh"
21 using EvtCyclic3::Index;
22 using EvtCyclic3::Pair;
26 EvtPto3PAmpSmpResolution::EvtPto3PAmpSmpResolution(EvtDalitzPlot dp, Pair pairAng, Pair pairRes,
27 EvtSpinType::spintype spin,
28 const EvtPropagator& prop, NumType typeN)
29 : EvtPto3PAmp(dp, pairAng, pairRes, spin, prop, typeN)
34 EvtPto3PAmpSmpResolution::EvtPto3PAmpSmpResolution(const EvtPto3PAmp& other)
39 EvtPto3PAmpSmpResolution::~EvtPto3PAmpSmpResolution()
44 EvtPto3PAmpSmpResolution::evalPropagator(double m) const
48 if (_sigma>0) { // convolved
50 double min=m+_bias-_sigma*2.5;
51 double max=m+_bias+_sigma*2.5;
52 double dm=(max-min)/nconv;
53 static double sqrt2pi = sqrt(2*3.14159);
54 double ifact = 1./(sqrt2pi*_sigma);
55 for (int i=0;i<nconv; i++) {
56 double mprime = min+dm*(i+0.5);
57 double t = (mprime-m)/_sigma;
58 prop += ifact * exp(-0.5*t*t)*EvtPto3PAmp::evalPropagator(m)*dm;
61 prop = EvtPto3PAmp::evalPropagator(m);