Index: /trunk/archive/pslib/include/psPosition.h
===================================================================
--- /trunk/archive/pslib/include/psPosition.h	(revision 208)
+++ /trunk/archive/pslib/include/psPosition.h	(revision 209)
@@ -39,5 +39,5 @@
 /***********************************************************************************************************/
 
-/** A position on a detector */
+/** A position on an OTA */
 typedef struct {
     int chip;				//!< Chip number
@@ -59,7 +59,30 @@
 /***********************************************************************************************************/
 
+/** A position on a cell */
+typedef psOTAPos psCellPos;		//!< Same thing as for an OTA.
+#define psCellPosAlloc() psOTAPosAlloc() //!< Constructor
+#define psCellPosFree(C) psOTAPosFree(C) //!< Destructor
+
+/***********************************************************************************************************/
+
 /** An array of detector positions */
-PS_DECLARE_ARRAY_TYPE(psOTAPos);
-PS_CREATE_ARRAY_TYPE(psOTAPos);
+typedef struct {
+    enum psType type;			//!< Type of data.  THIS STRUCT ELEMENT MUST BE FIRST IN THE STRUCT!
+    int size;				//!< Total number of elements available
+    int n;				//!< Number of elements in use
+    psOTAPos *arr;			//!< The array data
+} psOTAPosArray;
+
+/** Constructor */
+psOTAPosArray *psOTAPosArrayAlloc(int s, //!< Total number of elements to make available
+				  int n	//!< Number of elements that will be used
+    );
+/** Reallocator */
+psOTAPosArray *psOTAPosArrayRealloc(psOTAPosArray *myArray, //!< Array to reallocate
+				    int s	//!< Total number of elements to make available
+    );
+/** Destructor */
+void psOTAPosArrayFree(psOTAPosArray *restrict myArray //!< Array to free
+    );
 
 /***********************************************************************************************************/
@@ -88,6 +111,22 @@
 
 /** An array of sky positions */
-PS_DECLARE_ARRAY_TYPE(psSkyPos);
-PS_CREATE_ARRAY_TYPE(psSkyPos);
+typedef struct {
+    enum psType type;			//!< Type of data.  THIS STRUCT ELEMENT MUST BE FIRST IN THE STRUCT!
+    int size;				//!< Total number of elements available
+    int n;				//!< Number of elements in use
+    psSkyPos *arr;			//!< The array data
+} psSkyPosArray;
+
+/** Constructor */
+psSkyPosArray *psSkyPosArrayAlloc(int s, //!< Total number of elements to make available
+				  int n	//!< Number of elements that will be used
+    );
+/** Reallocator */
+psSkyPosArray *psSkyPosArrayRealloc(psSkyPosArray *myArray, //!< Array to reallocate
+				    int s	//!< Total number of elements to make available
+    );
+/** Destructor */
+void psSkyPosArrayFree(psSkyPosArray *restrict myArray //!< Array to free
+    );
 
 /***********************************************************************************************************/
