ATLAS Offline Software
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 
10 #include "StoreGate/ReadHandle.h"
11 #include "StoreGate/WriteHandle.h"
13 
18 #include "LArElecCalib/ILArOFC.h"
19 #include "LArElecCalib/ILArShape.h"
22 
23 //Event classes
24 class LArDigitContainer;
26 
27 class LArOnlineID;
28 
30 
31  public:
33 
34  StatusCode initialize() override;
35  StatusCode execute(const EventContext& ctx) const override;
36  StatusCode finalize() override;
37 
38 
39  private:
40  //Event input:
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
LArRawChannelBuilderIterAlg::m_eCutFortQ
Gaudi::Property< float > m_eCutFortQ
Definition: LArRawChannelBuilderIterAlg.h:60
LArRawChannelBuilderIterAlg::m_skipSaturatedCells
Gaudi::Property< bool > m_skipSaturatedCells
Definition: LArRawChannelBuilderIterAlg.h:72
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
LArRawChannelBuilderIterAlg::m_pedestalKey
SG::ReadCondHandleKey< ILArPedestal > m_pedestalKey
Definition: LArRawChannelBuilderIterAlg.h:48
LArRawChannelBuilderIterAlg::m_absECutFortQ
Gaudi::Property< bool > m_absECutFortQ
Definition: LArRawChannelBuilderIterAlg.h:62
LArRawChannelBuilderIterAlg::m_minSample
Gaudi::Property< unsigned short > m_minSample
Definition: LArRawChannelBuilderIterAlg.h:76
LArRawChannelBuilderIterAlg::m_digitKey
SG::ReadHandleKey< LArDigitContainer > m_digitKey
Definition: LArRawChannelBuilderIterAlg.h:41
LArRawChannelBuilderIterAlg::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: LArRawChannelBuilderIterAlg.h:54
LArRawChannelBuilderIterAlg::m_AdcMax
Gaudi::Property< unsigned short > m_AdcMax
Definition: LArRawChannelBuilderIterAlg.h:71
ILArOFC.h
SG::ReadHandleKey< LArDigitContainer >
HWIdentifier
Definition: HWIdentifier.h:13
AthenaAttributeList.h
LArRawChannelBuilderIterAlg::m_rawChannelKey
SG::WriteHandleKey< LArRawChannelContainer > m_rawChannelKey
Definition: LArRawChannelBuilderIterAlg.h:44
LArRawChannelBuilderIterAlg::finalize
StatusCode finalize() override
Definition: LArRawChannelBuilderIterAlg.cxx:50
ReadCondHandle.h
LArOFIterResultsContainer.h
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
LArADC2MeV.h
WriteHandle.h
Handle class for recording to StoreGate.
LArOnOffIdMapping.h
AthReentrantAlgorithm::AthReentrantAlgorithm
AthReentrantAlgorithm()
Default constructor:
LArRawChannelBuilderIterAlg
Definition: LArRawChannelBuilderIterAlg.h:29
SG::WriteHandleKey< LArRawChannelContainer >
LArRawChannelBuilderIterAlg::m_run2DSPThresholdsKey
SG::ReadCondHandleKey< AthenaAttributeList > m_run2DSPThresholdsKey
Definition: LArRawChannelBuilderIterAlg.h:56
LArDSPThresholdsComplete.h
A LArRawConditionsContainer holding thresholds used by the DSP.
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
01SubmitToGrid.samples
samples
Definition: 01SubmitToGrid.py:58
LArRawChannelBuilderIterAlg::m_minADCforIter
Gaudi::Property< unsigned short > m_minADCforIter
Definition: LArRawChannelBuilderIterAlg.h:74
LArRawChannelBuilderIterAlg::m_defaultShiftTimeSamples
Gaudi::Property< int > m_defaultShiftTimeSamples
Definition: LArRawChannelBuilderIterAlg.h:79
LArRawChannelBuilderIterAlg::m_adc2MeVKey
SG::ReadCondHandleKey< LArADC2MeV > m_adc2MeVKey
Definition: LArRawChannelBuilderIterAlg.h:49
LArRawChannelBuilderIterAlg::execute
StatusCode execute(const EventContext &ctx) const override
Definition: LArRawChannelBuilderIterAlg.cxx:54
ILArOFC
Definition: ILArOFC.h:14
AthReentrantAlgorithm.h
ILArShape.h
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::initialize
StatusCode initialize() override
Definition: LArRawChannelBuilderIterAlg.cxx:20
LArOnlineID
Definition: LArOnlineID.h:20
CaloGain::CaloGain
CaloGain
Definition: CaloGain.h:11
SG::ReadCondHandleKey< ILArPedestal >
LArRawChannelBuilderIterAlg::m_firstSample
Gaudi::Property< int > m_firstSample
Definition: LArRawChannelBuilderIterAlg.h:68
LArRawChannelBuilderIterAlg::m_ofcKey
SG::ReadCondHandleKey< ILArOFC > m_ofcKey
Definition: LArRawChannelBuilderIterAlg.h:50
ILArPedestal.h
LArRawChannelBuilderIterAlg::m_maxSample
Gaudi::Property< unsigned short > m_maxSample
Definition: LArRawChannelBuilderIterAlg.h:77
LArRawChannelBuilderIterAlg::m_shapeKey
SG::ReadCondHandleKey< ILArShape > m_shapeKey
Definition: LArRawChannelBuilderIterAlg.h:51
LArRawChannelBuilderIterAlg::m_forceHighGain
Gaudi::Property< bool > m_forceHighGain
Definition: LArRawChannelBuilderIterAlg.h:80
LArDigitContainer
Container class for LArDigit.
Definition: LArDigitContainer.h:24
LArRawChannelBuilderIterAlg::m_useDBFortQ
Gaudi::Property< bool > m_useDBFortQ
Definition: LArRawChannelBuilderIterAlg.h:65
ReadHandle.h
Handle class for reading from StoreGate.
LArRawChannelBuilderIterAlg::m_nIterProp
Gaudi::Property< unsigned short > m_nIterProp
Definition: LArRawChannelBuilderIterAlg.h:78
ILArShape
Definition: ILArShape.h:13
LArRawChannelBuilderIterAlg::m_run1DSPThresholdsKey
SG::ReadCondHandleKey< LArDSPThresholdsComplete > m_run1DSPThresholdsKey
Definition: LArRawChannelBuilderIterAlg.h:55
LArRawChannelBuilderIterAlg::m_timingContKey
SG::WriteHandleKey< LArOFIterResultsContainer > m_timingContKey
Definition: LArRawChannelBuilderIterAlg.h:82
LArRawChannelBuilderIterAlg::m_useShapeDer
Gaudi::Property< bool > m_useShapeDer
Definition: LArRawChannelBuilderIterAlg.h:63
LArRawChannelBuilderIterAlg::m_minADCforIterInSigma
Gaudi::Property< float > m_minADCforIterInSigma
Definition: LArRawChannelBuilderIterAlg.h:75
LArRawChannelContainer
Container for LArRawChannel (IDC using LArRawChannelCollection)
Definition: LArRawChannelContainer.h:26
LArOFIterResults
Definition: LArOFIterResults.h:15
LArRawChannelBuilderIterAlg::m_onlineId
const LArOnlineID * m_onlineId
Definition: LArRawChannelBuilderIterAlg.h:85
LArRawChannelBuilderIterAlg::m_defaultPhase
Gaudi::Property< float > m_defaultPhase
Definition: LArRawChannelBuilderIterAlg.h:73