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
Removed use of static for temporary variable in TauA1NuConstrainedFitter #3062
Removed use of static for temporary variable in TauA1NuConstrainedFitter #3062
Conversation
The threaded framework was failing becuase multiple DQM modules were calling TauA1NuConstrainedFitter at the same time and the class was using a static to hold temporary data. I changed the code so now one passes the value as an argument of the function which uses the value. This also required changed ErrorMatrixPropagator which was formerly taking a pointer to a function but now sometimes the function being called needed an additional argument. Changing ErrorMatrixPropagator to use a std::function<> instead of a pointer to a function as the argument fixed that problem.
This bug is causing the majority of the failures in the 7_1_THREADED_X IBs |
A new Pull Request was created by @Dr15Jones (Chris Jones) for CMSSW_7_1_X. Removed use of static for temporary variable in TauA1NuConstrainedFitter It involves the following packages: RecoTauTag/ImpactParameter @nclopezo, @cmsbuild, @anton-a, @thspeer, @slava77, @Degano can you please review it and eventually sign? Thanks. |
I was wrong that this is causing the problem with the _THREADED IBs. However, it still is a problem for the ParticleFlow tau producer. |
…ainedFitter RecoTauTag/ImpactParameter -- Removed use of static for temporary variable in TauA1NuConstrainedFitter
The threaded framework was failing becuase multiple DQM modules were calling
TauA1NuConstrainedFitter at the same time and the class was using a static
to hold temporary data. I changed the code so now one passes the value as an
argument of the function which uses the value. This also required changed
ErrorMatrixPropagator which was formerly taking a pointer to a function but
now sometimes the function being called needed an additional argument. Changing
ErrorMatrixPropagator to use a std::function<> instead of a pointer to a function
as the argument fixed that problem.