Files | |
file | PedAlgoFixed.cxx |
Pedestal "algorithm" reading the pedestals from somewhere else. | |
file | PedAlgoFixed.h |
Pedestal "algorithm" reading the pedestals from somewhere else. | |
file | AlgoCFD.h |
Class definition file of AlgoCFD. | |
file | AlgoFixedWindow.h |
Class definition file of AlgoFixedWindow. | |
file | AlgoSlidingWindow.h |
Class definition file of AlgoSlidingWindow. | |
file | AlgoThreshold.h |
Class definition file of AlgoThreshold. | |
file | PedAlgoEdges.h |
Class definition file of PedAlgoEdges. | |
file | PedAlgoRmsSlider.h |
Class definition file of PedAlgoRmsSlider. | |
file | PedAlgoRollingMean.h |
Class definition file of PedAlgoRollingMean. | |
file | PedAlgoUB.h |
Class definition file of PedAlgoUB. | |
file | PMTPedestalBase.h |
Class definition file of PMTPedestalBase. | |
file | PMTPulseRecoBase.h |
Class definition file of PMTPulseRecoBase. | |
file | PulseRecoManager.h |
Class definition file of PulseRecoManager. | |
Namespaces | |
fhicl | |
pmtana | |
LArSoft libraries. | |
This is a big hack.
The optical reconstruction mini-framework passes to the pedestal algorithm only a pointer to the waveform samples, with no context at all. In this algorithm we need to figure out that context. We take the pointer of every single possible input, because we need to know the index of the waveform, which is required to match the index in the pedestal and RMS lists. We can't even just take the address of the first waveform, because we don't know the actual type of the vector the waveform belongs too (in LArSoft, that is raw::OpDetWaveform
, which has different size and therefore pointer math than the vector of samples it derives from).
This class is not multithread-ready. To process multiple events, the input sets should be placed into a container with controlled access (one writes, many read).