public double GatedMean(double startTime, double endTime)
{
double[] trimmedGates = TrimGates(startTime, endTime);
if (trimmedGates == null) return 0;
startTime = trimmedGates[0];
endTime = trimmedGates[1];
return IntegrateInternal(startTime, endTime) / (endTime - startTime);
}