11.09.2025
    This version 1.6.11 of the CRIRES+ pipeline fixes uninitialised data being written to the slit
    illumination function output.
31.07.2025
    This version 1.6.10 of the CRIRES+ pipeline fixes IDP production for non-nodded data,
    and updates edps workflows.
02.04.2025
    This version 1.6.9 of the CRIRES+ pipeline includes a bugfix for QC.DET.ID.
14.03.2025
    This version 1.6.8 of the CRIRES+ pipeline improves SNR estimation in IDP files.
    
18.02.2025
    This version 1.6.7 of the CRIRES+ pipeline improves the EDPS workflow, SNR estimation in IDP files
    and alter oca rules to match updated nod, stare and 2d templates.

05.11.2024
    This version 1.6.3 of the CRIRES+ pipeline improves the EDPS workflow
    
16.10.2024
    This version 1.6.2 of the CRIRES+ pipeline improves idp phase 3 compliance
    
30.09.2024
    This version 1.6.0 of the CRIRES+ pipeline merges all changes from QC
    development branch, 1.4.10, and the qcflow reports branch, 1.5.1
    
26.09.2024
    This version 1.4.10 of the CRIRES+ pipeline has bug fixes for IDP
    file headers and changes the blaze normalization to be global across
    all valid spectra, rather than locally per spectral trace.

30.07.2024
    This version 1.4.9 of the CRIRES+ pipeline is an initial release of 
    the updated QC parameters and has bugfixes for MJD-OBS of IDP files.

14.05.2024
    This version 1.4.4 of the CRIRES+ pipeline fixes the following issues:

    - cr2re-1.4.0 - cr2res_obs_pol crashes on macOS (PIPE-11610)

04.04.2024
    This version 1.4.3 of the CRIRES+ pipeline fixes the following issues:

    - cr2re-1.4.0 - wavelength calib not reduced in J1232 (PIPE-11277)

08.02.2024
    This version 1.4.2 of the CRIRES+ pipeline fixes the following issues:

    - cr2re-1.4.0 pipeline outputs wrong spectral resolution values (PIPE-11276)


20.12.2024
    This version 1.4.1 of the CRIRES+ pipeline fixes the following issueѕ:

    - PHOTO_FLUX calibration file missing in nodding products headers 
        (PIPE-11224)
    - Fix the number of RAW files and the TEXPTIME in the IDP products 
        (PIPE-10287)
    - static calibration header keywords PRO REC RAW removal (PIPE-11223) 
    - criresp 1.4.0 IDP science product show SNR = -1. in their header
    (PIPE-11228)
    - spectrum depression in CRIRES science (PIPE-11178)
    - Barycentric correction, using HDRL (PIPE-11248)
    - New 1.4.0 gives lower estimates of resolution than 1.2 (PIPE-11244)


30.11.2023
    This version 1.4.0 of the CRIRES+ pipeline fixes the following issueѕ:

    - New QC.FPI.CONTRAST/SEPARATION parameters (PIPE-9762)
    - Added QC UNE FLUX parameter (PIPE-10322)
    - Recurring detlin issues (PIPE-11131)
    - Additional QC parameters for the cr2res_cal_detlin recipe (PIPE-9805)
    - gain value (detector dependant) needs to be passed to cr2res_extract.c and used in the extraction
    - science stare recipe: combined product missing (PIPE-11099)
    - CRIRES pipeline mistakes metrology for science (PIPE-11089)
    - Additional QC parameters for the cr2res_cal_flat recipe (PIPE-9388)
    - Additional QC parameters for the cr2res_cal_wave recipe (PIPE-9389)
    - number of saturated pixel in crires science recipescr (PIPE-11128)  
    - Polarization demo data in cr2res pipeline 1.2.0 (PIPE-10307)      
    - Improve documentation (PIPE-10288)
    - Null and Stokes spectrum mixed up, for linear polarization (PIPE-11211)
    - IDP Complient Products (PIPE-10287)
    - Add Correction to the traces in Polarimetry (PIPE-10192)
    - Errors underestimate SNR (PIPE-11212)


01.05.2023
    This version 1.3.0 of the CRIRES+ pipeline fixes the following issueѕ:

    - IDP completed for cr2res_obs_nodding and cr2res_obs_staring (PIPE-10287)
    - Improvement of inter order background subtraction (PIPE-10706)
    - Cosmic rays removal (PIPE-10705)
    - Wrong slit tilt in 2D spectra (PIPE-10704)
    - Failed swaths affect extraction results (PIPE-10703)
    - cr2res_util_calib error when reducing only 1 detector (PIPE-10655)
    - cr2res nodding workflow fails on M4211 data (PIPE-10647)
    - The propagated errors … do not depend on the extraction width (PIPE-10513) 
    - CRIRES+ incorrect inter-order light subtraction (PIPE-10458)
    - poor repeatability of the 1D extraction (PIPE-10512)

22.02.2023
    This version 1.2.4 of the CRIRES+ pipeline fixes the following issueѕ:

    - CRIRES Slit curvature not static anymore (PIPE-10335) 
    The static TW files remain as they are.
    In the reflex WKFs, the wavecal recipe computes the slit curvature 
    from FPET, and stores it in the output TW.
    In SW: 
        The wavelength calibration of the static TW is used as first 
        guess for the wavelength calibration.
            -> this will likely be always good enough
        The traces of static TW is used -> good enough as well, but an
        upgrade is planned to use the dynamically computed traces
        (PIPE-10528)
        The slit curve of the static TW is used as a fallback. Better 
        anyway than a vertical slit.
    In LW:
        The wavelength calibration of the static TW is the best we have anyway 
            -> a project is ongoing to update them
        The traces of static TW is used -> good enough
        The  slit curve of the static TW is used. As there are no current 
        measurements, the vertical slit is currently used.

    - Blaze correction in obs-recipes (PIPE-10210)
    The recipes cr2res_obs_nodding, cr2res_obs_pol and cr2res_obs_staring 
    divide the extracted spectra by the blaze if provided as input.
    The blaze file is a product of cr2res_cal_flat 
    (PRO.CATG=CAL_FLAT_EXTRACT_1D).
    The blaze is normalized with its 95 percentile, therefore the
    corrected spectrum units remain valid.
    The 3 reflex workflows (nodding, pol, staring) have been updated to
    automatically use the blaze produced from the cr2res_cal_flat actor.

    - Add a new parameter : slit curvature degree (PIPE-10527)
    Add the parameter --slit_degree to cr2res_util_slit_curv and 
    cr2res_cal_wave to allow the user to choose between slit parabola, or 
    a linear slit (Default: parabola)

    - New QC parameter for the cr2res_obs_nodding recipe (PIPE-9801)
    QC THROUGHPUT is now computed on predefine wavelength ranges
    depending on the settings:
        Y1028   1045.70 to 1047.00
        J1228   1245.50 to 1246.40
        H1567   1695.20 to 1696.20
        K2148   2312.60 to 2313.30
        L3377   3828.70 to 3829.30
        M4266   3953.00 to 3953.90

    - CRIRES QC TILT parameter to measure slit tilt (PIPE-10323)
    Use Detector 1 if CWLEN (from input file headers) is < 1100.0, 
    detector 2 otherwse.
    For each order n of the detector, evaluate the slit curvature at
    x=1024 pixels (middle of the detector), evaluate the slit position at
    the bottom (Xbot, Ybot) and the top (Xtop, Ytop) of the trace, and compute 
    QC.TILTn = atan [(Xtop-Xbot)/(Ytop-Ybot)] x 180 / pi 
    Also the average is produced and stored in QC TILT GLOBAL.
        HIERARCH ESO QC TILT1 = -4.1485078716233
        HIERARCH ESO QC TILT2 = -3.54612918288673
        HIERARCH ESO QC TILT3 = -2.93378081556818
        HIERARCH ESO QC TILT4 = -2.31593984885709
        HIERARCH ESO QC TILT5 = -1.73397564257027
        HIERARCH ESO QC TILT6 = -1.16726396344963
        HIERARCH ESO QC TILT7 = -0.605096227843407
        HIERARCH ESO QC TILT8 = -0.0446780755841937
        HIERARCH ESO QC TILT9 = 0.466417572808345
        HIERARCH ESO QC TILT GLOBAL = -1.78099489506383

    - Implementing CRIRES+ QC parameters within pipeline recipes (PIPE-10117)
    Added QC parameters per recipe:
        * cr2res_cal_dark
            In the detector Extensions:
                HIERARCH ESO QC DARK RON1 = 14.5149288402334
                HIERARCH ESO QC DARK RON2 = 14.4669719791545
                HIERARCH ESO QC DARK MEAN = 3035.59885390763
                HIERARCH ESO QC DARK MEDIAN = 425.321426391602
                HIERARCH ESO QC DARK STDDEV = 2862.16574624859
                HIERARCH ESO QC DARK NBAD = 11985
            In the main header:
                HIERARCH ESO QC DARK RON1 AVG = 15.1656821163903
                HIERARCH ESO QC DARK RON1 RMS = 0.897910593002052
                HIERARCH ESO QC DARK RON2 AVG = 15.4626238938257
                HIERARCH ESO QC DARK RON2 RMS = 0.948959255803761
                HIERARCH ESO QC DARK NBAD AVG = 17971.
                HIERARCH ESO QC DARK NBAD RMS = 7324.94177451261
                HIERARCH ESO QC DARK MEAN AVG = 3075.04247234876
                HIERARCH ESO QC DARK MEAN RMS = 54.8257389154032
                HIERARCH ESO QC DARK MEDIAN AVG = 467.142854478624
                HIERARCH ESO QC DARK MEDIAN RMS = 41.4515130527683
                HIERARCH ESO QC DARK STDEV AVG = 2894.54460282381
                HIERARCH ESO QC DARK STDEV RMS = 46.5866527825909
        * cr2res_cal_flat
            In the detector Extensions:
                For each order n (01 to 09)
                    HIERARCH ESO QC OVEREXPOSEDn = 0.
                    HIERARCH ESO QC FLAT ORDERPOSn = 211.11880913474
                HIERARCH ESO QC FLAT MEAN = 7598.9412360231
                HIERARCH ESO QC FLAT MEDIAN = 7657.
                HIERARCH ESO QC FLAT EFFICIENCY = 2532.9804120077
                HIERARCH ESO QC FLAT RMS = 1.00239201453463
                HIERARCH ESO QC FLAT S2N = -1.
                HIERARCH ESO QC FLAT TRACE CENTERY = 1129.58521214181
                HIERARCH ESO QC FLAT NBBAD = 20831
            In the main header:
                HIERARCH ESO QC FLAT MEAN AVG = 8109.7981735901
                HIERARCH ESO QC FLAT MEAN RMS = 1713.78250296157
                HIERARCH ESO QC FLAT MEDIAN AVG = 8234.66666666667
                HIERARCH ESO QC FLAT MEDIAN RMS = 1931.41511160427
                HIERARCH ESO QC FLAT EFFICIENCY AVG = 2703.26605786337
                HIERARCH ESO QC FLAT EFFICIENCY RMS = 571.260834320523
                HIERARCH ESO QC FLAT RMS AVG = 1.00299972957246
                HIERARCH ESO QC FLAT RMS RMS = 0.000562457128859777
                HIERARCH ESO QC FLAT S2N AVG = -1.
                HIERARCH ESO QC FLAT S2N RMS = 0.
                HIERARCH ESO QC FLAT NBBAD AVG = 33685.3333333333
                HIERARCH ESO QC FLAT NBBAD RMS = 17890.7642188179
                HIERARCH ESO QC FLAT CENTERY AVG = 1103.90120730255
                HIERARCH ESO QC FLAT CENTERY RMS = 25.2834413216281
                For each order n (01 to 09)
                    HIERARCH ESO QC OVEREXPOSEDn AVG = 0.
                    HIERARCH ESO QC OVEREXPOSEDn RMS = 0.
                    HIERARCH ESO QC FLAT ORDERPOSn AVG = 177.692840429614
                    HIERARCH ESO QC FLAT ORDERPOSn RMS = 33.1422320097238
        * cr2res_cal_detlin
            In the detector Extensions:
                HIERARCH ESO QC DETLIN NBFAILED = 817270
                HIERARCH ESO QC DETLIN NBSUCCESS = 2528037
                HIERARCH ESO QC DETLIN MEDA = 0.981300388485198
                HIERARCH ESO QC DETLIN MEDB = 6.85695422959344E-06
                HIERARCH ESO QC DETLIN MEDC = -3.12804577633012E-10
                HIERARCH ESO QC DETLIN MEDQ = -1.
                HIERARCH ESO QC DETLIN NBBAD = 3064377
                HIERARCH ESO QC DETLIN MEDIAN = 20486.1398925947
                HIERARCH ESO QC DETLIN MINLEVEL = 20000.0054436857
                HIERARCH ESO QC DETLIN MAXLEVEL = 22999.952570544
            In the main header:
                HIERARCH ESO QC DETLIN NBFAILED AVG = 1615622.33333333
                HIERARCH ESO QC DETLIN NBFAILED RMS = 972989.993131653
                HIERARCH ESO QC DETLIN NBSUCCESS AVG = 1724730.33333333
                HIERARCH ESO QC DETLIN NBSUCCESS RMS = 1036711.05651205
                HIERARCH ESO QC DETLIN NBBAD AVG = 3274463.33333333
                HIERARCH ESO QC DETLIN NBBAD RMS = 416497.830602193
                HIERARCH ESO QC DETLIN MEDIAN AVG = 20379.848748503
                HIERARCH ESO QC DETLIN MEDIAN RMS = 92.149072126591
                HIERARCH ESO QC DETLIN MINLEVEL AVG = 20000.0024885695
                HIERARCH ESO QC DETLIN MINLEVEL RMS = 0.00256054490986587
                HIERARCH ESO QC DETLIN MAXLEVEL AVG = 22994.1039633977
                HIERARCH ESO QC DETLIN MAXLEVEL RMS = 8.04562649857474
                HIERARCH ESO QC DETLIN MEDA AVG = 0.981534326204749
                HIERARCH ESO QC DETLIN MEDA RMS = 0.000291559874493923
                HIERARCH ESO QC DETLIN MEDB AVG = 6.32388578638109E-06
                HIERARCH ESO QC DETLIN MEDB RMS = 4.91986359516926E-07
                HIERARCH ESO QC DETLIN MEDC AVG = -2.59368222406581E-10
                HIERARCH ESO QC DETLIN MEDC RMS = 4.98202091491328E-11
                HIERARCH ESO QC DETLIN MEDQ AVG = -1.
                HIERARCH ESO QC DETLIN MEDQ RMS = 0.
 
    - IDPs implementation (PIPE-10287)
        IDP output is now available via the --idp flag for the recipes
        cr2res_obs_nodding and cr2res_obs_staring. Data has been reformatted
        according to ESO-044286 v8, and the primary and extension headers
        filled according to previous error reports.
        Outstanding issues:
        * IDP for cr2res_obs_2d and cr2res_obs_pol
        * flagging of ghosts, edge pixels etc. in the QUAL column.

    - PRO.TYPE becomes a reserved keyword as of 01.04.23 (PIPE-10551)
        PRO.TYPE is replaced by DRS.TYPE
        PRO.TYPE set to REDUCED in all products
        Static calibration files updated : PRO.TYPE = 'STATIC' 
            * through cr2res_util_genlines and cr2res_util_genstd.
            * manually for the TW files

    - Obs 2d Recipe : Save the calibrated combined images as in the
        other Obs recipes (PIPE-10580)

    - Add DRS.TMID keyword in the Obs products (PIPE-10579)

