|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef RATESANALYSIS_RATESTGROUP_H
6 #define RATESANALYSIS_RATESTGROUP_H 1
18 void execute(
const double prescale);
98 const std::unordered_map<size_t, std::set<const RatesTrigger*>>&
getChildren()
const;
106 const std::string
printRate(
const double ratesDenominator)
const;
127 std::unordered_map<size_t, std::set<const RatesTrigger*>>
m_children;
130 #endif //> !RATESANALYSIS_RATESGROUP_H
RatesGroup(const RatesGroup &)=delete
double getUniqueWeight(const double ratesDenominator) const
Get the unique rate of a unique-rate group For a group being used to get a unique rate,...
void removeFromGroup(const RatesTrigger *toRemove)
Remove a trigger from this group.
RatesTrigger * m_uniqueTrigger
If not nullptr, then a trigger this group is calculating the unique rate for.
Structure to hold per-event weights for distribution.
bool m_isExpressGroup
If this group is calculating for the express stream - also include express prescales.
const std::string m_name
Name of the group.
void setUseCachedWeights(const bool i)
Set to use cached weights from the Master group (need ptr to m_masterGroup)
RatesGroup(const std::string &name, IMessageSvc *msgSvc, const bool doHistograms=true, const bool doExtrapolation=true)
Construct new RatesGroup to enumerate the combined union (OR) and intersection (AND) rate of a set of...
double m_rateAccumulatorAND2
For stat error.
const ExtrapStrat_t m_extrapolationStrategy
How this group is to scale with luminosity.
void setExpressGroup(const bool i)
Flag this group as the express group (modifies group trigger's prescales)
double getCachedWeight(const size_t l1Hash) const
Get cached weight from triggers seeding from a given L1 item.
const size_t m_nameHash
Hash of the group's name.
ExtrapStrat_t
Extrapolation strategy to apply to each emulated trigger.
RatesGroup & operator=(const RatesGroup &)=delete
const RatesGroup * m_masterGroup
If not nullptr, then use the cached weights info in this master group object.
std::unordered_map< size_t, std::set< const RatesTrigger * > > m_children
Used to calculate the rate for a single trigger at L1 or the HLT.
Used to calculate the rate for a group of RatesTrigger objects at L1 or the HLT.
void setCoherentFactor(const double coherentFactor)
Set a common prescale factor for this group.
msgSvc
Provide convenience handles for various services.
const std::string printRate(const double ratesDenominator) const
Prints the RatesGroup's rate.
void setDoCachedWeights(const bool i)
Flag group to cache weights.
const std::string printConfig() const
Prints the RatesGroup's configuration.
void removeOtherL1(const RatesTrigger *toKeep)
Remove from the groups mapping all triggers which have a dissimilar seed to the supplied trigger.
bool m_doCachedWeights
Used in the global rates group.
double m_rateAccumulatorOR2
For stat error.
Basic base class for any common functionality between RatesTrigger and RatesGroup This means that eve...
void execute(const double prescale)
Keep track of a union product (OR of many chains) excluding the coherent part.
void execute(const WeightingValuesSummary_t &weights)
Perform group rates evaluation.
void setUniqueTrigger(RatesTrigger *trigger)
Set trigger I am doing unique rates for.
bool doHistograms() const
If histogramming was enabled in this rates object.
const std::unordered_map< size_t, std::set< const RatesTrigger * > > & getChildren() const
void addToGroup(const RatesTrigger *toAdd)
Add a trigger to this group.
double m_rateAccumulatorOR
Numerator for the rate of the OR of all triggers.
double m_rateAccumulatorAND
Numerator for the rate of the AND of all triggers.
RatesTrigger * getUniqueTrigger()
Get the trigger I am doing unique rates for.
std::unordered_map< size_t, double > m_cachedWeights
Cached weight of the OR of all triggers except for the L1 seed-hash of the key here.
double getWeight() const
Return the union product (OR of many chains) coherently weighted by the coherent factor.
Helper class to keep track of coherent prescales between chains in a group This class knows about its...
bool m_useCachedWeights
Efficiency.
void duplicateChildren(const RatesGroup *toDuplicate)
Copy in triggers from another group.