// TagDefinitions
// 
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN
#endif
//#pragma pack(1)


////////////////////////////////////////////////////////////////
//
// Copyright 2002-2008, Exxim Computing, Inc.
// ALL RIGHTS RESERVED
//  
// UNPUBLISHED -- Rights reserved under the copyright laws of
// the United States.   Use of a copyright notice is precautionary
// only and does not imply publication or disclosure.
//  
// The content of this work contains confidential and proprietary
// information from Exxim Computing, Inc.  
// Any duplication, modification,
// distribution, or disclosure in any form, in whole or in part,
// is strictly prohibited without prior express written consent
// from Exxim Computing Corporation
//
////////////////////////////////////////////////////////////////


// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
//					Important !!!
//
//			Please do not change this file
//
// 
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!



#ifndef __TagDefinitions_h__
#define __TagDefinitions_h__

//	------------------------------------------------------------------------------
//
//	Input data formats and location
//

#define		PARTAG_SRCDATAPATH				1000	//	Source data folder, default = c:\data (external use)
#define		OPTTAG_PRJNAMEFORMAT			2119	//	Source data folder, default = c:\data (external use)

#define		PARTAG_INPUTHEADERLEN			1310	//	A length of input projection header (bytes),  default = 0  (external use)
#define		PARTAG_INPUTISUNSIGNED	  0x00010000	//	Input projection contains unsigned 2-bytes integers,  default = 0  (external use)
#define		PARTAG_INPUTREQSWAP		  0x00020000	//	Input projection requires byte swapping (big/little endian switch),  default = 0  (external use)
#define		PARTAG_INPUTDOWNSAMPLED	  0x00040000	//	Input projection should be downsampled  (external use)
#define		PARTAG_INPUTLOGGEDFLOAT	  0x00080000	//	Input projection is logged and has float format  (external use)
#define		PARTAG_INTFORMAT		  0x00040030	//	Internal COBRA use	
#define		PARTAG_INTFORMAT_BIT	  0x08000000	//	Internal COBRA use	


// Extended Data Format 

#define		PARTAG_INPUTDOWNSAMPLE_X  0x00040001	//	Input projection should be downsampled along X by this factor  (external use)
#define		PARTAG_INPUTDOWNSAMPLE_Y  0x00040002	//	Input projection should be downsampled along Y by this factor  (external use)
#define		PARTAG_HISFORMAT		  0x00040005	//	Internal COBRA use
#define		PARTAG_HISFORMAT_BIT	  0x01000000	//	Internal COBRA use	
#define		PARTAG_AIRSCANSSTARTFROM  0x00040010	//	Internal COBRA use	
#define		PARTAG_PRJSTARTFROM		  0x00040015	//	The projection counter starts from this number (external use)
#define		PARTAG_TRANSPOSED_PRJ	  0x00040067	//	Projection should be transposed before filtering (external use)	
#define		PARTAG_TRANSPOSED_PRJ_BIT 0x80000000	//	Internal COBRA use

#define		PARTAG_GNIFORMAT		  0x00040025	//	Internal COBRA use	
#define		PARTAG_GNIFORMAT_BIT	  0x04000000	//	Internal COBRA use	
#define		PARTAG_CATFORMAT		  0x00040029	//	Internal COBRA use	
#define		PARTAG_CATFORMAT_BIT	  0x10000000	//	Internal COBRA use	


//	------------------------------------------------------------------------------
//
// Slice format and location
//
#define		PARTAG_DSTDATAPATH				1010	//	Slice folder, default = c:\images   (external use)
#define		OPTTAG_SLCNAMEFORMAT			2100	//	Format string for slice  file in C-syntax, default = %04i.slice   (external use)
#define		PARTAG_MINUS1000				2085		//	Dump with -1000 offset   (external use)
#define		PARTAG_MINUS1000_MASK			0x00000001	//	Mask of Dump with -1000 offset (internal use)
#define		PARTAG_SLICEOFFSETVALUE			2086		//	Dump with arbitrary offset   (external use)
#define		PARTAG_DICOM					2087		//	Dump data as DICOM files   (external use)
#define		PARTAG_DICOM_MASK				0x00000004	//	Mask of Dump data as DICOM files in ReconParam.opt_nSlcFormat (internal use)
#define		PARTAG_NEGATIVE_DENIED			2090		//	Negative densities (on slices) are converted to 0, default = 0   (external use)
#define		PARTAG_NEGATIVE_DENIED_MASK		0x00000008	//	(internal use)
#define		PARTAG_DUMPVOL					2099		//	Dump the whole volume into one file	(Internal/Reserved)
#define		PARTAG_DUMPVOL_MASK				0x00000010	//  (internal use) 
#define		PARTAG_SHOWEXTRA				2084		//	Show Extra Mode (External)
#define		PARTAG_SHOWEXTRA_BIT			0x00000003	//	Show Extra Setting Mask (Internal)
#define		PARTAG_SLICEFLIPX				2091		//	Flip slices over X axis	 (external use)			
#define		PARTAG_SLICEFLIPX_BIT			0x00000010	//	Bit mask for flip slices over X axis (Internal)
#define		PARTAG_SLICEFLIPY				2092		//	Flip slices over X axis	 (external use)			
#define		PARTAG_SLICEFLIPY_BIT			0x00000020	//	Bit mask for flip slices over Y axis (Internal)
#define		PARTAG_SLICEFLIPZ				2093		//	Flip slices over X axis	 (external use)	
#define		PARTAG_SLICEFLIPZ_BIT			0x00000040	//	Bit mask for flip slices over Z axis (Internal)

#define		PARTAG_DUMPVOLBG				2097		//	In multi-pass , dumping volume on the background	 (external use)	
#define		PARTAG_DUMPVOLBG_BIT			0x00000080	//	Bit mask for dumping volume on the background (Internal)

#define		PARTAG_SLICE_AUTOWATER			2094		//	Slice scale / water level auto-adjustment (external use)	
#define		PARTAG_SLICE_AUTOWATER_BIT		0x000fff00	//	Bit mask for slice scale / water level auto-adjustment  (Internal)

//	------------------------------------------------------------------------------
//
//	Data acquisition and geometry
//

#define		PARTAG_SRCOBJDIST				1020	//	Source to Object Distance [mm], default = 500   (external use)
#define		PARTAG_SRCDETDIST				1030	//	Object to Detector Distance [mm], default =1000   (external use)
#define		PARTAG_SCANANGLE				1050	//	Scan Angle [degrees], default = 360   (external use)
#define		PARTAG_STARTANGLE				1055	//	Start Angle of Scanning [degrees], default = 0   (external use)
#define		PARTAG_INVERSEANGLE				1057	//	Angles in .bin should be inversed, default = 0   (internal use)
#define		PARTAG_ROTATIONDIR				1240	//	Rotation direction (+1 for CW and -1 for CCW), default = 1   (external use)

#define		PARTAG_PROJACQUIRED				1060	//	Number of projections acquired, default = 361   (external use)
#define		PARTAG_PROJRECON				1070	//	Number of projections to reconstruct, default = 360   (external use)

#define		PARTAG_DETSIZEU					1080	//	Detector size in U (horiz), default = 512   (external use)
#define		PARTAG_DETSIZEV					1090	//	Detector size in U (vert), default = 512   (external use)

#define		PARTAG_DETOFFSETU				1100	//	Detector offset in U (pixels), default = 0   (external use)
#define		PARTAG_DET_OFFSET_U_3XEXT		1107	//	Detector offset in U, 3X mode (pixels), default = 0   (external use)
#define		PARTAG_DETOFFSETV				1110	//	Detector offset in V (pixels), default = 0	  (external use)	

#define		PARTAG_DETPITCHU				1120	//	U Detector Pitch [mm], default = 1  (external use)
#define		PARTAG_DETPITCHV				1130	//	V Detector Pitch [mm], default = 1  (external use)

#define		PARTAG_DETPIVOT					1132	//	Detector pivot, degrees, specific for version 6  (external use)
#define		PARTAG_CROP_UP					1134	//	Crop detector, pixels, specific for version 6  (external use)
#define		PARTAG_CROP_DOWN				1135	//	Crop detector, pixels, specific for version 6  (external use)
#define		PARTAG_CROP_LEFT				1136	//	Crop detector, pixels, specific for version 6  (external use)
#define		PARTAG_CROP_RIGHT				1137	//	Crop detector, pixels, specific for version 6  (external use)

//	------------------------------------------------------------------------------
//
//	Stacked Volume
//

