RooFlatte.cc

Go to the documentation of this file.
00001 /*****************************************************************************
00002 * Project: BaBar detector at the SLAC PEP-II B-factory
00003 * Package: RooRarFit
00004  *    File: $Id: RooFlatte.cc,v 1.3 2011/08/26 17:54:16 fwilson Exp $
00005  * Authors: Fergus Wilson
00006  * History:
00007  * 
00008  * Copyright (C) 2005-2012, RAL
00009  *****************************************************************************/
00010 
00011 // -- CLASS DESCRIPTION [PDF] --
00012 // This is an implementation of the BES parameterisation of the Flatte
00013 // distribution
00014 //
00015 // Reference : S.M.Flatte Phys. Rev. B63, 224 (1976); 
00016 // B.S.Zou and D.V.Bugg Phys Rev. D48, R3948 (1993);
00017 // M.Ablikim wt al (BES collaboration), Phys. Rev. D70, 092002, (2004)
00018 //
00020 //
00021 // BEGIN_HTML
00022 // This is an implementation of the BES parameterisation of the Flatte
00023 // distribution
00024 //
00025 // Reference : S.M.Flatte Phys. Rev. B63, 224 (1976); 
00026 // B.S.Zou and D.V.Bugg Phys Rev. D48, R3948 (1993);
00027 // M.Ablikim wt al (BES collaboration), Phys. Rev. D70, 092002, (2004)
00028 //
00029 // END_HTML
00030 //
00031 #include "RooRarFit/rarVersion.hh"
00032 
00033 #include "Riostream.h"
00034 
00035 #include "RooRarFit/RooFlatte.hh"
00036 #include "RooFitCore/RooAbsReal.hh"
00037 #include "RooFitCore/RooRealVar.hh"
00038 #include "RooFitCore/RooComplex.hh"
00039 
00040 ClassImp(RooFlatte)
00041 
00042 //------------------------------------------------------------------
00043 RooFlatte::RooFlatte(const char *name, const char *title,
00044                      RooAbsReal& _x, RooAbsReal& _mean,
00045                      RooAbsReal& _g0, RooAbsReal& _m0a, RooAbsReal& _m0b, 
00046                      RooAbsReal& _g1, RooAbsReal& _m1a, RooAbsReal& _m1b) :
00047   RooAbsPdf(name,title),
00048   x("x","Dependent",this,_x),
00049   mean("mean","Mean",this,_mean),
00050   g0("g0","Channel 1 coupling",this,_g0),
00051   m0a("m0a","Mass of particle 1 in channel 1",this,_m0a),
00052   m0b("m0b","Mass of particle 2 in channel 1",this,_m0b),
00053   g1("g1","Channel 2 coupling",this,_g1),
00054   m1a("m1a","Mass of particle 1 in channel 2",this,_m1a),
00055   m1b("m1b","Mass of particle 2 in channel 2",this,_m1b)
00056 {
00057 }
00058 
00059 //------------------------------------------------------------------
00060 RooFlatte::RooFlatte(const RooFlatte& other, 
00061                      const char* name) : 
00062   RooAbsPdf(other,name), 
00063   x("x",this,other.x), 
00064   mean("mean",this,other.mean),
00065   g0("g0",this,other.g0),
00066   m0a("m0a",this,other.m0a),
00067   m0b("m0b",this,other.m0b),
00068   g1("g1",this,other.g1),
00069   m1a("m1a",this,other.m1a),
00070   m1b("m1b",this,other.m1b)
00071 {
00072 }
00073 
00074 //------------------------------------------------------------------
00075 Double_t RooFlatte::evaluate() const
00076 {
00077   // calculate Flatte amplitude
00078 
00079   if (g0<0 || g1<0) {return(0);}
00080 
00081   Double_t s = x*x;
00082 
00083   // Energy, centre of mass p^2 of first channel
00084   Double_t E0a = 0.5 * (s + m0a*m0a - m0b*m0b) / x;
00085   Double_t qSq0 = E0a*E0a - m0a*m0a; 
00086 
00087   // Energy, centre of mass p^2 of second channel
00088   Double_t E1a = 0.5 * (s + m1a*m1a - m1b*m1b) / x;
00089   Double_t qSq1 = E1a*E1a - m1a*m1a; 
00090 
00091   RooComplex gamma0 = (qSq0 > 0) ? RooComplex(g0*sqrt(qSq0),0) : 
00092     RooComplex(0, g0*sqrt(-qSq0));
00093 
00094   RooComplex gamma1 = (qSq1 > 0) ? RooComplex(g1*sqrt(qSq1),0) : 
00095     RooComplex(0, g1*sqrt(-qSq1));
00096 
00097   RooComplex gamma = gamma0 + gamma1;
00098 
00099   RooComplex partB = RooComplex(0.0, 2*mean/x) * gamma;
00100   RooComplex partA(mean*mean - s, 0);
00101 
00102   RooComplex denom = partA - partB;
00103 
00104   //RooComplex T(mean*sqrt(g0*g1),0);
00105   RooComplex T(1,0);
00106   T = T / denom;
00107 
00108   return(T.abs2()); // Amplitude (arbitrary scale)
00109 
00110 }
00111 

Generated on 30 Oct 2013 for RooRarFit by  doxygen 1.4.7