25.11.2022
    This version 1.2.3 of the CRIRES+ pipeline fixes the following issueѕ:

    - PIPE-10396 : Reflex Wkfs : Fix input filtering of several Actors in the 4 Workflows in order to
    avoid missing inputs in some rare edge cases
    - Improve documentation 

26.10.2022
    This version 1.2.2 of the CRIRES+ pipeline fixes the following issueѕ:

    - PIPE-10092 : Astrometry/Polarimetry data not always reduced
        -> timeout of 20mn too short for Paranal -> set to 40mn

16.09.2022
    This version 1.2.0 of the CRIRES+ pipeline fixes the following issueѕ:

    - PIPE-10092 : Astrometry/Polarimetry data not always reduced
    - PIPE-9819 : Workflow issue in Paranal
    - PIPE-10191 : 3 New workflows for the Observation modes
    - Update of the User Manual
    - PIPE-10153 : Errors computation issue reported
    - PIPE-10212 : Issue with wavelenghth calibration in the reflex workflow
    - PIPE-10266 : Update the Classification rules (OCA) 
    - PIPE-10276 : Only save FPET results by default in cr2res_cal_wave

21.06.2022
    This version 1.1.7 of the CRIRES+ pipeline fixes the following issueѕ:

    - PIPE-10091 - Better error handling
    - Move to HDRL 1.5.0
    - PIPE-10019 - Wrong DIT values in products
    - PIPE-9952 - Remove SEQ.NODPOS from nodding products
    - PIPE-10133 - Support WAVE_SKY data (SkyObs template) and trigger
    the cr2res_obs_staring recipe.