#define		PARTAG_PROJ_RECON0				10700	//	Number of projections to reconstruct, stacked subvolume 0, default = 360 (external use)
#define		PARTAG_PROJ_RECON1				10701	//	Number of projections to reconstruct, stacked subvolume 1, default = 0   (external use)
#define		PARTAG_PROJ_RECON2				10702	//	Number of projections to reconstruct, stacked subvolume 2, default = 0   (external use)
#define		PARTAG_PROJ_RECON3				10703	//	Number of projections to reconstruct, stacked subvolume 3, default = 0   (external use)
#define		PARTAG_PROJ_RECON4				10704	//	Number of projections to reconstruct, stacked subvolume 4, default = 0   (external use)
#define		PARTAG_PROJ_RECON5				10705	//	Number of projections to reconstruct, stacked subvolume 5, default = 0   (external use)
#define		PARTAG_PROJ_RECON6				10706	//	Number of projections to reconstruct, stacked subvolume 6, default = 0   (external use)
#define		PARTAG_PROJ_RECON7				10707	//	Number of projections to reconstruct, stacked subvolume 7, default = 0   (external use)
#define		PARTAG_PROJ_RECON8				10708	//	Number of projections to reconstruct, stacked subvolume 8, default = 0   (external use)
#define		PARTAG_PROJ_RECON9				10709	//	Number of projections to reconstruct, stacked subvolume 9, default = 0   (external use)
#define		PARTAG_PROJ_RECON10				10710	//	Number of projections to reconstruct, stacked subvolume 10, default = 0   (external use)
#define		PARTAG_PROJ_RECON11				10711	//	Number of projections to reconstruct, stacked subvolume 11, default = 0   (external use)
#define		PARTAG_STACKEDVOLQTY			10716	//	Number of stacked subvolumes , default = 1   (external use)
#define		PARTAG_STACKEDVOLMODE			10713	//	No anglular alignment = 0; anglular alignment =  1 , default = 0    (external use)
#define		PARTAG_STACKEDVOLOVERLAP		10717	//	Overlap of stacked subvolumes (percents), default = 33   (external use)
#define		PARTAG_STACKEDVOLDIRECTION		10718	//	Subvolume Sequence, default = 1    (external use)
#define		PARTAG_STACKEDVOLADJUSTFACTOR	10719	//	Volume Adjustment Factor, default = 100    (external use)


//	------------------------------------------------------------------------------
//
//	3X Extended Volume
//
#define		PARTAG_PRJ_RECON_FORWARD_3X		10733	//	Forward-direction projection number   (external use)
#define		PARTAG_PRJ_STARTFROM_3X			10731	//	Second projection subset start index   (external use)


// Projective transform modes

#define		OPTTAG_PRJTRFNORMAL				0x00000000	//	Regular projective transform mode, Internal use 
#define		OPTTAG_PRJTRFROTATED			0x00000001	//	Projection is treated as rotated one, Internal use
#define		OPTTAG_PRJTRFFLIPPED			0x00000002	//	Projection is treated as flipped one, Internal use 



//	------------------------------------------------------------------------------
//
//	Data acquisition and geometry for inline
//

#define		PARTAG_INSTANT_ANGLEPOSITION	1400   // Instant value setable via SDK (external use, SDK, obsolete)
#define		PARTAG_INSTANT_DETOFFSETU		1410   // Instant value setable via SDK (external use, SDK, obsolete)
#define		PARTAG_INSTANT_DETOFFSETV		1420   // Instant value setable via SDK (external use, SDK, obsolete)
#define		PARTAG_INSTANT_SRCOBJDIST		1430   // Instant value setable via SDK (external use, SDK, obsolete)
#define		PARTAG_INSTANT_SRCDETDIST		1440   // Instant value setable via SDK (external use, SDK, obsolete)
#define		PARTAG_INSTANT_OBJDETDIST		1445   // Instant value setable via SDK (external use, SDK, obsolete)
#define		PARTAG_INSTANT_HORTILTING		1450   // Instant value setable via SDK (external use, SDK, obsolete)
#define		PARTAG_INSTANT_VRTTILTING		1460   // Instant value setable via SDK (external use, SDK, obsolete)
#define		PARTAG_INSTANT_PIVOTING			1470   // Instant value setable via SDK (external use, SDK, obsolete)       
#define		PARTAG_INSTANT_UPITCH			1480   // Instant value setable via SDK (external use, SDK, obsolete)       
#define		PARTAG_INSTANT_VPITCH			1490   // Instant value setable via SDK (external use, SDK, obsolete)       
#define		PARTAG_INSTANT_REFERENCE		1492	// Instant value setable via SDK (external use, SDK, obsolete)
#define		PARTAG_INSTANT_PROJMATRIX		1495   // Instant value setable via SDK (external use, SDK, obsolete)       


