pkgs/CalHit (NOvA offline)


CalHit provides a module of the same name that converts a list of RawDigits (raw hit-level data) into a list of CellHits (calibrated hit-level data). The actual application of calibration constants is handled by calls to the singleton instance of the Calibrator class (see Calibrator). The role of the CalHit module, then, is to load up a specified list of RawDigits, loop over them (calling Calibrator), and write out the resulting CellHits.

The module can also run a quasi-reconstruction algorithm called RoughReco to make a list of RecoHits. RecoHits require some level of event reconstruction if they are to provide, for instance, attenuation-corrected pulseheights, and RoughReco provides the bare minimum reconstruction needed for this. (See details below.) Long-term, I don't foresee folks using the RoughReco output for physics, as more sophisticated reconstruction algorithms will produce better-calibrated RecoHits.

  • Input: RawData/RawDigits (default label: daq
  • Output: RecoBase/CellHits and, optionally, RecoBase/RecoHits (default label: calhit)


The CalHit package provides the CalHit module. Default configuration(s) are provided in CalHit.fcl.

CalHit has these default configuration parameters:

Name Type Default Description
RunRoughReco bool false toggle whether to run the RoughReco 3D reco algorithm (false=no, true=yes)
RemoveBadChans bool true toggle whether to apply the bad channel mask (false=no, true=yes)

Technical description

The production of CellHits from RawDigits is straightforward enough, insofar as it is handled by Calibrator::MakeCellHit(). Thus, see Calibrator for calibration details.

The optional RoughReco algorithm operates as follows. For each plane with activity, the nearest six planes from the opposite view are examined (three planes in each z direction, where possible). The charge-weighted mean transverse position in those six planes is taken as the orthogonal position of the activity in the plane under consideration. This orthogonal position is used as the w argument when creating RecoHits via Calibrator::MakeRecoHit(). If no activity is available in any of the nearest +/-3 planes, w is taken to be zero (cell center).