06.05.2022
    This version 1.1.6 of the CRIRES+ pipeline fixes the following issueѕ:

    - DFS/CPL upgrade

05.05.2022
    This version 1.1.5 of the CRIRES+ pipeline fixeѕ the demo data set

11.03.2022
    This version 1.1.3 of the CRIRES+ pipeline fixes the following issueѕ:

    - Significant improvement of the Pipeline Manual
    - Update the HDRL to version 1.4.0
    - Add many new products to cr2res_obs_pol
    - Add the support fot SKY frames in cr2res_obs_2d
    - Add the support for astrometry mode in cr2res_obs_nodding
    - Fix the missing PRO REC CAL in the products
    - Detector linearity recipe and correction have been improved 
    - Add --subtract_interorder_column to the four obs-recipes
    - Improvements on the Etalon wavelength calibration
    - QC.RESOL : Use the minimum FWHM, not the median anymore. Use a new
        selection of catalog lines. Log the position of the retained line, 
        reject outliers. 
	- fix normalization of slit_smooth parameter in optimal extraction
	- numerous minor bug fixes and improvements
	- updated static calibrations, in particular TWs with much improved 
		wavelength calibrations
    - Add QC.THROUGHOUT and correct QC.SLITFWHM


25.10.2021
    This version 1.0.5 of the CRIRES+ pipeline fixes the following
    issueѕ:
        - Improved the error computation in the nodding recipe extracted
        spectra
        - Added --extract_smooth_spec option to all relevant recipes
        - Renamed consistently a number of extraction options in a
        number of recipes/utilities
        - Added --slit_frac option in cr2res_obs_staring
        - Added QC WAVE LAMP EFFIC, QC RESOL and QC RESOL FWHM to 
        cr2res_cal_wave (computation based on the hardcoded list of 
        reference lines) .
        - Added QC OVEREXPOSED to cr2res_cal_wave
        - Changed some default parameter values to improve default
        reduction
        - Added support for L and M settings in the Reflex workflow: The
        cr2res_cal_wave step is now skipped automatically in the case of
        L or M settings. The demo data set contain now the 2 kind of
        settings.
        - Progress on Documentation, in particular (but not only) on the 
        FITS products description.
