ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
RatesScanTrigger Class Reference

Used to calculate a rate scan as a function of some threshold value. More...

#include <RatesScanTrigger.h>

Inheritance diagram for RatesScanTrigger:
Collaboration diagram for RatesScanTrigger:

Public Types

enum  TriggerBehaviour_t { kTriggerAboveThreshold, kTriggerBelowThreshold }
 enum to describe if a trigger should activate for values >= or <= than the thresold More...
 

Public Member Functions

 RatesScanTrigger (const std::string &name, IMessageSvc *msgSvc, const double thresholdMin, const double thresholdMax, const uint32_t thresholdBins=100, const TriggerBehaviour_t behaviour=kTriggerBelowThreshold, const double prescale=1., const std::string &seedName="", const double seedPrecale=1., const ExtrapStrat_t extrapolation=ExtrapStrat_t::kLINEAR)
 Construct new RatesScanTrigger to enumerate the rate for a single L1 or HLT trigger as a function of some threshold. More...
 
 RatesScanTrigger (const std::string &name, IMessageSvc *msgSvc, const std::vector< double > &thresholdBinEdges, const TriggerBehaviour_t behaviour=kTriggerBelowThreshold, const double prescale=1., const std::string &seedName="", const double seedPrecale=1., const ExtrapStrat_t extrapolation=ExtrapStrat_t::kLINEAR)
 Construct new RatesScanTrigger to enumerate the rate for a single L1 or HLT trigger as a function of some threshold. More...
 
virtual ~RatesScanTrigger ()
 
 RatesScanTrigger (const RatesScanTrigger &)=delete
 
RatesScanTriggeroperator= (const RatesScanTrigger &)=delete
 
void reset () override
 If I was used in an event, reset me. More...
 
void passThreshold (const double t, const bool unbiasedEvent=false)
 Sets the threshold the event. More...
 
void setPassedAndExecute (const double t, const WeightingValuesSummary_t &weights)
 Set the pass threshold and immediately call execute. More...
 
void execute (const WeightingValuesSummary_t &weights) override
 Execute trigger rate emulation. More...
 
const std::string printRate (const double ratesDenominator) const override
 Prints the RatesScanTrigger's rate (different output to a regular trigger) More...
 
StatusCode giveThresholdHist (const ServiceHandle< ITHistSvc > &svc, const std::string &name)
 
void setSeedsFromRandom (const bool i)
 Set if this trigger is to behave as if it seeds from a random L1 item. More...
 
void setPassed (const bool passed=true, const bool active=true, const bool unbiasedEvent=false)
 Set the pass/fail bool. More...
 
void setPassedAndExecute (const bool passed, const bool active, const WeightingValuesSummary_t &weights)
 Set the pass/fail bool and immediately call execute. More...
 
size_t getSeedHash () const
 
const std::string & getSeedName () const
 Get the name of the seed of this trigger. More...
 
double getSeedPrescale () const
 Get the prescale of the seed of this trigger. More...
 
size_t getHash () const
 Get the hash of the name of this trigger. More...
 
const std::string & getName () const
 Get the name of this trigger. More...
 
double getPrescale (const bool includeExpress=false) const
 Gets the triggers prescale. More...
 
bool getPassed () const
 If the trigger passed in the event. More...
 
bool getActive () const
 If the trigger passed in the event. More...
 
bool getDisabled () const
 If I or my seed were prescaled out. More...
 
void setUniqueGroup (const RatesGroup *unique)
 If I have a group which is calculating my unique rate. More...
 
void setCoherentFactor (const double lowestCommonPrescale)
 If i'm in a CPS group, set the lowest commons PS factor of the group. More...
 
void setCPS (const std::string &group)
 If I'm in a CPS group, set the group name (I'll keep a copy of the hash) More...
 
size_t getCPSID () const
 Get the hash of my CPS group name. More...
 
double getCoherentFactor () const
 Get the lowest common prescale factor of all triggers in my CPS group. More...
 
const std::string printConfig () const
 Prints the RatesTrigger's configuration. More...
 
const std::string printExpressRate (const double ratesDenominator) const
 Prints the RatesTrigger's express rate. More...
 
StatusCode giveMuHist (const ServiceHandle< ITHistSvc > &svc, const std::string &name)
 
StatusCode giveTrainHist (const ServiceHandle< ITHistSvc > &svc, const std::string &name)
 
StatusCode giveDataHist (const ServiceHandle< ITHistSvc > &svc, const std::string &name)
 
void clearTrainHist ()
 In some jobs we don't want to do the rates vs. More...
 
TH1 * getDataHist ()
 
bool doHistograms () const
 If histogramming was enabled in this rates object. More...
 
const std::string & getExtrapolationFactorString (ExtrapStrat_t strat) const
 
double getExtrapolationFactor (const WeightingValuesSummary_t &weights, const ExtrapStrat_t strat) const
 
bool msgLvl (const MSG::Level lvl) const
 Test the output level. More...
 
MsgStream & msg () const
 The standard message stream. More...
 
MsgStream & msg (const MSG::Level lvl) const
 The standard message stream. More...
 
void setLevel (MSG::Level lvl)
 Change the current logging level. More...
 

Static Public Member Functions

static bool isZero (double v)
 
static bool isNotPositive (double v)
 

Protected Attributes

bool m_pass
 Did the trigger pass or not? More...
 
bool m_active
 Was the trigger active? (Did it run) More...
 
bool m_seedsFromRandom
 Does this trigger seed from a random trigger? If so it should only be exposed to unbiased events. More...
 
double m_rateAccumulator
 Weighted events passed. More...
 
double m_rateAccumulator2
 Weighted events passed squared. More...
 
double m_rateExpressAccumulator
 Weighted express stream events. More...
 
double m_rateExpressAccumulator2
 Weighted express stream events squared. More...
 
double m_ratesActive
 
double m_ratesActive2
 
size_t m_CPSID
 If I'm in a coherent prescale group, my group's ID (hash of the group name) More...
 
double m_coherentFactor
 If I'm in a coherent prescale group, the prescale of the lowest non-disabled chain in the group. More...
 
