 Point3D projParamsArray2Host[7*PROJ_PER_KERNEL];   // Host means it is host memory
 
 // Now we also need to store sinAlpha and cosAlpha for each projection (two floats per projection)
-__constant__ float projSinCosArray2Dev[2*PROJ_PER_KERNEL];
-
-float projSinCosArray2Host[2*PROJ_PER_KERNEL];
+__constant__ float projSinCosArray2Dev[3*PROJ_PER_KERNEL];
+
+float projSinCosArray2Host[3*PROJ_PER_KERNEL];
 //
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // END RB, 10/31/2016: Add constant memory arrays to store parameters for all projections to be analyzed during a single kernel call

        }   // END for (preparing params for kernel call)
        
        // Copy the prepared parameter arrays to constant memory to make it available for the kernel
        cudaMemcpyToSymbol(projSinCosArray2Dev, projSinCosArray2Host, sizeof(float)*2*PROJ_PER_KERNEL);
        cudaMemcpyToSymbol(projParamsArray2Dev, projParamsArray2Host, sizeof(Point3D)*7*PROJ_PER_KERNEL);
        
        kernelPixelBackprojection<<<grid,block>>>(geo,dimage,i,nalpha);

        Point3D uv0Offset = projParamsArray2Dev[7*projNumber+5];
        Point3D S = projParamsArray2Dev[7*projNumber+6];
        
        float sinalpha = projSinCosArray2Dev[3*projNumber];     // 2*projNumber because we have 2 float (sin or cos angle) values per projection
        float cosalpha = projSinCosArray2Dev[3*projNumber+1];
        float COR = projSinCosArray2Dev[3*projNumber+2];

        // Geometric trasnformations:
        //Source, scaled XYZ coordinates
        
