protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            var chunks = EntityManager.CreateArchetypeChunkArray(_query, Allocator.TempJob);

            InitializeChunkIterationWorld.LogChunksCount(this, chunks.Length);
            if (!_totalSum.IsCreated)
            {
                _totalSum     = new NativeArray <double>(chunks.Length, Allocator.Persistent);
                _noTagSum     = new NativeArray <double>(chunks.Length, Allocator.Persistent);
                _firstTagSum  = new NativeArray <double>(chunks.Length, Allocator.Persistent);
                _secondTagSum = new NativeArray <double>(chunks.Length, Allocator.Persistent);
            }
            var job = new ChunkSum
            {
                Chunks           = chunks,
                RandomType       = GetArchetypeChunkComponentType <RandomValue>(true),
                FirstTagType     = GetArchetypeChunkComponentType <FirstTag>(true),
                SecondTagType    = GetArchetypeChunkComponentType <SecondTag>(true),
                TotalResults     = _totalSum,
                NoTagResults     = _noTagSum,
                FirstTagResults  = _firstTagSum,
                SecondTagResults = _secondTagSum
            }.Schedule(chunks.Length, 64);

            job.Complete();
            double noTagsSum    = 0;
            double firstTagSum  = 0;
            double secondTagSum = 0;
            double totalSum     = 0;

            for (int i = 0; i < _totalSum.Length; i++)
            {
                totalSum     += _totalSum[i];
                noTagsSum    += _noTagSum[i];
                firstTagSum  += _firstTagSum[i];
                secondTagSum += _secondTagSum[i];
            }


            InitializeChunkIterationWorld.LogSumResults(this, noTagsSum, firstTagSum, secondTagSum, totalSum);

            chunks.Dispose();
            return(base.OnUpdate(inputDeps));
        }