const RatesGroupm_uniqueGroup
 Pointer to the group which is calculating my unique rate. More...
 
const std::string m_name
 My name. More...
 
const std::string m_seed
 My seed, "" if no seed. More...
 
const size_t m_nameHash
 Hash of my name. More...
 
const size_t m_seedHash
 Has of my seed name. More...
 
const double m_prescale
 My prescale factor. More...
 
const double m_expressPrescale
 My express stream prescale factor, gets applied on top of the regular prescale. More...
 
const double m_seedPrescale
 
const double m_totalPrescaleWeight
 Equal to 1/m_seedPrescale*m_prescale. More...
 
const double m_totalPrescaleWeightExpress
 Equal to 1/m_seedPrescale*m_prescale*m_expressPrescale. More...
 
const ExtrapStrat_t m_extrapolationStrategy
 How this trigger is to scale with luminosity. More...
 
bool m_doHistograms
 If histogramming is switched on. More...
 
std::unique_ptr< TH1 > m_rateVsMu
 Histogram of rate as a fn. More...
 
std::unique_ptr< TH1 > m_rateVsTrain
 Histogram of rate as a fn. More...
 
std::unique_ptr< TH1 > m_data
 Histogram of raw rates quantites, for when we need to normalise offline (e.g. More...
 
TH1 * m_rateVsMuCachedPtr {}
 Cached, non-owning pointer. More...
 
TH1 * m_rateVsTrainCachedPtr {}
 Cached, non-owning pointer. More...
 
TH1 * m_dataCachedPtr {}
 Cached, non-owning pointer. More...
 

Private Member Functions

void initMessaging () const
 Initialize our message level and MessageSvc. More...
 

Private Attributes

std::unique_ptr< TH1 > m_rateScanHist
 Even if we are not exporting it - we still need this histo. More...
 
TH1 * m_rateScanHistCachedPtr
 
double m_thresholdPassed
 Analogous to m_pass. More...
 
TriggerBehaviour_t m_behaviour
 If we need to be above or below the threshold to cause the trigger to fire. More...
 
std::string m_nm
 Message source name. More...
 
boost::thread_specific_ptr< MsgStream > m_msg_tls
 MsgStream instance (a std::cout like with print-out levels) More...
 
std::atomic< IMessageSvc * > m_imsg { nullptr }
 MessageSvc pointer. More...
 
std::atomic< MSG::Level > m_lvl { MSG::NIL }
 Current logging level. More...
 
std::atomic_flag m_initialized ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
 Messaging initialized (initMessaging) More...
 

Detailed Description

Used to calculate a rate scan as a function of some threshold value.

Typically a pT cut

Definition at line 14 of file RatesScanTrigger.h.

Member Enumeration Documentation

◆ TriggerBehaviour_t

enum to describe if a trigger should activate for values >= or <= than the thresold

Enumerator
kTriggerAboveThreshold 

Trigger for >= threshold.

kTriggerBelowThreshold 

Trigger for <= threshold.

Definition at line 20 of file RatesScanTrigger.h.

Constructor & Destructor Documentation

◆ RatesScanTrigger() [1/3]

RatesScanTrigger::RatesScanTrigger ( const std::string &  name,
IMessageSvc *  msgSvc,
const double  thresholdMin,
const double  thresholdMax,
const uint32_t  thresholdBins = 100,
const TriggerBehaviour_t  behaviour = kTriggerBelowThreshold,
const double  prescale = 1.,
const std::string &  seedName = "",
const double  seedPrecale = 1.,
const ExtrapStrat_t  extrapolation = ExtrapStrat_t::kLINEAR 
)

Construct new RatesScanTrigger to enumerate the rate for a single L1 or HLT trigger as a function of some threshold.

Parameters
nameName of the trigger
msgSvcReference to message service
thresholdMinThe lower threshold of this trigger, rates will not be available below this threshold
thresholdMaxThe upper threshold of this trigger, rates will not be available above this threshold
thresholdBinsGranularity
behaviourIf the trigger should activate above (kTriggerAboveThreshold) or below (kTriggerBelowThreshold) the threshold
prescaleThe prescale of the trigger. Anything < 1 is considered disabled
seedNameThe name of any L1 seed the trigger has, leave blank if L1 item / no L1 seed.
seedPrescaleThe prescale of any L1 seed. Leave = 1 if no L1 seed.
extrapolationThe luminosity extrapolation strategy to be applied to this trigger

Definition at line 10 of file RatesScanTrigger.cxx.

16  :
17  RatesTrigger(name, msgSvc, prescale, -1, seedName, seedPrescale, /*base histograms*/false, extrapolation),
18  m_rateScanHist(std::make_unique<TH1D>("", TString(name + ";Threshold;Rate [Hz]"), thresholdBins, thresholdMin, thresholdMax)),
20  {
21  m_rateScanHist->Sumw2(true);
22  }

◆ RatesScanTrigger() [2/3]

RatesScanTrigger::RatesScanTrigger ( const std::string &  name,
IMessageSvc *  msgSvc,
const std::vector< double > &  thresholdBinEdges,
const TriggerBehaviour_t  behaviour = kTriggerBelowThreshold,
const double  prescale = 1.,
const std::string &  seedName = "",
const double  seedPrecale = 1.,
const ExtrapStrat_t  extrapolation = ExtrapStrat_t::kLINEAR 
)

Construct new RatesScanTrigger to enumerate the rate for a single L1 or HLT trigger as a function of some threshold.

Parameters
nameName of the trigger
logReference to message service
thresholdBinEdgedVector of bin edges to use for quantifying rate as a function of threshold
behaviourIf the trigger should activate above (kTriggerAboveThreshold) or below (kTriggerBelowThreshold) the threshold
prescaleThe prescale of the trigger. Anything < 1 is considered disabled
seedNameThe name of any L1 seed the trigger has, leave blank if L1 item / no L1 seed.
seedPrescaleThe prescale of any L1 seed. Leave = 1 if no L1 seed.
extrapolationThe luminosity extrapolation strategy to be applied to this trigger

Definition at line 24 of file RatesScanTrigger.cxx.

30  :
31  RatesTrigger(name, msgSvc, prescale, -1, seedName, seedPrescale, false, extrapolation),
32  m_rateScanHist(nullptr), m_rateScanHistCachedPtr(nullptr), m_thresholdPassed(0), m_behaviour(behaviour)
33  {
34  if (thresholdBinEdged.size() < 2) {
35  ATH_MSG_ERROR("Need more than one entry in thresholdBinEdged to define histogram binning.");
36  return;
37  }
38  size_t nBins = thresholdBinEdged.size() - 1;
39  m_rateScanHist = std::make_unique<TH1D>("", TString(name + ";Threshold;Rate [Hz]"), nBins, thresholdBinEdged.data());
40  m_rateScanHist->Sumw2(true);
41 
43  }

◆ ~RatesScanTrigger()

RatesScanTrigger::~RatesScanTrigger ( )
virtual

Definition at line 45 of file RatesScanTrigger.cxx.

45  {
46 }

◆ RatesScanTrigger() [3/3]

RatesScanTrigger::RatesScanTrigger ( const RatesScanTrigger )
delete

Member Function Documentation

◆ clearTrainHist()

void RatesHistoBase::clearTrainHist ( )
inherited

In some jobs we don't want to do the rates vs.

position in train

Definition at line 76 of file RatesHistoBase.cxx.

76  {
77  m_rateVsTrain.reset();
78  m_rateVsTrainCachedPtr = nullptr;
79 }

◆ doHistograms()

bool RatesHistoBase::doHistograms ( ) const
inlineinherited

If histogramming was enabled in this rates object.

Definition at line 99 of file RatesHistoBase.h.

◆ execute()

void RatesScanTrigger::execute ( const WeightingValuesSummary_t weights)
overridevirtual

Execute trigger rate emulation.

If the trigger passed threshold is within the defined range then fill the relevant histogram bins

Parameters
weightsSet of weighting values which may be needed.

Reimplemented from RatesTrigger.

Definition at line 66 of file RatesScanTrigger.cxx.

66  {
67  if (m_thresholdPassed == std::numeric_limits<double>::min()) return; // Did not pass
68  // This histogram we *do* include the extrapolation weight as we plot vs. some trigger property, not some event property
70  // Fill the histogram cumulatively
71  // We match exactly with the *lower* edge of all bins
72  const int nBins = m_rateScanHistCachedPtr->GetNbinsX();
73  for (int bin = 1; bin <= nBins; ++bin) {
74  const double low = m_rateScanHistCachedPtr->GetBinLowEdge(bin);
75  const double width = m_rateScanHistCachedPtr->GetBinWidth(bin);
79  }
80  }
81  // Underflow && Overflow
82  const double xMin = m_rateScanHistCachedPtr->GetXaxis()->GetXmin();
83  const double xMax = m_rateScanHistCachedPtr->GetXaxis()->GetXmax();
85  m_rateScanHistCachedPtr->Fill(xMin - 1., w);
86  }
88  m_rateScanHistCachedPtr->Fill(xMax + 1, w);
89  }
90 }

