Index: anches/rel10_ifa/psModules/src/astrom/pmHDUGetLowest.c
===================================================================
--- /branches/rel10_ifa/psModules/src/astrom/pmHDUGetLowest.c	(revision 6671)
+++ 	(revision )
@@ -1,24 +1,0 @@
-#include <stdio.h>
-#include "pmFPA.h"
-#include "pmHDU.h"
-#include "pmHDUGetLowest.h"
-
-// Get the lowest HDU
-pmHDU *pmHDUGetLowest(pmFPA *fpa, // The FPA
-                      pmChip *chip, // The chip, or NULL
-                      pmCell *cell // The cell, or NULL
-                     )
-{
-    pmHDU *hdu = NULL;          // The HDU that's at the lowest level
-    if (cell) {
-        hdu = pmHDUFromCell(cell);
-    } else if (chip) {
-        hdu = pmHDUFromChip(chip);
-    } else if (fpa) {
-        hdu = pmHDUFromFPA(fpa);
-    }
-
-    return hdu;
-}
-
-
Index: anches/rel10_ifa/psModules/src/astrom/pmHDUGetLowest.h
===================================================================
--- /branches/rel10_ifa/psModules/src/astrom/pmHDUGetLowest.h	(revision 6671)
+++ 	(revision )
@@ -1,12 +1,0 @@
-#ifndef PM_HDU_GET_LOWEST
-#define PM_HDU_GET_LOWEST
-
-#include "pmFPA.h"
-#include "pmHDU.h"
-
-pmHDU *pmHDUGetLowest(pmFPA *fpa, // The FPA
-                      pmChip *chip, // The chip, or NULL
-                      pmCell *cell // The cell, or NULL
-                     );
-
-#endif
Index: /branches/rel10_ifa/psModules/src/astrom/pmHDUUtils.c
===================================================================
--- /branches/rel10_ifa/psModules/src/astrom/pmHDUUtils.c	(revision 6672)
+++ /branches/rel10_ifa/psModules/src/astrom/pmHDUUtils.c	(revision 6672)
@@ -0,0 +1,54 @@
+#include <stdio.h>
+#include "pmFPA.h"
+#include "pmHDU.h"
+#include "pmHDUUtils.h"
+
+
+pmHDU *pmHDUFromFPA(pmFPA *fpa          // FPA for which to find HDU
+                   )
+{
+    return fpa->hdu;
+}
+
+pmHDU *pmHDUFromChip(pmChip *chip       // Chip for which to find HDU
+                    )
+{
+    pmHDU *hdu = chip->hdu;             // The HDU information
+    if (!hdu) {
+        hdu = pmHDUFromFPA(chip->parent); // Grab HDU info from the FPA
+    }
+
+    return hdu;
+}
+
+pmHDU *pmHDUFromCell(pmCell *cell       // Cell for which to find HDU
+                    )
+{
+    pmHDU *hdu = cell->hdu;             // The HDU information
+    if (!hdu) {
+        hdu = pmHDUFromChip(cell->parent); // Grab HDU info from the chip
+    }
+
+    return hdu;
+}
+
+
+// Get the lowest HDU
+pmHDU *pmHDUGetLowest(pmFPA *fpa, // The FPA
+                      pmChip *chip, // The chip, or NULL
+                      pmCell *cell // The cell, or NULL
+                     )
+{
+    pmHDU *hdu = NULL;          // The HDU that's at the lowest level
+    if (cell) {
+        hdu = pmHDUFromCell(cell);
+    } else if (chip) {
+        hdu = pmHDUFromChip(chip);
+    } else if (fpa) {
+        hdu = pmHDUFromFPA(fpa);
+    }
+
+    return hdu;
+}
+
+
Index: /branches/rel10_ifa/psModules/src/astrom/pmHDUUtils.h
===================================================================
--- /branches/rel10_ifa/psModules/src/astrom/pmHDUUtils.h	(revision 6672)
+++ /branches/rel10_ifa/psModules/src/astrom/pmHDUUtils.h	(revision 6672)
@@ -0,0 +1,21 @@
+#ifndef PM_HDU_UTILS_H
+#define PM_HDU_UTILS_H
+
+#include "pmFPA.h"
+#include "pmHDU.h"
+
+// Get the lowest HDU in the hierarchy, as supplied
+pmHDU *pmHDUGetLowest(pmFPA *fpa, // The FPA
+                      pmChip *chip, // The chip, or NULL
+                      pmCell *cell // The cell, or NULL
+                     );
+
+// Find the HDU in the FPA hierarchy
+pmHDU *pmHDUFromFPA(pmFPA *fpa          // FPA for which to find HDU
+                   );
+pmHDU *pmHDUFromChip(pmChip *chip       // Chip for which to find HDU
+                    );
+pmHDU *pmHDUFromCell(pmCell *cell       // Cell for which to find HDU
+                    );
+
+#endif