//	------------------------------------------------------------------------------
//
//	Output cube
//

#define		PARTAG_CUBESIZEX				1140	//	Cube Size in X, default = 512  (external use)
#define		PARTAG_CUBESIZEY				1150	//	Cube Size in Y, default = 512  (external use) 
#define		PARTAG_CUBESIZEZ				1160	//	Cube Size in Z, default = 512  (external use) 

#define		PARTAG_SLICESIZEX				1143	//	FANBEAM Mode Only: Slice Size in X, default = 512    (obsolete)
#define		PARTAG_SLICESIZEY				1153	//	FANBEAM Mode Only: Slice Size in Y, default = 512    (obsolete)
#define		PARTAG_SLICEQTY					1163	//	FANBEAM Mode Only: Slice qty along Z, default = 512  (obsolete) 

#define		PARTAG_CUBEPITCHX				1170	//	X-coord Cube Pitch [mm], default = 1   (external use)
#define		PARTAG_CUBEPITCHY				1180	//	Y-coord Cube Pitch [mm], default = 1   (external use)
#define		PARTAG_CUBEPITCHZ				1190	//	Z-coord Cube Pitch [mm], default = 1   (external use)

#define		PARTAG_SLICEPITCHX				1173	//	FANBEAM Mode Only: X-coord Slice Pitch, default = 1   (obsolete)
#define		PARTAG_SLICEPITCHY				1183	//	FANBEAM Mode Only: Y-coord Slice Pitch, default = 1   (obsolete)
#define		PARTAG_SLICEPITCHZ				1193	//	FANBEAM Mode Only: Z-coord Slice Pitch, default = 1   (obsolete)

#define		PARTAG_CUBEORIGINX				1200	//	X-coord cube origin, default = 0  (external use) 
#define		PARTAG_CUBEORIGINY				1210	//	Y-coord cube origin, default = 0  (external use) 
#define		PARTAG_CUBEORIGINZ				1220	//	Z-coord cube origin, default = 0  (external use) 


// ----------------------------------------------------------------------------------
//
//	Preprocessing options and controls 
//

#define		OPTTAG_AIRCAL					2000	//	Use AirCal step	in prepro, default = 1   (external use)
#define		OPTTAG_FFT						2010	//	Use FFT step in prepro, default = 1   (external use)
#define		OPTTAG_LOG						2020	//	Use log step in prepro, default = 1   (external use)
#define		OPTTAG_OFFSET					2030	//	Use offset step	in prepro, default = 1   (external use)
#define		OPTTAG_PARKER					2040	//	Use Parker Weighting step in prepro, default = 1   (external use)
#define		OPTTAG_SLVERTFILT				2050	//	Use slight vert filtering step in prepro, default = 1   (external use)
#define		OPTTAG_VRTSMOOTH				2060	//	Use vert smoothing step in prepro, default = 0   (external use)
#define		OPTTAG_FILTERNUM				2065	//	Number of used FFT filter. 0=ramp, 1=Shepp-logan (default), 2=cosine, 3=user defined  (external use)
#define		OPTTAG_DEADPIXDETECT			2067	//	Detecting dead pixels, default = 1   (external use)
#define		PARTAG_SCALEFACTOR				1230	//	Float/Integer Sacale Factor (usually 1000-3000, -1 for autodetect) , default = 1000 (in SDK)   (external use)

#define		PARTAG_BHFACTOR0				5101	//	Polinomial Beam Hardening Correction factor (external use)
#define		PARTAG_BHFACTOR1				5103	//	Polinomial Beam Hardening Correction factor (external use)
#define		PARTAG_BHFACTOR2				5105	//	Polinomial Beam Hardening Correction factor (external use)
#define		PARTAG_BHFACTOR3				5107	//	Polinomial Beam Hardening Correction factor (external use)
#define		PARTAG_BHFACTORA0				5109	//	Internal use

