ATLAS Offline Software
LuminosityCondAlg.h
Go to the documentation of this file.
1 // This file's extension implies that it's C, but it's really -*- C++ -*-.
2 /*
3  * Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration.
4  */
13 #ifndef LUMIBLOCKCOMPS_LUMINOSITYCONDALG_H
14 #define LUMIBLOCKCOMPS_LUMINOSITYCONDALG_H
15 
16 
27 #include "CoralBase/Blob.h"
29 
30 
35  : public AthReentrantAlgorithm
36 {
37 public:
39  using AthReentrantAlgorithm::AthReentrantAlgorithm;
40 
41 
43  virtual StatusCode initialize() override;
44 
45 
47  virtual StatusCode execute (const EventContext& ctx) const override;
48  virtual bool isReEntrant() const override final { return false; }
49 
50 
51 private:
67  updateAvgLumi (const CondAttrListCollection& lumiData,
69  unsigned int& preferredChannel,
70  unsigned int& calibChannel,
71  const coral::Blob*& bunchInstLumiBlob) const;
72 
73 
86  updatePerBunchLumi (const EventContext& ctx,
87  const coral::Blob* bunchInstLumiBlob,
88  unsigned int preferredChannel,
89  unsigned int calibChannel,
91  LuminosityCondData& lumi) const;
92 
93 
103  StatusCode
104  updateMuToLumi (const EventContext& ctx,
105  unsigned int calibChannel,
108  bool& isValid) const;
109 
110 
117  StatusCode
118  updatePerBunchLumiRun2 (const coral::Blob& bunchInstLumiBlob,
119  unsigned int preferredChannel,
120  LuminosityCondData& lumi) const;
121 
122 
130  StatusCode
131  updatePerBunchLumiRun1 (const EventContext& ctx,
132  unsigned int preferredChannel,
134  LuminosityCondData& lumi) const;
135 
136 
137  Gaudi::Property<unsigned long> m_lumiChannel
138  { this, "LumiChannelNumber", 0, "Luminosity channel to read. 0 means to determine from the data." };
139 
140  Gaudi::Property<unsigned long> m_calibBackupChannel
141  { this, "CalibBackupChannel", 112, "Backup channel in case calibChannel doesn't exist in online calibration folder" };
142 
143  Gaudi::Property<bool> m_skipInvalid
144  { this, "SkipInvalid", true, "Flag to control whether invalid data is skipped: True (default), returning a zero luminosity; false, returning available luminosity values anyway." };
145 
146  Gaudi::Property<bool> m_expectInvalid
147  { this, "ExpectInvalid", false, "Flag to control printouts when invalid data are encountered: True suppresses messages, False (default) leaves them in" };
148 
149  // following properties are for MC
150  Gaudi::Property<bool> m_isMC
151  { this, "IsMC", false, "Set to true when running on MC instead of data" };
152 
153  Gaudi::Property<float> m_muToLumi
154  { this, "MCMuToLumi", 0.140569, "mu to lumi conversion factor in MC (80 mb/LHC rev freq)" };
155 
156 
158  { this, "LuminosityFolderInputKey", "/TRIGGER/OFLLUMI/LBLESTOFL",
159  "Input luminosity COOL folder." };
160 
162  { this, "OnlineLumiCalibrationInputKey", "OnlineLumiCalibrationCondData",
163  "Input luminosity calibration." };
164 
166  { this, "BunchLumisInputKey", "",
167  "Input raw luminosities. Only used for Run 1." };
168 
170  { this, "BunchGroupInputKey", "",
171  "Input filled bunch data. Only used for Run 1." };
172 
174  { this, "FillParamsInputKey", "",
175  "Input luminous bunch data. Only used for Run 1." };
176 
177  // the following are for MC
179  { this, "DigitizationFolderInputKey", "/Digitization/Parameters",
180  "Digitization parameters metadata folder." };
181 
183  { this, "EventInfoKey", "EventInfo", "EventInfo key, used to read in simulated mu in MC" };
184 
186  { this, "actualMuKey", m_eventInfoKey, "actualInteractionsPerCrossing",
187  "Decoration for Actual Interaction Per Crossing, for MC" };
188 
190  { this, "averageMuKey", m_eventInfoKey, "averageInteractionsPerCrossing",
191  "Decoration for Average Interaction Per Crossing" };
192 
195  { this, "LuminosityOutputKey", "LuminosityCondData",
196  "Output luminosity data." };
197 };
198 
199 
200 #endif // not LUMIBLOCKCOMPS_LUMINOSITYCONDALG_H
CondAttrListCollection.h
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
LuminosityCondAlg::updateMuToLumi
StatusCode updateMuToLumi(const EventContext &ctx, unsigned int calibChannel, SG::WriteCondHandle< LuminosityCondData > &wHdl, LuminosityCondData &lumi, bool &isValid) const
Fill in mu-to-lumi calibration.
Definition: LuminosityCondAlg.cxx:347
LuminosityCondAlg::m_luminosityOutputKey
SG::WriteCondHandleKey< LuminosityCondData > m_luminosityOutputKey
Output conditions object.
Definition: LuminosityCondAlg.h:195
LuminosityCondAlg::m_luminosityFolderInputKey
SG::ReadCondHandleKey< CondAttrListCollection > m_luminosityFolderInputKey
Definition: LuminosityCondAlg.h:158
LuminosityCondAlg::updatePerBunchLumi
StatusCode updatePerBunchLumi(const EventContext &ctx, const coral::Blob *bunchInstLumiBlob, unsigned int preferredChannel, unsigned int calibChannel, SG::WriteCondHandle< LuminosityCondData > &wHdl, LuminosityCondData &lumi) const
Fill in per-bunch luminosity data.
Definition: LuminosityCondAlg.cxx:296
LuminosityCondAlg
Conditions algorithm for luminosity data.
Definition: LuminosityCondAlg.h:36
WriteCondHandleKey.h
LuminosityCondAlg::m_onlineLumiCalibrationInputKey
SG::ReadCondHandleKey< OnlineLumiCalibrationCondData > m_onlineLumiCalibrationInputKey
Definition: LuminosityCondAlg.h:162
python.subdetectors.tile.Blob
Blob
Definition: tile.py:17
LuminosityCondAlg::m_fillParamsInputKey
SG::ReadCondHandleKey< FillParamsCondData > m_fillParamsInputKey
Definition: LuminosityCondAlg.h:174
isValid
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
Definition: AtlasPID.h:878
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
SG::ReadHandleKey< xAOD::EventInfo >
LuminosityCondAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Algorithm execute method.
Definition: LuminosityCondAlg.cxx:84
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number....
Definition: CondAttrListCollection.h:51
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
LuminosityCondAlg::m_calibBackupChannel
Gaudi::Property< unsigned long > m_calibBackupChannel
Definition: LuminosityCondAlg.h:141
LuminosityCondAlg::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: LuminosityCondAlg.h:183
LuminosityCondAlg::m_bunchGroupInputKey
SG::ReadCondHandleKey< BunchGroupCondData > m_bunchGroupInputKey
Definition: LuminosityCondAlg.h:170
LuminosityCondAlg::m_expectInvalid
Gaudi::Property< bool > m_expectInvalid
Definition: LuminosityCondAlg.h:147
LuminosityCondAlg::initialize
virtual StatusCode initialize() override
Gaudi initialize method.
Definition: LuminosityCondAlg.cxx:57
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LuminosityCondAlg::m_muToLumi
Gaudi::Property< float > m_muToLumi
Definition: LuminosityCondAlg.h:154
FillParamsCondData.h
Holds fill parameters data.
LuminosityCondAlg::m_actualMuKey
SG::ReadDecorHandleKey< xAOD::EventInfo > m_actualMuKey
Definition: LuminosityCondAlg.h:186
OnlineLumiCalibrationCondData.h
Luminosity calibration data, produced by OnlineLumiCalibrationCondAlg.
BunchGroupCondData.h
Holds data on filled bunches.
columnar::final
CM final
Definition: ColumnAccessor.h:106
LuminosityCondData.h
Hold luminosity data produced by LuminosityCondAlg.
LuminosityCondAlg::isReEntrant
virtual bool isReEntrant() const override final
Definition: LuminosityCondAlg.h:48
ReadCondHandleKey.h
AthReentrantAlgorithm.h
LuminosityCondData
Definition: LuminosityCondData.h:23
LuminosityCondAlg::updateAvgLumi
StatusCode updateAvgLumi(const CondAttrListCollection &lumiData, LuminosityCondData &lumi, unsigned int &preferredChannel, unsigned int &calibChannel, const coral::Blob *&bunchInstLumiBlob) const
Unpack luminosity data from the attribute list.
Definition: LuminosityCondAlg.cxx:173
LuminosityCondAlg::updatePerBunchLumiRun1
StatusCode updatePerBunchLumiRun1(const EventContext &ctx, unsigned int preferredChannel, SG::WriteCondHandle< LuminosityCondData > &wHdl, LuminosityCondData &lumi) const
Fill in per-bunch luminosity data, run 1.
Definition: LuminosityCondAlg.cxx:480
LuminosityCondAlg::m_isMC
Gaudi::Property< bool > m_isMC
Definition: LuminosityCondAlg.h:151
AthenaAttributeList.h
An AttributeList represents a logical row of attributes in a metadata table. The name and type of eac...
EventInfo.h
SG::ReadCondHandleKey< CondAttrListCollection >
LuminosityCondAlg::updatePerBunchLumiRun2
StatusCode updatePerBunchLumiRun2(const coral::Blob &bunchInstLumiBlob, unsigned int preferredChannel, LuminosityCondData &lumi) const
Fill in per-bunch luminosity data, run 2 and later.
Definition: LuminosityCondAlg.cxx:413
lumiFormat.lumi
lumi
Definition: lumiFormat.py:106
LuminosityCondAlg::m_bunchLumisInputKey
SG::ReadCondHandleKey< BunchLumisCondData > m_bunchLumisInputKey
Definition: LuminosityCondAlg.h:166
BunchLumisCondData.h
Holds raw luminosity data, per channel.
SG::WriteCondHandleKey< LuminosityCondData >
LuminosityCondAlg::m_skipInvalid
Gaudi::Property< bool > m_skipInvalid
Definition: LuminosityCondAlg.h:144
SG::ReadDecorHandleKey
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Definition: StoreGate/StoreGate/ReadDecorHandleKey.h:85
LuminosityCondAlg::m_mcDigitizationInputKey
SG::ReadCondHandleKey< AthenaAttributeList > m_mcDigitizationInputKey
Definition: LuminosityCondAlg.h:179
SG::WriteCondHandle
Definition: WriteCondHandle.h:26
LuminosityCondAlg::m_lumiChannel
Gaudi::Property< unsigned long > m_lumiChannel
Definition: LuminosityCondAlg.h:138
LuminosityCondAlg::m_averageMuKey
SG::ReadDecorHandleKey< xAOD::EventInfo > m_averageMuKey
Definition: LuminosityCondAlg.h:190