Bad code created by the combination


Bad code is being generated - or it was ok, but then when it was combined it turned into bad code. Or perhaps when the optimization occurred. The program is QCDCorrelationPlots. Here is something that shows up. Syntax is right, but the 48605 variable does not exist at all. So somehow it got "lost" totally (not even a loop, or any other reference in the code). The C++ compiler fails. Obviously. :-)
                          TLorentzVector* aNTLorentzVector_48628;
                          TLorentzVector tlz7133;
                          tlz7133.SetPxPyPzE((((*(*this).AntiKt4TopoEMJets_Calibpx).at(aInt32_48605))/1000.0), (((*(*this).AntiKt4TopoEMJets_Calibpy).at(aInt32_48605))/1000.0), (((*(*this).AntiKt4TopoEMJets_Calibpz).at(aInt32_48605))/1000.0), (((*(*this).AntiKt4TopoEMJets_CalibE).at(aInt32_48605))/1000.0));
                          aNTLorentzVector_48628 = &tlz7133;


gwatts wrote Jan 11, 2014 at 7:04 AM

This was hard to solve! The problem was that the sorting wasn't caching all the variables that make up the state. We fixed this in ROFirstLast, but forgot to get it fixed here. After adding that in here, then it worked!