/**
  * Updates System Response Time measures.
  *
  * @param job current job
  */
 private void updateResponseTime(Job job) {
   if (responseTimePerClass != null) {
     // Retrives measure (if not null)
     Measure m = responseTimePerClass[job.getJobClass().getId()];
     if (m != null) {
       m.update(NetSystem.getTime() - job.getSystemEnteringTime(), 1.0);
     }
   }
   if (responseTime != null) {
     responseTime.update(NetSystem.getTime() - job.getSystemEnteringTime(), 1.0);
   }
 }
  /**
   * Updates System Throughput measures.
   *
   * @param job current job
   */
  private void updateSystemPower(Job job) {

    sampling_SystemThroughputSum =
        sampling_SystemThroughputSum + (NetSystem.getTime() - lastJobOutTime);
    sampling_SystemResponseSum =
        sampling_SystemResponseSum + (NetSystem.getTime() - job.getSystemEnteringTime());
    systemPowerSamples = systemPowerSamples + 1;
    if (systemPowerPerClass != null) {
      // Retrives measure (if not null)
      // new sample is the inter-departures time (1/throughput)
      int index = job.getJobClass().getId();
      InverseMeasure m = systemPowerPerClass[index];
      samplingClass_SystemThroughputSum[index] =
          samplingClass_SystemThroughputSum[index]
              + NetSystem.getTime()
              - lastJobOutTimePerClass[index];
      systemPowerSamplesClass[index] = systemPowerSamplesClass[index] + 1;
      // Measure m = systemPowerPerClass[index];
      if (m != null) {
        double temp =
            (sampling_SystemResponseSum / systemPowerSamples)
                * (samplingClass_SystemThroughputSum[index] / systemPowerSamplesClass[index]);
        // double temp = (NetSystem.getTime() - job.getSystemEnteringTime()) * (NetSystem.getTime()
        // - lastJobOutTimePerClass[index]);
        m.update(temp, 1.0);
      }
    }
    if (systemPower != null) {
      double tmp =
          (sampling_SystemResponseSum / systemPowerSamples)
              * (sampling_SystemThroughputSum / systemPowerSamples);
      // double tmp = (NetSystem.getTime() - job.getSystemEnteringTime()) * (NetSystem.getTime() -
      // lastJobOutTime);//(R/X)
      systemPower.update(tmp, 1.0);
    }
  }