◆ getActive()

bool RatesTrigger::getActive ( ) const
inherited

If the trigger passed in the event.

Definition at line 159 of file RatesTrigger.cxx.

159 { return m_active; }

◆ getCoherentFactor()

double RatesTrigger::getCoherentFactor ( ) const
inherited

Get the lowest common prescale factor of all triggers in my CPS group.

Definition at line 171 of file RatesTrigger.cxx.

171 { return m_coherentFactor; }

◆ getCPSID()

size_t RatesTrigger::getCPSID ( ) const
inherited

Get the hash of my CPS group name.

Definition at line 169 of file RatesTrigger.cxx.

169 { return m_CPSID; }

◆ getDataHist()

TH1 * RatesHistoBase::getDataHist ( )
inherited
Returns
cached, non-owning, histogram pointer or nullptr. Does not cause error

Definition at line 82 of file RatesHistoBase.cxx.

82  {
83  return m_dataCachedPtr; // Caller must be able to deal with nullptr (e.g unique rates groups calling on their trigger)
84 }

◆ getDisabled()

bool RatesTrigger::getDisabled ( ) const
inherited

If I or my seed were prescaled out.

Definition at line 161 of file RatesTrigger.cxx.

◆ getExtrapolationFactor()

double RatesHistoBase::getExtrapolationFactor ( const WeightingValuesSummary_t weights,
const ExtrapStrat_t  strat 
) const
inherited

Definition at line 93 of file RatesHistoBase.cxx.

93  {
94  switch (strat) {
95  case kLINEAR: return weights.m_linearLumiFactor;
96  case kEXPO_MU: return weights.m_expoMuFactor;
97  case kBUNCH_SCALING: return weights.m_bunchFactor;
98  case kMU_SCALING: return weights.m_muFactor;
99  case kNONE: return weights.m_noScaling;
100  default: ATH_MSG_ERROR("Error in getExtrapolationFactor. Unknown ExtrapStrat_t ENUM supplied " << strat);
101  }
102  return 0.;
103 }

◆ getExtrapolationFactorString()

const std::string & RatesHistoBase::getExtrapolationFactorString ( ExtrapStrat_t  strat) const
inherited

Definition at line 87 of file RatesHistoBase.cxx.

87  {
88  static const std::vector<std::string> values{"LINEAR_L","LINEAR_BUNCH_EXPO_MU","LINEAR_BUNCHES","LINEAR_MU","NONE"};
89  return values.at(static_cast<size_t>(strat));
90 }

◆ getHash()

size_t RatesTrigger::getHash ( ) const
inherited

Get the hash of the name of this trigger.

Definition at line 153 of file RatesTrigger.cxx.

153 { return m_nameHash; }

◆ getName()

const std::string & RatesTrigger::getName ( ) const
inherited

Get the name of this trigger.

Definition at line 155 of file RatesTrigger.cxx.

155 { return m_name; }

◆ getPassed()

bool RatesTrigger::getPassed ( ) const
inherited

If the trigger passed in the event.

Definition at line 157 of file RatesTrigger.cxx.

157 { return m_pass; }

