[PIPE2D-780] reduceArcs should include all the fibres in the output DetectorMap Created: 15/Mar/21  Updated: 27/Mar/21  Resolved: 24/Mar/21

Status: Done
Project: DRP 2-D Pipeline
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Story Priority: Normal
Reporter: rhl Assignee: price
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Sprint: 2DDRP-2021 A3
Reviewers: hassan

 Description   

When I fit a DifferentialDetectorMap in reduceArc, it only includes the detected fibres, not all of the ones in the base DetectorMap.

Paul points out that this is because if a fiber doesn't have any measured lines, we can't measure a slit offset for it, and therefore we don't really know where it is. However, we should assume that slit offsets are measured once and left fixed thereafter as they are a property of the epoxy in the slit and should not change with time. This means that something like reduceArc which updates the DetectorMap shouldn't touch them unless specially requested to do so.

We do still have to measure them initially. For broken fibres the values don't matter (in the case of SuNSS the fibres are not broken in DCB data, although fiberId 3 is very faint). For all other fibres when the spectrograph is first delivered we'll take lots of spot data, quartz, arcs, ... and turn on all the "slit offset" options to measure the soon-to-be-fixed values.



 Comments   
Comment by price [ 24/Mar/21 ]

DifferentialDetectorMap couldn't include all the fibers because GlobalDetectorModel, which implemented the distortion correction, included fiber offsets as part of the model. This was left over from GlobalDetectorMap, which we are not using any more, so I removed GlobalDetectorMap and the fiber offsets in GlobalDetectorModel, and made it cover all fibers. Here's a demonstration showing that fiber 3 (marked as bad in the pfsConfig) is now present in the detectorMap:

reduceArc.py /projects/HSC/PFS/Subaru --calib=/projects/HSC/PFS/Subaru/CALIB-SuNSS --rerun=price/pipe2d-780 --id visit=45743..45746 arm=r -c reduceExposure.isr.doFlat=False -j 5

>>> from pfs.drp.stella import DetectorMap
>>> detMap = DetectorMap.readFits("/projects/HSC/PFS/Subaru/rerun/price/pipe2d-780/DETECTORMAP/pfsDetectorMap-045743-r1.fits")
>>> detMap.findPoint(3, 800)
Point2D(4002.914678, 2070.318358)
>>> detMap.getXCenter(3)
array([4016.33286104, 4016.31589901, 4016.29895405, ..., 4019.00512576,
       4019.02311469, 4019.04113485])
Comment by hassan [ 24/Mar/21 ]

All changes look fine. No additional comments.

Comment by price [ 24/Mar/21 ]

Merged.

Comment by rhl [ 27/Mar/21 ]

I think it'd be helpful to mention in the closing comment when tickets required changes to pfs.datamodel or lsst.obs.pfs.  Yes, I could have read the pull requests.

 

 

Comment by hassan [ 27/Mar/21 ]

Valid point. Agreed, Robert.

Generated at Sat Feb 10 15:57:49 JST 2024 using Jira 8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b.