13#ifndef LUMIBLOCKCOMPS_LUMINOSITYCONDALG_H
14#define LUMIBLOCKCOMPS_LUMINOSITYCONDALG_H
27#include "CoralBase/Blob.h"
40 using AthCondAlgorithm::AthCondAlgorithm;
48 virtual StatusCode
execute (
const EventContext& ctx)
const override;
69 unsigned int& preferredChannel,
70 unsigned int& calibChannel,
71 const coral::Blob*& bunchInstLumiBlob)
const;
87 const coral::Blob* bunchInstLumiBlob,
88 unsigned int preferredChannel,
89 unsigned int calibChannel,
105 unsigned int calibChannel,
119 unsigned int preferredChannel,
132 unsigned int preferredChannel,
138 {
this,
"LumiChannelNumber", 0,
"Luminosity channel to read. 0 means to determine from the data." };
141 {
this,
"CalibBackupChannel", 112,
"Backup channel in case calibChannel doesn't exist in online calibration folder" };
144 {
this,
"SkipInvalid",
true,
"Flag to control whether invalid data is skipped: True (default), returning a zero luminosity; false, returning available luminosity values anyway." };
147 {
this,
"ExpectInvalid",
false,
"Flag to control printouts when invalid data are encountered: True suppresses messages, False (default) leaves them in" };
151 {
this,
"IsMC",
false,
"Set to true when running on MC instead of data" };
154 {
this,
"MCMuToLumi", 0.140569,
"mu to lumi conversion factor in MC (80 mb/LHC rev freq)" };
158 {
this,
"LuminosityFolderInputKey",
"/TRIGGER/OFLLUMI/LBLESTOFL",
159 "Input luminosity COOL folder." };
162 {
this,
"OnlineLumiCalibrationInputKey",
"OnlineLumiCalibrationCondData",
163 "Input luminosity calibration." };
166 {
this,
"BunchLumisInputKey",
"",
167 "Input raw luminosities. Only used for Run 1." };
170 {
this,
"BunchGroupInputKey",
"",
171 "Input filled bunch data. Only used for Run 1." };
174 {
this,
"FillParamsInputKey",
"",
175 "Input luminous bunch data. Only used for Run 1." };
179 {
this,
"DigitizationFolderInputKey",
"/Digitization/Parameters",
180 "Digitization parameters metadata folder." };
183 {
this,
"ByteStreamMetadataKey",
"",
184 "ByteStream metadata (for reading IOV metadata from BS files in MC mode)" };
187 {
this,
"EventInfoKey",
"EventInfo",
"EventInfo key, used to read in simulated mu in MC" };
190 {
this,
"actualMuKey",
m_eventInfoKey,
"actualInteractionsPerCrossing",
191 "Decoration for Actual Interaction Per Crossing, for MC" };
194 {
this,
"averageMuKey",
m_eventInfoKey,
"averageInteractionsPerCrossing",
195 "Decoration for Average Interaction Per Crossing" };
199 {
this,
"LuminosityOutputKey",
"LuminosityCondData",
200 "Output luminosity data." };
Base class for conditions algorithms.
bool isValid() const
Test to see if the link can be dereferenced.
Holds data on filled bunches.
Holds raw luminosity data, per channel.
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
Holds fill parameters data.
Hold luminosity data produced by LuminosityCondAlg.
Luminosity calibration data, produced by OnlineLumiCalibrationCondAlg.
An AttributeList represents a logical row of attributes in a metadata table.
Base class for conditions algorithms.
This class is a collection of AttributeLists where each one is associated with a channel number.
Conditions algorithm for luminosity data.
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.
Gaudi::Property< float > m_muToLumi
SG::WriteCondHandleKey< LuminosityCondData > m_luminosityOutputKey
Output conditions object.
SG::ReadCondHandleKey< BunchGroupCondData > m_bunchGroupInputKey
SG::ReadCondHandleKey< OnlineLumiCalibrationCondData > m_onlineLumiCalibrationInputKey
StatusCode updatePerBunchLumiRun1(const EventContext &ctx, unsigned int preferredChannel, SG::WriteCondHandle< LuminosityCondData > &wHdl, LuminosityCondData &lumi) const
Fill in per-bunch luminosity data, run 1.
Gaudi::Property< bool > m_isMC
virtual StatusCode execute(const EventContext &ctx) const override
Algorithm execute method.
SG::ReadDecorHandleKey< xAOD::EventInfo > m_averageMuKey
SG::ReadCondHandleKey< FillParamsCondData > m_fillParamsInputKey
StatusCode updateMuToLumi(const EventContext &ctx, unsigned int calibChannel, SG::WriteCondHandle< LuminosityCondData > &wHdl, LuminosityCondData &lumi, bool &isValid) const
Fill in mu-to-lumi calibration.
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Gaudi::Property< unsigned long > m_lumiChannel
SG::ReadDecorHandleKey< xAOD::EventInfo > m_actualMuKey
Gaudi::Property< bool > m_skipInvalid
SG::ReadHandleKey< ByteStreamMetadataContainer > m_byteStreamMetadataKey
SG::ReadCondHandleKey< AthenaAttributeList > m_mcDigitizationInputKey
Gaudi::Property< bool > m_expectInvalid
SG::ReadCondHandleKey< BunchLumisCondData > m_bunchLumisInputKey
virtual StatusCode initialize() override
Gaudi initialize method.
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.
StatusCode updatePerBunchLumiRun2(const coral::Blob &bunchInstLumiBlob, unsigned int preferredChannel, LuminosityCondData &lumi) const
Fill in per-bunch luminosity data, run 2 and later.
SG::ReadCondHandleKey< CondAttrListCollection > m_luminosityFolderInputKey
Gaudi::Property< unsigned long > m_calibBackupChannel
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.