◆ getPrescale()

double RatesTrigger::getPrescale ( const bool  includeExpress = false) const
inherited

Gets the triggers prescale.

Parameters
includeExpressIf true, the items express prescale is added on top of its regular prescale

Definition at line 95 of file RatesTrigger.cxx.

95  {
96  if (includeExpress) return m_prescale * m_expressPrescale;
97  return m_prescale;
98 }

◆ getSeedHash()

size_t RatesTrigger::getSeedHash ( ) const
inherited

Definition at line 147 of file RatesTrigger.cxx.

147 { return m_seedHash; }

◆ getSeedName()

const std::string & RatesTrigger::getSeedName ( ) const
inherited

Get the name of the seed of this trigger.

Definition at line 149 of file RatesTrigger.cxx.

149 { return m_seed; }

◆ getSeedPrescale()

double RatesTrigger::getSeedPrescale ( ) const
inherited

Get the prescale of the seed of this trigger.

Definition at line 151 of file RatesTrigger.cxx.

151 { return m_seedPrescale; }

◆ giveDataHist()

StatusCode RatesHistoBase::giveDataHist ( const ServiceHandle< ITHistSvc > &  svc,
const std::string &  name 
)
inherited

Definition at line 66 of file RatesHistoBase.cxx.

66  {
67  if (!m_data.get()) {
68  ATH_MSG_ERROR("RatesHistoBase::giveDataHist Warning requested histograms when histograming is OFF here.");
69  return StatusCode::FAILURE;
70  }
71  ATH_CHECK( svc->regHist(name, std::move(m_data)) );
72  return StatusCode::SUCCESS;
73 }

◆ giveMuHist()

StatusCode RatesHistoBase::giveMuHist ( const ServiceHandle< ITHistSvc > &  svc,
const std::string &  name 
)
inherited

Definition at line 46 of file RatesHistoBase.cxx.

46  {
47  if (!m_rateVsMu.get()) {
48  ATH_MSG_ERROR("RatesHistoBase::giveMuHist Warning requested histograms when histograming is OFF here.");
49  return StatusCode::FAILURE;
50  }
51  ATH_CHECK( svc->regHist(name, std::move(m_rateVsMu)) );
52  return StatusCode::SUCCESS;
53 }

◆ giveThresholdHist()

StatusCode RatesScanTrigger::giveThresholdHist ( const ServiceHandle< ITHistSvc > &  svc,
const std::string &  name 
)

Definition at line 61 of file RatesScanTrigger.cxx.

61  {
62  ATH_CHECK( svc->regHist(name, std::move(m_rateScanHist)) );
63  return StatusCode::SUCCESS;
64 }

◆ giveTrainHist()

StatusCode RatesHistoBase::giveTrainHist ( const ServiceHandle< ITHistSvc > &  svc,
const std::string &  name 
)
inherited

Definition at line 56 of file RatesHistoBase.cxx.

56  {
57  if (!m_rateVsTrain.get()) {
58  ATH_MSG_ERROR("RatesHistoBase::giveTrainHist Warning requested histograms when histograming is OFF here.");
59  return StatusCode::FAILURE;
60  }
61  ATH_CHECK( svc->regHist(name, std::move(m_rateVsTrain)) );
62  return StatusCode::SUCCESS;
63 }

◆ initMessaging()

void AthMessaging::initMessaging ( ) const
privateinherited

Initialize our message level and MessageSvc.

This method should only be called once.

Definition at line 39 of file AthMessaging.cxx.

40 {
42  m_lvl = m_imsg ?
43  static_cast<MSG::Level>( m_imsg.load()->outputLevel(m_nm) ) :
44  MSG::INFO;
45 }

◆ isNotPositive()

static bool RatesHistoBase::isNotPositive ( double  v)
inlinestaticinherited

Definition at line 104 of file RatesHistoBase.h.

104 { return v < 1e-10; } //<! Helper fn to check if the value is non positive = trigger is disabled

◆ isZero()

static bool RatesHistoBase::isZero ( double  v)
inlinestaticinherited

Definition at line 103 of file RatesHistoBase.h.

103 { return fabs(v) < 1e-10; } //<! Helper fn

◆ msg() [1/2]

MsgStream & AthMessaging::msg ( ) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 164 of file AthMessaging.h.

165 {
166  MsgStream* ms = m_msg_tls.get();
167  if (!ms) {
168  if (!m_initialized.test_and_set()) initMessaging();
169  ms = new MsgStream(m_imsg,m_nm);
170  m_msg_tls.reset( ms );
171  }
172 
173  ms->setLevel (m_lvl);
174  return *ms;
175 }

◆ msg() [2/2]

MsgStream & AthMessaging::msg ( const MSG::Level  lvl) const
inlineinherited

The standard message stream.

Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.

Definition at line 179 of file AthMessaging.h.

180 { return msg() << lvl; }

◆ msgLvl()

bool AthMessaging::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Test the output level.

Parameters
lvlThe message level to test against
Returns
boolean Indicating if messages at given level will be printed
Return values
trueMessages at level "lvl" will be printed

Definition at line 151 of file AthMessaging.h.

152 {
153  if (!m_initialized.test_and_set()) initMessaging();
154  if (m_lvl <= lvl) {
155  msg() << lvl;
156  return true;
157  } else {
158  return false;
159  }
160 }

◆ operator=()

RatesScanTrigger& RatesScanTrigger::operator= ( const RatesScanTrigger )
delete

◆ passThreshold()

void RatesScanTrigger::passThreshold ( const double  t,
const bool  unbiasedEvent = false 
)

Sets the threshold the event.

Parameters
tThe threshold reached by the event
unbiasedEventIf the event was triggered at random online

Definition at line 48 of file RatesScanTrigger.cxx.

48  {
49  if (m_seedsFromRandom == true && unbiasedEvent == false) return;
51 }

◆ printConfig()

const std::string RatesTrigger::printConfig ( ) const
inherited

Prints the RatesTrigger's configuration.

Definition at line 100 of file RatesTrigger.cxx.

100  {
101  std::stringstream ss;
102  ss << std::setfill(' ')
103  << "Prescale:" << std::setw(11) << std::left << m_prescale
104  << " xpress:" << std::setw(11) << std::left << m_expressPrescale
105  << " CPSID:" << std::setw(11) << std::left << m_CPSID
106  << " seedPS:" << std::setw(11) << std::left << m_seedPrescale
107  << " : " << (m_seed != "" ? m_seed : "") << (m_seed != "" ? " -> " : "") << m_name;
108  return ss.str();
109 }

◆ printExpressRate()

const std::string RatesTrigger::printExpressRate ( const double  ratesDenominator) const
inherited

Prints the RatesTrigger's express rate.

Parameters
ratesDenominatorThe walltime for the run, needed to normalise from integrated weighted counts to a rate.
Returns
The information to be printed

Definition at line 131 of file RatesTrigger.cxx.

131  {
132  std::stringstream ss;
133  ss << std::setfill(' ');
134  ss << "Express Rate: " << std::setw(11) << std::right << m_rateExpressAccumulator/ratesDenominator
135  << " +- " << std::setw(11) << std::left << sqrt(m_rateExpressAccumulator2)/ratesDenominator << " Hz";
136  ss << " : ";
137  ss << m_name << " [PS:" << m_prescale << "] [EXPRESS PS:" << m_expressPrescale << "]";
138  if (m_seed != "") ss << " <- " << m_seed << " [PS:" << m_seedPrescale << "]";
140  return ss.str();
141 }

◆ printRate()

const std::string RatesScanTrigger::printRate ( const double  ratesDenominator) const
overridevirtual

Prints the RatesScanTrigger's rate (different output to a regular trigger)

Parameters
ratesDenominatorThe walltime for the run, needed to normalise from integrated weighted counts to a rate.

Reimplemented from RatesTrigger.

Definition at line 92 of file RatesScanTrigger.cxx.

92  {
93  std::stringstream ss;
94  const int nBins = m_rateScanHistCachedPtr->GetNbinsX();
95  ss << std::setfill(' ');
96  ss << m_name << " [PS:" << m_prescale << "]";
97  if (m_seed != "") ss << " <- " << m_seed << " [PS:" << m_seedPrescale << "]";
98  ss << " (Extrap:"<< getExtrapolationFactorString(m_extrapolationStrategy) << ")" << std::endl;
99 
101 
102  ss << " Threshold <= " << std::setw(11) << std::left << std::as_const(*m_rateScanHistCachedPtr).GetXaxis()->GetXmin();
103  ss << " Rate :" << std::setw(11) << std::right << m_rateScanHistCachedPtr->GetBinContent(0)/ratesDenominator;
104  ss << " +- " << std::setw(11) << std::left << m_rateScanHistCachedPtr->GetBinError(0)/ratesDenominator << " Hz" << std::endl;
105 
106  for (int bin = 1; bin <= nBins; ++bin) {
107  ss << " Threshold <= ";
108  ss << std::setw(11) << std::left << m_rateScanHistCachedPtr->GetBinLowEdge(bin) + m_rateScanHistCachedPtr->GetBinWidth(bin);
109  ss << " Rate :" << std::setw(11) << std::right << m_rateScanHistCachedPtr->GetBinContent(bin)/ratesDenominator;
110  ss << " +- " << std::setw(11) << std::left << m_rateScanHistCachedPtr->GetBinError(bin)/ratesDenominator << " Hz";
111  ss << std::endl;
112  }
113 
114  ss << " Threshold > " << std::setw(11) << std::left << std::as_const(*m_rateScanHistCachedPtr).GetXaxis()->GetXmax();
115  ss << " Rate :" << std::setw(11) << std::right << m_rateScanHistCachedPtr->GetBinContent(nBins+1)/ratesDenominator;
116  ss << " +- " << std::setw(11) << std::left << m_rateScanHistCachedPtr->GetBinError(nBins+1)/ratesDenominator << " Hz";
117 
118  } else if (m_behaviour == kTriggerAboveThreshold) {
119 
120  ss << " Threshold < " << std::setw(11) << std::left << std::as_const(*m_rateScanHistCachedPtr).GetXaxis()->GetXmin();
121  ss << " Rate: " << std::setw(11) << std::right << m_rateScanHistCachedPtr->GetBinContent(0)/ratesDenominator;
122  ss << " +- " << std::setw(11) << std::left << m_rateScanHistCachedPtr->GetBinError(0)/ratesDenominator << " Hz" << std::endl;
123 
124  for (int bin = 1; bin <= nBins; ++bin) {
125  ss << " Threshold >= ";
126  ss << std::setw(11) << std::left << m_rateScanHistCachedPtr->GetBinLowEdge(bin);
127  ss << " Rate: " << std::setw(11) << std::right << m_rateScanHistCachedPtr->GetBinContent(bin)/ratesDenominator;
128  ss << " +- " << std::setw(11) << std::left << m_rateScanHistCachedPtr->GetBinError(bin)/ratesDenominator << " Hz";
129  ss << std::endl;
130  }
131 
132  ss << " Threshold >= " << std::setw(11) << std::left << std::as_const(*m_rateScanHistCachedPtr).GetXaxis()->GetXmax();
133  ss << " Rate: " << std::setw(11) << std::right << m_rateScanHistCachedPtr->GetBinContent(nBins+1)/ratesDenominator;
134  ss << " +- " << std::setw(11) << std::left << m_rateScanHistCachedPtr->GetBinError(nBins+1)/ratesDenominator << " Hz";
135 
136  }
137 
138  return ss.str();
139 }

◆ reset()

void RatesScanTrigger::reset ( )
inlineoverridevirtual

If I was used in an event, reset me.

Reimplemented from RatesTrigger.

Definition at line 75 of file RatesScanTrigger.h.

◆ setCoherentFactor()

void RatesTrigger::setCoherentFactor ( const double  lowestCommonPrescale)
inherited

If i'm in a CPS group, set the lowest commons PS factor of the group.

Definition at line 165 of file RatesTrigger.cxx.

165 { m_coherentFactor = lowestCommonPrescale; }

◆ setCPS()

void RatesTrigger::setCPS ( const std::string &  group)
inherited

