code: def extract_thermodynamic_quantities(self,temperature_array):
          
          beta = 1/(_scipy.constants.Boltzmann*temperature_array)
          self.Q = self.Hamiltonian*(_np.insert(_np.diff(beta),0,beta[1]-beta[0])*self.SampleFreq)
          self.W = self.Hamiltonian-self.Q
          self.Delta_E_kin = _np.diff(self.E_kin)*self.SampleFreq
          self.Delta_E_pot = _np.diff(self.E_pot)*self.SampleFreq
          self.Delta_E = _np.diff(self.Hamiltonian)*self.SampleFreq
          
          return self.Q, self.W
docs: Calculates the thermodynamic quantities of your system at each point in time.
          Calculated Quantities: self.Q (heat),self.W (work), self.Delta_E_kin, self.Delta_E_pot
          self.Delta_E (change of Hamiltonian),
      
          Parameters
          ----------
          temperature_array : array
              array which represents the temperature at every point in your time trace
              and should therefore have the same length as the Hamiltonian
          
          Requirements
          ------------
          execute calc_hamiltonian on the DataObject first
  
          Returns:
          -------
          Q : array
              The heat exchanged by the particle at every point in time over a given trap-frequency and temperature change.
          W : array
              The work "done"  by the particle at every point in time over a given trap-frequency and temperature change.