Tracking Optimization: Eloss LUT

STI spends about 3.6% of the total time in chain computing dEdx.  Much of the time is spent taking sqrt's and logs of numbers.  We investigate transforming to a lookup table.

Figure 1 -- Timing for baseline STI.  Eloss takes 3.63% of the chain time.

Lookuptable implementation:

Every instance of an StiMaterial creates an StiElossCalculator.  We use the calculator to hold a histogram of dEdx vs momentum, binned logarithmically from 0.01 GeV to 250 GeV.  We use the histogram's interpolate method to retrieve dEdx instead of making calls to gdrelx on every step.

Figure 2 -- gdrelx replaced by lookup table.  Eloss calculation takes 3.4% of chain.  Concl

Figure 2 --

This trades time spent doing calculations for time spent doing a binary search for the correct bin.  However, we don't need to search for the bin.  Given the momentum of the track, we can calculate which bin it is in directly.  This will potentially win us another 1.7%.