If I'm in a CPS group, set the group name (I'll keep a copy of the hash)

Definition at line 167 of file RatesTrigger.cxx.

167 { m_CPSID = std::hash<std::string>{}(group); }

◆ setLevel()

void AthMessaging::setLevel ( MSG::Level  lvl)
inherited

Change the current logging level.

Use this rather than msg().setLevel() for proper operation with MT.

Definition at line 28 of file AthMessaging.cxx.

29 {
30  m_lvl = lvl;
31 }

◆ setPassed()

void RatesTrigger::setPassed ( const bool  passed = true,
const bool  active = true,
const bool  unbiasedEvent = false 
)
inherited

Set the pass/fail bool.

Execute needs to be called separately afterwards.

Definition at line 38 of file RatesTrigger.cxx.

38  {
39  if (m_seedsFromRandom == true && unbiasedEvent == false) return;
40  if (m_active && !m_pass) throw std::runtime_error("Cannot pass if not active");
41  m_pass = passed;
42  m_active = active;
43 }

◆ setPassedAndExecute() [1/2]

void RatesTrigger::setPassedAndExecute ( const bool  passed,
const bool  active,
const WeightingValuesSummary_t weights 
)
inherited

Set the pass/fail bool and immediately call execute.

Should only be done once per event.

Parameters
iIf the trigger passed or failed the event @weights Struct of weighting information for the event

Definition at line 45 of file RatesTrigger.cxx.

45  {
46  if (m_seedsFromRandom == true && weights.m_isUnbiased == false) return;
47  if (m_pass == false && m_active == false) { // Protect against two positive calls/event
48  if (m_active && !m_pass) throw std::runtime_error("Cannot pass if not active");
49  m_pass = passed;
50  m_active = active;
52  }
53 }

◆ setPassedAndExecute() [2/2]

void RatesScanTrigger::setPassedAndExecute ( const double  t,
const WeightingValuesSummary_t weights 
)

Set the pass threshold and immediately call execute.

Should only be done once per event.

Parameters
tThe threshold reached by the event
weightsSet of weighting values which may be needed.

Definition at line 53 of file RatesScanTrigger.cxx.

53  {
54  if (m_seedsFromRandom == true && weights.m_isUnbiased == false) return;
55  if (m_thresholdPassed != std::numeric_limits<double>::min()) return; // We've already done this event
58 }

◆ setSeedsFromRandom()

void RatesTrigger::setSeedsFromRandom ( const bool  i)
inherited

Set if this trigger is to behave as if it seeds from a random L1 item.

Definition at line 145 of file RatesTrigger.cxx.

145 { m_seedsFromRandom = i; }

◆ setUniqueGroup()

void RatesTrigger::setUniqueGroup ( const RatesGroup unique)
inherited

If I have a group which is calculating my unique rate.

Definition at line 163 of file RatesTrigger.cxx.

163 { m_uniqueGroup = unique; }

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT
mutableprivateinherited

Messaging initialized (initMessaging)

Definition at line 141 of file AthMessaging.h.

◆ m_active

bool RatesTrigger::m_active
protectedinherited

Was the trigger active? (Did it run)

Definition at line 115 of file RatesTrigger.h.

◆ m_behaviour

TriggerBehaviour_t RatesScanTrigger::m_behaviour
private

If we need to be above or below the threshold to cause the trigger to fire.

Definition at line 112 of file RatesScanTrigger.h.

◆ m_coherentFactor

double RatesTrigger::m_coherentFactor
protectedinherited

If I'm in a coherent prescale group, the prescale of the lowest non-disabled chain in the group.

Definition at line 125 of file RatesTrigger.h.

◆ m_CPSID

size_t RatesTrigger::m_CPSID
protectedinherited

If I'm in a coherent prescale group, my group's ID (hash of the group name)

Definition at line 124 of file RatesTrigger.h.

◆ m_data

std::unique_ptr<TH1> RatesHistoBase::m_data
protectedinherited

Histogram of raw rates quantites, for when we need to normalise offline (e.g.

grid processing)

Definition at line 112 of file RatesHistoBase.h.

◆ m_dataCachedPtr

TH1* RatesHistoBase::m_dataCachedPtr {}
protectedinherited

Cached, non-owning pointer.

Definition at line 115 of file RatesHistoBase.h.

◆ m_doHistograms

bool RatesHistoBase::m_doHistograms
protectedinherited

If histogramming is switched on.

Definition at line 109 of file RatesHistoBase.h.

◆ m_expressPrescale

const double RatesTrigger::m_expressPrescale
protectedinherited

My express stream prescale factor, gets applied on top of the regular prescale.

Definition at line 134 of file RatesTrigger.h.

◆ m_extrapolationStrategy

const ExtrapStrat_t RatesTrigger::m_extrapolationStrategy
protectedinherited

How this trigger is to scale with luminosity.

Definition at line 139 of file RatesTrigger.h.

◆ m_imsg

std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr }
mutableprivateinherited

MessageSvc pointer.

Definition at line 135 of file AthMessaging.h.

◆ m_lvl

std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL }
mutableprivateinherited

Current logging level.

Definition at line 138 of file AthMessaging.h.

◆ m_msg_tls

boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls
mutableprivateinherited

MsgStream instance (a std::cout like with print-out levels)

Definition at line 132 of file AthMessaging.h.

◆ m_name

const std::string RatesTrigger::m_name
protectedinherited

My name.

Definition at line 129 of file RatesTrigger.h.

◆ m_nameHash

const size_t RatesTrigger::m_nameHash
protectedinherited

Hash of my name.

Definition at line 131 of file RatesTrigger.h.

◆ m_nm

std::string AthMessaging::m_nm
privateinherited

Message source name.

Definition at line 129 of file AthMessaging.h.

◆ m_pass

bool RatesTrigger::m_pass
protectedinherited

Did the trigger pass or not?

Definition at line 114 of file RatesTrigger.h.

◆ m_prescale

const double RatesTrigger::m_prescale
protectedinherited

My prescale factor.

Definition at line 133 of file RatesTrigger.h.

◆ m_rateAccumulator

