@classmethod
def new(cls, tree, data=None):
    """Create a new |ExperimentSection|.

        Parameters
        ----------
        tree : |DesignTree|
            Describes the design of the experiment hierarchy.
        data : |ChainMap|
            All data to be associated with the |ExperimentSection|,
            including the values of independent variables,
            the section numbers indicating the section's location in the experiment,
            and any results associated with this section,
            arising from either the run callback of the |Experiment| or from the method |ExperimentSection.add_data|.
            `data` should be a  |collections.ChainMap|,
            which behaves like a dictionary but has a hierarchical organization such that
            children can access values from the parent but not vice-versa.

        """
    self = cls(tree, data)
    if not self.is_bottom_level:
        self.append_design_tree(self.get_next_tree(), _renumber=False)
        self._number_children()
    return self
