//####################################################################
void MAPS::reorderFSBB() {
- Float_t CDSMATRIX2 [4*208*2];
Float_t CDSMATRIX [fPixels];
Int_t F0MATRIX [fPixels];
Int_t F1MATRIX [fPixels];
fRows = 4;
fColumns = 416;
fPixels = fRows*fColumns;
- // cout<<"Changed parameters for FSBB, fRows is now: "<<fRows<<" and fColumns is now: "<<fColumns<<endl;
// debugStream(CDSMATRIX, fPixels, 208, 0, 39);
Int_t subRows = 4;
Int_t a0[subRows][subColumns];
Int_t a1[subRows][subColumns];
Int_t aMerge[fRows][fColumns];
- Int_t subMatrix0[subRows][subColumns];
- Int_t subMatrix1[subRows][subColumns];
+
//Divide CDSMATRIX in the channels. First 208 pixels are from A0-0, then A0-1, then A0-2, then A0-3, then A1-0, then A1-1, then A1-2, then A1-3
for(Int_t iOutChannel=0; iOutChannel<subRows; iOutChannel++)
{
aMerge[iOutChannel][iMerge2channels*2+1]=a1[iOutChannel][iMerge2channels];//A1-iOutChannel[iMerge2channels]
}
}
- // for(Int_t ichannel=0; ichannel<4; ichannel++)
- // {
- // Int_t precision=0;
- // Float_t highlightabove=30;
- // for(Int_t i=0; i<2*208; i++)
- // {
- // if (abs(aMerge[ichannel][i]) > highlightabove)
- // std::cout << colorred;
- // std::cout.width(precision+5);
- // std::cout << std::fixed;
- // std::cout << std::left << std::setprecision(precision);
- // std::cout << aMerge[ichannel][i] << colorreset;
-
- // }
- // cout<<endl;
- // cout<<endl;
- // }
- for(Int_t iOutChannel=0; iOutChannel<subRows; iOutChannel++)
- {
- for(Int_t iDivideMatrix=0; iDivideMatrix<subColumns;iDivideMatrix++)
- {
- //Divide in 2 submatrices
- subMatrix0[iOutChannel][iDivideMatrix]=aMerge[iOutChannel][iDivideMatrix];
- subMatrix1[iOutChannel][iDivideMatrix]=aMerge[iOutChannel][subColumns+iDivideMatrix];
- }
- }
- // for(Int_t i=0; i<208; i++)
- // {
- // cout<< subMatrix1[2][i]<<",";
- // }
- // cout<<endl;
- // cout<<endl;
- // for(Int_t i=0; i<208; i++)
- // {
- // cout<< subMatrix1[3][i]<<",";
- // }
- // cout<<endl;
- // cout<<endl;
- Int_t choiceSubMatrix=2;
- if(choiceSubMatrix==0)//Choose a submatrix and combine its value in an array
+ for(Int_t iOutChannel=0; iOutChannel<fRows; iOutChannel++)
{
- for(Int_t iOutChannel=0; iOutChannel<subRows; iOutChannel++)
- {
- for(Int_t iPixel=0; iPixel<subColumns;iPixel++)
- {
- CDSMATRIX2[iOutChannel*subColumns+iPixel]=subMatrix0[iOutChannel][iPixel];
- }
- }
- for(Int_t i=0; i<subRows*subColumns; i++)
- {
- fCdsmatrix[i]= CDSMATRIX2 [i];
- }
- }
- else if(choiceSubMatrix==1)
- {
- for(Int_t iOutChannel=0; iOutChannel<subRows; iOutChannel++)
- {
- for(Int_t iPixel=0; iPixel<subColumns;iPixel++)
- {
- CDSMATRIX2[iOutChannel*subColumns+iPixel]=subMatrix1[iOutChannel][iPixel];
- }
- }
- for(Int_t i=0; i<subRows*subColumns; i++)
- {
- fCdsmatrix[i]= CDSMATRIX2 [i];
- }
- }
- else if(choiceSubMatrix==2)//For FSBB, do not divide the matrix
- {
- for(Int_t iOutChannel=0; iOutChannel<subRows; iOutChannel++)
- {
- for(Int_t iPixel=0; iPixel<fColumns;iPixel++)
- {
- CDSMATRIX2[iOutChannel*fColumns+iPixel]=aMerge[iOutChannel][iPixel];
- }
- }
- for(Int_t i=0; i<fRows*fColumns; i++)
- {
- fCdsmatrix[i]= CDSMATRIX2 [i];
+ for(Int_t iPixel=0; iPixel<fColumns;iPixel++)
+ {
+ fCdsmatrix[iOutChannel*fColumns+iPixel]=aMerge[iOutChannel][iPixel];//Write the merged data in fCdsmatrix, which is 1dim array (standard)
}
}
- // debugStream(CDSMATRIX2, 4*208, 208,0,30);
- // for(Int_t i=0; i<4*208; i++)
- // {
- // fCdsmatrix[i]= CDSMATRIX2 [i];
- // }
-
- // for(Int_t i=0; i<4*208*2; i++)
- // {
- // fCdsmatrix[i]= aMerge [i];
- // }
-
-
- /*
- Int_t pixel=4*416;
- Int_t array[pixel];
- for(int i=0;i<pixel;i++)
- array[i]=CDSMATRIX [i];
-
- //Divide array in two submatrices
- Int_t submatrix=0;
- Int_t nMatrix=2;
- Int_t pixelInSubMatrix=pixel/nMatrix;
- Int_t arrayDiv[pixelInSubMatrix];
- for(int i=0;i<pixelInSubMatrix;i++)
- arrayDiv[i]=array[i+submatrix*pixelInSubMatrix];
- debugStream(arrayDiv, pixelInSubMatrix, 208, 0, 39);
- for(Int_t i=0; i<pixelInSubMatrix; i++)
- {
- fCdsmatrix[i]= arrayDiv[i];
- }
- for(Int_t i=pixelInSubMatrix; i<fPixels; i++)
- {
- fCdsmatrix[i]= 0;
- }
- // exit(1);*/
}
//####################################################################