6#ifndef LARROD_LAROFFCRAWCHANNELBUILDER_H
7#define LARROD_LAROFFCRAWCHANNELBUILDER_H
29 using AthReentrantAlgorithm::AthReentrantAlgorithm;
32 StatusCode
execute(
const EventContext& ctx)
const override;
37 this,
"LArDigitKey",
"FREE",
"SG Key of LArDigitContainer"};
41 this,
"LArRawChannelKey",
"LArRawChannels",
42 "SG key of the output LArRawChannelContainer"};
46 this,
"PedestalKey",
"LArPedestal",
47 "SG Key of Pedestal conditions object"};
49 this,
"ADC2MeVKey",
"LArADC2MeV",
"SG Key of ADC2MeV conditions object"};
51 "SG Key of OFC conditions object"};
53 this,
"ShapeKey",
"LArShape",
"SG Key of Shape conditions object"};
56 this,
"CablingKey",
"LArOnOffIdMap",
57 "SG Key of LArOnOffIdMapping object"};
59 this,
"Run1DSPThresholdsKey",
"",
60 "SG Key for thresholds to compute time and quality, run 1"};
62 this,
"Run2DSPThresholdsKey",
"",
63 "SG Key for thresholds to compute time and quality, run 2"};
67 "Time and Quality will be computed only "
68 "for channels with E above this value"};
70 this,
"absECut",
true,
"Cut on fabs(E) for Q and t computation"};
72 this,
"useShapeDer",
true,
73 "Use shape derivative in Q-factor computation"};
75 "Use DB for cut on t,Q"};
77 this,
"firstSample", 0,
78 "First of the 32 samples of the MC shape to be used"};
101 this,
"BelowThreshold", 0,
102 "ADC threshold below which samples are treated as noise"};
109 this,
"BelowTillReset", 0,
110 "Number of consecutive noise samples before cache reset"};
116 this,
"NPulse", 0,
"Maximum number of overlapping pulses to subtract"};
123 this,
"Q3Cut", 0,
"Shape-consistency quality cut for pulse acceptance"};
128 this,
"FilterThreshold", 0,
129 "Minimum filtered amplitude for pulse finding"};
138 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.
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 algorithm extends the standard optimal filtering by identifying in-time pulses and subtracti...
Gaudi::Property< bool > m_absECutFortQ
Gaudi::Property< int > m_nPulse
Maximum number of overlapping pulses that can be tracked simultaneously.
SG::ReadCondHandleKey< LArADC2MeV > m_adc2MeVKey
Gaudi::Property< int > m_firstSample
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
std::vector< double > convolvePulse(const ILArShape::ShapeRef_t &shape, const ILArOFC::OFCRef_t &ofc) const
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 filtered amplitude required to consider a sample as a pulse peak.
SG::ReadCondHandleKey< ILArOFC > m_ofcKey
Gaudi::Property< double > m_Q3cut
Quality cut used for pulse acceptance.
Gaudi::Property< bool > m_useShapeDer
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 required before the forward-subtraction cache is reset.
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.