00001 /***************************************************************************** 00002 * Project: RooFit * 00003 * Package: RooFitModels * 00004 * File: $Id: RooBukinPdf.h,v 1.5 2007/07/12 20:30:49 wouter Exp $ 00005 * Authors: * 00006 * RW, Ruddick William UC Colorado wor@slac.stanford.edu * 00007 * * 00008 * Copyright (c) 2000-2005, Regents of the University of California * 00009 * and Stanford University. All rights reserved. * 00010 * * 00011 * Redistribution and use in source and binary forms, * 00012 * with or without modification, are permitted according to the terms * 00013 * listed in LICENSE (http://roofit.sourceforge.net/license.txt) * 00014 *****************************************************************************/ 00015 00016 00017 // -- CLASS DESCRIPTION [PDF] -- 00018 // RooBukinPdf implements the NovosibirskA function 00019 00020 // Original Fortran Header below 00021 /***************************************************************************** 00022 * Fitting function for asymmetric peaks with 6 free parameters: * 00023 * Ap - peak value * 00024 * Xp - peak position * 00025 * sigp - FWHM divided by 2*sqrt(2*log(2))=2.35 * 00026 * xi - peak asymmetry parameter * 00027 * rho1 - parameter of the "left tail" * 00028 * rho2 - parameter of the "right tail" * 00029 * --------------------------------------------- * 00030 * May 26, 2003 * 00031 * A.Bukin, Budker INP, Novosibirsk * 00032 * Documentation: * 00033 * http://www.slac.stanford.edu/BFROOT/www/Organization/CollabMtgs/2003/detJuly2003/Tues3a/bukin.ps 00034 * ------------------------------------------- * 00035 *****************************************************************************/ 00036 #ifndef ROO_BUKINPDF 00037 #define ROO_BUKINPDF 00038 00039 #include "RooAbsPdf.h" 00040 #include "RooRealProxy.h" 00041 00042 class RooRealVar; 00043 class RooAbsReal; 00044 00045 class RooBukinPdf : public RooAbsPdf { 00046 public: 00047 00048 RooBukinPdf() {} ; 00049 RooBukinPdf(const char *name, const char *title, 00050 RooAbsReal& _x, RooAbsReal& _Xp, 00051 RooAbsReal& _sigp, RooAbsReal& _xi, 00052 RooAbsReal& _rho1, RooAbsReal& _rho2); 00053 00054 RooBukinPdf(const RooBukinPdf& other,const char* name=0) ; 00055 00056 virtual TObject* clone(const char* newname) const { return new RooBukinPdf(*this,newname); } 00057 inline virtual ~RooBukinPdf() { } 00058 00059 protected: 00060 RooRealProxy x; 00061 RooRealProxy Xp; 00062 RooRealProxy sigp; 00063 RooRealProxy xi; 00064 RooRealProxy rho1; 00065 RooRealProxy rho2; 00066 Double_t evaluate() const; 00067 00068 private: 00069 00070 ClassDef(RooBukinPdf,1) // Variation of Novosibirsk PDF 00071 double consts; 00072 }; 00073 00074 #endif