|
ATLAS Offline Software
|
#include <RatesEmulationExample.h>
|
| RatesEmulationExample (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual | ~RatesEmulationExample () |
|
virtual StatusCode | ratesInitialize () override |
| To be implemented by the user. More...
|
|
virtual StatusCode | ratesExecute () override |
| To be implemented by the user. More...
|
|
virtual StatusCode | ratesFinalize () override |
| To be implemented by the user. More...
|
|
StatusCode | newTrigger (const std::string &name, const double prescale=1., const double expressPrescale=-1., const std::string &seedName="", const double seedPrecale=1., const std::string &groups="", const Method_t method=kMANUAL, const ExtrapStrat_t extrapolation=kLINEAR) |
| Version of newTrigger which accepts a set of group names rather than a comma separated string. More...
|
|
StatusCode | newTrigger (const std::string &name, const double prescale=1., const double expressPrescale=-1., const std::string &seedName="", const double seedPrecale=1., const std::set< std::string > &groups=std::set< std::string >(), const Method_t method=kMANUAL, const ExtrapStrat_t extrapolation=kLINEAR) |
| Register a new trigger for emulation. More...
|
|
StatusCode | newScanTrigger (const std::string &name, const double thresholdMin, const double thresholdMax, const uint32_t thresholdBins=100, const RatesScanTrigger::TriggerBehaviour_t behaviour=RatesScanTrigger::TriggerBehaviour_t::kTriggerBelowThreshold, const double prescale=1., const std::string &seedName="", const double seedPrecale=1., const Method_t method=kMANUAL, const ExtrapStrat_t extrapolation=kLINEAR) |
| Register a new threshold scan trigger which plots rate as a function of some dependent variable. More...
|
|
StatusCode | newScanTrigger (const std::string &name, const std::vector< double > &thresholdBinEdges, const RatesScanTrigger::TriggerBehaviour_t behaviour=RatesScanTrigger::TriggerBehaviour_t::kTriggerAboveThreshold, const double prescale=1., const std::string &seedName="", const double seedPrecale=1., const Method_t method=kMANUAL, const ExtrapStrat_t extrapolation=kLINEAR) |
| Version of newScanTrigger which takes a vector of bin edges. More...
|
|
StatusCode | addAllExisting () |
| Register all existing triggers in the AOD into the rates algorithm. More...
|
|
StatusCode | addExisting (const std::string &pattern) |
| Register some existing triggers based on wild-card match, e.g. More...
|
|
StatusCode | setTriggerDesicison (const std::string &name, const bool triggerIsPassed=true, const bool triggerIsActive=true) |
| Set the pass/fail decision for an item. More...
|
|
StatusCode | setTriggerDesicison (const std::string &name, const double threshold) |
| Set the pass threshold for a Scan Trigger item. More...
|
|
void | setTargetLumiMu (const double lumi, const double mu) |
| Set the target instantaneous luminosity and mu. More...
|
|
void | setTargetLumiBunches (const double lumi, const int32_t bunches) |
| Set the target instantaneous luminosity and number of bunches. More...
|
|
void | setTargetMuBunches (const double mu, const int32_t bunches) |
| Set the target mu and number of bunches. More...
|
|
void | setTargetLumi (const double lumi) |
| Set the target instantaneous luminosity. More...
|
|
void | setTargetMu (const double mu) |
| Set the target pileup. More...
|
|
void | setExponentialMuScalingFactor (const double f) |
| Set the exponential scaling factor for relevant chains. More...
|
|
virtual StatusCode | sysInitialize () override |
| Function initialising the tool in the correct way in Athena. More...
|
|
virtual StatusCode | sysExecute (const EventContext &) override |
| override to do firstEvent method More...
|
|
template<typename T > |
StatusCode | retrieveMetadata (const std::string &folder, const std::string &key, T &out) |
| Helper function to access IOVMetaDataContainer information helped in the MetaDataStore. More...
|
|
template<typename T > |
StatusCode | retrieveMetadata (const std::string &folder, const std::string &key, T &out, const IOVTime &time, int channel=-1) |
| Helper function to access IOVMetaDataContainer information held in InputMetaDataStore, but will check IOVTime. More...
|
|
const ServiceHandle< ITHistSvc > & | histSvc () const |
| The standard THistSvc (for writing histograms and TTrees and more to a root file) Returns (kind of) a pointer to the THistSvc . More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
void | updateEvtStore (Gaudi::Details::PropertyBase &prop) |
|
virtual void | handle (const Incident &inc) override |
| Function receiving incidents from IncidentSvc/TEvent Experts can override but they should ensure they add AthAnalysisAlgorithm::handle(); to the end of their own implementation. More...
|
|
virtual StatusCode | beginInputFile () |
| Function called when a new input file is opened user can read input metadata from inputMetaStore() More...
|
|
virtual StatusCode | endInputFile () |
| Function called as an input file is being closed. More...
|
|
virtual StatusCode | metaDataStop () |
| Function called before finalize user can read output metadata from outputMetaStore() More...
|
|
virtual StatusCode | firstExecute () |
| Function called when first execute is encountered user can read event information with evtStore() More...
|
|
virtual TFile * | currentFile (const char *evtSelName="EventSelector") final |
| Function returning the TFile pointer of the currently open file of the given EventSelector (in athena jobs this defaults to "EventSelector") More...
|
|
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution More...
|
|
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
|
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
| Add StoreName to extra input/output deps as needed. More...
|
|
StatusCode | configAthHistogramming (const ServiceHandle< ITHistSvc > &histSvc, const std::string &prefix, const std::string &rootDir, const std::string &histNamePrefix, const std::string &histNamePostfix, const std::string &histTitlePrefix, const std::string &histTitlePostfix) |
| To be called by the derived classes to fill the internal configuration. More...
|
|
TH1 * | bookGetPointer (const TH1 &hist, const std::string &tDir="", const std::string &stream="") |
| Simplify the booking and registering (into THistSvc) of histograms. More...
|
|
TH1 * | bookGetPointer (TH1 *hist, const std::string &tDir="", const std::string &stream="") |
| Simplify the booking and registering (into THistSvc) of histograms. More...
|
|
TH1 * | bookGetPointer (TH1 &histRef, std::string tDir="", std::string stream="") |
| Simplify the booking and registering (into THistSvc) of histograms. More...
|
|
TTree * | bookGetPointer (const TTree &treeRef, std::string tDir="", std::string stream="") |
| Simplify the booking and registering (into THistSvc) of TTrees. More...
|
|
TGraph * | bookGetPointer (const TGraph &graphRef, std::string tDir="", std::string stream="") |
| Simplify the booking and registering (into THistSvc) of TGraphs. More...
|
|
TEfficiency * | bookGetPointer (const TEfficiency &eff, const std::string &tDir="", const std::string &stream="") |
| Simplify the booking and registering (into THistSvc) of TEfficiency. More...
|
|
TEfficiency * | bookGetPointer (TEfficiency *eff, const std::string &tDir="", const std::string &stream="") |
| Simplify the booking and registering (into THistSvc) of TEfficiency. More...
|
|
TEfficiency * | bookGetPointer (TEfficiency &effRef, std::string tDir="", std::string stream="") |
| Simplify the booking and registering (into THistSvc) of TEfficiency. More...
|
|
StatusCode | book (const TH1 &hist, const std::string &tDir="", const std::string &stream="") |
| Simplify the booking and registering (into THistSvc) of histograms. More...
|
|
StatusCode | book (TH1 *hist, const std::string &tDir="", const std::string &stream="") |
| Simplify the booking and registering (into THistSvc) of histograms. More...
|
|
StatusCode | book (TH1 &histRef, const std::string &tDir="", const std::string &stream="") |
| Simplify the booking and registering (into THistSvc) of histograms. More...
|
|
StatusCode | book (const TTree &treeRef, const std::string &tDir="", const std::string &stream="") |
| Simplify the booking and registering (into THistSvc) of TTrees. More...
|
|
StatusCode | book (const TGraph &graphRef, const std::string &tDir="", const std::string &stream="") |
| Simplify the booking and registering (into THistSvc) of TGraphs. More...
|
|
StatusCode | book (const TEfficiency &eff, const std::string &tDir="", const std::string &stream="") |
| Simplify the booking and registering (into THistSvc) of TEfficiency. More...
|
|
StatusCode | book (TEfficiency *eff, const std::string &tDir="", const std::string &stream="") |
| Simplify the booking and registering (into THistSvc) of TEfficiency. More...
|
|
StatusCode | book (TEfficiency &effRef, const std::string &tDir="", const std::string &stream="") |
| Simplify the booking and registering (into THistSvc) of TEfficiency. More...
|
|
TH1 * | hist (const std::string &histName, const std::string &tDir="", const std::string &stream="") |
| Simplify the retrieval of registered histograms of any type. More...
|
|
TH2 * | hist2d (const std::string &histName, const std::string &tDir="", const std::string &stream="") |
| Simplify the retrieval of registered 2-d histograms. More...
|
|
TH3 * | hist3d (const std::string &histName, const std::string &tDir="", const std::string &stream="") |
| Simplify the retrieval of registered 3-d histograms. More...
|
|
TTree * | tree (const std::string &treeName, const std::string &tDir="", const std::string &stream="") |
| Simplify the retrieval of registered TTrees. More...
|
|
TGraph * | graph (const std::string &graphName, const std::string &tDir="", const std::string &stream="") |
| Simplify the retrieval of registered TGraphs. More...
|
|
TEfficiency * | efficiency (const std::string &effName, const std::string &tDir="", const std::string &stream="") |
| Simplify the retrieval of registered TEfficiency. More...
|
|
|
virtual StatusCode | initialize () |
| Get the trigger decision tool and set up global groups. More...
|
|
virtual StatusCode | execute () |
| In first call - register all triggers. More...
|
|
virtual StatusCode | finalize () |
| Print rates. More...
|
|
StatusCode | populateTriggers () |
| Register all triggers to emulate. More...
|
|
StatusCode | executeTrigDecisionToolTriggers () |
| Internal call to get the pass/fail for all TDT triggers. More...
|
|
StatusCode | executeTriggerEmulation () |
| Internal call to get the pass/fail for all automatically emulated triggers. More...
|
|
StatusCode | checkExistingTrigger (const std::string &name, const std::string &seedName) |
| Internal function to check if a supplied HLT trigger and L1 seed match what is stored in the AOD config. More...
|
|
StatusCode | checkGotTDT () |
| Internal check that the TDT is fetched. More...
|
|
void | printInputSummary () const |
| Print the input data instantaneous luminosity, mu and number of bunches. More...
|
|
void | printStatistics () const |
| Print some extra statistics on events processed. More...
|
|
void | printTarget () const |
| Print the target instantaneous luminosity, mu and number of bunches. More...
|
|
void | writeMetadata () |
| Write to outpute tree (if any) the metadata needed downstream. More...
|
|
bool | isCPS (const std::string &group) const |
| String match coherent prescale groups. More...
|
|
bool | isRandomSeed (const std::string &me, const std::string &seed) const |
| String match random L1 items. More...
|
|
uint32_t | getLevel (const std::string &name) const |
| String match to a trigger level. More...
|
|
bool | isZero (double v) const |
| Helper function for floating point subtraction. More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
void | buildBookingString (std::string &bookingString, std::string &histName, std::string &tDir, std::string &stream, bool usePrefixPostfix=false) |
| Method to build individual booking string. More...
|
|
void | myReplace (std::string &str, const std::string &oldStr, const std::string &newStr) |
| Helper method to replace sub-string. More...
|
|
hash_t | hash (const std::string &histName) const |
| Method to calculate a 32-bit hash from a string. More...
|
|
|
Gaudi::Property< float > | m_lumi {this, "TargetLuminosity", 2e34, "Targer inst. luminosity, assuming full ring."} |
|
std::unordered_map< std::string, std::unique_ptr< RatesTrigger > > | m_triggers |
| All individual triggers (L1 or HLT) More...
|
|
std::unordered_map< std::string, std::unique_ptr< RatesScanTrigger > > | m_scanTriggers |
| All individual rates-scan triggers (L1 or HLT) More...
|
|
std::unordered_map< std::string, std::unique_ptr< RatesGroup > > | m_groups |
| All regular and CPS groups. More...
|
|
std::unordered_map< std::string, std::unique_ptr< RatesGroup > > | m_globalGroups |
| Big (master) groups which do the OR of the whole menu. More...
|
|
std::unordered_map< std::string, std::unique_ptr< RatesGroup > > | m_uniqueGroups |
| Groups used to obtain unique rates for chains. More...
|
|
std::unordered_set< RatesTrigger * > | m_activatedTriggers |
| Triggers which were changed & hence need to be reset at the event end. More...
|
|
std::unordered_set< RatesTrigger * > | m_expressTriggers |
| Triggers with non-zero express PS, used to print them at the end. More...
|
|
std::unordered_set< RatesGroup * > | m_activeGroups |
| All groups which are enabled (PS >= 1) More...
|
|
std::unordered_map< size_t, double > | m_lowestPrescale |
| Lowest prescale within a CPS group, key is the hash of the CPS group name. More...
|
|
std::vector< std::string > | m_autoTriggers |
| List of triggers which it is up to us to the algorithm to work out the pass/fail for. More...
|
|
std::unordered_map< std::string, const Trig::ChainGroup * > | m_existingTriggers |
| Map of triggers which we ask the TDT ChainGroup for the pass/fail. More...
|
|
std::unordered_map< std::string, std::string > | m_lowerTrigger |
| Map of triggers lower chain, to tell if a HLT trigger ran or not. More...
|
|
std::vector< std::vector< std::string > > | m_hltChainIDGroup |
|
std::vector< std::vector< std::string > > | m_l1ItemID |
|
const std::string | m_l1GroupName = "L1" |
|
const std::string | m_l2GroupName = "HLT" |
|
const std::string | m_expressGroupName = "Express" |
|
ToolHandle< IEnhancedBiasWeighter > | m_enhancedBiasRatesTool {this, "EnhancedBiasRatesTool", "EnhancedBiasWeighter/EnhancedBiasRatesTool"} |
|
ToolHandle< Trig::TrigDecisionTool > | m_tdt {this, "TrigDecisionTool", "Trig::TrigDecisionTool/TrigDecisionTool"} |
|
ServiceHandle< TrigConf::ITrigConfigSvc > | m_configSvc {this, "TrigConfigSvc", ""} |
|
Gaudi::Property< double > | m_expoScalingFactor {this, "ExpoScalingFactor", 0.1, "Optional. Exponential factor if using exponential-mu rates scaling."} |
|
Gaudi::Property< double > | m_inelasticCrossSection {this, "InelasticCrossSection", 8e-26, "Inelastic cross section in units cm^2. Default 80 mb at 13 TeV."} |
|
Gaudi::Property< bool > | m_doUniqueRates {this, "DoUniqueRates", false, "Calculate unique rates for all chains (slow). Requires DoGlobalGroups=True too."} |
|
Gaudi::Property< bool > | m_doGlobalGroups {this, "DoGlobalGroups", false, "Calculate total rates for each trigger level."} |
|
Gaudi::Property< bool > | m_doTriggerGroups {this, "DoTriggerGroups", false, "Calculate total rates for each group of triggers."} |
|
Gaudi::Property< bool > | m_doExpressRates {this, "DoExpressRates", false, "Calculate total rates for the express stream."} |
|
Gaudi::Property< bool > | m_useBunchCrossingData {this, "UseBunchCrossingData", true, "BunchCrossing data requires CONDBR2 access. Can be disabled here if this is a problem."} |
|
Gaudi::Property< bool > | m_currentEventIsUnbiased |
| If the current event was triggered online by RDx or not. More...
|
|
Gaudi::Property< bool > | m_doHistograms {this, "DoHistograms", true, "Switch on histogram output of rate vs. mu and position in train."} |
|
Gaudi::Property< bool > | m_enableLumiExtrapolation {this, "EnableLumiExtrapolation", true, "If false then no extrapolation in L, N_bunch or <mu> will be performed.."} |
|
Gaudi::Property< uint32_t > | m_vetoStartOfTrain {this, "VetoStartOfTrain", 0, "How many BCID to veto at the start of a bunch train."} |
|
Gaudi::Property< std::map< std::string, std::map< std::string, double > > > | m_prescalesJSON {this, "PrescalesJSON", {}, "Optional JSON of prescales from the TrigMenuRuleBook to apply."} |
|
double | m_targetMu |
| What pileup level the prediction is targeting. More...
|
|
double | m_targetBunches |
| How many bunches the prediction is targeting. More...
|
|
double | m_targetLumi |
| What instantaneous luminosity the prediction is targeting. More...
|
|
uint32_t | m_runNumber |
| What is the RunNumber. More...
|
|
double | m_ratesDenominator |
| How much walltime is seen by the algorithm. More...
|
|
uint32_t | m_eventCounter |
| Count how many events processed. More...
|
|
double | m_weightedEventCounter |
| Count how many weighted events were processed. More...
|
|
TH1D * | m_scalingHist |
| One-bin histogram to store the normalisation of the sample, for use in later combinations. More...
|
|
TH1D * | m_bcidHist |
| Histogram of the BCIDs distribution of the processing. More...
|
|
TTree * | m_metadataTree |
| Used to write out some metadata needed by post-processing (e.g. More...
|
|
WeightingValuesSummary_t | m_weightingValues |
| Possible weighting & lumi extrapolation values for the current event. More...
|
|
ServiceHandle< StoreGateSvc > | m_inputMetaStore |
| Object accessing the input metadata store. More...
|
|
ServiceHandle< StoreGateSvc > | m_outputMetaStore |
| Object accessing the output metadata store. More...
|
|
TFile * | m_currentFile {nullptr} |
|
bool | m_doneFirstEvent {false} |
|
ServiceHandle< ITHistSvc > | m_histSvc |
| Default constructor: AthHistogramAlgorithm();. More...
|
|
std::string | m_prefix |
| Name of the ROOT output stream (file) More...
|
|
std::string | m_rootDir |
| Name of the ROOT directory. More...
|
|
std::string | m_histNamePrefix |
| The prefix for the histogram THx name. More...
|
|
std::string | m_histNamePostfix |
| The postfix for the histogram THx name. More...
|
|
std::string | m_histTitlePrefix |
| The prefix for the histogram THx title. More...
|
|
std::string | m_histTitlePostfix |
| The postfix for the histogram THx title. More...
|
|
DataObjIDColl | m_extendedExtraObjects |
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
HistMap_t | m_histMap |
| The map of histogram names to their pointers. More...
|
|
EffMap_t | m_effMap |
| The map of histogram names to their pointers. More...
|
|
TreeMap_t | m_treeMap |
| The map of TTree names to their pointers. More...
|
|
GraphMap_t | m_graphMap |
| The map of TGraph names to their pointers. More...
|
|
std::string | m_streamName |
| Name of the ROOT output stream (file) More...
|
|
std::string | m_name |
| Instance name. More...
|
|
MsgStream | m_msg |
| Cached Message Stream. More...
|
|
Definition at line 10 of file RatesEmulationExample.h.
◆ EffMap_t
◆ GraphMap_t
◆ hash_t
◆ HistMap_t
◆ StoreGateSvc_t
◆ TreeMap_t
◆ Method_t
Method by which the trigger pass/fail decision is calculated.
Via manual or automated emulator or using the Trigger Decision Tool for a pre-existing item.
Enumerator |
---|
kMANUAL | The pass/fail decision is evaluated by the user and supplied per event using setTriggerDesicison.
|
kAUTO | The pass/fail decision is automatically emulated per event based on decoding the trigger name.
|
kEXISTING | The pass/fail decision is taken from the Trigger Decision Tool for an existing trigger.
|
Definition at line 44 of file RatesAnalysisAlg.h.
◆ RatesEmulationExample()
RatesEmulationExample::RatesEmulationExample |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~RatesEmulationExample()
RatesEmulationExample::~RatesEmulationExample |
( |
| ) |
|
|
virtual |
◆ addAllExisting()
StatusCode RatesAnalysisAlg::addAllExisting |
( |
| ) |
|
|
inherited |
Register all existing triggers in the AOD into the rates algorithm.
Definition at line 191 of file RatesAnalysisAlg.cxx.
◆ addExisting()
StatusCode RatesAnalysisAlg::addExisting |
( |
const std::string & |
pattern | ) |
|
|
inherited |
Register some existing triggers based on wild-card match, e.g.
"L1_.*" for all L1.
- Parameters
-
pattern | Wild-card string to match in trigger name |
Definition at line 196 of file RatesAnalysisAlg.cxx.
206 for(
auto &
p : hltPrescalesSet.
data().get_child(
"prescales") ) {
211 ATH_MSG_WARNING(
"Trigger " <<
p.first <<
" disabled in supplied AOD file. DISABLING");
217 for(
auto &
p : l1PrescalesSet.
prescales() ) {
218 if ((!
m_prescalesJSON.value().count(
p.first) && !runWithPrescaleJSON) ||
p.second.prescale < 0){
221 if (
p.second.prescale < 0){
222 ATH_MSG_WARNING(
"Trigger " <<
p.first <<
" disabled in supplied AOD file. DISABLING");
228 for (
const auto& trigger :
triggers) {
230 const bool isHLT = (
getLevel(trigger) == 2);
231 const auto trigConf = (isHLT ?
m_tdt->ExperimentalAndExpertMethods().getChainConfigurationDetails(trigger) :
nullptr);
232 if (isHLT && !trigConf) {
233 ATH_MSG_ERROR(
"Problem with TDT trig conf - cannot get details for " << trigger <<
", will be ignored.");
236 const std::string lowerName = (isHLT ? trigConf->lower_chain_name() :
"");
237 std::set<std::string>
groups = std::set<std::string>();
241 if (lowerName.find(
",") != std::string::npos) {
242 ATH_MSG_WARNING(
"Can not add " << trigger <<
" due to multiple L1 seeds." );
246 if (lowerName.empty()) {
247 ATH_MSG_WARNING(
"Can not add " << trigger <<
" due to multiple L1 seeds: L1All" );
252 if (trigConf->prescale() < 1.) {
253 ATH_MSG_DEBUG(
"Will not add " << trigger <<
", it was disabled in the reprocessing.");
266 std::vector<std::string> chainGroups = (*chain).groups();
267 std::vector<std::string> chainStreams = (*chain).streams();
269 ATH_MSG_DEBUG(
" chain " << trigger <<
" has " << chainGroups.size() <<
" groups and " << chainStreams.size() <<
" streams");
271 groups.insert(chainGroups.begin(), chainGroups.end());
272 for (
const std::string&
stream : chainStreams){
278 double prescale = 1., expressPrescale = -1., lowerPrescale = 1.;
281 ATH_MSG_WARNING(
"Unable to find " << trigger <<
" in supplied JSON. DISABLING." );
289 ATH_MSG_WARNING(
"Unable to find " << trigger <<
"'s seed, " << lowerName <<
", in supplied JSON. DISABLING." );
299 ATH_MSG_DEBUG(
"Registering existing trigger " << trigger <<
" for automatic TDT based rates prediction." );
305 ATH_MSG_WARNING(
"Trigger " << trigger.first <<
" in supplied JSON is NOT AVAILABLE in the supplied AOD file.");
309 return StatusCode::SUCCESS;
◆ beginInputFile()
StatusCode AthAnalysisAlgorithm::beginInputFile |
( |
| ) |
|
|
protectedvirtualinherited |
◆ book() [1/8]
StatusCode AthHistogramming::book |
( |
const TEfficiency & |
eff, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of TEfficiency.
Definition at line 335 of file AthHistogramming.h.
338 TEfficiency* effClone =
dynamic_cast< TEfficiency*
>(
eff.Clone() );
340 m_msg << MSG::ERROR <<
"Couldn't create a TEfficiency clone" <<
endmsg;
341 return StatusCode::FAILURE;
◆ book() [2/8]
StatusCode AthHistogramming::book |
( |
const TGraph & |
graphRef, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of TGraphs.
◆ book() [3/8]
StatusCode AthHistogramming::book |
( |
const TH1 & |
hist, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of histograms.
Definition at line 303 of file AthHistogramming.h.
306 TH1* histClone =
dynamic_cast< TH1*
>(
hist.Clone() );
308 m_msg << MSG::ERROR <<
"Couldn't create a TH1 clone" <<
endmsg;
309 return StatusCode::FAILURE;
311 return this->
book( *histClone, tDir,
stream );
◆ book() [4/8]
StatusCode AthHistogramming::book |
( |
const TTree & |
treeRef, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of TTrees.
Definition at line 403 of file AthHistogramming.h.
409 return StatusCode::SUCCESS;
413 return StatusCode::FAILURE;
◆ book() [5/8]
StatusCode AthHistogramming::book |
( |
TEfficiency & |
effRef, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of TEfficiency.
Definition at line 356 of file AthHistogramming.h.
361 m_msg << MSG::ERROR <<
"Couldn't book a TEfficiency" <<
endmsg;
362 return StatusCode::FAILURE;
364 return StatusCode::SUCCESS;
◆ book() [6/8]
StatusCode AthHistogramming::book |
( |
TEfficiency * |
eff, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of TEfficiency.
Definition at line 346 of file AthHistogramming.h.
349 m_msg << MSG::ERROR <<
"Got a zero pointer to a TEfficiency" <<
endmsg;
350 return StatusCode::FAILURE;
◆ book() [7/8]
StatusCode AthHistogramming::book |
( |
TH1 & |
histRef, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of histograms.
Definition at line 324 of file AthHistogramming.h.
328 if ( !histPointer ) {
329 m_msg << MSG::ERROR <<
"Couldn't book a TH1" <<
endmsg;
330 return StatusCode::FAILURE;
332 return StatusCode::SUCCESS;
◆ book() [8/8]
StatusCode AthHistogramming::book |
( |
TH1 * |
hist, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of histograms.
Definition at line 314 of file AthHistogramming.h.
317 m_msg << MSG::ERROR <<
"Got a zero pointer to a TH1" <<
endmsg;
318 return StatusCode::FAILURE;
◆ bookGetPointer() [1/8]
TEfficiency * AthHistogramming::bookGetPointer |
( |
const TEfficiency & |
eff, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of TEfficiency.
Definition at line 281 of file AthHistogramming.h.
284 TEfficiency* histClone =
dynamic_cast< TEfficiency*
>(
hist.Clone() );
286 m_msg << MSG::ERROR <<
"Couldn't create a TEfficiency clone in bookGetPointer" <<
endmsg;
◆ bookGetPointer() [2/8]
TGraph * AthHistogramming::bookGetPointer |
( |
const TGraph & |
graphRef, |
|
|
std::string |
tDir = "" , |
|
|
std::string |
stream = "" |
|
) |
| |
|
protectedinherited |
Simplify the booking and registering (into THistSvc) of TGraphs.
Definition at line 427 of file AthHistogramming.cxx.
430 const TGraph* graphPointer = &graphRef;
435 m_msg << MSG::WARNING
436 <<
"We got an invalid TGraph pointer in the BookGetPointer(TGraph*) method of the class" <<
m_name
442 std::string graphName = graphPointer->GetName();
443 const std::string graphTitle = graphPointer->GetTitle();
446 const hash_t graphHash = this->
hash(graphName);
447 GraphMap_t::const_iterator
it =
m_graphMap.find( graphHash );
450 m_msg << MSG::WARNING
451 <<
"Detected a hash collision. The hash for the TGraph with name=" << graphName
452 <<
" already exists and points to a TGraph with name=" <<
it->second->GetName()
453 <<
" NOT going to book the new histogram and returning a NULL pointer!" <<
endmsg;
461 m_msg << MSG::WARNING
462 <<
"We couldn't clone the TGraph in the BookGetPointer(TGraph&) method of the class" <<
m_name
469 std::string bookingString(
"");
473 if ( !((
histSvc()->regGraph(bookingString, graphClone)).isSuccess()) )
475 m_msg << MSG::WARNING
476 <<
"Problem registering TGraph with name " << graphName
477 <<
", title " << graphTitle
483 m_graphMap.insert(
m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphClone ) );
◆ bookGetPointer() [3/8]
TH1 * AthHistogramming::bookGetPointer |
( |
const TH1 & |
hist, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of histograms.
Definition at line 260 of file AthHistogramming.h.
263 TH1* histClone =
dynamic_cast< TH1*
>(
hist.Clone() );
265 m_msg << MSG::ERROR <<
"Couldn't create a TH1 clone in bookGetPointer" <<
endmsg;
◆ bookGetPointer() [4/8]
TTree * AthHistogramming::bookGetPointer |
( |
const TTree & |
treeRef, |
|
|
std::string |
tDir = "" , |
|
|
std::string |
stream = "" |
|
) |
| |
|
protectedinherited |
Simplify the booking and registering (into THistSvc) of TTrees.
Definition at line 312 of file AthHistogramming.cxx.
315 const TTree* treePointer = &treeRef;
320 m_msg << MSG::WARNING
321 <<
"We got an invalid TTree pointer in the BookGetPointer(TTree*) method of the class" <<
m_name
327 std::string
treeName = treePointer->GetName();
328 const std::string treeTitle = treePointer->GetTitle();
332 TreeMap_t::const_iterator
it =
m_treeMap.find( treeHash );
335 m_msg << MSG::WARNING
336 <<
"Detected a hash collision. The hash for the TTree with name=" <<
treeName
337 <<
" already exists and points to a TTree with name=" <<
it->second->GetName()
338 <<
" NOT going to book the new histogram and returning a NULL pointer!" <<
endmsg;
343 TTree* treeClone =
dynamic_cast< TTree*
>( treePointer->Clone(
treeName.c_str()) );
346 m_msg << MSG::WARNING
347 <<
"We couldn't clone the TTree in the BookGetPointer(TTree&) method of the class" <<
m_name
351 treeClone->SetTitle (treeTitle.c_str());
354 std::string bookingString(
"");
358 if ( !((
histSvc()->regTree(bookingString, treeClone)).isSuccess()) )
360 m_msg << MSG::WARNING
361 <<
"Problem registering TTree with name " <<
treeName
362 <<
", title " << treeTitle
368 m_treeMap.insert(
m_treeMap.end(), std::pair< const hash_t, TTree* >( treeHash, treeClone ) );
◆ bookGetPointer() [5/8]
TEfficiency * AthHistogramming::bookGetPointer |
( |
TEfficiency & |
effRef, |
|
|
std::string |
tDir = "" , |
|
|
std::string |
stream = "" |
|
) |
| |
|
protectedinherited |
Simplify the booking and registering (into THistSvc) of TEfficiency.
Definition at line 146 of file AthHistogramming.cxx.
149 std::string effName(effRef.GetName());
150 const std::string effTitle(effRef.GetTitle());
151 std::string bookingString(
"");
155 effRef.SetName(effName.c_str());
159 EffMap_t::const_iterator
it =
m_effMap.find( effHash );
162 m_msg << MSG::WARNING
163 <<
"Detected a hash collision. The hash for the TEfficiency with name=" << effName
164 <<
" already exists and points to a TEfficiency with name=" <<
it->second->GetName()
165 <<
" NOT going to book the new TEfficiency and returning a NULL pointer!" <<
endmsg;
175 if ( !((
histSvc()->regEfficiency(bookingString, &effRef)).isSuccess()) )
177 m_msg << MSG::WARNING
178 <<
"Problem registering TEfficiency with name " << effName
180 <<
", title " << effTitle
188 m_effMap.insert(
m_effMap.end(), std::pair< const hash_t, TEfficiency* >( effHash, &effRef ) );
◆ bookGetPointer() [6/8]
TEfficiency * AthHistogramming::bookGetPointer |
( |
TEfficiency * |
eff, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of TEfficiency.
Definition at line 293 of file AthHistogramming.h.
296 m_msg << MSG::ERROR <<
"Got a zero pointer to a TEfficiency in bookGetPointer" <<
endmsg;
◆ bookGetPointer() [7/8]
TH1 * AthHistogramming::bookGetPointer |
( |
TH1 & |
histRef, |
|
|
std::string |
tDir = "" , |
|
|
std::string |
stream = "" |
|
) |
| |
|
protectedinherited |
Simplify the booking and registering (into THistSvc) of histograms.
Definition at line 98 of file AthHistogramming.cxx.
101 std::string
histName(histRef.GetName());
102 const std::string histTitle(histRef.GetTitle());
103 std::string bookingString(
"");
111 HistMap_t::const_iterator
it =
m_histMap.find( histHash );
114 m_msg << MSG::WARNING
115 <<
"Detected a hash collision. The hash for the histogram with name=" <<
histName
116 <<
" already exists and points to a histogram with name=" <<
it->second->GetName()
117 <<
" NOT going to book the new histogram and returning a NULL pointer!" <<
endmsg;
127 if ( !((
histSvc()->regHist(bookingString, &histRef)).isSuccess()) )
129 m_msg << MSG::WARNING
130 <<
"Problem registering histogram with name " <<
histName
132 <<
", title " << histTitle
140 m_histMap.insert(
m_histMap.end(), std::pair< const hash_t, TH1* >( histHash, &histRef ) );
◆ bookGetPointer() [8/8]
TH1 * AthHistogramming::bookGetPointer |
( |
TH1 * |
hist, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of histograms.
Definition at line 272 of file AthHistogramming.h.
275 m_msg << MSG::ERROR <<
"Got a zero pointer to a TH1 in bookGetPointer" <<
endmsg;
◆ buildBookingString()
void AthHistogramming::buildBookingString |
( |
std::string & |
bookingString, |
|
|
std::string & |
histName, |
|
|
std::string & |
tDir, |
|
|
std::string & |
stream, |
|
|
bool |
usePrefixPostfix = false |
|
) |
| |
|
privateinherited |
Method to build individual booking string.
Definition at line 560 of file AthHistogramming.cxx.
569 if(
pos != std::string::npos){
576 if(usePrefixPostfix){
581 while(bookingString.find(
"//") != std::string::npos){
◆ checkExistingTrigger()
StatusCode RatesAnalysisAlg::checkExistingTrigger |
( |
const std::string & |
name, |
|
|
const std::string & |
seedName |
|
) |
| |
|
privateinherited |
Internal function to check if a supplied HLT trigger and L1 seed match what is stored in the AOD config.
- Parameters
-
name | Name of the L1 or HLT trigger. |
seedName | For HLT triggers, name of the L1 seed item. |
- Returns
- StatusCode::FAILURE if the trigger does not match the AOD.
Definition at line 327 of file RatesAnalysisAlg.cxx.
332 return StatusCode::FAILURE;
336 const auto trigConf =
m_tdt->ExperimentalAndExpertMethods().getChainConfigurationDetails(
triggers.at(0));
337 if (trigConf->lower_chain_name() !=
seedName) {
338 ATH_MSG_FATAL(
"Tried to register an existing trigger '" <<
name <<
"' seeding from '" <<
seedName <<
"' but in this AOD it seeds from '" << trigConf->lower_chain_name() <<
"'");
339 return StatusCode::FAILURE;
341 return StatusCode::SUCCESS;
◆ checkGotTDT()
StatusCode RatesAnalysisAlg::checkGotTDT |
( |
| ) |
|
|
privateinherited |
Internal check that the TDT is fetched.
Definition at line 312 of file RatesAnalysisAlg.cxx.
315 return StatusCode::FAILURE;
317 [[maybe_unused]]
static std::atomic<bool> printed = [&]() {
318 ATH_MSG_INFO(
"TDT contains: " <<
m_tdt->getListOfTriggers().size() <<
" triggers, "
319 <<
m_tdt->getListOfStreams().size() <<
" streams and "
320 <<
m_tdt->getListOfGroups().size() <<
" groups.");
323 return StatusCode::SUCCESS;
◆ configAthHistogramming()
StatusCode AthHistogramming::configAthHistogramming |
( |
const ServiceHandle< ITHistSvc > & |
histSvc, |
|
|
const std::string & |
prefix, |
|
|
const std::string & |
rootDir, |
|
|
const std::string & |
histNamePrefix, |
|
|
const std::string & |
histNamePostfix, |
|
|
const std::string & |
histTitlePrefix, |
|
|
const std::string & |
histTitlePostfix |
|
) |
| |
|
protectedinherited |
To be called by the derived classes to fill the internal configuration.
Definition at line 66 of file AthHistogramming.cxx.
79 return StatusCode::SUCCESS;
◆ currentFile()
TFile * AthAnalysisAlgorithm::currentFile |
( |
const char * |
evtSelName = "EventSelector" | ) |
|
|
finalprotectedvirtualinherited |
Function returning the TFile pointer of the currently open file of the given EventSelector (in athena jobs this defaults to "EventSelector")
Definition at line 147 of file AthAnalysisAlgorithm.cxx.
153 SmartIF<IProperty> evtSelector{service(evtSelName,
false)};
155 ATH_MSG_ERROR(
"currentFile(): Couldn't find the service: " << evtSelName);
return 0;
160 const StringArrayProperty& inputCollectionsName =
dynamic_cast<const StringArrayProperty&
>(evtSelector->getProperty(
"InputCollections"));
162 ATH_MSG_VERBOSE(
"nOpenFile=" << gROOT->GetListOfFiles()->GetSize() <<
". nFilesInInputCollection=" << inputCollectionsName.value().size());
164 for(
int i=0;
i<gROOT->GetListOfFiles()->GetSize();
i++) {
165 ATH_MSG_VERBOSE(
"Open file: " << gROOT->GetListOfFiles()->At(
i)->GetName());
171 for(
int i=0;
i<gROOT->GetListOfFiles()->GetSize();
i++) {
172 TFile *
g = (TFile*)gROOT->GetListOfFiles()->At(
i);
175 TString
s(
g->GetName());
176 TObjArray*
tokens =
s.Tokenize(
"/");
177 TObjString* lastToken =
dynamic_cast<TObjString*
>(
tokens->Last());
178 TString sToCompare(
"");
179 bool shortComparison(
false);
180 if(
tokens->GetEntries()>1) {
181 TString beforeSlash((
dynamic_cast<TObjString*
>(
tokens->At(
tokens->GetEntries()-2)))->GetString());
182 if(beforeSlash.Length()>0) sToCompare += beforeSlash;
185 shortComparison=
true;
187 sToCompare += lastToken->GetString();
188 TString sToCompare_short(lastToken->GetString());
191 for(
unsigned int j=0;j<inputCollectionsName.value().
size();j++) {
192 TString
t(inputCollectionsName.value()[j].c_str());
195 ATH_MSG_VERBOSE(
"Current File is: " << inputCollectionsName.value()[j]);
199 TObjArray*
tokens =
t.Tokenize(
"/");
200 TObjString* lastToken =
dynamic_cast<TObjString*
>(
tokens->Last());
201 TString tToCompare =
"";
202 bool shortComparison2(
false);
203 if(
tokens->GetEntries()>1) {
204 TString beforeSlash((
dynamic_cast<TObjString*
>(
tokens->At(
tokens->GetEntries()-2)))->GetString());
205 if(beforeSlash.Length()>0) tToCompare += beforeSlash;
208 shortComparison2=
true;
210 tToCompare += lastToken->GetString();
211 TString tToCompare_short(lastToken->GetString());
214 if(shortComparison || shortComparison2) {
215 if(sToCompare_short.EqualTo(tToCompare_short)) {
216 ATH_MSG_VERBOSE(
"Current File is: " << inputCollectionsName.value()[j]);
221 if(sToCompare.EqualTo(tToCompare)) {
222 ATH_MSG_VERBOSE(
"Current File is: " << inputCollectionsName.value()[j]);
230 ATH_MSG_ERROR(
"currentFile(): Couldn't load InputCollections property of " << evtSelName);
return 0;
233 ATH_MSG_ERROR(
"currentFile(): Could not find the current file!");
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ efficiency()
TEfficiency * AthHistogramming::efficiency |
( |
const std::string & |
effName, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
protectedinherited |
Simplify the retrieval of registered TEfficiency.
Definition at line 250 of file AthHistogramming.cxx.
256 EffMap_t::const_iterator
it =
m_effMap.find( effHash );
261 std::string effNameCopy = effName;
262 std::string tDirCopy = tDir;
263 std::string streamCopy =
stream;
266 std::string bookingString(
"");
269 TEfficiency* effPointer(NULL);
270 if ( !((
histSvc()->getEfficiency(bookingString, effPointer)).isSuccess()) )
273 std::string bookingString(
"");
276 if ( !((
histSvc()->getEfficiency(bookingString, effPointer)).isSuccess()) )
278 m_msg << MSG::WARNING
279 <<
"Problem retrieving the TEfficiency with name (including pre- and post-fixes) "
281 <<
" or with name " << effNameCopy
282 <<
" in " <<
m_name <<
"... it doesn't exist, neither in the cached map nor in the THistSvc!"
283 <<
" Will return an NULL pointer... you have to handle it correctly!" <<
endmsg;
288 m_effMap.insert(
m_effMap.end(), std::pair< const hash_t, TEfficiency* >( effHash, effPointer ) );
293 m_effMap.insert(
m_effMap.end(), std::pair< const hash_t, TEfficiency* >( effHash, effPointer ) );
◆ endInputFile()
StatusCode AthAnalysisAlgorithm::endInputFile |
( |
| ) |
|
|
protectedvirtualinherited |
Function called as an input file is being closed.
Dummy implementation that can be overridden by the derived tool.
Definition at line 122 of file AthAnalysisAlgorithm.cxx.
125 return StatusCode::SUCCESS;
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode RatesAnalysisAlg::execute |
( |
| ) |
|
|
privatevirtualinherited |
In first call - register all triggers.
Then load event weighting parameters, fill trigger decisions, compute group rates.
Definition at line 589 of file RatesAnalysisAlg.cxx.
652 setFilterPassed(
true);
653 return StatusCode::SUCCESS;
◆ executeTrigDecisionToolTriggers()
StatusCode RatesAnalysisAlg::executeTrigDecisionToolTriggers |
( |
| ) |
|
|
privateinherited |
Internal call to get the pass/fail for all TDT triggers.
Definition at line 656 of file RatesAnalysisAlg.cxx.
658 const bool passed = trigger.second->isPassed();
662 const std::unordered_map<std::string, const Trig::ChainGroup*>::const_iterator
it =
m_existingTriggers.find(lower);
666 return StatusCode::SUCCESS;
◆ executeTriggerEmulation()
StatusCode RatesAnalysisAlg::executeTriggerEmulation |
( |
| ) |
|
|
privateinherited |
Internal call to get the pass/fail for all automatically emulated triggers.
Definition at line 669 of file RatesAnalysisAlg.cxx.
672 ATH_MSG_WARNING(
"Cannot do rates for " << trigger <<
". Automatic trigger emulation is not yet included, sorry :(");
674 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ extraOutputDeps()
const DataObjIDColl & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ finalize()
StatusCode RatesAnalysisAlg::finalize |
( |
| ) |
|
|
privatevirtualinherited |
Print rates.
Definition at line 677 of file RatesAnalysisAlg.cxx.
682 ATH_MSG_INFO(
"################## Computed Rate Scans for Threshold-Scan Items:");
686 ATH_MSG_INFO(
"################## Computed Rate Estimations for Single Items:");
687 std::set<std::string>
keys;
688 for (
const auto& trigger :
m_triggers)
keys.insert(trigger.first);
692 ATH_MSG_INFO(
"################## Computed Express Rate Estimations for Single Items:");
696 ATH_MSG_INFO(
"################## Computed Rate Estimations for Groups:");
700 ATH_MSG_INFO(
"################## Computed Rate Estimations for Global Groups:");
703 ATH_MSG_INFO(
"################## LHC Conditions and weighting information:");
711 return StatusCode::SUCCESS;
◆ firstExecute()
StatusCode AthAnalysisAlgorithm::firstExecute |
( |
| ) |
|
|
protectedvirtualinherited |
◆ getLevel()
uint32_t RatesAnalysisAlg::getLevel |
( |
const std::string & |
name | ) |
const |
|
privateinherited |
String match to a trigger level.
If unknown, we assume HLT.
- Returns
- trigger level (1 or 2)
Definition at line 805 of file RatesAnalysisAlg.cxx.
806 if (
name.find(
"HLT_") != std::string::npos)
return 2;
807 if (
name.find(
"L1_") != std::string::npos)
return 1;
◆ graph()
TGraph * AthHistogramming::graph |
( |
const std::string & |
graphName, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
protectedinherited |
Simplify the retrieval of registered TGraphs.
Definition at line 492 of file AthHistogramming.cxx.
495 const hash_t graphHash = this->
hash(graphName);
498 GraphMap_t::const_iterator
it =
m_graphMap.find( graphHash );
503 std::string graphNameCopy = graphName;
504 std::string tDirCopy = tDir;
505 std::string streamCopy =
stream;
508 std::string bookingString(
"");
511 TGraph* graphPointer(NULL);
512 if ( !((
histSvc()->getGraph(bookingString, graphPointer)).isSuccess()) )
515 std::string bookingString(
"");
516 this->
buildBookingString( bookingString, graphNameCopy, tDirCopy, streamCopy,
false );
518 if ( !((
histSvc()->getGraph(bookingString, graphPointer)).isSuccess()) )
520 m_msg << MSG::WARNING
521 <<
"Problem retrieving the TGraph with name (including pre- and post-fixes) "
523 <<
" or with name " << graphNameCopy
524 <<
" in " <<
m_name <<
"... it doesn't exist, neither in the cached map nor in the THistSvc!"
525 <<
" Will return an NULL pointer... you have to handle it correctly!" <<
endmsg;
530 m_graphMap.insert(
m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphPointer ) );
535 m_graphMap.insert(
m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphPointer ) );
◆ handle()
void AthAnalysisAlgorithm::handle |
( |
const Incident & |
inc | ) |
|
|
overrideprotectedvirtualinherited |
Function receiving incidents from IncidentSvc/TEvent Experts can override but they should ensure they add AthAnalysisAlgorithm::handle(); to the end of their own implementation.
Definition at line 83 of file AthAnalysisAlgorithm.cxx.
89 if( inc.type() == IncidentType::BeginInputFile ) {
93 throw std::runtime_error(
"Couldn't call beginInputFile()" );
95 }
else if(inc.type() == IncidentType::EndInputFile ) {
98 throw std::runtime_error(
"Couldn't call endInputFile()" );
100 }
else if(inc.type() ==
"MetaDataStop" ) {
103 throw std::runtime_error(
"Couldn't call metaDataStop()" );
◆ hash()
◆ hist()
TH1 * AthHistogramming::hist |
( |
const std::string & |
histName, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
protectedinherited |
Simplify the retrieval of registered histograms of any type.
Definition at line 198 of file AthHistogramming.cxx.
204 HistMap_t::const_iterator
it =
m_histMap.find( histHash );
209 std::string histNameCopy =
histName;
210 std::string tDirCopy = tDir;
211 std::string streamCopy =
stream;
214 std::string bookingString(
"");
217 TH1* histPointer(NULL);
218 if ( !((
histSvc()->
getHist(bookingString, histPointer)).isSuccess()) )
221 std::string bookingString(
"");
224 if ( !((
histSvc()->
getHist(bookingString, histPointer)).isSuccess()) )
226 m_msg << MSG::WARNING
227 <<
"Problem retrieving the histogram with name (including pre- and post-fixes) "
229 <<
" or with name " << histNameCopy
230 <<
" in " <<
m_name <<
"... it doesn't exist, neither in the cached map nor in the THistSvc!"
231 <<
" Will return an NULL pointer... you have to handle it correctly!" <<
endmsg;
236 m_histMap.insert(
m_histMap.end(), std::pair< const hash_t, TH1* >( histHash, histPointer ) );
241 m_histMap.insert(
m_histMap.end(), std::pair< const hash_t, TH1* >( histHash, histPointer ) );
◆ hist2d()
TH2 * AthHistogramming::hist2d |
( |
const std::string & |
histName, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
inlineprotectedinherited |
Simplify the retrieval of registered 2-d histograms.
Definition at line 369 of file AthHistogramming.h.
376 <<
"Cannot get a 2-d histogram with name " <<
histName
377 <<
"... will probably seg-fault!" <<
endmsg;
381 return dynamic_cast<TH2*
>( th1Pointer );
◆ hist3d()
TH3 * AthHistogramming::hist3d |
( |
const std::string & |
histName, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
inlineprotectedinherited |
Simplify the retrieval of registered 3-d histograms.
Definition at line 386 of file AthHistogramming.h.
393 <<
"Cannot get a 3-d histogram with name " <<
histName
394 <<
"... will probably seg-fault!" <<
endmsg;
398 return dynamic_cast<TH3*
>( th1Pointer );
◆ histSvc()
The standard THistSvc
(for writing histograms and TTrees and more to a root file) Returns (kind of) a pointer to the THistSvc
.
Definition at line 113 of file AthHistogramAlgorithm.h.
◆ initialize()
StatusCode RatesAnalysisAlg::initialize |
( |
| ) |
|
|
privatevirtualinherited |
Get the trigger decision tool and set up global groups.
Definition at line 371 of file RatesAnalysisAlg.cxx.
385 ATH_MSG_ERROR(
"DoUniqueRates=True requires DoGlobalGroups=True");
386 return StatusCode::FAILURE;
389 return StatusCode::SUCCESS;
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ inputMetaStore() [1/2]
◆ inputMetaStore() [2/2]
◆ isCPS()
bool RatesAnalysisAlg::isCPS |
( |
const std::string & |
group | ) |
const |
|
privateinherited |
String match coherent prescale groups.
- Parameters
-
group | Name of a trigger group |
- Returns
- If name-parsing thinks that the group is a coherent prescale group
Definition at line 794 of file RatesAnalysisAlg.cxx.
795 return (
group.find(
"CPS") != std::string::npos);
◆ isRandomSeed()
bool RatesAnalysisAlg::isRandomSeed |
( |
const std::string & |
me, |
|
|
const std::string & |
seed |
|
) |
| const |
|
privateinherited |
String match random L1 items.
- Parameters
-
me | Name of the trigger |
seed | Name of the trigger's seed |
- Returns
- if name-parsing thinks that the trigger seeds from a random L1 trgigger
Definition at line 798 of file RatesAnalysisAlg.cxx.
799 if (me.find(
"L1_RD") != std::string::npos)
return true;
800 if (me.find(
"L1RD") != std::string::npos)
return true;
801 if (
seed.find(
"L1_RD") != std::string::npos)
return true;
◆ isZero()
bool RatesAnalysisAlg::isZero |
( |
double |
v | ) |
const |
|
inlineprivateinherited |
◆ metaDataStop()
StatusCode AthAnalysisAlgorithm::metaDataStop |
( |
| ) |
|
|
protectedvirtualinherited |
Function called before finalize user can read output metadata from outputMetaStore()
Dummy implementation that can be overridden by the derived tool.
Definition at line 130 of file AthAnalysisAlgorithm.cxx.
133 return StatusCode::SUCCESS;
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ myReplace()
void AthHistogramming::myReplace |
( |
std::string & |
str, |
|
|
const std::string & |
oldStr, |
|
|
const std::string & |
newStr |
|
) |
| |
|
privateinherited |
Helper method to replace sub-string.
Definition at line 590 of file AthHistogramming.cxx.
595 while((
pos =
str.find(oldStr,
pos)) != std::string::npos)
597 str.replace(
pos, oldStr.length(), newStr);
598 pos += newStr.length();
◆ newScanTrigger() [1/2]
Register a new threshold scan trigger which plots rate as a function of some dependent variable.
- Parameters
-
name | The name of the emulated scan trigger. Recommend either a "L1_" or "HLT_" prefix. |
thresholdMin | The lower threshold of this trigger, rates will not be available below this threshold |
thresholdMax | The upper threshold of this trigger, rates will not be available above this threshold |
thresholdBins | Granularity |
behaviour | If the trigger should activate above (kTriggerAboveThreshold) or below (kTriggerBelowThreshold) the threshold |
prescale | The prescale value to simulate applying. Default 1 |
seedName | The name of any lower seeding e.g. L1 item. This info is required to get group rates correct |
seedPrescale | The prescale of any L1 seed item. Default 1. |
method | Determines who is responsible for evaluating the emulated trigger decision, you (kMANUAL) or the algorithm (kAUTO or kEXISTING). |
extrapolation | Determines the triggers luminosity extrapolation behaviour. |
Definition at line 40 of file RatesAnalysisAlg.cxx.
52 ATH_MSG_ERROR(
"Sorry - ScanTriggers have to be implemented with the kMANUAL method for now.");
53 return StatusCode::FAILURE;
57 m_scanTriggers.emplace(
name, std::make_unique<RatesScanTrigger>(
name,
msgSvc(), thresholdMin, thresholdMax, thresholdBins, behaviour, prescale,
seedName, seedPrecale,
e));
61 return StatusCode::SUCCESS;
◆ newScanTrigger() [2/2]
Version of newScanTrigger which takes a vector of bin edges.
- Parameters
-
thresholdBinEdged | Vector of bin edges to use for quantifying rate as a function of threshold |
Definition at line 65 of file RatesAnalysisAlg.cxx.
75 ATH_MSG_ERROR(
"Sorry - ScanTriggers have to be implemented with the kMANUAL method for now.");
76 return StatusCode::FAILURE;
85 return StatusCode::SUCCESS;
◆ newTrigger() [1/2]
Register a new trigger for emulation.
- Parameters
-
name | The name of the emulated trigger. Recommend either a "L1_" or "HLT_" prefix. |
prescale | The prescale value to simulate applying. Default 1 |
expressPrescale | The prescale value to simulate applying to the express stream. Default -1 |
seedName | The name of any lower seeding e.g. L1 item. This info is required to get group rates correct when multiple chains seed of the same prescaled L1 item. |
seedPrescale | The prescale of any L1 seed item. Default 1. |
Comma | separated list of groups to include this trigger in. Any group containing "CPS" will be simulated as a coherent prescale group and implies that all members of that group share a common L1 seed. |
method | Determines who is responsible for evaluating the emulated trigger decision, you (kMANUAL) or the algorithm (kAUTO or kEXISTING). |
extrapolation | Determines the triggers luminosity extrapolation behaviour. |
Definition at line 109 of file RatesAnalysisAlg.cxx.
119 ATH_MSG_FATAL(
"Too late to call newTrigger. All emulated triggers must be registered during ratesInitialize().");
120 return StatusCode::FAILURE;
128 return StatusCode::SUCCESS;
141 return StatusCode::SUCCESS;
155 if (
group.starts_with(
"BW") ||
group.starts_with(
"PS") ||
group.starts_with(
"STREAM:express"))
continue;
162 it->second->addToGroup( newTriggerPtr );
167 const size_t CPSID = newTriggerPtr->
getCPSID();
182 if (
level == 2 && expressPrescale >= 1) {
188 return StatusCode::SUCCESS;
◆ newTrigger() [2/2]
Version of newTrigger which accepts a set of group names rather than a comma separated string.
Definition at line 89 of file RatesAnalysisAlg.cxx.
98 std::set<std::string> groupSet;
102 if (!std::getline(
ss,
group,
','))
break;
103 groupSet.insert(
group);
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ outputMetaStore() [1/2]
◆ outputMetaStore() [2/2]
◆ populateTriggers()
StatusCode RatesAnalysisAlg::populateTriggers |
( |
| ) |
|
|
privateinherited |
Register all triggers to emulate.
This is actually done at the start of the event loop such that the TDT has access to the configuration.
Definition at line 392 of file RatesAnalysisAlg.cxx.
394 ATH_MSG_INFO(
"Initializing User's Triggers (note: we are actually now in the event loop)");
410 ATH_MSG_INFO(
"Computing coherent factors for coherent prescale groups.");
413 const size_t CPSID = trigger.second->getCPSID();
414 if (CPSID != 0) trigger.second->setCoherentFactor(
m_lowestPrescale.at(CPSID) );
418 ATH_MSG_INFO(
"Creating extra groups to calculate unique rates.");
443 if (trigger.second->getDisabled() ==
false) {
449 ATH_MSG_INFO(
"Retrieving HLT chain's ID and Group from HLT menu.");
461 for( ; chain_itr != chain_end; ++chain_itr ) {
462 std::string
chainName = ( *chain_itr ).name() ;
463 unsigned int chainID = ( *chain_itr ).counter();
464 std::vector<std::string> chainGroups = ( *chain_itr ).groups();
465 for (std::string&
stream : (*chain_itr).streams()){
466 chainGroups.push_back(
"STREAM:" +
stream);
468 std::string singlechainGroups =
"";
469 for (
unsigned int j=0; j < chainGroups.size(); ++j){
470 if (j==0) singlechainGroups += chainGroups[j];
471 else singlechainGroups +=
", "+chainGroups[j];
487 for (
size_t i = 0;
i <
l1menu.size();
i++) {
496 for( ; item_itr != item_end; ++item_itr ) {
506 ATH_MSG_DEBUG(
"################## Configured to estimate rates for the following triggers:");
510 ATH_MSG_DEBUG(
"################## Configured to estimate rates for the following scan triggers:");
514 ATH_MSG_DEBUG(
"################## Configured to estimate rates for the following groups of triggers:");
518 ATH_MSG_DEBUG(
"################## Configured to estimate rates for the following global groups of triggers:");
524 ATH_MSG_DEBUG(
"################## Registering normalisation histogram:");
527 m_bcidHist =
new TH1D(
"bcid",
";BCID;Events",3565,-.5,3564.5);
529 ATH_MSG_DEBUG(
"################## Registering metadata tree histogram:");
530 ATH_CHECK(
histSvc()->regTree(
"/RATESTREAM/metadata", std::make_unique<TTree>(
"metadata",
"metadata")) );
533 ATH_MSG_DEBUG(
"################## Registering trigger histograms:");
535 if (!trigger.second->doHistograms())
continue;
536 std::string lvlSubdir =
"";
537 if (trigger.second->getName().find(
"L1") == 0){
538 lvlSubdir =
"Rate_ChainL1_HLT/";
539 }
else if (trigger.second->getName().find(
"HLT") == 0) {
540 lvlSubdir =
"Rate_ChainHLT_HLT/";
542 ATH_CHECK( trigger.second->giveDataHist(
histSvc(), std::string(
"/RATESTREAM/All/" + lvlSubdir + trigger.first +
"/data")) );
543 ATH_CHECK( trigger.second->giveMuHist(
histSvc(), std::string(
"/RATESTREAM/All/" + lvlSubdir + trigger.first +
"/rateVsMu")) );
545 else trigger.second->clearTrainHist();
549 ATH_MSG_DEBUG(
"################## Registering scan trigger histograms:");
551 ATH_CHECK( trigger.second->giveThresholdHist(
histSvc(), std::string(
"/RATESTREAM/ScanTriggers/" + trigger.first +
"/rateVsThreshold")) );
555 ATH_MSG_DEBUG(
"################## Registering group histograms:");
557 if (!
group.second->doHistograms())
continue;
563 else group.second->clearTrainHist();
567 ATH_MSG_DEBUG(
"################## Registering global group histograms:");
569 if (!
group.second->doHistograms())
continue;
570 ATH_CHECK(
group.second->giveDataHist(
histSvc(), std::string(
"/RATESTREAM/All/Rate_Group_HLT/RATE_GLOBAL_" +
group.first +
"/data")) );
571 ATH_CHECK(
group.second->giveMuHist(
histSvc(), std::string(
"/RATESTREAM/All/Rate_Group_HLT/RATE_GLOBAL_" +
group.first +
"/rateVsMu")) );
573 else group.second->clearTrainHist();
586 return StatusCode::SUCCESS;
◆ printInputSummary()
void RatesAnalysisAlg::printInputSummary |
( |
| ) |
const |
|
privateinherited |
Print the input data instantaneous luminosity, mu and number of bunches.
Note this is averaged as the data are processed - so should only be printed at the end.
Definition at line 784 of file RatesAnalysisAlg.cxx.
786 <<
" with <L_inst.> = "
788 <<
" cm-2s-1, <mu> = "
790 <<
", paired bunches = "
◆ printStatistics()
void RatesAnalysisAlg::printStatistics |
( |
| ) |
const |
|
privateinherited |
◆ printTarget()
void RatesAnalysisAlg::printTarget |
( |
| ) |
const |
|
privateinherited |
Print the target instantaneous luminosity, mu and number of bunches.
Definition at line 772 of file RatesAnalysisAlg.cxx.
776 ATH_MSG_INFO(
"Luminosity extrapolation is switched off. Input files will determin the paired bunches, L_inst. and mu profile.");
◆ ratesExecute()
StatusCode RatesEmulationExample::ratesExecute |
( |
| ) |
|
|
overridevirtual |
To be implemented by the user.
Supply pass/fail for all "triggers"
Implements RatesAnalysisAlg.
Definition at line 37 of file RatesEmulationExample.cxx.
42 std::set<double> electronpTs;
43 for (
const auto e : *
electrons) electronpTs.insert(
e->pt()/1000.);
47 return StatusCode::SUCCESS;
◆ ratesFinalize()
StatusCode RatesEmulationExample::ratesFinalize |
( |
| ) |
|
|
overridevirtual |
◆ ratesInitialize()
StatusCode RatesEmulationExample::ratesInitialize |
( |
| ) |
|
|
overridevirtual |
To be implemented by the user.
Register "triggers" to calculate the rate for
Implements RatesAnalysisAlg.
Definition at line 15 of file RatesEmulationExample.cxx.
28 std::set<std::string> triggerGroup {
"RATE_SingleElectron"};
34 return StatusCode::SUCCESS;
◆ renounce()
◆ renounceArray()
◆ retrieveMetadata() [1/2]
template<typename T >
StatusCode AthAnalysisAlgorithm::retrieveMetadata |
( |
const std::string & |
folder, |
|
|
const std::string & |
key, |
|
|
T & |
out |
|
) |
| |
|
inlineinherited |
◆ retrieveMetadata() [2/2]
template<typename T >
StatusCode AthAnalysisAlgorithm::retrieveMetadata |
( |
const std::string & |
folder, |
|
|
const std::string & |
key, |
|
|
T & |
out, |
|
|
const IOVTime & |
time, |
|
|
int |
channel = -1 |
|
) |
| |
|
inlineinherited |
◆ setExponentialMuScalingFactor()
void RatesAnalysisAlg::setExponentialMuScalingFactor |
( |
const double |
f | ) |
|
|
inlineinherited |
Set the exponential scaling factor for relevant chains.
scaling = exp(f * (targetMu - eventMu))
- Parameters
-
Definition at line 186 of file RatesAnalysisAlg.h.
◆ setTargetLumi()
void RatesAnalysisAlg::setTargetLumi |
( |
const double |
lumi | ) |
|
|
inlineinherited |
Set the target instantaneous luminosity.
Assumes a full-ring. Mu is derived.
- Parameters
-
lumi | The target lumi in cm-2s-1 |
Definition at line 174 of file RatesAnalysisAlg.h.
◆ setTargetLumiBunches()
void RatesAnalysisAlg::setTargetLumiBunches |
( |
const double |
lumi, |
|
|
const int32_t |
bunches |
|
) |
| |
|
inherited |
Set the target instantaneous luminosity and number of bunches.
Mu is derived.
- Parameters
-
lumi | The target lumi in cm-2s-1 |
bunches | The target number of paired bunches |
Definition at line 734 of file RatesAnalysisAlg.cxx.
736 ATH_MSG_WARNING(
"Too late to call setTargetLumiBunches. Do this during ratesInitialize().");
◆ setTargetLumiMu()
void RatesAnalysisAlg::setTargetLumiMu |
( |
const double |
lumi, |
|
|
const double |
mu |
|
) |
| |
|
inherited |
Set the target instantaneous luminosity and mu.
Number of bunches in the ring is derived.
- Parameters
-
lumi | The target lumi in cm-2s-1 |
mu | The target pileup |
Definition at line 714 of file RatesAnalysisAlg.cxx.
716 ATH_MSG_WARNING(
"Too late to call setTargetLumiMu. Do this during ratesInitialize().");
◆ setTargetMu()
void RatesAnalysisAlg::setTargetMu |
( |
const double |
mu | ) |
|
|
inlineinherited |
Set the target pileup.
Assumes a full-ring. Inst. lumi is derived.
- Parameters
-
Definition at line 180 of file RatesAnalysisAlg.h.
◆ setTargetMuBunches()
void RatesAnalysisAlg::setTargetMuBunches |
( |
const double |
mu, |
|
|
const int32_t |
bunches |
|
) |
| |
|
inherited |
Set the target mu and number of bunches.
The instantaneous luminosity is derived.
- Parameters
-
mu | The target pileup |
bunches | The target number of paired bunches |
Definition at line 751 of file RatesAnalysisAlg.cxx.
753 ATH_MSG_WARNING(
"Too late to call setTargetMuBunches. Do this during ratesInitialize().");
◆ setTriggerDesicison() [1/2]
StatusCode RatesAnalysisAlg::setTriggerDesicison |
( |
const std::string & |
name, |
|
|
const bool |
triggerIsPassed = true , |
|
|
const bool |
triggerIsActive = true |
|
) |
| |
|
inherited |
Set the pass/fail decision for an item.
- Parameters
-
name | Name of the registered trigger |
triggerIsPassed | Trigger decision. |
Definition at line 344 of file RatesAnalysisAlg.cxx.
347 if (triggerIsPassed || triggerIsActive) {
350 ATH_MSG_ERROR(
"Cannot find trigger " <<
name <<
" did you call newTrigger for this in initialize?");
351 return StatusCode::FAILURE;
356 return StatusCode::SUCCESS;
◆ setTriggerDesicison() [2/2]
StatusCode RatesAnalysisAlg::setTriggerDesicison |
( |
const std::string & |
name, |
|
|
const double |
threshold |
|
) |
| |
|
inherited |
Set the pass threshold for a Scan Trigger item.
- Parameters
-
name | Name of the registered scan-trigger |
threshold | The passed threshold in the event |
Definition at line 360 of file RatesAnalysisAlg.cxx.
363 ATH_MSG_ERROR(
"Cannot find scan-trigger " <<
name <<
" did you call newScanTrigger for this in initialize?");
364 return StatusCode::FAILURE;
368 return StatusCode::SUCCESS;
◆ sysExecute()
StatusCode AthAnalysisAlgorithm::sysExecute |
( |
const EventContext & |
ctx | ) |
|
|
overridevirtualinherited |
override to do firstEvent method
Definition at line 72 of file AthAnalysisAlgorithm.cxx.
77 return StatusCode::FAILURE;
80 return AthHistogramAlgorithm::sysExecute(ctx);
◆ sysInitialize()
StatusCode AthAnalysisAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
Function initialising the tool in the correct way in Athena.
Reimplemented from AthHistogramAlgorithm.
Definition at line 50 of file AthAnalysisAlgorithm.cxx.
57 incSvc->removeListener(
this, IncidentType::BeginInputFile );
58 incSvc->addListener(
this, IncidentType::BeginInputFile, 0,
true );
59 incSvc->removeListener(
this, IncidentType::EndInputFile );
60 incSvc->addListener(
this, IncidentType::EndInputFile, 0,
true );
61 incSvc->removeListener(
this,
"MetaDataStop" );
62 incSvc->addListener(
this,
"MetaDataStop", 0,
true );
69 return StatusCode::SUCCESS;
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ tree()
TTree * AthHistogramming::tree |
( |
const std::string & |
treeName, |
|
|
const std::string & |
tDir = "" , |
|
|
const std::string & |
stream = "" |
|
) |
| |
|
protectedinherited |
Simplify the retrieval of registered TTrees.
Definition at line 378 of file AthHistogramming.cxx.
384 TreeMap_t::const_iterator
it =
m_treeMap.find( treeHash );
389 std::string treeNameCopy =
treeName;
390 std::string tDirCopy = tDir;
391 std::string streamCopy =
stream;
394 std::string bookingString(
"");
397 TTree* treePointer(NULL);
398 if ( !((
histSvc()->
getTree(bookingString, treePointer)).isSuccess()) )
400 m_msg << MSG::WARNING
401 <<
"Problem retrieving the TTree with name " << treeNameCopy
402 <<
" in " <<
m_name <<
"... it doesn't exist, neither in the cached map nor in the THistSvc!"
403 <<
" Will return an NULL pointer... you have to handle it correctly!" <<
endmsg;
408 m_treeMap.insert(
m_treeMap.end(), std::pair< const hash_t, TTree* >( treeHash, treePointer ) );
◆ updateEvtStore()
void AthAnalysisAlgorithm::updateEvtStore |
( |
Gaudi::Details::PropertyBase & |
prop | ) |
|
|
protectedinherited |
◆ updateVHKA()
◆ writeMetadata()
void RatesAnalysisAlg::writeMetadata |
( |
| ) |
|
|
privateinherited |
Write to outpute tree (if any) the metadata needed downstream.
Definition at line 811 of file RatesAnalysisAlg.cxx.
824 std::vector<std::string> lowers;
826 std::vector<double> express;
833 lowers.push_back(trigger.second->getSeedName());
834 prescales.push_back(trigger.second->getPrescale() );
835 express.push_back(trigger.second->getPrescale(
true ) );
840 lowers.push_back(
"-");
842 express.push_back(-1);
847 lowers.push_back(
"-");
849 express.push_back(-1);
857 std::vector<int32_t> bunchGroups;
858 bunchGroups.reserve(16);
867 bunchGroups.push_back(
bg.bunches().size());
874 if (bunchGroups.size() == 0 || std::all_of(bunchGroups.begin(), bunchGroups.end(), [](
int i) { return i==0; })) {
887 std::string atlasProject =
std::getenv(
"AtlasProject");
888 std::string atlasVersion =
std::getenv(
"AtlasVersion");
◆ action
RatesEmulationExample.action |
◆ amiTool
RatesEmulationExample.amiTool |
◆ args
RatesEmulationExample.args |
◆ cfg
RatesEmulationExample.cfg |
◆ default
RatesEmulationExample.default |
◆ DoExpressRates
RatesEmulationExample.DoExpressRates |
◆ DoGlobalGroups
RatesEmulationExample.DoGlobalGroups |
◆ DoHistograms
RatesEmulationExample.DoHistograms |
◆ DoTriggerGroups
RatesEmulationExample.DoTriggerGroups |
◆ DoUniqueRates
RatesEmulationExample.DoUniqueRates |
◆ dset
RatesEmulationExample.dset |
◆ e34
RatesEmulationExample.e34 |
◆ ebw
RatesEmulationExample.ebw |
◆ EnableLumiExtrapolation
RatesEmulationExample.EnableLumiExtrapolation |
◆ EnhancedBiasRatesTool
RatesEmulationExample.EnhancedBiasRatesTool |
◆ EventPrintoutInterval
RatesEmulationExample.EventPrintoutInterval |
◆ fEff
RatesEmulationExample.fEff |
◆ Files
RatesEmulationExample.Files |
◆ flags
RatesEmulationExample.flags |
◆ float
RatesEmulationExample.float |
◆ help
RatesEmulationExample.help |
◆ histSvc
RatesEmulationExample.histSvc |
◆ int
RatesEmulationExample.int |
◆ IsMC
RatesEmulationExample.IsMC |
◆ m_activatedTriggers
std::unordered_set<RatesTrigger*> RatesAnalysisAlg::m_activatedTriggers |
|
privateinherited |
Triggers which were changed & hence need to be reset at the event end.
Definition at line 247 of file RatesAnalysisAlg.h.
◆ m_activeGroups
std::unordered_set<RatesGroup*> RatesAnalysisAlg::m_activeGroups |
|
privateinherited |
◆ m_autoTriggers
std::vector<std::string> RatesAnalysisAlg::m_autoTriggers |
|
privateinherited |
List of triggers which it is up to us to the algorithm to work out the pass/fail for.
Definition at line 251 of file RatesAnalysisAlg.h.
◆ m_bcidHist
TH1D* RatesAnalysisAlg::m_bcidHist |
|
privateinherited |
Histogram of the BCIDs distribution of the processing.
Definition at line 291 of file RatesAnalysisAlg.h.
◆ m_configSvc
◆ m_currentEventIsUnbiased
Gaudi::Property<bool> RatesAnalysisAlg::m_currentEventIsUnbiased |
|
privateinherited |
If the current event was triggered online by RDx or not.
Random seeded HLT chains must only see these
Definition at line 274 of file RatesAnalysisAlg.h.
◆ m_currentFile
TFile* AthAnalysisAlgorithm::m_currentFile {nullptr} |
|
privateinherited |
◆ m_detStore
◆ m_doExpressRates
Gaudi::Property<bool> RatesAnalysisAlg::m_doExpressRates {this, "DoExpressRates", false, "Calculate total rates for the express stream."} |
|
privateinherited |
◆ m_doGlobalGroups
Gaudi::Property<bool> RatesAnalysisAlg::m_doGlobalGroups {this, "DoGlobalGroups", false, "Calculate total rates for each trigger level."} |
|
privateinherited |
◆ m_doHistograms
Gaudi::Property<bool> RatesAnalysisAlg::m_doHistograms {this, "DoHistograms", true, "Switch on histogram output of rate vs. mu and position in train."} |
|
privateinherited |
◆ m_doneFirstEvent
bool AthAnalysisAlgorithm::m_doneFirstEvent {false} |
|
privateinherited |
◆ m_doTriggerGroups
Gaudi::Property<bool> RatesAnalysisAlg::m_doTriggerGroups {this, "DoTriggerGroups", false, "Calculate total rates for each group of triggers."} |
|
privateinherited |
◆ m_doUniqueRates
Gaudi::Property<bool> RatesAnalysisAlg::m_doUniqueRates {this, "DoUniqueRates", false, "Calculate unique rates for all chains (slow). Requires DoGlobalGroups=True too."} |
|
privateinherited |
◆ m_effMap
◆ m_enableLumiExtrapolation
Gaudi::Property<bool> RatesAnalysisAlg::m_enableLumiExtrapolation {this, "EnableLumiExtrapolation", true, "If false then no extrapolation in L, N_bunch or <mu> will be performed.."} |
|
privateinherited |
◆ m_enhancedBiasRatesTool
◆ m_eventCounter
uint32_t RatesAnalysisAlg::m_eventCounter |
|
privateinherited |
◆ m_evtStore
◆ m_existingTriggers
Map of triggers which we ask the TDT ChainGroup for the pass/fail.
Definition at line 253 of file RatesAnalysisAlg.h.
◆ m_expoScalingFactor
Gaudi::Property<double> RatesAnalysisAlg::m_expoScalingFactor {this, "ExpoScalingFactor", 0.1, "Optional. Exponential factor if using exponential-mu rates scaling."} |
|
privateinherited |
◆ m_expressGroupName
const std::string RatesAnalysisAlg::m_expressGroupName = "Express" |
|
privateinherited |
◆ m_expressTriggers
std::unordered_set<RatesTrigger*> RatesAnalysisAlg::m_expressTriggers |
|
privateinherited |
Triggers with non-zero express PS, used to print them at the end.
Definition at line 248 of file RatesAnalysisAlg.h.
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_globalGroups
std::unordered_map<std::string, std::unique_ptr<RatesGroup> > RatesAnalysisAlg::m_globalGroups |
|
privateinherited |
Big (master) groups which do the OR of the whole menu.
Definition at line 244 of file RatesAnalysisAlg.h.
◆ m_graphMap
◆ m_groups
std::unordered_map<std::string, std::unique_ptr<RatesGroup> > RatesAnalysisAlg::m_groups |
|
privateinherited |
◆ m_histMap
◆ m_histNamePostfix
std::string AthHistogramAlgorithm::m_histNamePostfix |
|
privateinherited |
◆ m_histNamePrefix
std::string AthHistogramAlgorithm::m_histNamePrefix |
|
privateinherited |
◆ m_histSvc
◆ m_histTitlePostfix
std::string AthHistogramAlgorithm::m_histTitlePostfix |
|
privateinherited |
◆ m_histTitlePrefix
std::string AthHistogramAlgorithm::m_histTitlePrefix |
|
privateinherited |
◆ m_hltChainIDGroup
std::vector<std::vector<std::string> > RatesAnalysisAlg::m_hltChainIDGroup |
|
privateinherited |
◆ m_inelasticCrossSection
Gaudi::Property<double> RatesAnalysisAlg::m_inelasticCrossSection {this, "InelasticCrossSection", 8e-26, "Inelastic cross section in units cm^2. Default 80 mb at 13 TeV."} |
|
privateinherited |
◆ m_inputMetaStore
◆ m_l1GroupName
const std::string RatesAnalysisAlg::m_l1GroupName = "L1" |
|
privateinherited |
◆ m_l1ItemID
std::vector<std::vector<std::string> > RatesAnalysisAlg::m_l1ItemID |
|
privateinherited |
◆ m_l2GroupName
const std::string RatesAnalysisAlg::m_l2GroupName = "HLT" |
|
privateinherited |
◆ m_lowerTrigger
std::unordered_map<std::string, std::string> RatesAnalysisAlg::m_lowerTrigger |
|
privateinherited |
◆ m_lowestPrescale
std::unordered_map<size_t, double> RatesAnalysisAlg::m_lowestPrescale |
|
privateinherited |
Lowest prescale within a CPS group, key is the hash of the CPS group name.
Definition at line 250 of file RatesAnalysisAlg.h.
◆ m_lumi
Gaudi::Property<float> RatesEmulationExample::m_lumi {this, "TargetLuminosity", 2e34, "Targer inst. luminosity, assuming full ring."} |
|
private |
◆ m_metadataTree
TTree* RatesAnalysisAlg::m_metadataTree |
|
privateinherited |
Used to write out some metadata needed by post-processing (e.g.
bunchgroup, lumi)
Definition at line 293 of file RatesAnalysisAlg.h.
◆ m_msg
MsgStream AthHistogramming::m_msg |
|
privateinherited |
◆ m_name
std::string AthHistogramming::m_name |
|
privateinherited |
◆ m_outputMetaStore
◆ m_prefix
std::string AthHistogramAlgorithm::m_prefix |
|
privateinherited |
◆ m_prescalesJSON
Gaudi::Property<std::map<std::string, std::map<std::string, double> > > RatesAnalysisAlg::m_prescalesJSON {this, "PrescalesJSON", {}, "Optional JSON of prescales from the TrigMenuRuleBook to apply."} |
|
privateinherited |
◆ m_ratesDenominator
double RatesAnalysisAlg::m_ratesDenominator |
|
privateinherited |
How much walltime is seen by the algorithm.
This is what we need to normalise to.
Definition at line 286 of file RatesAnalysisAlg.h.
◆ m_rootDir
std::string AthHistogramAlgorithm::m_rootDir |
|
privateinherited |
◆ m_runNumber
uint32_t RatesAnalysisAlg::m_runNumber |
|
privateinherited |
◆ m_scalingHist
TH1D* RatesAnalysisAlg::m_scalingHist |
|
privateinherited |
One-bin histogram to store the normalisation of the sample, for use in later combinations.
Definition at line 290 of file RatesAnalysisAlg.h.
◆ m_scanTriggers
std::unordered_map<std::string, std::unique_ptr<RatesScanTrigger> > RatesAnalysisAlg::m_scanTriggers |
|
privateinherited |
◆ m_streamName
std::string AthHistogramming::m_streamName |
|
privateinherited |
◆ m_targetBunches
double RatesAnalysisAlg::m_targetBunches |
|
privateinherited |
◆ m_targetLumi
double RatesAnalysisAlg::m_targetLumi |
|
privateinherited |
What instantaneous luminosity the prediction is targeting.
Definition at line 284 of file RatesAnalysisAlg.h.
◆ m_targetMu
double RatesAnalysisAlg::m_targetMu |
|
privateinherited |
◆ m_tdt
◆ m_treeMap
◆ m_triggers
std::unordered_map<std::string, std::unique_ptr<RatesTrigger> > RatesAnalysisAlg::m_triggers |
|
privateinherited |
◆ m_uniqueGroups
std::unordered_map<std::string, std::unique_ptr<RatesGroup> > RatesAnalysisAlg::m_uniqueGroups |
|
privateinherited |
◆ m_useBunchCrossingData
Gaudi::Property<bool> RatesAnalysisAlg::m_useBunchCrossingData {this, "UseBunchCrossingData", true, "BunchCrossing data requires CONDBR2 access. Can be disabled here if this is a problem."} |
|
privateinherited |
◆ m_varHandleArraysDeclared
◆ m_vetoStartOfTrain
Gaudi::Property<uint32_t> RatesAnalysisAlg::m_vetoStartOfTrain {this, "VetoStartOfTrain", 0, "How many BCID to veto at the start of a bunch train."} |
|
privateinherited |
◆ m_vhka
◆ m_weightedEventCounter
double RatesAnalysisAlg::m_weightedEventCounter |
|
privateinherited |
◆ m_weightingValues
Possible weighting & lumi extrapolation values for the current event.
Definition at line 295 of file RatesAnalysisAlg.h.
◆ MCCrossSection
RatesEmulationExample.MCCrossSection |
◆ MCFilterEfficiency
RatesEmulationExample.MCFilterEfficiency |
◆ MCIgnoreGeneratorWeights
RatesEmulationExample.MCIgnoreGeneratorWeights |
◆ MCKFactor
RatesEmulationExample.MCKFactor |
◆ nargs
RatesEmulationExample.nargs |
◆ OutputLevel
RatesEmulationExample.OutputLevel |
◆ parser
RatesEmulationExample.parser |
◆ rates
RatesEmulationExample.rates |
◆ RunNumber
RatesEmulationExample.RunNumber |
◆ sc
◆ str
RatesEmulationExample.str |
◆ TargetLuminosity
RatesEmulationExample.TargetLuminosity |
◆ TrigConfigSvc
RatesEmulationExample.TrigConfigSvc |
◆ TrigDecisionTool
RatesEmulationExample.TrigDecisionTool |
◆ type
RatesEmulationExample.type |
◆ useBunchCrossingData
RatesEmulationExample.useBunchCrossingData |
◆ UseBunchCrossingData
RatesEmulationExample.UseBunchCrossingData |
◆ VetoStartOfTrain
RatesEmulationExample.VetoStartOfTrain |
◆ withDetails
RatesEmulationExample.withDetails |
◆ xsec
RatesEmulationExample.xsec |
The documentation for this class was generated from the following files:
std::string m_rootDir
Name of the ROOT directory.
def retrieve(aClass, aKey=None)
JetConstituentVector::iterator iterator
const ptree & data() const
Access to the underlying data, if needed.
void printStatistics() const
Print some extra statistics on events processed.
const ServiceHandle< ITHistSvc > & histSvc() const
The standard THistSvc (for writing histograms and TTrees and more to a root file) Returns (kind of) a...
const ServiceHandle< ITHistSvc > & histSvc() const
The standard THistSvc (for writing histograms and TTrees and more to a root file) Returns (kind of) a...
const std::string m_expressGroupName
std::string replace(std::string s, const std::string &s2, const std::string &s3)
StatusCode populateTriggers()
Register all triggers to emulate.
uint32_t m_runNumber
What is the RunNumber.
void myReplace(std::string &str, const std::string &oldStr, const std::string &newStr)
Helper method to replace sub-string.
double m_eventLiveTime
How much wall-time at P1 did this event represent.
Used to calculate a rate scan as a function of some threshold value.
MsgStream m_msg
Cached Message Stream.
ToolHandle< Trig::TrigDecisionTool > m_tdt
HistMap_t m_histMap
The map of histogram names to their pointers.
virtual StatusCode endInputFile()
Function called as an input file is being closed.
StatusCode newTrigger(const std::string &name, const double prescale=1., const double expressPrescale=-1., const std::string &seedName="", const double seedPrecale=1., const std::string &groups="", const Method_t method=kMANUAL, const ExtrapStrat_t extrapolation=kLINEAR)
Version of newTrigger which accepts a set of group names rather than a comma separated string.
void removeFromGroup(const RatesTrigger *toRemove)
Remove a trigger from this group.
Gaudi::Property< bool > m_enableLumiExtrapolation
std::unordered_map< std::string, std::string > m_lowerTrigger
Map of triggers lower chain, to tell if a HLT trigger ran or not.
virtual StatusCode ratesExecute()=0
To be implemented by the user.
virtual StatusCode firstExecute()
Function called when first execute is encountered user can read event information with evtStore()
ServiceHandle< ITHistSvc > m_histSvc
Default constructor: AthHistogramAlgorithm();.
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
std::string find(const std::string &s)
return a remapped string
StatusCode book(const TH1 &hist, const std::string &tDir="", const std::string &stream="")
Simplify the booking and registering (into THistSvc) of histograms.
std::unordered_map< std::string, std::unique_ptr< RatesScanTrigger > > m_scanTriggers
All individual rates-scan triggers (L1 or HLT)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
StatusCode checkGotTDT()
Internal check that the TDT is fetched.
StatusCode newScanTrigger(const std::string &name, const double thresholdMin, const double thresholdMax, const uint32_t thresholdBins=100, const RatesScanTrigger::TriggerBehaviour_t behaviour=RatesScanTrigger::TriggerBehaviour_t::kTriggerBelowThreshold, const double prescale=1., const std::string &seedName="", const double seedPrecale=1., const Method_t method=kMANUAL, const ExtrapStrat_t extrapolation=kLINEAR)
Register a new threshold scan trigger which plots rate as a function of some dependent variable.
bool m_isUnbiased
If the event was taken online with a RD trigger.
const std::string m_l2GroupName
void setUseCachedWeights(const bool i)
Set to use cached weights from the Master group (need ptr to m_masterGroup)
float round(const float toRound, const unsigned int decimals)
ServiceHandle< StoreGateSvc > m_inputMetaStore
Object accessing the input metadata store.
TH1D * m_bcidHist
Histogram of the BCIDs distribution of the processing.
double m_eventLumi
The instantaneous lumi in cm-2s-1.
ToolHandle< IEnhancedBiasWeighter > m_enhancedBiasRatesTool
virtual StatusCode ratesInitialize()=0
To be implemented by the user.
const std::string print()
Gaudi::Property< double > m_expoScalingFactor
const HLTPrescale & prescale_express(const std::string &chainName) const
HLT prescales by chain names.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::unordered_map< std::string, std::unique_ptr< RatesGroup > > m_groups
All regular and CPS groups.
std::vector< SG::VarHandleKeyArray * > m_vhka
double m_ratesDenominator
How much walltime is seen by the algorithm.
double m_linearLumiFactor
What weight needs to be applied to extrapolate rates linear in mu and bunches.
uint32_t m_distanceInTrain
How far into the bunch train the event was, in bunch crossings.
bool msgLvl(const MSG::Level lvl) const
Gaudi::Property< bool > m_doUniqueRates
std::unordered_map< std::string, std::unique_ptr< RatesGroup > > m_globalGroups
Big (master) groups which do the OR of the whole menu.
double m_targetMu
What pileup level the prediction is targeting.
const ServiceHandle< StoreGateSvc > & inputMetaStore() const
Const accessor for the input metadata store.
std::vector< std::string > m_autoTriggers
List of triggers which it is up to us to the algorithm to work out the pass/fail for.
#define ATH_MSG_VERBOSE(x)
Gaudi::Property< float > m_lumi
std::string m_histNamePostfix
The postfix for the histogram THx name.
@ kEXISTING
The pass/fail decision is taken from the Trigger Decision Tool for an existing trigger.
std::string getTree(const std::string &file_name)
void setUniqueGroup(const RatesGroup *unique)
If I have a group which is calculating my unique rate.
ExtrapStrat_t
Extrapolation strategy to apply to each emulated trigger.
void setTargetMuBunches(const double mu, const int32_t bunches)
Set the target mu and number of bunches.
Gaudi::Property< std::map< std::string, std::map< std::string, double > > > m_prescalesJSON
@ kAUTO
The pass/fail decision is automatically emulated per event based on decoding the trigger name.
virtual void setOwner(IDataHandleHolder *o)=0
double m_weightedEventCounter
Count how many weighted events were processed.
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.
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
double m_enhancedBiasWeight
A property of the event derived from online enhanced bias prescales.
StatusCode executeTriggerEmulation()
Internal call to get the pass/fail for all automatically emulated triggers.
void setSeedsFromRandom(const bool i)
Set if this trigger is to behave as if it seeds from a random L1 item.
msgSvc
Provide convenience handles for various services.
const HLTPrescale & prescale(const std::string &chainName) const
HLT prescales by chain names.
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)
TTree * m_metadataTree
Used to write out some metadata needed by post-processing (e.g.
double m_targetBunches
How many bunches the prediction is targeting.
void setTargetLumiBunches(const double lumi, const int32_t bunches)
Set the target instantaneous luminosity and number of bunches.
RatesAnalysisAlg(const std::string &name, ISvcLocator *pSvcLocator)
bool isCPS(const std::string &group) const
String match coherent prescale groups.
std::unordered_map< std::string, std::unique_ptr< RatesGroup > > m_uniqueGroups
Groups used to obtain unique rates for chains.
WeightingValuesSummary_t m_weightingValues
Possible weighting & lumi extrapolation values for the current event.
StatusCode addExisting(const std::string &pattern)
Register some existing triggers based on wild-card match, e.g.
double m_expoMuFactor
What weight needs to be applied to extrapolate rates linear in bunches and exponential in mu.
size_t getCPSID() const
Get the hash of my CPS group name.
@ kMANUAL
The pass/fail decision is evaluated by the user and supplied per event using setTriggerDesicison.
Gaudi::Property< bool > m_doHistograms
virtual StatusCode metaDataStop()
Function called before finalize user can read output metadata from outputMetaStore()
GraphMap_t m_graphMap
The map of TGraph names to their pointers.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
std::string m_streamName
Name of the ROOT output stream (file)
void removeOtherL1(const RatesTrigger *toKeep)
Remove from the groups mapping all triggers which have a dissimilar seed to the supplied trigger.
std::unordered_set< RatesGroup * > m_activeGroups
All groups which are enabled (PS >= 1)
uint32_t hash_t
typedef for the internal hash
uint64_t crc64(const CRCTable &table, const char *data, size_t data_len)
Find the CRC-64 of a string,.
void printTarget() const
Print the target instantaneous luminosity, mu and number of bunches.
bool isRandomSeed(const std::string &me, const std::string &seed) const
String match random L1 items.
constexpr static uint32_t FULL_RING
Number of bunches in a full ring.
std::string m_histTitlePostfix
The postfix for the histogram THx title.
bool getDisabled() const
If I or my seed were prescaled out.
virtual void renounce()=0
double m_bunchFactor
What weight needs to be applied to extrapolate rates linear in number of bunches.
Forward iterator over an iterable of type V returning an object of type T.
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
const std::vector< BunchGroup > & bunchGroups() const
std::unordered_set< RatesTrigger * > m_activatedTriggers
Triggers which were changed & hence need to be reset at the event end.
Gaudi::Property< bool > m_doExpressRates
static bool isZero(double v)
constexpr static double LHC_FREQUENCY
std::string to_string(const DetectorType &type)
TH1D * m_scalingHist
One-bin histogram to store the normalisation of the sample, for use in later combinations.
hash_t hash(const std::string &histName) const
Method to calculate a 32-bit hash from a string.
void setTargetLumi(const double lumi)
Set the target instantaneous luminosity.
StatusCode executeTrigDecisionToolTriggers()
Internal call to get the pass/fail for all TDT triggers.
def getHist(name, makehist)
virtual StatusCode sysInitialize()
Initialization method invoked by the framework.
void setUniqueTrigger(RatesTrigger *trigger)
Set trigger I am doing unique rates for.
Class describing the basic event information.
StatusCode checkExistingTrigger(const std::string &name, const std::string &seedName)
Internal function to check if a supplied HLT trigger and L1 seed match what is stored in the AOD conf...
void writeMetadata()
Write to outpute tree (if any) the metadata needed downstream.
std::uint64_t hash64(const void *data, std::size_t size)
Passthrough to XXH3_64bits.
std::unordered_map< std::string, std::unique_ptr< RatesTrigger > > m_triggers
All individual triggers (L1 or HLT)
uint32_t getLevel(const std::string &name) const
String match to a trigger level.
DataObjIDColl m_extendedExtraObjects
virtual StatusCode beginInputFile()
Function called when a new input file is opened user can read input metadata from inputMetaStore()
ServiceHandle< TrigConf::ITrigConfigSvc > m_configSvc
void printInputSummary() const
Print the input data instantaneous luminosity, mu and number of bunches.
EffMap_t m_effMap
The map of histogram names to their pointers.
std::string getenv(const std::string &variableName)
get an environment variable
std::string m_histTitlePrefix
The prefix for the histogram THx title.
const std::string m_l1GroupName
def time(flags, cells_name, *args, **kw)
#define ATH_MSG_WARNING(x)
std::unordered_map< size_t, double > m_lowestPrescale
Lowest prescale within a CPS group, key is the hash of the CPS group name.
std::vector< std::vector< std::string > > m_l1ItemID
TreeMap_t m_treeMap
The map of TTree names to their pointers.
std::string m_histNamePrefix
The prefix for the histogram THx name.
const std::map< std::string, L1Prescale > & prescales() const
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual StatusCode ratesFinalize()=0
To be implemented by the user.
TH1 * hist(const std::string &histName, const std::string &tDir="", const std::string &stream="")
Simplify the retrieval of registered histograms of any type.
std::unordered_map< std::string, const Trig::ChainGroup * > m_existingTriggers
Map of triggers which we ask the TDT ChainGroup for the pass/fail.
ServiceHandle< ITHistSvc > m_histSvc
Pointer to the THistSvc (event store by default)
Gaudi::Property< uint32_t > m_vetoStartOfTrain
double m_muFactor
What weight needs to be applied to extrapolate rates linear in mu.
ServiceHandle< StoreGateSvc > m_outputMetaStore
Object accessing the output metadata store.
Gaudi::Property< bool > m_doTriggerGroups
Gaudi::Property< bool > m_useBunchCrossingData
std::string m_name
Instance name.
double m_targetLumi
What instantaneous luminosity the prediction is targeting.
uint32_t m_eventCounter
Count how many events processed.
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
StatusCode setTriggerDesicison(const std::string &name, const bool triggerIsPassed=true, const bool triggerIsActive=true)
Set the pass/fail decision for an item.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Gaudi::Property< double > m_inelasticCrossSection
Gaudi::Property< bool > m_doGlobalGroups
std::vector< std::vector< std::string > > m_hltChainIDGroup
bool isZero(double v) const
Helper function for floating point subtraction.
static std::string retrieveMetadata(const std::string &folder, const std::string &key, const ServiceHandle< StoreGateSvc > &inputMetaStore)
method that always returns as a string you can use from, e.g, pyROOT with evt = ROOT....
void buildBookingString(std::string &bookingString, std::string &histName, std::string &tDir, std::string &stream, bool usePrefixPostfix=false)
Method to build individual booking string.
void duplicateChildren(const RatesGroup *toDuplicate)
Copy in triggers from another group.
TH1 * bookGetPointer(const TH1 &hist, const std::string &tDir="", const std::string &stream="")
Simplify the booking and registering (into THistSvc) of histograms.
@ kNONE
Do not scale this trigger for changes in luminosity.
std::unordered_set< RatesTrigger * > m_expressTriggers
Triggers with non-zero express PS, used to print them at the end.
double m_eventMu
The actual number of interactions in the event.