double RatesTrigger::m_rateAccumulator
protectedinherited

Weighted events passed.

Definition at line 117 of file RatesTrigger.h.

◆ m_rateAccumulator2

double RatesTrigger::m_rateAccumulator2
protectedinherited

Weighted events passed squared.

Definition at line 118 of file RatesTrigger.h.

◆ m_rateExpressAccumulator

double RatesTrigger::m_rateExpressAccumulator
protectedinherited

Weighted express stream events.

Definition at line 119 of file RatesTrigger.h.

◆ m_rateExpressAccumulator2

double RatesTrigger::m_rateExpressAccumulator2
protectedinherited

Weighted express stream events squared.

Definition at line 120 of file RatesTrigger.h.

◆ m_ratesActive

double RatesTrigger::m_ratesActive
protectedinherited

Definition at line 121 of file RatesTrigger.h.

◆ m_ratesActive2

double RatesTrigger::m_ratesActive2
protectedinherited

Definition at line 122 of file RatesTrigger.h.

◆ m_rateScanHist

std::unique_ptr<TH1> RatesScanTrigger::m_rateScanHist
private

Even if we are not exporting it - we still need this histo.

Definition at line 109 of file RatesScanTrigger.h.

◆ m_rateScanHistCachedPtr

TH1* RatesScanTrigger::m_rateScanHistCachedPtr
private

Definition at line 110 of file RatesScanTrigger.h.

◆ m_rateVsMu

std::unique_ptr<TH1> RatesHistoBase::m_rateVsMu
protectedinherited

Histogram of rate as a fn.

of the input event's mu

Definition at line 110 of file RatesHistoBase.h.

◆ m_rateVsMuCachedPtr

TH1* RatesHistoBase::m_rateVsMuCachedPtr {}
protectedinherited

Cached, non-owning pointer.

Definition at line 113 of file RatesHistoBase.h.

◆ m_rateVsTrain

std::unique_ptr<TH1> RatesHistoBase::m_rateVsTrain
protectedinherited

Histogram of rate as a fn.

of position in bunch train

Definition at line 111 of file RatesHistoBase.h.

◆ m_rateVsTrainCachedPtr

TH1* RatesHistoBase::m_rateVsTrainCachedPtr {}
protectedinherited

Cached, non-owning pointer.

Definition at line 114 of file RatesHistoBase.h.

◆ m_seed

const std::string RatesTrigger::m_seed
protectedinherited

My seed, "" if no seed.

Definition at line 130 of file RatesTrigger.h.

◆ m_seedHash

const size_t RatesTrigger::m_seedHash
protectedinherited

Has of my seed name.

Definition at line 132 of file RatesTrigger.h.

◆ m_seedPrescale

const double RatesTrigger::m_seedPrescale
protectedinherited

Definition at line 135 of file RatesTrigger.h.

◆ m_seedsFromRandom

bool RatesTrigger::m_seedsFromRandom
protectedinherited

Does this trigger seed from a random trigger? If so it should only be exposed to unbiased events.

Definition at line 116 of file RatesTrigger.h.

◆ m_thresholdPassed

double RatesScanTrigger::m_thresholdPassed
private

Analogous to m_pass.

This is the threshold that the trigger passed in the event

Definition at line 111 of file RatesScanTrigger.h.

◆ m_totalPrescaleWeight

const double RatesTrigger::m_totalPrescaleWeight
protectedinherited

Equal to 1/m_seedPrescale*m_prescale.

Definition at line 136 of file RatesTrigger.h.

◆ m_totalPrescaleWeightExpress

const double RatesTrigger::m_totalPrescaleWeightExpress
protectedinherited

Equal to 1/m_seedPrescale*m_prescale*m_expressPrescale.

Definition at line 137 of file RatesTrigger.h.

◆ m_uniqueGroup

const RatesGroup* RatesTrigger::m_uniqueGroup
protectedinherited

Pointer to the group which is calculating my unique rate.

Definition at line 127 of file RatesTrigger.h.


