00001 /******************************************************************************* 00002 * Project: BaBar detector at the SLAC PEP-II B-factory 00003 * Package: EvtGenBase 00004 * File: $Id: EvtPropagator.hh,v 1.1.1.2 2007/10/26 05:03:14 pingrg Exp $ 00005 * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 00006 * 00007 * Copyright (C) 2002 Caltech 00008 *******************************************************************************/ 00009 00010 // Defines propagator as a function of mass and width 00011 00012 #ifndef EVT_PROPAGATOR_HH 00013 #define EVT_PROPAGATOR_HH 00014 00015 #include <assert.h> 00016 #include "EvtGenBase/EvtComplex.hh" 00017 #include "EvtGenBase/EvtAmplitude.hh" 00018 #include "EvtGenBase/EvtPoint1D.hh" 00019 00020 class EvtPropagator : public EvtAmplitude<EvtPoint1D> { 00021 public: 00022 00023 EvtPropagator(double m0, double g0) 00024 : _m0(m0), _g0(g0) 00025 { 00026 assert(m0 > 0); 00027 assert(g0 >= 0); 00028 } 00029 EvtPropagator(const EvtPropagator& other) 00030 : _m0(other._m0), _g0(other._g0) 00031 {} 00032 virtual ~EvtPropagator() 00033 {} 00034 00035 // Accessors 00036 00037 inline double m0() const { return _m0; } 00038 inline double g0() const { return _g0; } 00039 00040 // Modifiers (can be useful e.g. for fitting!) 00041 00042 inline void set_m0(double m0) { assert(m0>0); _m0 = m0; } 00043 inline void set_g0(double g0) { assert(g0>=0); _g0 = g0; } 00044 00045 protected: 00046 00047 double _m0; 00048 double _g0; 00049 00050 }; 00051 00052 #endif 00053