6#ifndef LARROD_LAROFFCRAWCHANNELBUILDER_H
7#define LARROD_LAROFFCRAWCHANNELBUILDER_H
32 using AthReentrantAlgorithm::AthReentrantAlgorithm;
35 StatusCode
execute(
const EventContext& ctx)
const override;
41 this,
"LArDigitKey",
"FREE",
"SG Key of LArDigitContainer"};
45 this,
"LArRawChannelKey",
"LArRawChannels",
46 "SG key of the output LArRawChannelContainer"};
50 this,
"PedestalKey",
"LArPedestal",
51 "SG Key of Pedestal conditions object"};
53 this,
"ADC2MeVKey",
"LArADC2MeV",
"SG Key of ADC2MeV conditions object"};
55 "SG Key of OFC conditions object"};
57 this,
"ShapeKey",
"LArShape",
"SG Key of Shape conditions object"};
60 this,
"CablingKey",
"LArOnOffIdMap",
61 "SG Key of LArOnOffIdMapping object"};
63 this,
"Run1DSPThresholdsKey",
"",
64 "SG Key for thresholds to compute time and quality, run 1"};
66 this,
"Run2DSPThresholdsKey",
"",
67 "SG Key for thresholds to compute time and quality, run 2"};
71 "Time and Quality will be computed only "
72 "for channels with E above this value"};
74 this,
"absECut",
true,
"Cut on fabs(E) for Q and t computation"};
76 this,
"useShapeDer",
true,
77 "Use shape derivative in Q-factor computation"};
79 "Use DB for cut on t,Q"};
85 this,
"firstSample", 0,
86 "Index of the digit sample the OFC window starts at"};
103 this,
"BelowThreshold", 0,
104 "ADC threshold below which samples are treated as noise"};
110 this,
"BelowTillReset", 0,
111 "Number of consecutive noise samples before cache reset (<=0 disables)"};
117 this,
"NPulse", 0,
"Maximum number of pulse corrections in flight"};
127 "Shape-consistency cut for pulse acceptance, on Q3/A"};
134 this,
"Q3Offset", 2.0,
135 "Absolute term of the Q3 cut in ADC, covering the noise floor"};
140 this,
"FilterThreshold", 0,
141 "Minimum corrected amplitude for pulse finding"};
158 double computeOFFC(
const std::vector<short>& samples,
int firstSample,
A LArRawConditionsContainer holding thresholds used by the DSP.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
An algorithm that can be simultaneously executed in multiple threads.
LArVectorProxy OFCRef_t
This class defines the interface for accessing Optimal Filtering coefficients for each channel provid...
LArVectorProxy ShapeRef_t
This class defines the interface for accessing Shape (Nsample variable, Dt = 25 ns fixed) @stereotype...
Container class for LArDigit.
std::vector< double > pulseResponse(const ILArShape::ShapeRef_t &shape, const ILArOFC::OFCRef_t &ofc) const
Filter output for a unit-amplitude pulse, tabulated over every offset of the shape against the OFC wi...
SG::WriteHandleKey< LArRawChannelContainer > m_rawChannelKey
Gaudi::Property< bool > m_useDBFortQ
double computeOFFC(const std::vector< short > &samples, int firstSample, const ILArOFC::OFCRef_t &ofc, const ILArShape::ShapeRef_t &shape, double pedestal) const
StatusCode initialize() override
SG::ReadCondHandleKey< ILArShape > m_shapeKey
Gaudi::Property< double > m_belowThreshold
The OFFC extends optimal filtering by finding pulses in the preceding samples and subtracting their e...
Gaudi::Property< bool > m_absECutFortQ
Gaudi::Property< int > m_nPulse
Maximum number of pulse corrections in flight at once.
SG::ReadCondHandleKey< LArADC2MeV > m_adc2MeVKey
Gaudi::Property< int > m_firstSample
Index of the digit sample the OFC window starts at, i.e.
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
const LArOnlineID * m_onlineId
SG::ReadCondHandleKey< ILArPedestal > m_pedestalKey
Gaudi::Property< float > m_eCutFortQ
SG::ReadHandleKey< LArDigitContainer > m_digitKey
Gaudi::Property< double > m_filterThreshold
Minimum pile-up corrected amplitude required to accept a pulse peak.
Gaudi::Property< double > m_Q3Offset
Absolute term of the Q3 cut, in ADC.
StatusCode finalize() override
SG::ReadCondHandleKey< ILArOFC > m_ofcKey
Gaudi::Property< double > m_Q3cut
Quality cut for pulse acceptance.
Gaudi::Property< bool > m_useShapeDer
std::atomic< unsigned long > m_nDropped
StatusCode execute(const EventContext &ctx) const override
SG::ReadCondHandleKey< AthenaAttributeList > m_run2DSPThresholdsKey
SG::ReadCondHandleKey< LArDSPThresholdsComplete > m_run1DSPThresholdsKey
Gaudi::Property< int > m_belowTillReset
Number of consecutive below-threshold samples after which the pending corrections are dropped,...
std::atomic< unsigned long > m_nSubtracted
Accepted pulses, and those NPulse left no room to subtract.
Container for LArRawChannel (IDC using LArRawChannelCollection).
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.