 |
ATLAS Offline Software
|
Go to the documentation of this file.
14 #include "CoolKernel/IObject.h"
26 return StatusCode::SUCCESS;
39 EventIDRange
range (EventIDBase (0, UNDEFEVT, UNDEFNUM, 0, 0),
40 EventIDBase (UNDEFNUM-1, UNDEFEVT, UNDEFNUM, 0, 0));
45 float lumiLiveFractionLo = 1;
46 float lumiLiveFractionHi = 1;
68 lumiLiveFractionHi) );
71 auto livefrac = std::make_unique<TrigLiveFractionCondData>
73 std::move (liveFractionLo),
74 std::move (liveFractionHi),
80 return StatusCode::SUCCESS;
96 std::vector<float>& liveFractionLo,
97 std::vector<float>& liveFractionHi)
const
99 if (deadtimeFolder[
"TurnCounter"].isNull()) {
101 return StatusCode::SUCCESS;
110 if (deadtimeFolder[
"LowPriority"].isNull() || deadtimeFolder[
"HighPriority"].isNull()) {
111 ATH_MSG_WARNING(
" NULL veto counter information in database ... set livefraction to 1 " );
112 return StatusCode::SUCCESS;
124 for (
unsigned int i = 0;
i < liveFractionHi.size();
i++) {
130 return StatusCode::SUCCESS;
144 std::vector<float>& livevec)
const
147 return StatusCode::SUCCESS;
155 return StatusCode::SUCCESS;
164 unsigned int busyCounter = *
p | (*(
p+1) << 8) | (*(
p+2) << 16);
168 return StatusCode::SUCCESS;
182 const std::vector<float>& liveFractionLo,
183 const std::vector<float>& liveFractionHi,
184 float& lumiLiveFractionLo,
185 float& lumiLiveFractionHi)
187 double numsumlo = 0.;
188 double numsumhi = 0.;
195 float bcidlum =
lumi.lbLuminosityPerBCIDVector().at(
bcid);
196 numsumlo += bcidlum * liveFractionLo.at(
bcid);
197 numsumhi += bcidlum * liveFractionHi.at(
bcid);
202 lumiLiveFractionLo = numsumlo/densum;
203 lumiLiveFractionHi = numsumhi/densum;
206 lumiLiveFractionLo = 1;
207 lumiLiveFractionHi = 1;
210 return StatusCode::SUCCESS;
SG::ReadCondHandleKey< LuminosityCondData > m_luminosityInputKey
Input luminosity data.
Conditions algorithm for trigger live fraction data.
StatusCode unpackDeadtime(const AthenaAttributeList &deadtimeFolder, unsigned int &turnCounter, std::vector< float > &liveFractionLo, std::vector< float > &liveFractionHi) const
Unpack information from the deadtime COOL folder.
SG::WriteCondHandleKey< TrigLiveFractionCondData > m_trigLiveFractionOutputKey
Output conditions object.
bool msgLvl(const MSG::Level lvl) const
static constexpr unsigned int TOTAL_LHC_BCIDS
bool range(EventIDRange &r)
SG::ReadCondHandleKey< AthenaAttributeList > m_deadtimeFolderInputKey
Input deadtime folder.
virtual StatusCode initialize() override
Gaudi initialize method.
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool empty() const
Test if the key is blank.
StatusCode record(const EventIDRange &range, T *t)
record handle, with explicit range DEPRECATED
EventIDBase::event_number_t event_number_t
::StatusCode StatusCode
StatusCode definition for legacy code.
static StatusCode lumiWeight(const LuminosityCondData &lumi, const std::vector< float > &liveFractionLo, const std::vector< float > &liveFractionHi, float &lumiLiveFractionLo, float &lumiLiveFractionHi)
Calculate weighted average live fractions.
An AttributeList represents a logical row of attributes in a metadata table. The name and type of eac...
StatusCode initialize(bool used=true)
setEventNumber setTimeStamp bcid
virtual StatusCode execute(const EventContext &ctx) const override
Algorithm execute method.
std::optional< double > intersect(const AmgVector(N)&posA, const AmgVector(N)&dirA, const AmgVector(N)&posB, const AmgVector(N)&dirB)
Calculates the point B' along the line B that's closest to a second line A.
#define ATH_MSG_WARNING(x)
StatusCode unpackVector(const coral::Blob &blob, unsigned int turnCounter, std::vector< float > &livevec) const
Unpack a single deadtime vector.