The documentation for this class was generated from the following files:
AthMessaging::m_lvl
std::atomic< MSG::Level > m_lvl
Current logging level.
Definition: AthMessaging.h:138
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
RatesTrigger::m_prescale
const double m_prescale
My prescale factor.
Definition: RatesTrigger.h:133
RatesTrigger::m_active
bool m_active
Was the trigger active? (Did it run)
Definition: RatesTrigger.h:115
RatesScanTrigger::m_rateScanHistCachedPtr
TH1 * m_rateScanHistCachedPtr
Definition: RatesScanTrigger.h:110
RatesTrigger::m_name
const std::string m_name
My name.
Definition: RatesTrigger.h:129
RatesScanTrigger::m_rateScanHist
std::unique_ptr< TH1 > m_rateScanHist
Even if we are not exporting it - we still need this histo.
Definition: RatesScanTrigger.h:109
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
RatesHistoBase::m_dataCachedPtr
TH1 * m_dataCachedPtr
Cached, non-owning pointer.
Definition: RatesHistoBase.h:115
TrigCompositeUtils::passed
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
Definition: TrigCompositeUtilsRoot.cxx:117
RatesTrigger::m_expressPrescale
const double m_expressPrescale
My express stream prescale factor, gets applied on top of the regular prescale.
Definition: RatesTrigger.h:134
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
bin
Definition: BinsDiffFromStripMedian.h:43
kMU_SCALING
@ kMU_SCALING
Scale trigger linearly but only in the change in <mu>
Definition: RatesHistoBase.h:34
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
RatesScanTrigger::execute
void execute(const WeightingValuesSummary_t &weights) override
Execute trigger rate emulation.
Definition: RatesScanTrigger.cxx:66
AthMessaging::m_imsg
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
Definition: AthMessaging.h:135
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
RatesTrigger::m_rateExpressAccumulator2
double m_rateExpressAccumulator2
Weighted express stream events squared.
Definition: RatesTrigger.h:120
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
RatesHistoBase::isNotPositive
static bool isNotPositive(double v)
Definition: RatesHistoBase.h:104
python.Bindings.values
values
Definition: Control/AthenaPython/python/Bindings.py:805
RatesTrigger::m_coherentFactor
double m_coherentFactor
If I'm in a coherent prescale group, the prescale of the lowest non-disabled chain in the group.
Definition: RatesTrigger.h:125
RatesScanTrigger::kTriggerBelowThreshold
@ kTriggerBelowThreshold
Trigger for <= threshold.
Definition: RatesScanTrigger.h:22
RatesTrigger::m_seedsFromRandom
bool m_seedsFromRandom
Does this trigger seed from a random trigger? If so it should only be exposed to unbiased events.
Definition: RatesTrigger.h:116
RatesScanTrigger::m_thresholdPassed
double m_thresholdPassed
Analogous to m_pass.
Definition: RatesScanTrigger.h:111
TrigConf::MSGTC::Level
Level
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:21
kLINEAR
@ kLINEAR
Scale trigger linearly with luminosity.
Definition: RatesHistoBase.h:31
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::active
@ active
Definition: Layer.h:48
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
lumiFormat.i
int i
Definition: lumiFormat.py:85
RatesHistoBase::m_data
std::unique_ptr< TH1 > m_data
Histogram of raw rates quantites, for when we need to normalise offline (e.g.
Definition: RatesHistoBase.h:112
RatesHistoBase::getExtrapolationFactor
double getExtrapolationFactor(const WeightingValuesSummary_t &weights, const ExtrapStrat_t strat) const
Definition: RatesHistoBase.cxx:93
kEXPO_MU
@ kEXPO_MU
Scale trigger linearly in bunches and exponentially in mu.
Definition: RatesHistoBase.h:32
RatesTrigger::m_seedHash
const size_t m_seedHash
Has of my seed name.
Definition: RatesTrigger.h:132
RatesHistoBase::m_rateVsMu
std::unique_ptr< TH1 > m_rateVsMu
Histogram of rate as a fn.
Definition: RatesHistoBase.h:110
RatesHistoBase::m_rateVsTrain
std::unique_ptr< TH1 > m_rateVsTrain
Histogram of rate as a fn.
Definition: RatesHistoBase.h:111
RatesTrigger::m_CPSID
size_t m_CPSID
If I'm in a coherent prescale group, my group's ID (hash of the group name)
Definition: RatesTrigger.h:124
kBUNCH_SCALING
@ kBUNCH_SCALING
Scale trigger linearly but only in the number of bunches.
Definition: RatesHistoBase.h:33
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
RatesTrigger::m_uniqueGroup
const RatesGroup * m_uniqueGroup
Pointer to the group which is calculating my unique rate.
Definition: RatesTrigger.h:127
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
RatesHistoBase::m_rateVsTrainCachedPtr
TH1 * m_rateVsTrainCachedPtr
Cached, non-owning pointer.
Definition: RatesHistoBase.h:114
AthMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AthMessaging.h:164
RatesTrigger::m_rateExpressAccumulator
double m_rateExpressAccumulator
Weighted express stream events.
Definition: RatesTrigger.h:119
dumpTgcDigiJitter.nBins
list nBins
Definition: dumpTgcDigiJitter.py:29
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
RatesScanTrigger::kTriggerAboveThreshold
@ kTriggerAboveThreshold
Trigger for >= threshold.
Definition: RatesScanTrigger.h:21
plotBeamSpotVxVal.bin
int bin
Definition: plotBeamSpotVxVal.py:83
weights
Definition: herwig7_interface.h:38
RatesTrigger::execute
virtual void execute(const WeightingValuesSummary_t &weights)
Execute trigger rate emulation.
Definition: RatesTrigger.cxx:56
python.PyAthena.v
v
Definition: PyAthena.py:154
RatesTrigger::RatesTrigger
RatesTrigger(const std::string &name, IMessageSvc *log, const double prescale=1., const double expressPrescale=-1, const std::string &seedName="", const double seedPrecale=1., const bool doHistograms=true, const ExtrapStrat_t extrapolation=ExtrapStrat_t::kLINEAR)
Construct new RatesTrigger to enumerate the rate for a single L1 or HLT trigger Provide pass/fail inf...
Definition: RatesTrigger.cxx:8
std::unique
DataModel_detail::iterator< DVL > unique(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of unique for DataVector/List.
Definition: DVL_algorithms.h:135
CaloLCW_tf.group
group
Definition: CaloLCW_tf.py:28
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59
RatesTrigger::m_pass
bool m_pass
Did the trigger pass or not?
Definition: RatesTrigger.h:114
RatesTrigger::m_seedPrescale
const double m_seedPrescale
Definition: RatesTrigger.h:135
AthMessaging::m_nm
std::string m_nm
Message source name.
Definition: AthMessaging.h:129
RatesTrigger::m_extrapolationStrategy
const ExtrapStrat_t m_extrapolationStrategy
How this trigger is to scale with luminosity.
Definition: RatesTrigger.h:139
RatesScanTrigger::m_behaviour
TriggerBehaviour_t m_behaviour
If we need to be above or below the threshold to cause the trigger to fire.
Definition: RatesScanTrigger.h:112
ValidateEBMenu.seedName
seedName
Definition: ValidateEBMenu.py:100
RatesTrigger::m_seed
const std::string m_seed
My seed, "" if no seed.
Definition: RatesTrigger.h:130
AthMessaging::initMessaging
void initMessaging() const
Initialize our message level and MessageSvc.
Definition: AthMessaging.cxx:39
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
RatesTrigger::m_nameHash
const size_t m_nameHash
Hash of my name.
Definition: RatesTrigger.h:131
AthMessaging::m_msg_tls
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
Definition: AthMessaging.h:132
RatesTrigger::m_totalPrescaleWeight
const double m_totalPrescaleWeight
Equal to 1/m_seedPrescale*m_prescale.
Definition: RatesTrigger.h:136
RatesHistoBase::getExtrapolationFactorString
const std::string & getExtrapolationFactorString(ExtrapStrat_t strat) const
Definition: RatesHistoBase.cxx:87
kNONE
@ kNONE
Do not scale this trigger for changes in luminosity.
Definition: RatesHistoBase.h:35