<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def make_measurement(name, channels, lumi=1.0, lumi_rel_error=0.1, output_prefix='./histfactory', POI=None, const_params=None, verbose=False):
 """ Create a Measurement from a list of Channels """

    if verbose:
        llog = log['make_measurement']
        llog.info("creating measurement {0}".format(name))

    if not isinstance(channels, (list, tuple)):
        channels = [channels]

    # Create the measurement
    meas = Measurement('measurement_{0}'.format(name), '')
    meas.SetOutputFilePrefix(output_prefix)
    if POI is not None:
        if isinstance(POI, string_types):
            if verbose:
                llog.info("setting POI {0}".format(POI))
            meas.SetPOI(POI)
        else:
            if verbose:
                llog.info("adding POIs {0}".format(', '.join(POI)))
            for p in POI:
                meas.AddPOI(p)

    if verbose:
        llog.info("setting lumi={0:f} +/- {1:f}".format(lumi, lumi_rel_error))
    meas.lumi = lumi
    meas.lumi_rel_error = lumi_rel_error

    for channel in channels:
        if verbose:
            llog.info("adding channel {0}".format(channel.GetName()))
        meas.AddChannel(channel)

    if const_params is not None:
        if verbose:
            llog.info("adding constant parameters {0}".format(
                ', '.join(const_params)))
        for param in const_params:
            meas.AddConstantParam(param)

    return meas