#define		OPTTAG_ZFILTER00				5070	// z-filter byte coefficient # 0	  (external use)
#define		OPTTAG_ZFILTER01				5071	// z-filter byte coefficient # 1 	  (external use)
#define		OPTTAG_ZFILTER02				5072	// z-filter byte coefficient # 2 	  (external use)
#define		OPTTAG_ZFILTER03				5073	// z-filter byte coefficient # 3 	  (external use)
#define		OPTTAG_ZFILTER04				5074	// z-filter byte coefficient # 4 	  (external use)
#define		OPTTAG_ZFILTER05				5075	// z-filter byte coefficient # 5 	  (external use)
#define		OPTTAG_ZFILTER06				5076	// z-filter byte coefficient # 6 	  (external use)
#define		OPTTAG_ZFILTER07				5077	// z-filter byte coefficient # 7 	  (external use)
#define		OPTTAG_ZFILTER08				5078	// z-filter byte coefficient # 8 	  (external use)
#define		OPTTAG_ZFILTER09				5079	// z-filter byte coefficient # 9 	  (external use)
#define		OPTTAG_ZFILTER10				5080	// z-filter byte coefficient # 10 	  (external use)
#define		OPTTAG_ZFILTER11				5081	// z-filter byte coefficient # 11 	  (external use)
#define		OPTTAG_ZFILTER12				5082	// z-filter byte coefficient # 12 	  (external use)
#define		OPTTAG_ZFILTER13				5083	// z-filter byte coefficient # 13 	  (external use)
#define		OPTTAG_ZFILTER14				5084	// z-filter byte coefficient # 14 	  (external use)
#define		OPTTAG_ZFILTER15				5085	// z-filter byte coefficient # 15 	  (external use)
#define		PARTAG_AIRLEVEL					1245	//	AirLevel  (external use)
#define		PARTAG_OFFSET					1230	//	Dark field, default = 0   (external use)	

// ***********************************************************************************************
//
//		Back-Projecting modes, options and controls
//

// Inline/Offline 
#define		MODE_OFFLINE					0x00000001	//	 default	(external use, SDK)
#define		MODE_INLINE						0x00000002	//				(external use, SDK)
#define		MODE_INLINE_PARAMETERS			0x00000004	//				(external use, SDK)

// Accuracy
#define		BPMODETAG_NRSTNBR				0x00010000	//	Nearest neighbor accum mode (default)  (external use)
#define		BPMODETAG_LINITRP				0x00020000	//	Linear interpolation mode   (external use)
#define		BPMODETAG_ROTATECUBE			0x00040000	//	Rotational cube mode   (internal Cobra use)

// Geometery specifics
#define		BPMODETAG_CONEBEAM				0x00001000	//	Regular cone beam, default   (external use)
#define		BPMODETAG_FANBEAM				0x00002000	//	Fan beam, stock based (obsolete/reserved)
#define		BPMODETAG_GENERIC				0x00004000	//	Projective matrix mapping  (external use)
#define		BPMODETAG_FANBEAM_SBS			0x00008000	//	Fan beam, sinogram based, internal COBRA use
#define		BPMODETAG_OVERR2ON				0x00100000	//	Over-R-squared factor is on (obsolete/reserved)
#define		BPMODETAG_RSRTFANS				0x00200000	//	Parallel fans (internal COBRA use)


// Special control
#define		PARTAG_SOTR						      4010	//	Internal COBRA use	
#define		PARTAG_RESORT					0x00100000	//	Resort to parallel before backprogecting  (external use)	
#define		PARTAG_GENTC					0x00200000	//	Internal COBRA use	
#define		PARTAG_HBTC						0x00400000	//	Extended view (half beam) mode  (external use)
#define		PARTAG_HBTC_					0x00400000	//	Extended view (half beam) mode  (internal use)
#define		PARTAG_3XVIEW					10720		//	Extended 3x view mode  (external use)
#define		PARTAG_3XVIEW_BIT				0x00800000	//	Extended view (half beam) mode  (internal use)
#define		PARTAG_FASTEXTVIEW				10721		//	Fast extended view mode  (external use)
#define		PARTAG_FASTEXTVIEW_BIT			0x01000000	//	Fast extended view mode  (internal use)


// Reconstruction on GPU
#define		BPMODETAG_USE_GPU				0x40000000		//	Use GPU device,, specific for version 6  (external use)
#define		PARTAG_USE_CUDA					6100			//	Use GPU as CUDA (internal, not effective, reserved)
#define		PARTAG_USE_CUDA_TAG				0x00000001		//	Use GPU as CUDA (internal, not effective, reserved)
#define		PARTAG_USE_DX					6110			//	Use GPU as DX (internal, not effective, reserved)
#define		PARTAG_USE_DX_TAG				0x00000002		//	Use GPU as DX (internal, not effective, reserved)

