library: libRooFit #include "RooGExpModel.h"

# RooGExpModel

class description - source file - inheritance tree (.pdf)

## class RooGExpModel : public RooResolutionModel

| Inheritance Chart:
`TObject`
| <- | `TNamed`
`RooPrintable`
| <- | `RooAbsArg`
| <- | `RooAbsReal`
| <- | `RooAbsPdf`
| <- | `RooResolutionModel`
| <- | `RooGExpModel` |

        protected:

                  Double_t calcDecayConv(Double_t sign, Double_t tau, Double_t sig, Double_t rtau, Double_t fsign) const
                RooComplex calcSinConv(Double_t sign, Double_t sig, Double_t tau, Double_t omega, Double_t rtau, Double_t fsign) const
                  Double_t calcSinConv(Double_t sign, Double_t sig, Double_t tau, Double_t rtau, Double_t fsign) const
                RooComplex calcSinConvNorm(Double_t sign, Double_t tau, Double_t omega, Double_t sig, Double_t rtau, Double_t fsign, const char* rangeName) const
                  Double_t calcSinConvNorm(Double_t sign, Double_t tau, Double_t sig, Double_t rtau, Double_t fsign, const char* rangeName) const
                RooComplex evalCerf(Double_t swt, Double_t u, Double_t c) const
                RooComplex evalCerfApprox(Double_t swt, Double_t u, Double_t c) const
                  Double_t evalCerfIm(Double_t swt, Double_t u, Double_t c) const
                RooComplex evalCerfInt(Double_t sign, Double_t wt, Double_t tau, Double_t umin, Double_t umax, Double_t c) const
                  Double_t evalCerfInt(Double_t sign, Double_t tau, Double_t umin, Double_t umax, Double_t c) const
                  Double_t evalCerfRe(Double_t swt, Double_t u, Double_t c) const
                  Double_t evalCerfRe(Double_t u, Double_t c) const
          virtual Double_t evaluate() const
                  Double_t logErfC(Double_t x) const

        public:

                           RooGExpModel()
                           RooGExpModel(const char* name, const char* title, RooRealVar& x, RooAbsReal& sigma, RooAbsReal& rlife, Bool_t nlo = kFALSE, RooGExpModel::Type type = Normal)
                           RooGExpModel(const char* name, const char* title, RooRealVar& x, RooAbsReal& sigma, RooAbsReal& rlife, RooAbsReal& srSF, Bool_t nlo = kFALSE, RooGExpModel::Type type = Normal)
                           RooGExpModel(const char* name, const char* title, RooRealVar& x, RooAbsReal& sigma, RooAbsReal& rlife, RooAbsReal& sigmaSF, RooAbsReal& rlifeSF, Bool_t nlo = kFALSE, RooGExpModel::Type type = Normal)
                           RooGExpModel(const RooGExpModel& other, const char* name = "0")
                   virtual ~RooGExpModel()
                      void advertiseAsymptoticIntegral(Bool_t flag)
                      void advertiseFlatScaleFactorIntegral(Bool_t flag)
          virtual Double_t analyticalIntegral(Int_t code, const char* rangeName = "0") const
             virtual Int_t basisCode(const char* name) const
            static TClass* Class()
          virtual TObject* clone(const char* newname) const
              virtual void generateEvent(Int_t code)
             virtual Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName = "0") const
             virtual Int_t getGenerator(const RooArgSet& directVars, RooArgSet& generateVars, Bool_t staticInitOK = kTRUE) const
           virtual TClass* IsA() const
              virtual void ShowMembers(TMemberInspector& insp, char* parent)
              virtual void Streamer(TBuffer& b)
                      void StreamerNVirtual(TBuffer& b)

### Data Members

        protected:

          RooRealProxy sigma
          RooRealProxy rlife
          RooRealProxy ssf
          RooRealProxy rsf
                Bool_t _flip
                Bool_t _nlo
                Bool_t _flatSFInt
                Bool_t _asympInt   added FMV,07/24/03

        public:

          static const RooGExpModel::RooGExpBasis noBasis
          static const RooGExpModel::RooGExpBasis expBasisMinus
          static const RooGExpModel::RooGExpBasis expBasisSum
          static const RooGExpModel::RooGExpBasis expBasisPlus
          static const RooGExpModel::RooGExpBasis sinBasisMinus
          static const RooGExpModel::RooGExpBasis sinBasisSum
          static const RooGExpModel::RooGExpBasis sinBasisPlus
          static const RooGExpModel::RooGExpBasis cosBasisMinus
          static const RooGExpModel::RooGExpBasis cosBasisSum
          static const RooGExpModel::RooGExpBasis cosBasisPlus
          static const RooGExpModel::RooGExpBasis sinhBasisMinus
          static const RooGExpModel::RooGExpBasis sinhBasisSum
          static const RooGExpModel::RooGExpBasis sinhBasisPlus
          static const RooGExpModel::RooGExpBasis coshBasisMinus
          static const RooGExpModel::RooGExpBasis coshBasisSum
          static const RooGExpModel::RooGExpBasis coshBasisPlus
             static const RooGExpModel::BasisType none
             static const RooGExpModel::BasisType expBasis
             static const RooGExpModel::BasisType sinBasis
             static const RooGExpModel::BasisType cosBasis
             static const RooGExpModel::BasisType sinhBasis
             static const RooGExpModel::BasisType coshBasis
             static const RooGExpModel::BasisSign Both
             static const RooGExpModel::BasisSign Plus
             static const RooGExpModel::BasisSign Minus
                  static const RooGExpModel::Type Normal
                  static const RooGExpModel::Type Flipped

## Class Description

RooGExpModel(const char *name, const char *title, RooRealVar& x, RooAbsReal& _sigma, RooAbsReal& _rlife, Bool_t nlo, Type type) : RooResolutionModel(name,title,x), sigma("sigma","Width",this,_sigma), rlife("rlife","Life time",this,_rlife), ssf("ssf","Sigma Scale Factor",this,(RooRealVar&)RooRealConstant::value(1)), rsf("rsf","RLife Scale Factor",this,(RooRealVar&)RooRealConstant::value(1)), _flip(type==Flipped),_nlo(nlo), _flatSFInt(kFALSE), _asympInt(kFALSE)

RooGExpModel(const char *name, const char *title, RooRealVar& x, RooAbsReal& _sigma, RooAbsReal& _rlife, RooAbsReal& _rsSF, Bool_t nlo, Type type) : RooResolutionModel(name,title,x), sigma("sigma","Width",this,_sigma), rlife("rlife","Life time",this,_rlife), ssf("ssf","Sigma Scale Factor",this,_rsSF), rsf("rsf","RLife Scale Factor",this,_rsSF), _flip(type==Flipped), _nlo(nlo), _flatSFInt(kFALSE), _asympInt(kFALSE)

RooGExpModel(const char *name, const char *title, RooRealVar& x, RooAbsReal& _sigma, RooAbsReal& _rlife, RooAbsReal& _sigmaSF, RooAbsReal& _rlifeSF, Bool_t nlo, Type type) : RooResolutionModel(name,title,x), sigma("sigma","Width",this,_sigma), rlife("rlife","Life time",this,_rlife), ssf("ssf","Sigma Scale Factor",this,_sigmaSF), rsf("rsf","RLife Scale Factor",this,_rlifeSF), _flip(type==Flipped), _nlo(nlo), _flatSFInt(kFALSE), _asympInt(kFALSE)

RooGExpModel(const RooGExpModel& other, const char* name) : RooResolutionModel(other,name), sigma("sigma",this,other.sigma), rlife("rlife",this,other.rlife), ssf("ssf",this,other.ssf), rsf("rsf",this,other.rsf), _flip(other._flip), _nlo(other._nlo), _flatSFInt(other._flatSFInt), _asympInt(other._asympInt)

~RooGExpModel()

     Destructor

Int_t basisCode(const char* name) const

Double_t evaluate() const

Double_t logErfC(Double_t xx) const

     Approximation of the log of the complex error function

RooComplex calcSinConv(Double_t sign, Double_t sig, Double_t tau, Double_t omega, Double_t rtau, Double_t fsign) const

Double_t calcSinConv(Double_t sign, Double_t sig, Double_t tau, Double_t rtau, Double_t fsign) const

Double_t calcDecayConv(Double_t sign, Double_t tau, Double_t sig, Double_t rtau, Double_t fsign) const // modified FMV,08/13/03

Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* /*rangeName*/) const

Double_t analyticalIntegral(Int_t code, const char* rangeName) const

RooComplex calcSinConvNorm(Double_t sign, Double_t tau, Double_t omega, Double_t sig, Double_t rtau, Double_t fsign, const char* rangeName) const

      old code (asymptotic normalization only)
      RooComplex z(1/tau,sign*omega);
      return z*2/(omega*omega+1/(tau*tau));

Double_t calcSinConvNorm(Double_t sign, Double_t tau, Double_t sig, Double_t rtau, Double_t fsign, const char* rangeName) const

RooComplex evalCerfInt(Double_t sign, Double_t wt, Double_t tau, Double_t umin, Double_t umax, Double_t c) const

Double_t evalCerfInt(Double_t sign, Double_t tau, Double_t umin, Double_t umax, Double_t c) const

RooComplex evalCerfApprox(Double_t swt, Double_t u, Double_t c) const

     use the approximation: erf(z) = exp(-z*z)/(sqrt(pi)*z)
     to explicitly cancel the divergent exp(y*y) behaviour of
     CWERF for z = x + i y with large negative y

Int_t getGenerator(const RooArgSet& directVars, RooArgSet &generateVars, Bool_t /*staticInitOK*/) const

void generateEvent(Int_t code)

### Inline Functions

            RooGExpModel RooGExpModel(const RooGExpModel& other, const char* name = "0")
                TObject* clone(const char* newname) const
                    void advertiseFlatScaleFactorIntegral(Bool_t flag)
                    void advertiseAsymptoticIntegral(Bool_t flag)
              RooComplex evalCerf(Double_t swt, Double_t u, Double_t c) const
                Double_t evalCerfRe(Double_t swt, Double_t u, Double_t c) const
                Double_t evalCerfIm(Double_t swt, Double_t u, Double_t c) const
                Double_t evalCerfRe(Double_t u, Double_t c) const
                 TClass* Class()
                 TClass* IsA() const
                    void ShowMembers(TMemberInspector& insp, char* parent)
                    void Streamer(TBuffer& b)
                    void StreamerNVirtual(TBuffer& b)

Last update: Tue Jun 28 18:12:31 2005
Copyright (c) 2000-2005, Regents of the University of California *