ATLAS Offline Software
Loading...
Searching...
No Matches
LArRODBCIDCorrAlg.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
9
10#ifndef LARROD_LARRODBCIDCORRALG_H
11#define LARROD_LARRODBCIDCORRALG_H
12
22
23#include <vector>
24
26class LArOnlineID;
27
52{
53public:
54 using AthReentrantAlgorithm::AthReentrantAlgorithm;
55
56 virtual StatusCode initialize() override;
57 virtual StatusCode execute (const EventContext& ctx) const override;
58
59private:
61 static constexpr int s_nBCID = 3564;
62
64 { this, "LArDigitKey", "LArDigitContainer_MC",
65 "SG key of the input LArDigitContainer" };
66
68 { this, "OutputDigitKey", "LArDigitContainer_PileupCorrected",
69 "SG key of the output LArDigitContainer" };
70
72 { this, "ADC2MeVKey", "LArADC2MeV",
73 "SG key of the ADC2MeV conditions object" };
74
76 { this, "CablingKey", "LArOnOffIdMap",
77 "SG key of the LArOnOffIdMapping object" };
78
80 { this, "ShapeKey", "LArShape",
81 "SG key of the LArShape conditions object" };
82
84 { this, "MinBiasAvgKey", "LArPileupAverageSym",
85 "SG key of the LArMinBiasAverage object" };
86
88 { this, "EventInfo", "EventInfo", "SG key of the EventInfo object" };
89
90 Gaudi::Property<std::vector<float> > m_beamIntensityPattern
91 { this, "BeamIntensityPattern", {}, "LHC beam intensity pattern" };
92
93 Gaudi::Property<int> m_firstSample
94 { this, "firstSample", 0,
95 "Digitisation firstSample: the shape index seen by digit sample 0. Must be "
96 "set exactly as LArHitEMapToDigitAlg.firstSample, that is "
97 "-nPreceedingSamples, or LAr.ROD.FirstSample when that is zero." };
98
99 Gaudi::Property<int> m_minBunchCrossing
100 { this, "MinBunchCrossing", -s_nBCID,
101 "Earliest bunch crossing, relative to the triggered one, included in the "
102 "correction. Set this to the earliest crossing actually overlaid by the "
103 "digitisation to avoid over-subtracting in the preceding samples." };
104
105 Gaudi::Property<int> m_maxBunchCrossing
106 { this, "MaxBunchCrossing", s_nBCID,
107 "Latest bunch crossing, relative to the triggered one, included in the "
108 "correction." };
109
113 std::vector<float> m_lumi;
114
116 const LArOnlineID* m_onlineId = nullptr;
117
124 StatusCode fillLumi();
125
142 void computePileupADCCorrection (float mbEnergy,
143 const ILArShape::ShapeRef_t& pulseShape,
144 int bcid,
145 float adc2MeVSlope,
146 float intperBC,
147 bool hecShift,
148 std::vector<float>& pileupADC) const;
149};
150
151#endif // LARROD_LARRODBCIDCORRALG_H
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 ShapeRef_t
This class defines the interface for accessing Shape (Nsample variable, Dt = 25 ns fixed) @stereotype...
Definition ILArShape.h:26
Container class for LArDigit.
Subtract the BCID-dependent pile-up offset from the LArDigit samples.
void computePileupADCCorrection(float mbEnergy, const ILArShape::ShapeRef_t &pulseShape, int bcid, float adc2MeVSlope, float intperBC, bool hecShift, std::vector< float > &pileupADC) const
Compute the mean pile-up ADC offset per sample for one channel.
Gaudi::Property< int > m_minBunchCrossing
SG::ReadCondHandleKey< LArADC2MeV > m_adc2MeVKey
SG::ReadCondHandleKey< ILArMinBiasAverage > m_minBiasAvgKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
virtual StatusCode initialize() override
std::vector< float > m_lumi
Per-BCID luminosity, indexed by absolute BCID in [0, s_nBCID).
virtual StatusCode execute(const EventContext &ctx) const override
SG::ReadCondHandleKey< ILArShape > m_shapeKey
const LArOnlineID * m_onlineId
Online identifier helper, used to recognise HEC channels.
static constexpr int s_nBCID
Number of bunch crossings in one LHC orbit.
Gaudi::Property< int > m_firstSample
Gaudi::Property< int > m_maxBunchCrossing
SG::WriteHandleKey< LArDigitContainer > m_digitCorrKey
StatusCode fillLumi()
Fill m_lumi from the beam intensity pattern.
SG::ReadHandleKey< LArDigitContainer > m_digitKey
Gaudi::Property< std::vector< float > > m_beamIntensityPattern
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.