#define		PARTAG_USE_FAIGHT8				6111			//	Use GPU 8 projections per accum mode (internal )
#define		PARTAG_USE_FAIGHT8_TAG			0x00000004		//	Use GPU 8 projections per accum mode (internal)


#define		SUBMODETAG_USE_ROTCUBE			0x00000001		// Use another BP code based on rotation	(internal )
#define		SUBMODETAG_IGNORE_ANGDEPEND		0x00000002		// Ignore angular-dependent stuff	(internal )
#define		SUBMODETAG_FFT_DOWNSAMPLED		0x00000004		// Ignore angular-dependent stuff	(internal )
#define		SUBMODETAG_FFT_GPU				0x00000008		// Ignore angular-dependent stuff	(internal )
#define		SUBMODETAG_NONFLIP				0x00000010		// Non flip during fwd projectiong	(internal )


// Prepare all projections first
#define		BPSTEPMODE_TAG_PREPROFIRST			6001		//	Prepare all projection first (not effective, reserved)
#define		BPSTEPMODE_TAG_PREPROFIRST_BIT		0x00000001	//	Internal COBRA use
#define		BPSTEPMODE_TAG_LOAD_FROM_MMF_BIT	0x00000002	//	Internal COBRA use


// ***********************************************************************************************
//
//		Correcting various artifacts
//		(may not be for public use, see UM for details)
//

// Feldkamp_corrections
#define		OPTTAG_CFA						6011		//	Correction of Fieldkamp artifact  (external use)
#define		OPTTAG_CFA_BIT					0x00000010	//	Internal use
#define		OPTTAG_CFA_BIT_ORIG				0x00000020	//	Internal use
#define		OPTTAG_CFA_BIT_FWD				0x00000040	//	Internal use

//	SAMARA  parameters
#define		SAMARATAG_HIGHCONTRASTLEVEL		3005      // (external use)   
#define		SAMARATAG_LOWCONTRASTLEVEL		3010      // (external use)
#define		SAMARATAG_HIDENSLEVEL			3015      // (external use)
#define		SAMARATAG_TOOTHDENSLEVEL		3017      // (external use)
#define		BPMODETAG_SAMARA				0x01000000	//	SAMARA is active (Internal COBRA use)
#define		BPMODETAG_SAMARA_SKIPFIRSTSTEP	0x02000000	//	Internal COBRA use

//	BHC parameters
#define		BHCTAG_MODE						6090	// Reserved
#define		BHCTAG_HIGHCONTRASTLEVEL		6010	// Reserved      
#define		BHCTAG_BHILEVEL					6020	// Reserved      
#define		BHCTAG_BLOLEVEL					6030	// Reserved      
#define		BHCTAG_FACTORA0					6040	// Reserved      
#define		BHCTAG_FACTORA1					6050	// Reserved      

// Protrusion corrections
#define		OPTTAG_PROTRUSIONCMODE			6080	// Protrusion Correction Mode    (external use)   

//	SC parameters
#define		PARTAG_SCATTERCORRECTION		5110	// Internal COBRA use	
#define		PARTAG_SCATTERCORRFACTOR_P0		5520	// Scatter Correction Parameter 0   (reserved, external use) 
#define		PARTAG_SCATTERCORRFACTOR_P1		5511	// Scatter Correction Parameter 1	(reserved, external use) 
     
#define		SCTAG_UPSTRIP					5120     // Internal COBRA use	 
#define		SCTAG_DOWNSTRIP					5130     // Internal COBRA use	 


#define		PARTAG_HDPROJ			  0x40000000	//	Hi-density object shadow	(COBRA internal format) 


// ***********************************************************************************************
//
//		Postprocessing and slice dumping
//

#define		OPTTAG_SLICESCALE				2080	//	Scaling during getting 16-bit slices from 32-bit cube, default = 1   (external use)
#define		OPTTAG_GAMMASLICESCALE			2081	//	Scaling during getting 16-bit slices from 32-bit cube, default = 1   (external use)
#define		PARTAG_POSTPROFACTOR			2088	//	De-noising  (external use)


