ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
LArCalorimeter
LArROD
src
LArRawChannelBuilderIterAlg.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef LARROD_LARRAWCHANNELBUILDERITERALG_H
6
#define LARROD_LARRAWCHANNELBUILDERITERALG_H
7
8
9
#include "
AthenaBaseComps/AthReentrantAlgorithm.h
"
10
#include "
StoreGate/ReadHandle.h
"
11
#include "
StoreGate/WriteHandle.h
"
12
#include "
StoreGate/ReadCondHandle.h
"
13
14
#include "
LArElecCalib/ILArPedestal.h
"
15
#include "
LArRawConditions/LArADC2MeV.h
"
16
#include "
LArRawConditions/LArDSPThresholdsComplete.h
"
17
#include "
LArRawEvent/LArOFIterResultsContainer.h
"
18
#include "
LArElecCalib/ILArOFC.h
"
19
#include "
LArElecCalib/ILArShape.h
"
20
#include "
LArCabling/LArOnOffIdMapping.h
"
21
#include "
AthenaPoolUtilities/AthenaAttributeList.h
"
22
23
//Event classes
24
class
LArDigitContainer
;
25
class
LArRawChannelContainer
;
26
27
class
LArOnlineID
;
28
29
class
LArRawChannelBuilderIterAlg
:
public
AthReentrantAlgorithm
{
30
31
public
:
32
using
AthReentrantAlgorithm::AthReentrantAlgorithm;
33
34
StatusCode
initialize
()
override
;
35
StatusCode
execute
(
const
EventContext& ctx)
const override
;
36
StatusCode
finalize
()
override
;
37
38
39
private
:
40
//Event input:
41
SG::ReadHandleKey<LArDigitContainer>
m_digitKey
{
this
,
"LArDigitKey"
,
"FREE"
,
42
"SG Key of LArDigitContaiiner"
};
43
//Event output:
44
SG::WriteHandleKey<LArRawChannelContainer>
m_rawChannelKey
{
this
,
"LArRawChannelKey"
,
"LArRawChannels"
,
45
"SG key of the LArRawChannelContainer"
};
46
47
//Conditions input:
48
SG::ReadCondHandleKey<ILArPedestal>
m_pedestalKey
{
this
,
"PedestalKey"
,
"LArPedestal"
,
"SG Key of Pedestal conditions object"
};
49
SG::ReadCondHandleKey<LArADC2MeV>
m_adc2MeVKey
{
this
,
"ADC2MeVKey"
,
"LArADC2MeV"
,
"SG Key of ADC2MeV conditions object"
};
50
SG::ReadCondHandleKey<ILArOFC>
m_ofcKey
{
this
,
"OFCKey"
,
"LArOFC"
,
"SG Key of OFC conditions object"
};
51
SG::ReadCondHandleKey<ILArShape>
m_shapeKey
{
this
,
"ShapeKey"
,
"LArShape"
,
"SG Key of Shape conditions object"
};
52
53
54
SG::ReadCondHandleKey<LArOnOffIdMapping>
m_cablingKey
{
this
,
"CablingKey"
,
"LArOnOffIdMap"
,
"SG Key of LArOnOffIdMapping object"
};
55
SG::ReadCondHandleKey<LArDSPThresholdsComplete>
m_run1DSPThresholdsKey
{
this
,
"Run1DSPThresholdsKey"
,
""
,
"SG Key for thresholds to compute time and quality, run 1"
};
56
SG::ReadCondHandleKey<AthenaAttributeList>
m_run2DSPThresholdsKey
{
this
,
"Run2DSPThresholdsKey"
,
""
,
"SG Key for thresholds to compute time and quality, run 2"
};
57
58
59
//Other jobOptions:
60
Gaudi::Property<float>
m_eCutFortQ
{
this
,
"ECutFortQ"
,256.0,
"Time and Quality will be computed only for channels with E above this value"
};
61
//This flag decides if we compute Q and t for cells with negative energy
62
Gaudi::Property<bool>
m_absECutFortQ
{
this
,
"absECut"
,
true
,
"Cut on fabs(E) for Q and t computation"
};
63
Gaudi::Property<bool>
m_useShapeDer
{
this
,
"useShapeDer"
,
true
,
"Use shape derivative in Q-factor computation"
};
64
//This flag decides, wheter to use DB or constant threshold
65
Gaudi::Property<bool>
m_useDBFortQ
{
this
,
"useDB"
,
true
,
"Use DB for cut on t,Q"
};
66
67
//The following matters only in the MC case, when we have a 32 sample shapes
68
Gaudi::Property<int>
m_firstSample
{
this
,
"firstSample"
,0,
"first of the 32 sampels of the MC shape to be used"
};
69
70
// flags for iterations
71
Gaudi::Property<unsigned short>
m_AdcMax
{
this
,
"ADCMax"
, 4095,
"Saturation cut"
};
72
Gaudi::Property<bool>
m_skipSaturatedCells
{
this
,
"Skip"
,
false
,
"reconstruct saturated cells"
};
73
Gaudi::Property<float>
m_defaultPhase
{
this
,
"defaultPhase"
, 0,
"starting phase for iterations"
};
74
Gaudi::Property<unsigned short>
m_minADCforIter
{
this
,
"minADCforIter"
, 30};
75
Gaudi::Property<float>
m_minADCforIterInSigma
{
this
,
"minADCforIterInSigma"
, -1};
76
Gaudi::Property<unsigned short>
m_minSample
{
this
,
"minSample"
, 0};
77
Gaudi::Property<unsigned short>
m_maxSample
{
this
,
"maxSample"
,31};
78
Gaudi::Property<unsigned short>
m_nIterProp
{
"nIterations"
, 10};
79
Gaudi::Property<int>
m_defaultShiftTimeSamples
{
this
,
"DefaultShiftTimeSample"
, 0};
80
Gaudi::Property<bool>
m_forceHighGain
{
this
,
"forceHighGain"
,
false
,
"Force use of high gain for all shapes and OFC (default=false)"
};
81
82
SG::WriteHandleKey<LArOFIterResultsContainer>
m_timingContKey
{
this
,
"TimingContainerKey"
,
""
,
"Key of the LArOFIterResultsContainer in StoreGate"
};
83
84
//Identifier helper
85
const
LArOnlineID
*
m_onlineId
=
nullptr
;
86
87
// iterative peak computation
88
LArOFIterResults
peak
(
const
std::vector<float>& samples,
// raw data after pedestal subtraction
89
const
HWIdentifier
chID,
// online channel id
90
const
CaloGain::CaloGain
gain,
// gain
91
const
float
delayIn,
// initial delay for Shape and OFC
92
const
ILArOFC
* ofcs,
// OFC's
93
const
ILArShape
* shapes,
// shapes
94
const
unsigned
nIter=0,
// number of iteration
95
const
unsigned
npeak=2,
// initial peak position.
96
unsigned
peak_low=2,
// lower limit for peak position
97
unsigned
peak_high=2
// upper limit for peak position
98
)
const
;
99
100
};
101
102
103
104
#endif
AthReentrantAlgorithm.h
AthenaAttributeList.h
ILArOFC.h
ILArPedestal.h
ILArShape.h
LArADC2MeV.h
LArDSPThresholdsComplete.h
A LArRawConditionsContainer holding thresholds used by the DSP.
LArOFIterResultsContainer.h
LArOnOffIdMapping.h
ReadCondHandle.h
ReadHandle.h
Handle class for reading from StoreGate.
WriteHandle.h
Handle class for recording to StoreGate.
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition
AthReentrantAlgorithm.h:74
HWIdentifier
Definition
HWIdentifier.h:13
ILArOFC
Definition
ILArOFC.h:14
ILArShape
Definition
ILArShape.h:13
LArDigitContainer
Container class for LArDigit.
Definition
LArDigitContainer.h:24
LArOFIterResults
Definition
LArOFIterResults.h:15
LArOnlineID
Definition
LArOnlineID.h:21
LArRawChannelBuilderIterAlg
Definition
LArRawChannelBuilderIterAlg.h:29
LArRawChannelBuilderIterAlg::m_minSample
Gaudi::Property< unsigned short > m_minSample
Definition
LArRawChannelBuilderIterAlg.h:76
LArRawChannelBuilderIterAlg::m_AdcMax
Gaudi::Property< unsigned short > m_AdcMax
Definition
LArRawChannelBuilderIterAlg.h:71
LArRawChannelBuilderIterAlg::execute
StatusCode execute(const EventContext &ctx) const override
Definition
LArRawChannelBuilderIterAlg.cxx:54
LArRawChannelBuilderIterAlg::m_rawChannelKey
SG::WriteHandleKey< LArRawChannelContainer > m_rawChannelKey
Definition
LArRawChannelBuilderIterAlg.h:44
LArRawChannelBuilderIterAlg::finalize
StatusCode finalize() override
Definition
LArRawChannelBuilderIterAlg.cxx:50
LArRawChannelBuilderIterAlg::m_pedestalKey
SG::ReadCondHandleKey< ILArPedestal > m_pedestalKey
Definition
LArRawChannelBuilderIterAlg.h:48
LArRawChannelBuilderIterAlg::m_defaultShiftTimeSamples
Gaudi::Property< int > m_defaultShiftTimeSamples
Definition
LArRawChannelBuilderIterAlg.h:79
LArRawChannelBuilderIterAlg::m_nIterProp
Gaudi::Property< unsigned short > m_nIterProp
Definition
LArRawChannelBuilderIterAlg.h:78
LArRawChannelBuilderIterAlg::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition
LArRawChannelBuilderIterAlg.h:54
LArRawChannelBuilderIterAlg::peak
LArOFIterResults peak(const std::vector< float > &samples, const HWIdentifier chID, const CaloGain::CaloGain gain, const float delayIn, const ILArOFC *ofcs, const ILArShape *shapes, const unsigned nIter=0, const unsigned npeak=2, unsigned peak_low=2, unsigned peak_high=2) const
Definition
LArRawChannelBuilderIterAlg.cxx:277
LArRawChannelBuilderIterAlg::m_shapeKey
SG::ReadCondHandleKey< ILArShape > m_shapeKey
Definition
LArRawChannelBuilderIterAlg.h:51
LArRawChannelBuilderIterAlg::m_adc2MeVKey
SG::ReadCondHandleKey< LArADC2MeV > m_adc2MeVKey
Definition
LArRawChannelBuilderIterAlg.h:49
LArRawChannelBuilderIterAlg::m_skipSaturatedCells
Gaudi::Property< bool > m_skipSaturatedCells
Definition
LArRawChannelBuilderIterAlg.h:72
LArRawChannelBuilderIterAlg::m_digitKey
SG::ReadHandleKey< LArDigitContainer > m_digitKey
Definition
LArRawChannelBuilderIterAlg.h:41
LArRawChannelBuilderIterAlg::m_minADCforIter
Gaudi::Property< unsigned short > m_minADCforIter
Definition
LArRawChannelBuilderIterAlg.h:74
LArRawChannelBuilderIterAlg::m_timingContKey
SG::WriteHandleKey< LArOFIterResultsContainer > m_timingContKey
Definition
LArRawChannelBuilderIterAlg.h:82
LArRawChannelBuilderIterAlg::m_defaultPhase
Gaudi::Property< float > m_defaultPhase
Definition
LArRawChannelBuilderIterAlg.h:73
LArRawChannelBuilderIterAlg::m_onlineId
const LArOnlineID * m_onlineId
Definition
LArRawChannelBuilderIterAlg.h:85
LArRawChannelBuilderIterAlg::m_firstSample
Gaudi::Property< int > m_firstSample
Definition
LArRawChannelBuilderIterAlg.h:68
LArRawChannelBuilderIterAlg::m_useShapeDer
Gaudi::Property< bool > m_useShapeDer
Definition
LArRawChannelBuilderIterAlg.h:63
LArRawChannelBuilderIterAlg::m_absECutFortQ
Gaudi::Property< bool > m_absECutFortQ
Definition
LArRawChannelBuilderIterAlg.h:62
LArRawChannelBuilderIterAlg::m_ofcKey
SG::ReadCondHandleKey< ILArOFC > m_ofcKey
Definition
LArRawChannelBuilderIterAlg.h:50
LArRawChannelBuilderIterAlg::m_maxSample
Gaudi::Property< unsigned short > m_maxSample
Definition
LArRawChannelBuilderIterAlg.h:77
LArRawChannelBuilderIterAlg::m_run1DSPThresholdsKey
SG::ReadCondHandleKey< LArDSPThresholdsComplete > m_run1DSPThresholdsKey
Definition
LArRawChannelBuilderIterAlg.h:55
LArRawChannelBuilderIterAlg::m_eCutFortQ
Gaudi::Property< float > m_eCutFortQ
Definition
LArRawChannelBuilderIterAlg.h:60
LArRawChannelBuilderIterAlg::m_minADCforIterInSigma
Gaudi::Property< float > m_minADCforIterInSigma
Definition
LArRawChannelBuilderIterAlg.h:75
LArRawChannelBuilderIterAlg::m_forceHighGain
Gaudi::Property< bool > m_forceHighGain
Definition
LArRawChannelBuilderIterAlg.h:80
LArRawChannelBuilderIterAlg::m_run2DSPThresholdsKey
SG::ReadCondHandleKey< AthenaAttributeList > m_run2DSPThresholdsKey
Definition
LArRawChannelBuilderIterAlg.h:56
LArRawChannelBuilderIterAlg::initialize
StatusCode initialize() override
Definition
LArRawChannelBuilderIterAlg.cxx:20
LArRawChannelBuilderIterAlg::m_useDBFortQ
Gaudi::Property< bool > m_useDBFortQ
Definition
LArRawChannelBuilderIterAlg.h:65
LArRawChannelContainer
Container for LArRawChannel (IDC using LArRawChannelCollection).
Definition
LArRawChannelContainer.h:26
SG::ReadCondHandleKey
Definition
ReadCondHandleKey.h:21
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition
StoreGate/StoreGate/ReadHandleKey.h:40
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition
StoreGate/StoreGate/WriteHandleKey.h:40
CaloGain::CaloGain
CaloGain
Definition
CaloGain.h:11
Generated on
for ATLAS Offline Software by
1.17.0