-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
Added a formula evaluator to replace TFormula calls #11555
Conversation
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.
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. |
please test |
The tests are being triggered in jenkins. |
+1
|
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.
please test |
I've added back ported all the fixes already added to CMSSW_7_6 |
The tests are being triggered in jenkins. |
+1
@Dr15Jones are you going to apply the TFormula change in the JetCorrector in 75X as well? |
It would be useful for improving threading efficiency but ultimately it is a call for RECO and the L1s. @davidlange6 |
On 10/13/15 9:07 AM, Chris Jones wrote:
Less change is less cause for possible disruption.
|
Added a formula evaluator to replace TFormula calls
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