function pbeDefinition = constGrowth_metroMix(seed)

%% call common definition
pbeDefinition = constGrowth_common;

%% discrete sampling
% take integral from already-performed integration
load('constGrowthIntegrals_0.matx', '-mat');

volFraction = 0.5;
numFraction = 0.5;
pbeDefinition.seeding.mixHandle = @(h)(...
    volFraction *...
    pbeDefinition.seeding.volumeHandle(h) / ...
    integral.volume.value + ...
    numFraction *...
    pbeDefinition.seeding.fhandle(h) / ...
    integral.number.value);

metroIntegral = 1;

if seed >= 0
    thisFileName = ['metroArchive/constGrowthMetroMix_' num2str(seed) '.matx'];
else
    pbeDefinition.seeding.nSample = 1e5;
    thisFileName = ['metroArchive/constGrowthMetroMix_highRes.matx'];
end
if ~exist(thisFileName, 'file')
    rng(abs(seed));

    % pbeDefinition.seeding.nSample = 1e5;
    disD = obtainDistributionDiscrete('metro', ...
        'nSample', pbeDefinition.seeding.nSample, ...
        'metroHandle', pbeDefinition.seeding.mixHandle, ...
        'metroInit', pbeDefinition.seeding.mean, ...  %m
        'metroCov', pbeDefinition.seeding.cov, ...
        'metroNonAdaptive', 1e3, ...
        'metroNoHistory', 1e3, ...
        'metroIntegral', metroIntegral, ...
        'metroSampleBatch', 1e3, ...
        'verbose', 1);
    save(thisFileName, '-mat', 'disD')
else
    load(thisFileName, '-mat');
end
pbeDefinition.seeding.disD = disD;

% printDistributionStatistics(pbeDefinition);