void SetRecoParam( void ) { int dim,i,complexDataCorr; DB_MSG(("-->SetRecoParam\n")); /* set baselevel reconstruction parameter */ /* default initialization of reco based on acqp pars allready set */ ATB_InitDefaultReco(); /* configure information available during setup mode */ GS_info_dig_filling = Yes; ParxRelsParRelations("GS_info_dig_filling",Yes); GS_info_normalized_area = Of_raw_data; ParxRelsParRelations("GS_info_normalized_area",Yes); /* set reco rotate according to phase offsets */ dim = (int) PARX_get_dim("ACQ_size",1); for (i=0; i<dim; i++) { if (i==0) complexDataCorr = 2; else complexDataCorr = 1; RECO_size[i] = (int)(ACQ_size[i] / complexDataCorr) ; } DB_MSG(("<--SetRecoParam\n")); }
void SetRecoParam( void ) { int dim,i,size,ftSize[3]; DB_MSG(("-->SetRecoParam\n")); /* set baselevel reconstruction parameter */ /* default initialization of reco based on acqp pars allready set */ ATB_InitDefaultReco(); for(i=0; i<PTB_GetSpatDim(); i++) ftSize[i] = (int)(PVM_Matrix[i]*PVM_AntiAlias[i]); if(PVM_EncUseMultiRec == Yes || PVM_EncPftAccel1 > 1.0) { int k=0; /* select method specific reconstruction method */ RECO_mode = USER_MODE; ParxRelsParRelations("RECO_mode",Yes); ATB_InitUserModeReco(ACQ_dim, PVM_EncMatrix, ftSize, PVM_EncSteps1, PVM_EncSteps2, PVM_EncNReceivers, PVM_EncPpiAccel1, PVM_EncPpiRefLines1, NI, ACQ_obj_order, ACQ_phase_factor, PVM_EchoPosition); /* set scaling values for phased array coils */ for(k=0; k<PVM_EncNReceivers;k++) RecoScaleChan[k] = PVM_EncChanScaling[k]; } dim = PTB_GetSpatDim(); /* set reco sizes and ft_mode (dim 2&3) */ /* (dim 1 is kept as it was set by ATB_InitDefaultReco) */ for(i=0; i<dim; i++) { size = (int)(PVM_Matrix[i]*PVM_AntiAlias[i]); RECO_ft_mode[i] = (size == PowerOfTwo(size)) ? COMPLEX_FFT:COMPLEX_FT; RECO_ft_size[i] = size; RECO_size[i] = PVM_Matrix[i]; } ParxRelsParRelations("RECO_ft_mode",Yes); ParxRelsParRelations("RECO_ft_size",Yes); ParxRelsParRelations("RECO_size",Yes); /* set reco rotate according to phase offsets */ ATB_SetRecoRotate(PVM_EffPhase1Offset, PVM_Fov[1]*PVM_AntiAlias[1], NSLICES, PVM_NEchoImages, 1) ; /* phase1 direction*/ if(dim==3) { ATB_SetRecoRotate(PVM_EffPhase2Offset, PVM_Fov[2]*PVM_AntiAlias[2], NSLICES, PVM_NEchoImages, 2) ; /* phase2 direction*/ } /* set reco offset */ ATB_SetRecoOffset(RECO_ft_size, PVM_AntiAlias, NI, dim); for(i=0;i<dim;i++) RECO_fov[i]= PVM_FovCm[i]; ParxRelsParRelations("RECO_fov",Yes); ATB_SetRecoTransposition(PtrType3x3 ACQ_grad_matrix[0], PVM_NSPacks, NSLICES, ACQ_ns_list_size, ACQ_obj_order) ; DB_MSG(("<--SetRecoParam\n")); }