code: def run_projected_dos(self,
                            sigma=None,
                            freq_min=None,
                            freq_max=None,
                            freq_pitch=None,
                            use_tetrahedron_method=True,
                            direction=None,
                            xyz_projection=False):
          
  
          self._pdos = None
  
          if self._mesh is None:
              msg = "run_mesh has to be done before PDOS calculation."
              raise RuntimeError(msg)
  
          if not self._mesh.with_eigenvectors:
              msg = "run_mesh has to be called with with_eigenvectors=True."
              raise RuntimeError(msg)
  
          if np.prod(self._mesh.mesh_numbers) != len(self._mesh.ir_grid_points):
              msg = "run_mesh has to be done with is_mesh_symmetry=False."
              raise RuntimeError(msg)
  
          if direction is not None:
              direction_cart = np.dot(direction, self._primitive.get_cell())
          else:
              direction_cart = None
          self._pdos = PartialDos(self._mesh,
                                  sigma=sigma,
                                  use_tetrahedron_method=use_tetrahedron_method,
                                  direction=direction_cart,
                                  xyz_projection=xyz_projection)
          self._pdos.set_draw_area(freq_min, freq_max, freq_pitch)
          self._pdos.run()
docs: Calculate projected DOS from phonons on sampling mesh.
  
          Parameters
          ----------
          sigma : float, optional
              Smearing width for smearing method. Default is None
          freq_min, freq_max, freq_pitch : float, optional
              Minimum and maximum frequencies in which range DOS is computed
              with the specified interval (freq_pitch).
              Defaults are None and they are automatically determined.
          use_tetrahedron_method : float, optional
              Use tetrahedron method when this is True. When sigma is set,
              smearing method is used.
          direction : array_like, optional
              Specific projection direction. This is specified three values
              along basis vectors or the primitive cell. Default is None,
              i.e., no projection.
          xyz_projection : bool, optional
              This determines whether projected along Cartesian directions or
              not. Default is False, i.e., no projection.