File tree Expand file tree Collapse file tree 1 file changed +12
-1
lines changed
roofit/roofitcore/src/RooFit Expand file tree Collapse file tree 1 file changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -112,6 +112,7 @@ struct NodeInfo {
112112 bool isCategory = false ;
113113 bool hasLogged = false ;
114114 bool computeInGPU = false ;
115+ bool isValueServer = false ; // if this node is a value server to the top node
115116 std::size_t outputSize = 1 ;
116117 std::size_t lastSetValCount = std::numeric_limits<std::size_t >::max();
117118 int lastCatVal = std::numeric_limits<int >::max();
@@ -207,6 +208,16 @@ Evaluator::Evaluator(const RooAbsReal &absReal, bool useGPU)
207208 }
208209 }
209210
211+ // Figure out which nodes are value servers to the top node
212+ _nodes.back ().isValueServer = true ; // the top node itself
213+ for (auto iter = _nodes.rbegin (); iter != _nodes.rend (); ++iter) {
214+ if (!iter->isValueServer )
215+ continue ;
216+ for (auto &serverInfo : iter->serverInfos ) {
217+ serverInfo->isValueServer = true ;
218+ }
219+ }
220+
210221 syncDataTokens ();
211222
212223 if (_useGPU) {
@@ -687,7 +698,7 @@ RooArgSet Evaluator::getParameters() const
687698{
688699 RooArgSet parameters;
689700 for (auto &nodeInfo : _nodes) {
690- if (nodeInfo.absArg ->isFundamental ()) {
701+ if (nodeInfo.isValueServer && nodeInfo. absArg ->isFundamental ()) {
691702 parameters.add (*nodeInfo.absArg );
692703 }
693704 }
You can’t perform that action at this time.
0 commit comments