Fix Version/s: None
DECam stores multiple detectors in a single file so we need to be able to do an ingest of a single file and associate it with multiple datasetRefs. This ticket will implement that support.
The baseline design is:
- Change FileDataset to allow a list of DatasetRef per dataset.
- In Butler.ingest add a dataset for each DatasetRef in each FileDataset.
- In Datastore.ingest register a dataset for each DatasetRef but associate with the same file.
- In Datastore.get pass the dataId to formatter.read.
- In Datastore.remove only delete the file if there are no other datasets associated with that file.
I don't think we need to have a special StorageClass listing the particular dimensions if we pass in the full dataId and let the formatter work out what it needs to know, so we don't need a special datasetType. I will find out when I start to implement.