13.10.2021
    This version 1.0.4 of the CRIRES+ pipeline fixes the following
    issueѕ:
        - BUNIT removed from the table products (preventing ingestion in
                the archive)
        - INS.WLEN.ID properly restored in the line catalogs static calibrations
        - Progress on Documentation

11.10.2021
    This version 1.0.3 of the CRIRES+ pipeline fixes the following
    issueѕ:
        - Bug in cr2res_cal_flat (deallocate non-initialized pointer) only visible on mac
        - Update of the calib-db
        - Update of the Paranal OCA rules :
            - Use TW as input to the flat
            - Use CAL_MASTER_FLAT instead of UTIL_*
        - Progress on the Documentation

07.10.2021
    This version 1.0.2 of the CRIRES+ pipeline fixes the following
    issueѕ:
        - Bug in cr2res_cal_wave when only passing FPET files as inputs
        - Add a data set in the demo data
        - Add support for std_photom.fits in the Reflex WKF
        - Add the TW files for all settings in the static calibration files
        - Fix a wrong path in the reflex Workflow at startup
        - Add support in the reflex WKF for all kinds of inputs for
        cr2res_obs_nodding (and not only the one for the demo data)
        - Some progress in the pipeline manual

01.10.2021
    This version 1.0.1 of the CRIRES+ pipeline is the first public version


10.09.2021
    This version 0.9.4 of the CRIRES+ pipeline is the version for Science
    Verification

