Index: /trunk/psModules/src/camera/pmHDUUtils.c
===================================================================
--- /trunk/psModules/src/camera/pmHDUUtils.c	(revision 7608)
+++ /trunk/psModules/src/camera/pmHDUUtils.c	(revision 7609)
@@ -66,4 +66,24 @@
 }
 
+// Get the highest HDU
+pmHDU *pmHDUGetHighest(const pmFPA *fpa, // The FPA
+                       const pmChip *chip, // The chip, or NULL
+                       const pmCell *cell // The cell, or NULL
+                      )
+{
+    pmHDU *hdu = NULL;          // The HDU that's at the highest level
+    if (fpa) {
+        hdu = pmHDUFromFPA(fpa);
+    }
+    if (!hdu && chip) {
+        hdu = pmHDUFromChip(chip);
+    }
+    if (!hdu && cell) {
+        hdu = pmHDUFromCell(cell);
+    }
+
+    return hdu;
+}
+
 void pmHDUPrint(FILE *fd,               // File descriptor to which to print
                 const pmHDU *hdu,       // HDU to print
Index: /trunk/psModules/src/camera/pmHDUUtils.h
===================================================================
--- /trunk/psModules/src/camera/pmHDUUtils.h	(revision 7608)
+++ /trunk/psModules/src/camera/pmHDUUtils.h	(revision 7609)
@@ -10,4 +10,10 @@
                       const pmCell *cell // The cell, or NULL
                      );
+
+// Get the highest HDU in the hierarchy, as supplied
+pmHDU *pmHDUGetHighest(const pmFPA *fpa, // The FPA
+                       const pmChip *chip, // The chip, or NULL
+                       const pmCell *cell // The cell, or NULL
+                      );
 
 // Find the HDU in the FPA hierarchy