#define		BPMODETAG_DUMP16				0x00000100	//	Dump 16-bit slices (default) (obsolete/reserved)
#define		BPMODETAG_DUMP12				0x00000200	//	Dump 12-bit slices (obsolete/reserved)
#define		BPMODETAG_DUMP32				0x00000400	//	Dump 32-bit slices (obsolete/reserved)

#define		PARTAG_FIDEX_MEDIAN				70001		//	FIDEX post-procesiing algorithms  (COBRA internal use)
#define		PARTAG_FIDEX_MEDIAN_BIT			0x000000ff	//	FIDEX post-procesiing algorithms  (COBRA internal use)


// ***********************************************************************************************
//
//	Forward-projector and inter-phase modes and resolution
//

#define		MODE_FULLPROJRESOLUTION			0x00000001	//  (internal COBRA use)
#define		MODE_HALFPROJRESOLUTION			0x00000002	//  (internal COBRA use)
#define		MODE_QTRPROJRESOLUTION			0x00000004	//  (internal COBRA use)
#define		MODE_HALFQTRPROJRESOLUTION		0x00000008	//  (internal COBRA use)
	
#define		MODE_FULLCUBERESOLUTION			0x00000010	//  (internal COBRA use)
#define		MODE_HALFCUBERESOLUTION			0x00000020	//  (internal COBRA use)
#define		MODE_QTRCUBERESOLUTION			0x00000040	//  (internal COBRA use)
	
#define		MODE_GETFULLPRJ					0x00000100	//  (internal COBRA use)
#define		MODE_GETHALFPRJ					0x00000200	//  (internal COBRA use)
#define		MODE_GETQTRPRJ					0x00000400	//  (internal COBRA use)
	
#define		MODE_GETFULLCUBE				0x00001000	//  (internal COBRA use)
#define		MODE_GETHALFCUBE				0x00002000	//  (internal COBRA use)
#define		MODE_GETQTRCUBE					0x00004000	//  (internal COBRA use)



// ***********************************************************************************************
//
//	Memory handling
//
#define		OPTTAG_3DBUFFERSIZE				2200	//	3D Buffer size (depends on available RAM), MB (128/256/512/1536 only)   (external use)

#define		MMF_RAW				0x00010000	//	Projection is saved in MMF as raw (intensity)	 (internal COBRA use)
#define		MMF_LOGGED			0x00020000	//	Projection is saved in MMF as float linear integral	(internal COBRA use)
#define		MMF_LOGGED_HBTC		0x00040000	//	Projection is saved in MMF as float linear integral after HBTC	(internal COBRA use)
#define		MMF_FILTERED		0x00080000	//	Projection is saved in MMF as filtered	(internal COBRA use)
#define		MMF_FILTERED_FLOAT	0x00100000	//	Projection is saved in MMF as filtered	(internal COBRA use)

// Memory mapped formats for slices
//
#define		MMF_SLICE			0x00010000	//	Slice is saved in MMF  (internal COBRA use)

// Memory mapped formats for slices
//
#define		MMF_DOWNSAMLE_X		0x00000002	//	Item is saved in MMF as downsampled along x  (internal COBRA use)
#define		MMF_DOWNSAMLE_Y		0x00000020	//	Item is saved in MMF as downsampled along y  (internal COBRA use)


// Reserved for possible use
#define		INLINEMODE_PRJKEEPINMEMORY		0x00000001	//	keep acquired projections in memory  (internal COBRA use)
#define		INLINEMODE_PRJKEEPONDISK		0x00000002	//	keep acquired projections on disk   (internal COBRA use)
#define		INLINEMODE_PRJDUMPONDISK		0x00000004	//	dump every acquired projections on disk  (internal COBRA use)

// ***********************************************************************************************
//
//	Hardware and system
//
#define		OPTTAG_DISTRIBUTED				2220	//	Use distributed mode if =1 (default = 0)   (external use)
#define		OPTTAG_NODENAME					2230	//	PC name (internal)
#define		OPTTAG_NODEPARTICIP				2240	//	PC participation (obsoltete)
#define		OPTTAG_ENGINEQTY				2245	//	Reconstruction engines qty   (external use)

#define		OPTTAG_WORKDIR					2300	//  Working directory   (external use)
#define		OPTTAG_APPDIR					2310	//  Application directory   (external use)

#define		OPTTAG_RESTART					2250	//	Restarts service after reconstruction session (internal, not effective/reserved)
#endif //__TagDefinitions_h__
