Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added a formula evaluator to replace TFormula calls #11555

Merged
merged 6 commits into from
Nov 4, 2015

Conversation

Dr15Jones
Copy link
Contributor

Created a reco::FormulaEvaluator class which can parse a subset of
the TFormula expressions. The parsing and function evaluation are
done using stateless classes so are thread safe and extremely thread
efficient. The formula parser is shared by all reco::FormulaEvaluators
to save memory and since the parser is stateless it can efficiently
be called by multiple threads simultaneously.

This is a back port from CMSSW_7_6 of #11516

Created a reco::FormulaEvaluator class which can parse a subset of
the TFormula expressions. The parsing and function evaluation are
done using stateless classes so are thread safe and extremely thread
efficient. The formula parser is shared by all reco::FormulaEvaluators
to save memory and since the parser is stateless it can efficiently
be called by multiple threads simultaneously.
@cmsbuild
Copy link
Contributor

A new Pull Request was created by @Dr15Jones (Chris Jones) for CMSSW_7_5_X.

Added a formula evaluator to replace TFormula calls

It involves the following packages:

CommonTools/Utils

@cmsbuild, @cvuosalo, @vadler, @monttj, @slava77 can you please review it and eventually sign? Thanks.
@makortel this is something you requested to watch as well.
You can sign-off by replying to this message having '+1' in the first line of your reply.
You can reject by replying to this message having '-1' in the first line of your reply.
If you are a L2 or a release manager you can ask for tests by saying 'please test' in the first line of a comment.
@Degano you are the release manager for this.
You can merge this pull request by typing 'merge' in the first line of your comment.

@Dr15Jones
Copy link
Contributor Author

please test

@cmsbuild
Copy link
Contributor

The tests are being triggered in jenkins.

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

@slava77
Copy link
Contributor

slava77 commented Oct 1, 2015

+1

for #11555 6a7bbaa

SimpleJetCorrector places its variables and parameters into arrays
instead of std::vector. Adding an adaptor for arrays allows for
direct uses of the array without having to fill a temporary std::vector.
SimpleJetCorrector uses TFormula expressions which include comparison
operators.
Further tests of expressions from the data base showed that there
were additional ones that couldn't be handled.
@Dr15Jones
Copy link
Contributor Author

please test

@Dr15Jones
Copy link
Contributor Author

I've added back ported all the fixes already added to CMSSW_7_6

@cmsbuild
Copy link
Contributor

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/8752/console

@cmsbuild
Copy link
Contributor

Pull request #11555 was updated. @cmsbuild, @cvuosalo, @vadler, @monttj, @slava77 can you please check and sign again.

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

@slava77
Copy link
Contributor

slava77 commented Oct 13, 2015

+1

for #11555 304a653

  • with this PR, the parts of CommonTools/Utils related to the formula evaluator are now the same as in 76X
  • jenkins tests pass; the code is not used yet in any workflow and comparisons with baseline show no differences.

@Dr15Jones are you going to apply the TFormula change in the JetCorrector in 75X as well?

@Dr15Jones
Copy link
Contributor Author

It would be useful for improving threading efficiency but ultimately it is a call for RECO and the L1s. @davidlange6

@slava77
Copy link
Contributor

slava77 commented Oct 13, 2015

On 10/13/15 9:07 AM, Chris Jones wrote:

It would be useful for improving threading efficiency but ultimately it
is a call for RECO and the L1s. @davidlange6
https://github.com/davidlange6

Less change is less cause for possible disruption.
If we don't put it back to 74X, then there is no big need to have it in 75X.
I wouldn't want to have a hole in features in 75X if they get
backported to 74X.


Reply to this email directly or view it on GitHub
#11555 (comment).

davidlange6 added a commit that referenced this pull request Nov 4, 2015
Added a formula evaluator to replace TFormula calls
@davidlange6 davidlange6 merged commit 6abd182 into cms-sw:CMSSW_7_5_X Nov 4, 2015
@Dr15Jones Dr15Jones deleted the formulaEvaluator_7_5 branch December 8, 2015 19:50
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.

4 participants