Menu

RooFormulaVar with ROOTv3.10 vs v4.01

Help
2006-05-20
2013-05-09
  • Tae Min Hong

    Tae Min Hong - 2006-05-20

    Hello,

    I find that RooFormulaVar works in an old release and not in a newer one.  I don't see the problem posted here, so I'll report my findings.

    I am trying to use RooFormulaVar to define my PDF. I am using RooFit that I compiled against ROOTv4.01 in Scientific Linux 3.  To start off, I have created a simple PDF:

      //---+
      // 1 |
      //---+

      // Create the Gaussian centered at 0
      RooRealVar * x = new RooRealVar("x","x",0.0,-10.0,10.0) ;
      RooRealVar * width = new RooRealVar("width","width",1.0) ;
      RooRealVar * mean = new RooRealVar("mean","mean",0.0) ;
      RooAbsPdf * gauss = new RooGaussian("gauss","gauss",*x,*mean,*width) ;

    This works fine.  Now I try to use RooFormulaVar

      //---+
      // 2 |
      //---+

      // Create the Gaussian centered at 5
      RooAbsReal * mean2 = new RooFormulaVar("mean2","mean2","@0+5",RooArgList(*mean)) ;
      RooAbsPdf * gaussian2 = new RooGaussian("gauss2","gauss2",*x,*mean2,*width) ;

    This crashes with:

    *ERROR 30 :
    Bad numerical expression : "mean"
    RooFormula::RooFormula(mean2): compile error
    RooFormula::eval(mean2): Formula doesn't compile: mean*2
    RooFormula::eval(mean2): Formula doesn't compile: mean*2

    After checking the syntax many times, I tried an older RooFit version that I compiled against ROOT v3.10 on RedHat 7.2, and it worked!

    One thing I do want to know is whether this is a RooFit problem (RooFormulaVar) or a ROOT problem (TFormula).

    regards,
    Tae Min

     
    • Wouter Verkerke

      Wouter Verkerke - 2006-06-22

      Hi,

      I just answered this in ROOTTalk as well.
      I believe you are using an incompatible version
      of ROOT/RooFit. At some point the TFormula
      inteface was changed in ROOT(4) and needed
      an update in RooFit as well. This happened well
      over a year ago. RooFormulaVar in RooFit 2.07 works with ROOT5 and ROOT4.

      Wouter

       

Log in to post a comment.