protodune xyz calibration service
play

ProtoDUNE XYZ Calibration Service Jonathan Paley ProtoDUNE - PowerPoint PPT Presentation

ProtoDUNE XYZ Calibration Service Jonathan Paley ProtoDUNE Sim/Reco Meeting August 15, 2018 Jonathan M. Paley 1 XYZ Calibrations Plane 1 X Correction Plane 1 Negative X Correction 600 2 1.2 Y Coordinate (cm) Correction 500 1 1.5


  1. ProtoDUNE XYZ Calibration Service Jonathan Paley ProtoDUNE Sim/Reco Meeting August 15, 2018 Jonathan M. Paley � 1

  2. XYZ Calibrations Plane 1 X Correction Plane 1 Negative X Correction 600 2 1.2 Y Coordinate (cm) Correction 500 1 1.5 400 0.8 0.6 300 1 0.4 200 0.5 0.2 100 0 0 0 200 0 200 0 200 400 600 − X Coordinate (cm) Z Coordinate (cm) • Corrections are to be applied to hits as a function of (x,y,z). Calibration constants provided to me by Ajib Paudel. • There are also overall “normalization” corrections that need to be applied, determined for each plane. Jonathan M. Paley � 2

  3. XYZ Calibrations - Database Implementation • The contents of the histograms and the normalization corrections have been pushed to the calibration conditions database. • Currently, the condb is not set up to store “arrays” of data (experts are considering how to implement this). So the individual (plane,[“side”],bins) are stored as channel numbers. • The validity time for the MC constants from Ajib is set to “0”. In the future, when we have constants derived from data, I recommend we use the first run number of the data set used to derive the constants. • Constants are written to a .csv file (of a particular format), and then we use the “writeConditionsCSVToDB” utility in nutools (part of larsoft) to push to the database. • Write permissions to the database are limited to those who will be responsible for maintaining their tables. Please contact me if you have a table you want to write to. Jonathan M. Paley � 3

  4. XYZ Calibrations - Offline Interface • Added two new packages to dunetpc: dune/Calib (contains the data providers) and dune/CalibServices (contains the art services that provide pointers to the data providers). • Data provider class: class XYZCalibProtoDUNE : public XYZCalib { void SetIsMC(bool v) { fIsMC = v; } void SetNormCorr(int plane, double val); public: void SetXCorr(int plane, double x, double dx, double val); XYZCalibProtoDUNE(); void SetYZCorr(int plane, int side, double y, XYZCalibProtoDUNE(fhicl::ParameterSet const& pset); double dx, double val); XYZCalibProtoDUNE(XYZCalibProtoDUNE const&) = delete; void SetUseCondb(bool v) { fUseCondbXYZCorr = v; virtual ~XYZCalibProtoDUNE() = default; } void SetXCorrFileName(std::string f) bool Configure(fhicl::ParameterSet const& pset); { fXCorrFileName=f; } bool Update(uint64_t ts=0); void SetYZCorrFileName(std::string f) { fYZCorrFileName=f; } virtual double GetNormCorr(int plane) override; void SetNormCorrFileName(std::string f) virtual double GetXCorr(int plane, double x) override; { fNormCorrFileName=f; } virtual double GetYZCorr(int plane, int side, double y, double z) override; void SetInterpolate(bool v) { fInterpolate = v; } 0 is negative, 1 is positive Jonathan M. Paley � 4

  5. XYZ Calibrations - Offline Interface • Added two new packages to dunetpc: dune/Calib (contains the data providers) and dune/CalibServices (contains the art services that provide pointers to the data providers). • Data provider class: • Can be used outside of art. void SetIsMC(bool v) { fIsMC = v; } Simply instantiate the object, and void SetNormCorr(int plane, double val); void SetXCorr(int plane, double x, double dx, call the appropriate methods to double val); configure and load the void SetYZCorr(int plane, int side, double y, double dx, double val); constants. void SetUseCondb(bool v) { fUseCondbXYZCorr = v; } • Always set the data “type” (data void SetXCorrFileName(std::string f) { fXCorrFileName=f; } vs. mc) via the SetIsMC method. void SetYZCorrFileName(std::string f) • Corrections are stored as Root { fYZCorrFileName=f; } void SetNormCorrFileName(std::string f) histograms, there is an option to { fNormCorrFileName=f; } use the Interpolate method. void SetInterpolate(bool v) { fInterpolate = v; } Default is to return the value of the bin. Jonathan M. Paley � 5

  6. XYZ Calibrations - art Service • Added two new packages to dunetpc: dune/Calib (contains the data providers) and dune/CalibServices (contains the art services that provide pointers to the data providers). • Data provider class: • Can read from an void SetIsMC(bool v) { fIsMC = v; } independent .csv file if you don’t void SetNormCorr(int plane, double val); void SetXCorr(int plane, double x, double dx, want to rely on the database. double val); • Can also override specific void SetYZCorr(int plane, int side, double y, double dx, double val); values, but this should only be void SetUseCondb(bool v) { fUseCondbXYZCorr = v; } done by experts. void SetXCorrFileName(std::string f) { fXCorrFileName=f; } void SetYZCorrFileName(std::string f) { fYZCorrFileName=f; } void SetNormCorrFileName(std::string f) { fNormCorrFileName=f; } void SetInterpolate(bool v) { fInterpolate = v; } Jonathan M. Paley � 6

  7. XYZ Calibrations - art Service • Added two new packages to dunetpc: dune/Calib (contains the data providers) and dune/CalibServices (contains the art services that provide pointers to the data providers). • Service class: BEGIN_PROLOG • Standard approach of simply protodune_xyzcalib : providing pointer to the data { service_provider: "XYZCalibServiceProtoDUNE" provider class, and calling UseCondbXYZCorr: true “Update” at “preBeginRun”. Interpolate: false • Defaults are to use the constants XCorrFileName: "" in the database, and to not YZCorrFileName: "" NormCorrFileName: "" interpolate (Tingjun reported XCorrDBTag: "" non-negligible performance cost YZCorrDBTag: "" when interpolating). NormCorrDBTag: "" } END_PROLOG Jonathan M. Paley � 7

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend