Skip to content

Conversation

@guitargeek
Copy link
Contributor

@guitargeek guitargeek commented May 10, 2023

This is the continuation of the campaign to slim down the public RooFit interface:

  1. Remove deprecated RooCatType
  2. Make RooGenProdProj private
  3. Get rid of RooScaledFunc.
  4. Remove RooAbsRootFinder
  5. Remove deprecated RooAbsString
  6. Remove internal RooFormula from public RooFit interface

@github-actions
Copy link

github-actions bot commented May 11, 2023

Test Results

       2 files         2 suites   6h 21m 51s ⏱️
2 428 tests 2 428 ✔️ 0 💤 0
4 761 runs  4 761 ✔️ 0 💤 0

Results for commit b2d9fe7.

♻️ This comment has been updated with latest results.

@root-project root-project deleted a comment from phsft-bot May 11, 2023
@root-project root-project deleted a comment from phsft-bot May 11, 2023
@root-project root-project deleted a comment from phsft-bot May 11, 2023
@root-project root-project deleted a comment from phsft-bot May 11, 2023
@root-project root-project deleted a comment from phsft-bot May 11, 2023
@root-project root-project deleted a comment from phsft-bot May 11, 2023
@root-project root-project deleted a comment from phsft-bot May 11, 2023
@root-project root-project deleted a comment from phsft-bot May 11, 2023
@phsft-bot
Copy link

Starting build on ROOT-debian10-i386/soversion, ROOT-performance-centos8-multicore/cxx17, ROOT-ubuntu18.04/nortcxxmod, ROOT-ubuntu2004/python3, mac12/noimt, mac11/cxx14, windows10/cxx14
How to customize builds

Copy link
Member

@lmoneta lmoneta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!
Thank you Jonas for this clean-up!

Only comment is if we are sure that removing the RooFormula will not be a problem for some users

@guitargeek
Copy link
Contributor Author

Weill, one can never be 100 % sure, but from searching through GitHub and CERN GitLab and googling, it looks like no user is using the RooFormula class directly. They are using the RooFormulaVar or RooGenericPdf.

@guitargeek guitargeek merged commit a470a3d into root-project:master May 15, 2023
@guitargeek guitargeek deleted the roofit_cleanups branch May 15, 2023 18:26
guitargeek added a commit to guitargeek/root that referenced this pull request May 16, 2023
With PR root-project#12800, the `RooFormula` was taken out of the public user
interface, because it is an implementation detail of the RooFormulaVar
and RooGenericPdf.

However, there are cases where people used the RooFormula interface to
access some information that was otherwise unavailable, like the set of
actual variables that the formula depends on.

There is some code in RooFormulaVar and RooGenericPdf that makes it seem
like these classes provide an interface to the actual variables
themselves:

```c++
  const RooArgList& dependents() const { return _actualVars; }
  ...

  RooListProxy _actualVars ;     ///< Actual parameters used by formula engine
```

However, `_actualVars` is containing **all** variables, not the actual
variables as the name suggests!

Fixing this removes the need to access the actual vars via the
`RooFormula`.

This connects to a discussion that was held on GitHub:
root-project@a470a3d#commitcomment-113514331
guitargeek added a commit to guitargeek/root that referenced this pull request May 16, 2023
With PR root-project#12800, the `RooFormula` was taken out of the public user
interface, because it is an implementation detail of the RooFormulaVar
and RooGenericPdf.

However, there are cases where people used the RooFormula interface to
access some information that was otherwise unavailable, like the set of
actual variables that the formula depends on.

There is some code in RooFormulaVar and RooGenericPdf that makes it seem
like these classes provide an interface to the actual variables
themselves:

```c++
  const RooArgList& dependents() const { return _actualVars; }
  ...

  RooListProxy _actualVars ;     ///< Actual parameters used by formula engine
```

However, `_actualVars` is containing **all** variables, not the actual
variables as the name suggests!

Fixing this removes the need to access the actual vars via the
`RooFormula`.

This connects to a discussion that was held on GitHub:
root-project@a470a3d#commitcomment-113514331
guitargeek added a commit to guitargeek/root that referenced this pull request May 24, 2023
With PR root-project#12800, the `RooFormula` was taken out of the public user
interface, because it is an implementation detail of the RooFormulaVar
and RooGenericPdf.

However, there are cases where people used the RooFormula interface to
access some information that was otherwise unavailable, like the set of
actual variables that the formula depends on.

There is some code in RooFormulaVar and RooGenericPdf that makes it seem
like these classes provide an interface to the actual variables
themselves:

```c++
  const RooArgList& dependents() const { return _actualVars; }
  ...

  RooListProxy _actualVars ;     ///< Actual parameters used by formula engine
```

However, `_actualVars` is containing **all** variables, not the actual
variables as the name suggests!

Fixing this removes the need to access the actual vars via the
`RooFormula`.

This connects to a discussion that was held on GitHub:
root-project@a470a3d#commitcomment-113514331
guitargeek added a commit that referenced this pull request May 24, 2023
With PR #12800, the `RooFormula` was taken out of the public user
interface, because it is an implementation detail of the RooFormulaVar
and RooGenericPdf.

However, there are cases where people used the RooFormula interface to
access some information that was otherwise unavailable, like the set of
actual variables that the formula depends on.

There is some code in RooFormulaVar and RooGenericPdf that makes it seem
like these classes provide an interface to the actual variables
themselves:

```c++
  const RooArgList& dependents() const { return _actualVars; }
  ...

  RooListProxy _actualVars ;     ///< Actual parameters used by formula engine
```

However, `_actualVars` is containing **all** variables, not the actual
variables as the name suggests!

Fixing this removes the need to access the actual vars via the
`RooFormula`.

This connects to a discussion that was held on GitHub:
a470a3d#commitcomment-113514331
enirolf pushed a commit to enirolf/root that referenced this pull request May 26, 2023
With PR root-project#12800, the `RooFormula` was taken out of the public user
interface, because it is an implementation detail of the RooFormulaVar
and RooGenericPdf.

However, there are cases where people used the RooFormula interface to
access some information that was otherwise unavailable, like the set of
actual variables that the formula depends on.

There is some code in RooFormulaVar and RooGenericPdf that makes it seem
like these classes provide an interface to the actual variables
themselves:

```c++
  const RooArgList& dependents() const { return _actualVars; }
  ...

  RooListProxy _actualVars ;     ///< Actual parameters used by formula engine
```

However, `_actualVars` is containing **all** variables, not the actual
variables as the name suggests!

Fixing this removes the need to access the actual vars via the
`RooFormula`.

This connects to a discussion that was held on GitHub:
root-project@a470a3d#commitcomment-113514331
maksgraczyk pushed a commit to maksgraczyk/root that referenced this pull request Jun 28, 2023
With PR root-project#12800, the `RooFormula` was taken out of the public user
interface, because it is an implementation detail of the RooFormulaVar
and RooGenericPdf.

However, there are cases where people used the RooFormula interface to
access some information that was otherwise unavailable, like the set of
actual variables that the formula depends on.

There is some code in RooFormulaVar and RooGenericPdf that makes it seem
like these classes provide an interface to the actual variables
themselves:

```c++
  const RooArgList& dependents() const { return _actualVars; }
  ...

  RooListProxy _actualVars ;     ///< Actual parameters used by formula engine
```

However, `_actualVars` is containing **all** variables, not the actual
variables as the name suggests!

Fixing this removes the need to access the actual vars via the
`RooFormula`.

This connects to a discussion that was held on GitHub:
root-project@a470a3d#commitcomment-113514331
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants