diff --git a/DPGAnalysis/HcalNanoAOD/BuildFile.xml b/DPGAnalysis/HcalNanoAOD/BuildFile.xml
new file mode 100644
index 0000000000000..0bc8b75d85a64
--- /dev/null
+++ b/DPGAnalysis/HcalNanoAOD/BuildFile.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/DPGAnalysis/HcalNanoAOD/README.md b/DPGAnalysis/HcalNanoAOD/README.md
new file mode 100644
index 0000000000000..653d9f763aebe
--- /dev/null
+++ b/DPGAnalysis/HcalNanoAOD/README.md
@@ -0,0 +1,5 @@
+### HcalNanoAOD
+
+This package provides modules for saving HCAL raw data to NanoAOD. Specifically, modules are provided for HB/HE/HF/HO digis, RecHits, trigger primitives (TPs), HF pre-RecHits, and calibration metadata. Also see DPGAnalysis/CaloNanoAOD for modules related to HCAL+particle flow.
+
+The digis are saved as a dense array (counting on compression to minimize the space consumed by 0s). The outputs are also sorted by DetId; the sorting is performed by the classes named *SortedTable.
diff --git a/DPGAnalysis/HcalNanoAOD/interface/HFPreRecHitSortedTable.h b/DPGAnalysis/HcalNanoAOD/interface/HFPreRecHitSortedTable.h
new file mode 100644
index 0000000000000..da24a3276874b
--- /dev/null
+++ b/DPGAnalysis/HcalNanoAOD/interface/HFPreRecHitSortedTable.h
@@ -0,0 +1,31 @@
+#ifndef HFPreRecHitSortedTable_h
+#define HFPreRecHitSortedTable_h
+
+#include
+#include