Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
#include <TrigEgammaMonitorAnalysisAlgorithm.h>
|
enum | Environment_t {
Environment_t::user = 0,
Environment_t::online,
Environment_t::tier0,
Environment_t::tier0Raw,
Environment_t::tier0ESD,
Environment_t::AOD,
Environment_t::altprod
} |
| Specifies the processing environment. More...
|
|
enum | DataType_t {
DataType_t::userDefined = 0,
DataType_t::monteCarlo,
DataType_t::collisions,
DataType_t::cosmics,
DataType_t::heavyIonCollisions
} |
| Specifies what type of input data is being monitored. More...
|
|
|
| TrigEgammaMonitorAnalysisAlgorithm (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual | ~TrigEgammaMonitorAnalysisAlgorithm () override |
|
virtual StatusCode | initialize () override |
| initialize More...
|
|
virtual StatusCode | fillHistograms (const EventContext &) const override |
| adds event to the monitoring histograms More...
|
|
virtual StatusCode | execute (const EventContext &ctx) const override |
| Applies filters and trigger requirements. More...
|
|
void | fill (const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const |
| Fills a vector of variables to a group by reference. More...
|
|
void | fill (const ToolHandle< GenericMonitoringTool > &groupHandle, const std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &variables) const |
| Fills a vector of variables to a group by reference. More...
|
|
template<typename... T> |
void | fill (const ToolHandle< GenericMonitoringTool > &groupHandle, T &&... variables) const |
| Fills a variadic list of variables to a group by reference. More...
|
|
void | fill (const std::string &groupName, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const |
| Fills a vector of variables to a group by name. More...
|
|
void | fill (const std::string &groupName, const std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &variables) const |
| Fills a vector of variables to a group by name. More...
|
|
template<typename... T> |
void | fill (const std::string &groupName, T &&... variables) const |
| Fills a variadic list of variables to a group by name. More...
|
|
Environment_t | environment () const |
| Accessor functions for the environment. More...
|
|
Environment_t | envStringToEnum (const std::string &str) const |
| Convert the environment string from the python configuration to an enum object. More...
|
|
DataType_t | dataType () const |
| Accessor functions for the data type. More...
|
|
DataType_t | dataTypeStringToEnum (const std::string &str) const |
| Convert the data type string from the python configuration to an enum object. More...
|
|
const ToolHandle< GenericMonitoringTool > & | getGroup (const std::string &name) const |
| Get a specific monitoring tool from the tool handle array. More...
|
|
const ToolHandle< Trig::TrigDecisionTool > & | getTrigDecisionTool () const |
| Get the trigger decision tool member. More...
|
|
bool | trigChainsArePassed (const std::vector< std::string > &vTrigNames) const |
| Check whether triggers are passed. More...
|
|
SG::ReadHandle< xAOD::EventInfo > | GetEventInfo (const EventContext &) const |
| Return a ReadHandle for an EventInfo object (get run/event numbers, etc.) More...
|
|
virtual float | lbAverageInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the average mu, i.e. More...
|
|
virtual float | lbInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate instantaneous number of interactions, i.e. More...
|
|
virtual float | lbAverageLuminosity (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1). More...
|
|
virtual float | lbLuminosityPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the instantaneous luminosity per bunch crossing. More...
|
|
virtual double | lbDuration (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the duration of the luminosity block (in seconds) More...
|
|
virtual float | lbAverageLivefraction (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the average luminosity livefraction. More...
|
|
virtual float | livefractionPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the live fraction per bunch crossing ID. More...
|
|
virtual double | lbLumiWeight (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the average integrated luminosity multiplied by the live fraction. More...
|
|
virtual StatusCode | parseList (const std::string &line, std::vector< std::string > &result) const |
| Parse a string into a vector. More...
|
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual bool | isClonable () const override |
| Specify if the algorithm is clonable. More...
|
|
virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
|
virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
virtual bool | filterPassed (const EventContext &ctx) const |
|
virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
|
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 | fillLabel (const ToolHandle< GenericMonitoringTool > &groupHandle, const std::string &histname, const std::string &label) const |
|
void | fillEfficiencies (const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * > > &, const TrigInfo &, const bool) const |
|
void | fillDistributions (const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * > > &, const TrigInfo &) const |
|
void | fillResolutions (const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * >> &pairObjs, const TrigInfo &info) const |
| ***********************************************************************************************************************8 More...
|
|
void | fillInefficiency (const std::string &pidword, const TrigInfo &info, const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * >> &pairObjs, const std::vector< asg::AcceptData > &acceptObjs) const |
|
const std::map< std::string, TrigInfo > & | getTrigInfoMap () |
| Helper methods. More...
|
|
bool | ApplyElectronPid (const xAOD::Electron *eg, const std::string &) const |
| Get offline electron decision. More...
|
|
bool | ApplyPhotonPid (const xAOD::Photon *eg, const std::string &) const |
| Get offline electron decision. More...
|
|
const ToolHandle< Trig::TrigDecisionTool > & | tdt () const |
| Get the TDT
More...
|
|
const ToolHandle< TrigEgammaMatchingToolMT > & | match () const |
| Get the e/g match tool. More...
|
|
asg::AcceptData | setAccept (const TrigCompositeUtils::Decision *, const TrigInfo &, const bool) const |
| Set the accept object for all trigger levels. More...
|
|
TrigInfo | getTrigInfo (const std::string &) const |
| Get the trigger info parsed from the chain name (only single lepton triggers) More...
|
|
float | dR (const float, const float, const float, const float) const |
| Get delta R. More...
|
|
std::string | getL1Item (const std::string &trigger) const |
| Creates static map to return L1 item from trigger name. More...
|
|
bool | isIsolated (const xAOD::Electron *, const std::string &) const |
| Check if electron fulfils isolation criteria. More...
|
|
bool | isPrescaled (const std::string &) const |
| Check if the event is prescaled. More...
|
|
void | setTrigInfo (const std::string &) |
| Set the trigger info parsed from the chain name. More...
|
|
bool | isHLTTruncated () const |
|
float | getEta2 (const xAOD::Egamma *eg) const |
| Features helper. More...
|
|
float | getEt (const xAOD::Electron *eg) const |
|
float | getEtCluster37 (const xAOD::Egamma *eg) const |
|
float | getDEmaxs1 (const xAOD::Egamma *eg) const |
|
float | rTRT (const xAOD::Electron *eg) const |
|
float | getSigmaD0 (const xAOD::Electron *eg) const |
|
float | getD0sig (const xAOD::Electron *eg) const |
|
float | getEnergyBE0 (const xAOD::Egamma *eg) const |
|
float | getEnergyBE1 (const xAOD::Egamma *eg) const |
|
float | getEnergyBE2 (const xAOD::Egamma *eg) const |
|
float | getEnergyBE3 (const xAOD::Egamma *eg) const |
|
float | getEaccordion (const xAOD::Egamma *eg) const |
|
float | getE0Eaccordion (const xAOD::Egamma *eg) const |
|
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...
|
|
|
ToolHandle< TrigEgammaMatchingToolMT > | m_matchTool |
|
ToolHandle< Trig::TrigEgammaEmulationToolMT > | m_emulatorTool |
|
ToolHandleArray< IAsgElectronIsEMSelector > | m_electronIsEMTool {this,"ElectronIsEMSelector",{}} |
| Offline isEM Selectors. More...
|
|
ToolHandleArray< IAsgElectronLikelihoodTool > | m_electronLHTool {this,"ElectronLikelihoodTool",{}} |
| Offline LH Selectors. More...
|
|
ToolHandleArray< IAsgElectronLikelihoodTool > | m_electronDNNTool { this, "ElectronDNNSelectorTool", {},"DNN tools" } |
| Offline DNN Selectors. More...
|
|
ToolHandleArray< IAsgPhotonIsEMSelector > | m_photonIsEMTool {this,"PhotonIsEMSelector",{}} |
| Offline isEM Photon Selectors. More...
|
|
Gaudi::Property< bool > | m_doEmulation {this, "DoEmulation", false } |
| Do emulation. More...
|
|
Gaudi::Property< bool > | m_tp {this, "TPTrigger", false } |
| TP Trigger Analysis. More...
|
|
Gaudi::Property< std::string > | m_defaultProbePidElectron {this, "DefaultProbeSelectionElectron", "lhloose"} |
| default probe pid for electron trigitems that don't have pid in their name More...
|
|
Gaudi::Property< std::string > | m_defaultProbePidPhoton {this, "DefaultProbeSelectionPhoton", "loose"} |
| default probe pid for photon trigitems that don't have pid in their name More...
|
|
Gaudi::Property< std::vector< std::string > > | m_isemname {this, "isEMResultNames", {} } |
| isem names More...
|
|
Gaudi::Property< std::vector< std::string > > | m_lhname {this, "LHResultNames", {} } |
| lh names More...
|
|
Gaudi::Property< std::vector< std::string > > | m_dnnname {this, "DNNResultNames", {}, } |
| dnn names More...
|
|
Gaudi::Property< bool > | m_detailedHists {this, "DetailedHistograms", false} |
| Include more detailed histograms. More...
|
|
asg::AcceptInfo | m_accept |
|
ToolHandleArray< GenericMonitoringTool > | m_tools {this,"GMTools",{}} |
| Array of Generic Monitoring Tools. More...
|
|
PublicToolHandle< Trig::TrigDecisionTool > | m_trigDecTool {this, "TrigDecisionTool",""} |
| Tool to tell whether a specific trigger is passed. More...
|
|
ToolHandleArray< IDQFilterTool > | m_DQFilterTools {this,"FilterTools",{}} |
| Array of Data Quality filter tools. More...
|
|
SG::ReadCondHandleKey< LuminosityCondData > | m_lumiDataKey {this,"LuminosityCondDataKey","LuminosityCondData","SG Key of LuminosityCondData object"} |
|
SG::ReadCondHandleKey< LBDurationCondData > | m_lbDurationDataKey {this,"LBDurationCondDataKey","LBDurationCondData","SG Key of LBDurationCondData object"} |
|
SG::ReadCondHandleKey< TrigLiveFractionCondData > | m_trigLiveFractionDataKey {this,"TrigLiveFractionCondDataKey","TrigLiveFractionCondData", "SG Key of TrigLiveFractionCondData object"} |
|
AthMonitorAlgorithm::Environment_t | m_environment |
| Instance of the Environment_t enum. More...
|
|
AthMonitorAlgorithm::DataType_t | m_dataType |
| Instance of the DataType_t enum. More...
|
|
Gaudi::Property< std::string > | m_environmentStr {this,"Environment","user"} |
| Environment string pulled from the job option and converted to enum. More...
|
|
Gaudi::Property< std::string > | m_dataTypeStr {this,"DataType","userDefined"} |
| DataType string pulled from the job option and converted to enum. More...
|
|
Gaudi::Property< std::string > | m_triggerChainString {this,"TriggerChain",""} |
| Trigger chain string pulled from the job option and parsed into a vector. More...
|
|
std::vector< std::string > | m_vTrigChainNames |
| Vector of trigger chain names parsed from trigger chain string. More...
|
|
Gaudi::Property< std::string > | m_fileKey {this,"FileKey",""} |
| Internal Athena name for file. More...
|
|
Gaudi::Property< bool > | m_useLumi {this,"EnableLumi",false} |
| Allows use of various luminosity functions. More...
|
|
Gaudi::Property< float > | m_defaultLBDuration {this,"DefaultLBDuration",60.} |
| Default duration of one lumi block. More...
|
|
Gaudi::Property< int > | m_detailLevel {this,"DetailLevel",0} |
| Sets the level of detail used in the monitoring. More...
|
|
SG::ReadHandleKey< xAOD::EventInfo > | m_EventInfoKey {this,"EventInfoKey","EventInfo"} |
| Key for retrieving EventInfo from StoreGate. More...
|
|
|
void | fillEfficiency (const std::string &subgroup, const std::string &level, const std::string &pidword, const TrigInfo &info, const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * >> &pairObjs, const std::vector< asg::AcceptData > &acceptObjs, const std::string &dirname) const |
|
void | fillL1Calo (const std::string &trigger, const std::vector< const xAOD::EmTauRoI * > &l1_vec) const |
|
void | fillL1eEM (const std::string &trigger, const std::vector< const xAOD::eFexEMRoI * > &l1_vec) const |
|
void | fillL2Calo (const std::string &trigger, const std::vector< const xAOD::TrigEMCluster * > &emCluster_vec) const |
|
void | fillL2Electron (const std::string &trigger, const std::vector< const xAOD::TrigElectron * > &el_vec) const |
|
void | fillL2Photon (const std::string &trigger, const std::vector< const xAOD::TrigPhoton * > &eg_vec) const |
|
void | fillEFCalo (const std::string &trigger, const std::vector< const xAOD::CaloCluster * > &clus_vec) const |
|
void | fillShowerShapes (const std::string &trigger, const std::vector< const xAOD::Egamma * > &eg_vec, bool online) const |
|
void | fillTracking (const std::string &trigger, const std::vector< const xAOD::Electron * > &eg_vec, bool online) const |
|
void | fillL1CaloResolution (const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma *, const xAOD::EmTauRoI * >> &pairObjs) const |
|
void | fillL1CaloAbsResolution (const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma *, const xAOD::EmTauRoI * >> &pairObjs) const |
|
void | fillL2CaloResolution (const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * >> &pairObjs) const |
|
void | fillHLTElectronResolution (const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * >> &pairObjs, const TrigInfo &info) const |
|
void | fillHLTPhotonResolution (const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * >> &pairObjs, const TrigInfo &info) const |
|
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...
|
|
◆ MonVarVec_t
◆ StoreGateSvc_t
◆ DataType_t
Specifies what type of input data is being monitored.
An enumeration of the different types of data the monitoring application may be running over. This can be used to select which histograms to produce, e.g. to prevent the production of colliding-beam histograms when running on cosmic-ray data. Strings of the same names may be given as jobOptions.
Enumerator |
---|
userDefined | |
monteCarlo | |
collisions | |
cosmics | |
heavyIonCollisions | |
Definition at line 191 of file AthMonitorAlgorithm.h.
◆ Environment_t
Specifies the processing environment.
The running environment may be used to select which histograms are produced, and where they are located in the output. For example, the output paths of the histograms are different for the "user", "online" and the various offline flags. Strings of the same names may be given as jobOptions.
Enumerator |
---|
user | |
online | |
tier0 | |
tier0Raw | |
tier0ESD | |
AOD | |
altprod | |
Definition at line 172 of file AthMonitorAlgorithm.h.
◆ TrigEgammaMonitorAnalysisAlgorithm()
TrigEgammaMonitorAnalysisAlgorithm::TrigEgammaMonitorAnalysisAlgorithm |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~TrigEgammaMonitorAnalysisAlgorithm()
TrigEgammaMonitorAnalysisAlgorithm::~TrigEgammaMonitorAnalysisAlgorithm |
( |
| ) |
|
|
overridevirtual |
◆ ApplyElectronPid()
Get offline electron decision.
Definition at line 49 of file TrigEgammaMonitorBaseAlgorithm.cxx.
51 const auto& ctx = Gaudi::Hive::currentContext() ;
52 if (pidname ==
"tight"){
55 else if (pidname ==
"medium"){
58 else if (pidname ==
"loose"){
61 else if (pidname ==
"lhtight"){
64 else if (pidname ==
"lhmedium"){
67 else if (pidname ==
"lhloose"){
70 else if (pidname ==
"lhvloose"){
73 else if (pidname ==
"dnntight"){
76 else if (pidname ==
"dnnmedium"){
79 else if (pidname ==
"dnnloose"){
◆ ApplyPhotonPid()
bool TrigEgammaMonitorBaseAlgorithm::ApplyPhotonPid |
( |
const xAOD::Photon * |
eg, |
|
|
const std::string & |
pidname |
|
) |
| const |
|
protectedinherited |
Get offline electron decision.
Definition at line 91 of file TrigEgammaMonitorBaseAlgorithm.cxx.
93 const auto& ctx = Gaudi::Hive::currentContext() ;
94 if (pidname ==
"tight"){
97 else if (pidname ==
"medium"){
100 else if (pidname ==
"loose"){
◆ cardinality()
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Override this to return 0 for reentrant algorithms.
Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.
◆ dataType()
DataType_t AthMonitorAlgorithm::dataType |
( |
| ) |
const |
|
inlineinherited |
Accessor functions for the data type.
- Returns
- the current value of the class's DataType_t instance.
Definition at line 221 of file AthMonitorAlgorithm.h.
◆ dataTypeStringToEnum()
Convert the data type string from the python configuration to an enum object.
- Returns
- a value in the DataType_t enumeration which matches the input string.
Definition at line 140 of file AthMonitorAlgorithm.cxx.
142 std::string lowerCaseStr =
str;
146 if( lowerCaseStr ==
"userdefined" ) {
148 }
else if( lowerCaseStr ==
"montecarlo" ) {
150 }
else if( lowerCaseStr ==
"collisions" ) {
152 }
else if( lowerCaseStr ==
"cosmics" ) {
154 }
else if( lowerCaseStr ==
"heavyioncollisions" ) {
157 ATH_MSG_WARNING(
"AthMonitorAlgorithm::dataTypeStringToEnum(): Unknown data type "
158 <<
str<<
", returning userDefined.");
◆ 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);
◆ 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.
◆ 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.
◆ 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()
◆ dR()
float TrigEgammaMonitorBaseAlgorithm::dR |
( |
const float |
eta1, |
|
|
const float |
phi1, |
|
|
const float |
eta2, |
|
|
const float |
phi2 |
|
) |
| const |
|
protectedinherited |
Get delta R.
Definition at line 292 of file TrigEgammaMonitorBaseAlgorithm.cxx.
294 float dphi = fabs(phi1 - phi2) < TMath::Pi() ? fabs(phi1 - phi2) : 2*TMath:: \
295 Pi() - fabs(phi1 - phi2);
296 return sqrt(deta*deta + dphi*dphi);
◆ environment()
Accessor functions for the environment.
- Returns
- the current value of the class's Environment_t instance.
Definition at line 205 of file AthMonitorAlgorithm.h.
◆ envStringToEnum()
Convert the environment string from the python configuration to an enum object.
- Returns
- a value in the Environment_t enumeration which matches the input string.
Definition at line 112 of file AthMonitorAlgorithm.cxx.
114 std::string lowerCaseStr =
str;
118 if( lowerCaseStr ==
"user" ) {
120 }
else if( lowerCaseStr ==
"online" ) {
122 }
else if( lowerCaseStr ==
"tier0" ) {
124 }
else if( lowerCaseStr ==
"tier0raw" ) {
126 }
else if( lowerCaseStr ==
"tier0esd" ) {
128 }
else if( lowerCaseStr ==
"aod" ) {
130 }
else if( lowerCaseStr ==
"altprod" ) {
133 ATH_MSG_WARNING(
"AthMonitorAlgorithm::envStringToEnum(): Unknown environment "
134 <<
str<<
", returning user.");
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode AthMonitorAlgorithm::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtualinherited |
Applies filters and trigger requirements.
Then, calls fillHistograms().
- Parameters
-
ctx | event context for reentrant Athena call |
- Returns
- StatusCode
Definition at line 73 of file AthMonitorAlgorithm.cxx.
78 if (!filterItr->accept()) {
80 return StatusCode::SUCCESS;
87 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()
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.
◆ fillDistributions()
Definition at line 420 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
424 const std::string trigger =
info.trigger;
426 unsigned int condition=TrigDefs::Physics;
429 std::vector<const xAOD::Egamma*> eg_vec;
430 std::vector<const xAOD::Electron*> el_vec;
431 for(
auto pairObj: pairObjs )
433 eg_vec.push_back(pairObj.first);
436 el_vec.push_back(elOff);
450 std::vector<const xAOD::EmTauRoI*> l1_vec;
451 for(
auto &initRoi: initRois ){
452 if( !initRoi.link.isValid() )
continue;
453 const auto *feat =
match()->getL1Feature( initRoi.source );
454 if(feat) l1_vec.push_back(feat);
458 std::vector<const xAOD::eFexEMRoI*> l1_vec;
459 for(
auto &initRoi: initRois ){
460 if( !initRoi.link.isValid() )
continue;
461 const auto *feat =
match()->getL1eEMFeature( initRoi.source );
462 if(feat) l1_vec.push_back(feat);
472 std::vector<const xAOD::TrigEMCluster*> emCluster_vec;
474 for(
auto &featLinkInfo :
vec ){
475 if(! featLinkInfo.isValid() )
continue;
476 const auto *feat = *(featLinkInfo.link);
478 emCluster_vec.push_back(feat);
484 std::string
key =
match()->key(
"PrecisionCalo_Electron");
485 if(
info.signature ==
"Photon")
key =
match()->key(
"PrecisionCalo_Photon");
489 std::vector<const xAOD::CaloCluster* > clus_vec;
491 for(
auto &featLinkInfo :
vec ){
492 if(! featLinkInfo.isValid() )
continue;
493 const auto *feat = *(featLinkInfo.link);
495 clus_vec.push_back(feat);
500 if (
info.signature ==
"Electron" ){
504 std::string
key =
match()->key(
"FastElectrons");
507 std::vector<const xAOD::TrigElectron*> el_vec;
510 for(
auto &featLinkInfo :
vec ){
511 if(! featLinkInfo.isValid() )
continue;
512 const auto *feat = *(featLinkInfo.link);
514 el_vec.push_back(feat);
520 std::string
key =
match()->key(
"Electrons_GSF");
524 std::vector<const xAOD::Electron*> el_vec;
525 std::vector<const xAOD::Egamma*> eg_vec;
527 for(
auto &featLinkInfo :
vec ){
528 if(! featLinkInfo.isValid() )
continue;
529 const auto *feat = *(featLinkInfo.link);
531 el_vec.push_back(feat);
532 eg_vec.push_back(feat);
537 }
else if (
info.signature ==
"Photon"){
540 std::string
key =
match()->key(
"FastPhotons");
541 std::vector<const xAOD::TrigPhoton*> ph_vec;
544 for(
auto &featLinkInfo :
vec ){
545 if(! featLinkInfo.isValid() )
continue;
546 const auto *feat = *(featLinkInfo.link);
548 ph_vec.push_back(feat);
555 std::vector<const xAOD::Egamma*> ph_vec;
557 for(
auto &featLinkInfo :
vec ){
558 if(! featLinkInfo.isValid() )
continue;
559 const auto *feat = *(featLinkInfo.link);
561 ph_vec.push_back(feat);
◆ fillEFCalo()
Definition at line 711 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
717 std::vector<float> energyBE0_vec, energyBE1_vec, energyBE2_vec, energyBE3_vec,
718 energy_vec, et_vec, eta_vec, phi_vec, eta_calo_vec, phi_calo_vec, highet_vec;
734 for (
const auto *clus : clus_vec )
736 double tmpeta = -999.;
739 double tmpphi = -999.;
750 eta_vec.push_back( clus->eta() );
751 phi_vec.push_back( clus->phi() );
752 eta_calo_vec.push_back( tmpeta );
753 phi_calo_vec.push_back( tmpphi );
758 fill(
monGroup, energyBE0_col, energyBE1_col, energyBE2_col, energyBE3_col,
759 energy_col, et_col, eta_col, phi_col, eta_calo_col, phi_calo_col, highet_col);
◆ fillEfficiencies()
Definition at line 42 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
46 std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pair_vec;
47 std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pair_iso_vec;
49 std::vector<asg::AcceptData> accept_vec;
50 std::vector<asg::AcceptData> accept_iso_vec;
52 std::vector<asg::AcceptData> emu_accept_vec;
53 std::vector<asg::AcceptData> emu_accept_iso_vec;
56 for(
auto pairObj : pairObjs ){
61 if(!((
passBits & TrigDefs::L1_isPassedAfterVeto) && ((
passBits & TrigDefs::EF_prescaled)==0))){
62 ATH_MSG_DEBUG(
"Prescaled trigger: " <<
info.trigger <<
" Skipping to normalize efficiencies");
67 if(
et <
info.etthr-5.0)
continue;
71 if(
et <
info.etthr-5.0)
continue;
75 bool pass_CaloIso = getIsolation_topoetcone20(pairObj.first)/getCluster_et(pairObj.first) < 0.065;
76 bool pass_trkIso = getIsolation_ptcone20(pairObj.first)/getCluster_et(pairObj.first) < 0.05;
78 if (!pass_CaloIso || !pass_trkIso){
93 emu_accept_vec.push_back( acceptData );
95 if( IsolatedDec(*pairObj.first) ){
96 emu_accept_iso_vec.push_back(acceptData);
102 pair_vec.push_back(pairObj);
104 accept_vec.push_back(acceptData);
106 if( IsolatedDec(*pairObj.first) ){
107 pair_iso_vec.push_back(pairObj);
108 accept_iso_vec.push_back(acceptData);
115 std::string
dirname=
"Efficiency";
116 std::string l2step =
"FastElectron";
117 if(
info.signature ==
"Electron" ){
118 l2step =
"FastElectron";
119 }
else if(
info.signature ==
"Photon" ){
120 l2step =
"FastPhoton";
◆ fillEfficiency()
Definition at line 156 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
164 const float etthr =
info.etthr;
165 const std::string trigger =
info.trigger;
168 std::vector<float> et_vec, highet_vec, pt_vec, eta_vec, phi_vec, avgmu_vec, npvtx_vec,et_slice0_vec,et_slice1_vec,et_slice2_vec,et_slice3_vec, ptvarcone20rel_vec, ptvarcone30rel_vec, z0_vec, d0_vec;
169 std::vector<float> match_et_vec, match_highet_vec, match_pt_vec, match_eta_vec, match_phi_vec, match_avgmu_vec, match_npvtx_vec, match_ptvarcone20rel_vec, match_ptvarcone30rel_vec, match_z0_vec, match_d0_vec;
170 std::vector<bool> et_passed_vec, et_failed_vec, highet_passed_vec, highet_failed_vec, pt_passed_vec, eta_passed_vec, eta_failed_vec, phi_passed_vec, avgmu_passed_vec, npvtx_passed_vec;
171 std::vector<bool> ptvarcone20rel_passed_vec, ptvarcone30rel_passed_vec, z0_passed_vec, d0_passed_vec;
172 std::vector<bool> et_slice0_passed_vec,et_slice1_passed_vec,et_slice2_passed_vec,et_slice3_passed_vec;
194 auto match_ptvarcone20rel_col =
Monitored::Collection(
"match_ptvarcone20rel" , match_ptvarcone20rel_vec );
195 auto match_ptvarcone30rel_col =
Monitored::Collection(
"match_ptvarcone30rel" , match_ptvarcone30rel_vec );
210 auto ptvarcone20rel_passed_col =
Monitored::Collection(
"ptvarcone20rel_passed" , ptvarcone20rel_passed_vec );
211 auto ptvarcone30rel_passed_col =
Monitored::Collection(
"ptvarcone30rel_passed" , ptvarcone30rel_passed_vec );
230 for(
auto pairObj : pairObjs ){
233 bool isPassed = acceptObjs[iObj].getCutResult(
level );
235 float ptvarcone20rel = -99.0;
236 float ptvarcone30rel = -99.0;
239 const auto *
eg = pairObj.first;
248 ptvarcone20rel = getIsolation_ptvarcone20(
el)/
el->pt();
249 ptvarcone30rel = getIsolation_ptvarcone30(
el)/
el->pt();
251 z0 = getTrack_z0(
el);
252 d0 = getTrack_d0(
el);
256 float eta =
eg->caloCluster()->etaBE(2);
257 float phi =
eg->phi();
265 et_vec.push_back(
et );
266 pt_vec.push_back(
pt );
267 highet_vec.push_back(
et );
270 eta_vec.push_back(
eta);
271 phi_vec.push_back(
phi);
272 avgmu_vec.push_back(avgmu);
273 npvtx_vec.push_back(npvtx);
274 ptvarcone20rel_vec.push_back(ptvarcone20rel);
275 ptvarcone30rel_vec.push_back(ptvarcone30rel);
276 z0_vec.push_back(
z0);
277 d0_vec.push_back(
d0);
281 et_slice0_vec.push_back(
et);
282 }
else if( abs(
eta) > 0.80 && abs(
eta) <= 1.37 ){
283 et_slice1_vec.push_back(
et);
284 }
else if( abs(
eta) > 1.37 && abs(
eta) <= 1.54 ){
285 et_slice2_vec.push_back(
et);
286 }
else if( abs(
eta) > 1.54 && abs(
eta) <= 2.50 ){
287 et_slice3_vec.push_back(
et);
291 match_et_vec.push_back(
et );
292 match_pt_vec.push_back(
pt );
293 match_highet_vec.push_back(
et );
296 match_eta_vec.push_back(
eta);
297 match_phi_vec.push_back(
phi);
298 match_avgmu_vec.push_back(avgmu);
299 match_npvtx_vec.push_back(npvtx);
300 match_ptvarcone20rel_vec.push_back(ptvarcone20rel);
301 match_ptvarcone30rel_vec.push_back(ptvarcone30rel);
302 match_z0_vec.push_back(
z0);
303 match_d0_vec.push_back(
d0);
306 et_passed_vec.push_back(
true );
307 et_failed_vec.push_back(
false );
308 pt_passed_vec.push_back(
true );
309 highet_passed_vec.push_back(
true );
310 highet_failed_vec.push_back(
false );
313 et_slice0_passed_vec.push_back(
true);
314 }
else if( abs(
eta) > 0.80 && abs(
eta) <= 1.37 ){
315 et_slice1_passed_vec.push_back(
true);
316 }
else if( abs(
eta) > 1.37 && abs(
eta) <= 1.54 ){
317 et_slice2_passed_vec.push_back(
true);
318 }
else if( abs(
eta) > 1.54 && abs(
eta) <= 2.50 ){
319 et_slice3_passed_vec.push_back(
true);
323 eta_passed_vec.push_back(
true );
324 eta_failed_vec.push_back(
false );
325 phi_passed_vec.push_back(
true );
326 avgmu_passed_vec.push_back(
true );
327 npvtx_passed_vec.push_back(
true );
328 ptvarcone20rel_passed_vec.push_back(
true );
329 ptvarcone30rel_passed_vec.push_back(
true );
330 z0_passed_vec.push_back(
true );
331 d0_passed_vec.push_back(
true );
336 et_passed_vec.push_back(
false );
337 et_failed_vec.push_back(
true );
338 pt_passed_vec.push_back(
false );
339 highet_passed_vec.push_back(
false );
340 highet_failed_vec.push_back(
true );
343 et_slice0_passed_vec.push_back(
false);
344 }
else if( abs(
eta) > 0.80 && abs(
eta) <= 1.37 ){
345 et_slice1_passed_vec.push_back(
false);
346 }
else if( abs(
eta) > 1.37 && abs(
eta) <= 1.54 ){
347 et_slice2_passed_vec.push_back(
false);
348 }
else if( abs(
eta) > 1.54 && abs(
eta) <= 2.50 ){
349 et_slice3_passed_vec.push_back(
false);
353 eta_passed_vec.push_back(
false );
354 eta_failed_vec.push_back(
true );
355 phi_passed_vec.push_back(
false );
356 avgmu_passed_vec.push_back(
false );
357 npvtx_passed_vec.push_back(
false );
358 ptvarcone20rel_passed_vec.push_back(
false );
359 ptvarcone30rel_passed_vec.push_back(
false );
360 z0_passed_vec.push_back(
false );
361 d0_passed_vec.push_back(
false );
369 fill(
monGroup, et_col, highet_col, pt_col, eta_col, phi_col, avgmu_col, npvtx_col, ptvarcone20rel_col, ptvarcone30rel_col, z0_col, d0_col,
370 match_et_col, match_highet_col, match_pt_col, match_eta_col, match_phi_col, match_avgmu_col, match_npvtx_col, match_ptvarcone20rel_col, match_ptvarcone30rel_col,match_z0_col,match_d0_col,
371 et_passed_col, et_failed_col, highet_passed_col, highet_failed_col, pt_passed_col, eta_passed_col, eta_failed_col, phi_passed_col, avgmu_passed_col, npvtx_passed_col, ptvarcone20rel_passed_col, ptvarcone30rel_passed_col, z0_passed_col, d0_passed_col,
372 et_slice0_col,et_slice1_col,et_slice2_col,et_slice3_col,et_slice0_passed_col,et_slice1_passed_col,et_slice2_passed_col,et_slice3_passed_col);
◆ fillHistograms()
virtual StatusCode TrigEgammaMonitorBaseAlgorithm::fillHistograms |
( |
const EventContext & |
ctx | ) |
const |
|
inlineoverridevirtualinherited |
◆ fillHLTElectronResolution()
Definition at line 1049 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
1056 std::vector<float> res_pt_vec, res_et_vec, res_phi_vec, res_eta_vec, res_deta1_vec, res_deta2_vec, res_dphi2_vec, res_dphiresc_vec,
1057 res_z0_vec, res_d0_vec, res_d0sig_vec, res_eprobht_vec, res_npixhits_vec, res_nscthits_vec, res_Rhad_vec, res_Rhad1_vec, res_Reta_vec,
1058 res_Rphi_vec, res_weta1_vec, res_weta2_vec, res_wtots1_vec, res_f1_vec, res_f3_vec, res_eratio_vec, res_ethad_vec, res_ethad1_vec,
1059 et_vec, eta_vec, mu_vec;
1060 std::vector<float> res_ptcone20_vec, res_ptcone20_rel_vec, res_ptvarcone20_vec, res_ptvarcone20_rel_vec;
1061 std::vector<float> res_etInEta0_vec, res_etInEta1_vec, res_etInEta2_vec, res_etInEta3_vec;
1105 auto res_ptvarcone20_rel_col =
Monitored::Collection(
"res_ptvarcone20_rel" , res_ptvarcone20_rel_vec );
1113 std::string
key =
match()->key(
"Electrons_GSF");
1117 for (
const auto & pairObj : pairObjs ){
1124 float maxDeltaR=0.05;
1126 for(
auto &featLinkInfo :
vec ){
1127 if(! featLinkInfo.isValid() )
continue;
1128 const auto *feat = *(featLinkInfo.link);
1130 float deltaR =
dR( off->
eta(), off->
phi(), feat->eta(), feat->phi() );
1141 const float onl_eta=
onl->eta();
1142 const float feta = abs(onl_eta);
1145 const float dummy=-999;
1147 eta_vec.push_back( onl_eta );
1148 et_vec.push_back( onl_et );
1149 mu_vec.push_back( avgmu );
1151 val_off=getTrack_pt(off);
1153 res_pt_vec.push_back( (getTrack_pt(off)-val_off)/val_off );
1160 res_et_vec.push_back( (
getEt(
onl)-val_off)/val_off );
1162 res_etInEta0_vec.push_back((
getEt(
onl)-val_off)/val_off);
1163 else if( feta >=1.37 && feta <= 1.52 )
1164 res_etInEta1_vec.push_back((
getEt(
onl)-val_off)/val_off);
1165 else if( feta >= 1.55 && feta < 1.8 )
1166 res_etInEta2_vec.push_back((
getEt(
onl)-val_off)/val_off);
1167 else if( feta >= 1.8 && feta < 2.45 )
1168 res_etInEta3_vec.push_back((
getEt(
onl)-val_off)/val_off);
1173 res_eta_vec.push_back( (onl_eta-val_off)/val_off );
1175 res_eta_vec.push_back(
dummy );
1180 res_phi_vec.push_back( (
onl->phi()-val_off)/val_off );
1182 res_phi_vec.push_back(
dummy );
1185 val_off=getShowerShape_ethad(off);
1187 res_ethad_vec.push_back((getShowerShape_ethad(
onl)-val_off)/val_off);
1189 res_ethad_vec.push_back(
dummy );
1192 val_off=getShowerShape_ethad1(off);
1194 res_ethad1_vec.push_back((getShowerShape_ethad1(
onl)-val_off)/val_off);
1196 res_ethad1_vec.push_back(
dummy);
1199 val_off=getShowerShape_Rhad(off);
1201 res_Rhad_vec.push_back( (getShowerShape_Rhad(
onl)-val_off)/val_off );
1203 res_Rhad_vec.push_back(
dummy );
1206 val_off=getShowerShape_Rhad1(off);
1208 res_Rhad1_vec.push_back( (getShowerShape_Rhad1(
onl)-val_off)/val_off );
1210 res_Rhad1_vec.push_back(
dummy );
1213 val_off=getShowerShape_Reta(off);
1215 res_Reta_vec.push_back( (getShowerShape_Reta(
onl)-val_off)/val_off );
1217 res_Reta_vec.push_back(
dummy );
1220 val_off=getShowerShape_Rphi(off);
1222 res_Rphi_vec.push_back( (getShowerShape_Rphi(
onl)-val_off)/val_off );
1224 res_Rphi_vec.push_back( (getShowerShape_Rphi(
onl)-val_off)/val_off );
1227 val_off=getShowerShape_weta1(off);
1229 res_weta1_vec.push_back( (getShowerShape_weta1(
onl)-val_off)/val_off );
1231 res_weta1_vec.push_back(
dummy );
1234 val_off=getShowerShape_weta2(off);
1236 res_weta2_vec.push_back( (getShowerShape_weta2(
onl)-val_off)/val_off );
1238 res_weta2_vec.push_back(
dummy );
1241 val_off=getShowerShape_wtots1(off);
1243 res_wtots1_vec.push_back( (getShowerShape_wtots1(
onl)-val_off)/val_off );
1245 res_wtots1_vec.push_back(
dummy );
1248 val_off=getShowerShape_f1(off);
1250 res_f1_vec.push_back( (getShowerShape_f1(
onl)-val_off)/val_off );
1252 res_f1_vec.push_back(
dummy );
1255 val_off=getShowerShape_f3(off);
1257 res_f3_vec.push_back( (getShowerShape_f3(
onl)-val_off)/val_off );
1259 res_f3_vec.push_back(
dummy );
1262 val_off=getShowerShape_Eratio(off);
1264 res_eratio_vec.push_back( (getShowerShape_Eratio(
onl)-val_off)/val_off );
1266 res_eratio_vec.push_back(
dummy );
1274 val_off=getTrack_pt(off);
1276 res_pt_vec.push_back( (getTrack_pt(
onl)-val_off)/val_off );
1278 res_pt_vec.push_back(
dummy );
1283 res_et_vec.push_back( (
getEt(
onl)-val_off)/val_off );
1285 res_et_vec.push_back(
dummy );
1288 val_off=getCaloTrackMatch_deltaEta1(off);
1290 res_deta1_vec.push_back( (getCaloTrackMatch_deltaEta1(
onl)-val_off)/val_off );
1292 res_deta1_vec.push_back(
dummy );
1295 val_off=getCaloTrackMatch_deltaEta2(off);
1296 res_deta2_vec.push_back( (getCaloTrackMatch_deltaEta2(
onl)-val_off)/val_off );
1297 val_off=getCaloTrackMatch_deltaPhi2(off);
1299 res_dphi2_vec.push_back( (getCaloTrackMatch_deltaPhi2(
onl)-val_off)/val_off );
1301 res_dphi2_vec.push_back(
dummy );
1304 val_off=getCaloTrackMatch_deltaPhiRescaled2(off);
1305 res_dphiresc_vec.push_back( (getCaloTrackMatch_deltaPhiRescaled2(
onl)-val_off)/val_off );
1307 val_off=getTrack_z0(off);
1309 res_z0_vec.push_back( getTrack_z0(
onl)-val_off );
1311 res_z0_vec.push_back(
dummy );
1315 val_off=getTrack_d0(off);
1317 res_d0_vec.push_back( getTrack_d0(
onl)-val_off );
1319 res_d0_vec.push_back(
dummy );
1326 res_d0sig_vec.push_back(
dummy );
1330 val_off=getTrackSummaryFloat_eProbabilityHT(off);
1331 res_eprobht_vec.push_back( (getTrackSummaryFloat_eProbabilityHT(
onl)-val_off) );
1332 res_npixhits_vec.push_back( getTrackSummary_numberOfPixelHits(
onl)-getTrackSummary_numberOfPixelHits(
onl) );
1333 res_nscthits_vec.push_back( getTrackSummary_numberOfSCTHits(
onl)-getTrackSummary_numberOfSCTHits(
onl) );
1340 float val_off=getIsolation_ptcone20(off);
1342 res_ptcone20_vec.push_back((getIsolation_ptcone20(
onl)-val_off)/val_off);
1344 const float reliso_onl=getIsolation_ptcone20(
onl)/
getEt(
onl);
1345 const float reliso_off=getIsolation_ptcone20(off)/
getEt(off);
1346 res_ptcone20_rel_vec.push_back((reliso_onl-reliso_off)/reliso_off);
1348 res_ptcone20_rel_vec.push_back(
dummy);
1351 res_ptcone20_vec.push_back(
dummy);
1352 res_ptcone20_rel_vec.push_back(
dummy);
1356 val_off=getIsolation_ptvarcone20(off);
1359 res_ptvarcone20_vec.push_back((getIsolation_ptvarcone20(
onl)-val_off)/val_off);
1360 const float reliso_onl=getIsolation_ptvarcone20(
onl)/
getEt(
onl);
1361 const float reliso_off=getIsolation_ptvarcone20(off)/
getEt(off);
1362 res_ptvarcone20_rel_vec.push_back((reliso_onl-reliso_off)/reliso_off);
1364 res_ptvarcone20_rel_vec.push_back(
dummy);
1367 res_ptvarcone20_vec.push_back(
dummy);
1368 res_ptvarcone20_rel_vec.push_back(
dummy);
1411 res_ptcone20_rel_col ,
1412 res_ptvarcone20_col ,
1413 res_ptvarcone20_rel_col ,
◆ fillHLTPhotonResolution()
Definition at line 1427 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
1434 std::vector<float> res_phi_vec, res_eta_vec, res_Rhad_vec, res_Rhad1_vec, res_Reta_vec, res_ethad_vec, res_ethad1_vec,
1435 res_Rphi_vec, res_weta1_vec, res_weta2_vec, res_wtots1_vec, res_f1_vec, res_f3_vec, res_eratio_vec, et_vec, eta_vec, mu_vec;
1437 std::vector<float> res_et_vec, res_et_cnv_vec, res_et_uncnv_vec;
1438 std::vector<float> res_etInEta0_vec, res_etInEta1_vec, res_etInEta2_vec, res_etInEta3_vec;
1439 std::vector<float> res_cnv_etInEta0_vec, res_cnv_etInEta1_vec, res_cnv_etInEta2_vec, res_cnv_etInEta3_vec;
1440 std::vector<float> res_uncnv_etInEta0_vec, res_uncnv_etInEta1_vec, res_uncnv_etInEta2_vec, res_uncnv_etInEta3_vec;
1444 std::vector<float> res_topoetcone20_vec, res_topoetcone20_rel_vec;
1478 auto res_uncnv_etInEta0_col =
Monitored::Collection(
"res_uncnv_etInEta0" , res_uncnv_etInEta0_vec);
1479 auto res_uncnv_etInEta1_col =
Monitored::Collection(
"res_uncnv_etInEta1" , res_uncnv_etInEta1_vec);
1480 auto res_uncnv_etInEta2_col =
Monitored::Collection(
"res_uncnv_etInEta2" , res_uncnv_etInEta2_vec);
1481 auto res_uncnv_etInEta3_col =
Monitored::Collection(
"res_uncnv_etInEta3" , res_uncnv_etInEta3_vec);
1485 auto res_topoetcone20_rel_col =
Monitored::Collection(
"res_topoetcone20_rel" , res_topoetcone20_rel_vec );
1495 for (
const auto & pairObj : pairObjs ){
1502 float maxDeltaR=0.05;
1504 for(
auto &featLinkInfo :
vec ){
1505 if(! featLinkInfo.isValid() )
continue;
1506 const auto *feat = *(featLinkInfo.link);
1508 float deltaR =
dR( off->
eta(), off->
phi(), feat->eta(), feat->phi() );
1520 const float onl_eta=
onl->eta();
1521 const float feta = abs(onl_eta);
1523 const float dummy=-999;
1526 et_vec.push_back( onl_et );
1527 eta_vec.push_back( onl_eta );
1528 mu_vec.push_back( avgmu );
1531 val_off=getCluster_et(off);
1533 res_et_vec.push_back( (getCluster_et(
onl)-val_off)/val_off );
1535 res_etInEta0_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1536 else if( feta >=1.37 && feta <= 1.52 )
1537 res_etInEta1_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1538 else if( feta >= 1.55 && feta < 1.8 )
1539 res_etInEta2_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1540 else if( feta >= 1.8 && feta < 2.45 )
1541 res_etInEta3_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1544 res_et_cnv_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1546 res_cnv_etInEta0_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1547 else if( feta >=1.37 && feta <= 1.52 )
1548 res_cnv_etInEta1_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1549 else if( feta >= 1.55 && feta < 1.8 )
1550 res_cnv_etInEta2_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1551 else if( feta >= 1.8 && feta < 2.45 )
1552 res_cnv_etInEta3_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1554 res_et_uncnv_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1556 res_uncnv_etInEta0_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1557 else if( feta >=1.37 && feta <= 1.52 )
1558 res_uncnv_etInEta1_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1559 else if( feta >= 1.55 && feta < 1.8 )
1560 res_uncnv_etInEta2_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1561 else if( feta >= 1.8 && feta < 2.45 )
1562 res_uncnv_etInEta3_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1568 res_eta_vec.push_back( (onl_eta-val_off)/val_off ) ;
1570 res_eta_vec.push_back(
dummy ) ;
1575 res_phi_vec.push_back( (
onl->phi()-val_off)/val_off );
1577 res_phi_vec.push_back(
dummy );
1580 val_off=getShowerShape_ethad(off);
1582 res_ethad_vec.push_back((getShowerShape_ethad(
onl)-val_off)/val_off);
1584 res_ethad_vec.push_back(
dummy);
1587 val_off=getShowerShape_ethad1(off);
1589 res_ethad1_vec.push_back((getShowerShape_ethad1(
onl)-val_off)/val_off);
1591 res_ethad1_vec.push_back(
dummy);
1594 val_off=getShowerShape_Rhad(off);
1596 res_Rhad_vec.push_back( (getShowerShape_Rhad(
onl)-val_off)/val_off );
1598 res_Rhad_vec.push_back(
dummy );
1601 val_off=getShowerShape_Rhad1(off);
1603 res_Rhad1_vec.push_back( (getShowerShape_Rhad1(
onl)-val_off)/val_off );
1605 res_Rhad1_vec.push_back(
dummy );
1608 val_off=getShowerShape_Reta(off);
1610 res_Reta_vec.push_back( (getShowerShape_Reta(
onl)-val_off)/val_off );
1612 res_Reta_vec.push_back(
dummy );
1615 val_off=getShowerShape_Rphi(off);
1617 res_Rphi_vec.push_back( (getShowerShape_Rphi(
onl)-val_off)/val_off );
1619 res_Rphi_vec.push_back(
dummy );
1622 val_off=getShowerShape_weta1(off);
1624 res_weta1_vec.push_back( (getShowerShape_weta1(
onl)-val_off)/val_off );
1626 res_weta1_vec.push_back(
dummy );
1629 val_off=getShowerShape_weta2(off);
1631 res_weta2_vec.push_back( (getShowerShape_weta2(
onl)-val_off)/val_off );
1633 res_weta2_vec.push_back(
dummy);
1636 val_off=getShowerShape_wtots1(off);
1638 res_wtots1_vec.push_back( (getShowerShape_wtots1(
onl)-val_off)/val_off );
1640 res_wtots1_vec.push_back(
dummy );
1643 val_off=getShowerShape_f1(off);
1645 res_f1_vec.push_back( (getShowerShape_f1(
onl)-val_off)/val_off );
1647 res_f1_vec.push_back(
dummy );
1650 val_off=getShowerShape_f3(off);
1652 res_f3_vec.push_back( (getShowerShape_f3(
onl)-val_off)/val_off );
1654 res_f3_vec.push_back(
dummy );
1657 val_off=getShowerShape_Eratio(off);
1659 res_eratio_vec.push_back( (getShowerShape_Eratio(
onl)-val_off)/val_off);
1661 res_eratio_vec.push_back(
dummy);
1665 if(
info.isolated ){
1667 float val_off=getIsolation_topoetcone20(off);
1668 float etonl=
onl->pt();
1669 float etoff=off->
pt();
1671 res_topoetcone20_vec.push_back((getIsolation_topoetcone20(
onl)-val_off)/val_off);
1672 if (etonl > 0. && etoff > 0.) {
1673 const float reliso_onl=getIsolation_topoetcone20(
onl)/etonl;
1674 const float reliso_off=getIsolation_topoetcone20(off)/etoff;
1675 res_topoetcone20_rel_vec.push_back((reliso_onl-reliso_off)/reliso_off);
1677 res_topoetcone20_rel_vec.push_back(
dummy);
1680 res_topoetcone20_vec.push_back(
dummy);
1681 res_topoetcone20_rel_vec.push_back(
dummy);
1709 res_topoetcone20_col ,
1710 res_topoetcone20_rel_col ,
1716 res_cnv_etInEta0_col,
1717 res_cnv_etInEta1_col,
1718 res_cnv_etInEta2_col,
1719 res_cnv_etInEta3_col,
1721 res_uncnv_etInEta0_col,
1722 res_uncnv_etInEta1_col,
1723 res_uncnv_etInEta2_col,
1724 res_uncnv_etInEta3_col
◆ fillInefficiency()
Definition at line 377 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
386 for(
auto pairObj : pairObjs ){
389 bool isPassedL1Calo = acceptObjs[iObj].getCutResult(
"L1Calo");
390 bool isPassedL2Calo = acceptObjs[iObj].getCutResult(
"L2Calo");
391 bool isPassedL2 = acceptObjs[iObj].getCutResult(
"L2" );
392 bool isPassedEFCalo = acceptObjs[iObj].getCutResult(
"EFCalo");
393 bool isPassedHLT = acceptObjs[iObj].getCutResult(
"HLT" );
395 const auto *
eg = pairObj.first;
405 }
if(!isPassedL2Calo){
409 }
if(!isPassedEFCalo){
◆ fillL1Calo()
Definition at line 575 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
579 std::vector<float> eta_vec, phi_vec, energy_vec, roi_et_vec, emIso_vec, hadCore_vec;
588 for(
const auto *
l1 : l1_vec )
591 eta_vec.push_back(
l1->eta() );
592 phi_vec.push_back(
l1->phi() );
599 fill(
monGroup, eta_col, phi_col, energy_col, roi_et_col, emIso_col, hadCore_col );
◆ fillL1CaloAbsResolution()
Definition at line 1021 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
1026 std::vector<float> eta_vec, res_et_vec;
1032 for (
const auto & pairObj : pairObjs){
1033 const auto *off = pairObj.first;
1034 const auto *
l1 = pairObj.second;
1038 eta_vec.push_back(
l1->eta() );
◆ fillL1CaloResolution()
Definition at line 991 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
996 std::vector<float> eta_vec, res_et_vec;
1002 for (
const auto & pairObj : pairObjs){
1003 const auto *off = pairObj.first;
1004 const auto *
l1 = pairObj.second;
1008 eta_vec.push_back(
l1->eta() );
1009 res_et_vec.push_back( (
l1->emClus()-
getEt(eloff))/
getEt(eloff) ) ;
◆ fillL1eEM()
Definition at line 604 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
608 std::vector<float> eta_vec, phi_vec, et_vec, wstot_vec, reta_vec, rhad_vec;
618 for(
const auto *
l1 : l1_vec )
622 eta_vec.push_back(
l1->eta() );
623 phi_vec.push_back(
l1->phi() );
624 wstot_vec.push_back(
l1->Wstot() );
625 reta_vec.push_back(
l1->Reta() );
626 rhad_vec.push_back(
l1->Rhad() );
629 fill(
monGroup, eta_col, phi_col, et_col, wstot_col, reta_col, rhad_col );
◆ fillL2Calo()
Definition at line 635 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
639 std::vector<float> et_vec,highet_vec, eta_vec, phi_vec;
646 for (
const auto *emCluster : emCluster_vec )
648 if(!emCluster)
continue;
651 eta_vec.push_back( emCluster->eta() );
652 phi_vec.push_back( emCluster->phi() );
◆ fillL2CaloResolution()
Definition at line 1732 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
1740 std::vector<float> res_et_vec, res_phi_vec, res_eta_vec, res_Rhad_vec, res_Rhad1_vec, res_Reta_vec, res_ethad_vec, res_ethad1_vec,
1741 res_Rphi_vec, res_weta2_vec, res_f1_vec, res_f3_vec, res_eratio_vec, et_vec, eta_vec;
1761 for (
const auto & pairObj : pairObjs ){
1768 float maxDeltaR=0.05;
1770 for(
auto &featLinkInfo :
vec ){
1771 if(! featLinkInfo.isValid() )
continue;
1772 const auto *feat = *(featLinkInfo.link);
1774 float deltaR =
dR( off->
eta(), off->
phi(), feat->eta(), feat->phi() );
1784 et_vec.push_back(
onl->et()*1
e-3);
1785 eta_vec.push_back(
onl->eta());
1786 const float dummy=-999;
1792 res_et_vec.push_back(((
onl->et())-val_off)/val_off);
1794 res_et_vec.push_back(
dummy);
1799 res_eta_vec.push_back((
onl->eta()-val_off)/val_off);
1801 res_eta_vec.push_back(
dummy);
1806 res_phi_vec.push_back((
onl->phi()-val_off)/val_off);
1808 res_phi_vec.push_back((
onl->phi()-val_off)/val_off);
1816 elonl_ethad /= TMath::CosH(
onl->eta() );
1817 val_off=getShowerShape_ethad(off);
1819 res_ethad_vec.push_back((elonl_ethad-val_off)/val_off);
1821 res_ethad_vec.push_back(
dummy);
1824 val_off=getShowerShape_ethad1(off);
1826 res_ethad1_vec.push_back(( (
onl->ehad1()/TMath::Abs(
onl->eta()) )-val_off)/val_off);
1828 res_ethad1_vec.push_back(
dummy);
1831 float elonl_Rhad = elonl_ethad /
onl->energy() ;
1832 val_off=getShowerShape_Rhad(off);
1834 res_Rhad_vec.push_back(( elonl_Rhad-val_off)/val_off);
1836 res_Rhad_vec.push_back(
dummy);
1839 float elonl_Rhad1 =
onl->ehad1() /
onl->energy() ;
1840 val_off=getShowerShape_Rhad1(off);
1842 res_Rhad1_vec.push_back(( elonl_Rhad1-val_off)/val_off);
1844 res_Rhad1_vec.push_back(
dummy);
1847 float onl_reta= 999.0;
1848 if ( fabsf (
onl->e277() ) > 0.01 ) onl_reta =
onl->e237() /
onl->e277();
1849 val_off=getShowerShape_Reta(off);
1851 res_Reta_vec.push_back( (onl_reta -val_off)/val_off);
1853 res_Reta_vec.push_back(
dummy);
1856 val_off=getShowerShape_weta2(off);
1858 res_weta2_vec.push_back(( (
onl->weta2())-val_off)/val_off);
1860 res_weta2_vec.push_back(
dummy);
1864 onl_f1 /=
onl->energy();
1865 val_off=getShowerShape_f1(off);
1867 res_f1_vec.push_back(( (onl_f1)-val_off)/val_off);
1869 res_f1_vec.push_back(
dummy);
1873 onl_f3 /=
onl->energy();
1874 val_off=getShowerShape_f3(off);
1876 res_f3_vec.push_back(( (onl_f3)-val_off)/val_off);
1878 res_f3_vec.push_back(
dummy);
1881 float onl_eratio = 999.0;
1882 if ( fabsf(
onl->emaxs1() +
onl->e2tsts1()) > 0.01 )
1883 onl_eratio = (
onl->emaxs1() -
onl->e2tsts1()) / (
onl->emaxs1() +
onl->e2tsts1());
1884 val_off=getShowerShape_Eratio(off);
1886 res_eratio_vec.push_back(( (onl_eratio)-val_off)/val_off);
1888 res_eratio_vec.push_back(
dummy);
◆ fillL2Electron()
Definition at line 662 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
667 std::vector<float> et_vec, eta_vec, phi_vec, highet_vec;
674 for (
const auto *
el : el_vec )
679 eta_vec.push_back(
el->eta() );
680 phi_vec.push_back(
el->phi() );
◆ fillL2Photon()
Definition at line 686 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
691 std::vector<float> et_vec, eta_vec, phi_vec, highet_vec;
698 for (
const auto *ph : ph_vec )
703 eta_vec.push_back( ph->eta() );
704 phi_vec.push_back( ph->phi() );
◆ fillLabel()
◆ fillResolutions()
***********************************************************************************************************************8
Definition at line 935 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
939 std::vector< std::pair< const xAOD::Egamma*, const xAOD::EmTauRoI * >> pair_l1_vec;
940 std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pair_eg_vec;
941 const std::string trigger =
info.trigger;
944 for(
auto pairObj : pairObjs ){
947 const auto *feat = pairObj.second;
954 const auto *
l1 =
match()->getL1Feature( feat );
958 if(
et <
info.etthr-5.0)
continue;
959 if(!pidnameDec(*
eg))
continue;
960 pair_eg_vec.emplace_back(
el,feat);
961 if(
l1) pair_l1_vec.emplace_back(
eg,
l1 );
965 if(
et <
info.etthr-5.0)
continue;
966 pair_eg_vec.emplace_back(
eg,feat);
967 if(
l1) pair_l1_vec.emplace_back(
eg,
l1 );
979 if (
info.signature==
"Electron"){
982 else if (
info.signature==
"Photon"){
◆ fillShowerShapes()
void TrigEgammaMonitorAnalysisAlgorithm::fillShowerShapes |
( |
const std::string & |
trigger, |
|
|
const std::vector< const xAOD::Egamma * > & |
eg_vec, |
|
|
bool |
online |
|
) |
| const |
|
private |
Definition at line 766 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
772 std::vector<float> Rhad_vec, Rhad1_vec, Reta_vec, Rphi_vec, weta1_vec, weta2_vec,
773 f1_vec, f3_vec, eratio_vec, et_vec, highet_vec , eta_vec, phi_vec, topoetcone20_vec, topoetcone40_shift_vec,
774 topoetcone20_rel_vec, topoetcone40_shift_rel_vec;
793 auto topoetcone40_shift_rel_col =
Monitored::Collection(
"topoetcone40_shift_rel", topoetcone40_shift_rel_vec );
795 for (
const auto *
eg : eg_vec ){
799 Rhad_vec.push_back( getShowerShape_Rhad(
eg));
800 Rhad1_vec.push_back( getShowerShape_Rhad(
eg));
801 Reta_vec.push_back( getShowerShape_Reta(
eg));
802 Rphi_vec.push_back( getShowerShape_Rphi(
eg));
803 weta1_vec.push_back( getShowerShape_weta1(
eg));
804 weta2_vec.push_back( getShowerShape_weta2(
eg));
805 f1_vec.push_back( getShowerShape_f1(
eg));
806 f3_vec.push_back( getShowerShape_f3(
eg));
807 eratio_vec.push_back( getShowerShape_Eratio(
eg));
810 eta_vec.push_back(
eg->eta());
811 phi_vec.push_back(
eg->phi());
813 topoetcone40_shift_vec.push_back( (getIsolation_topoetcone40(
eg)-2450)/
Gaudi::Units::GeV );
816 topoetcone20_rel_vec.push_back( getIsolation_topoetcone20(
eg)/
eg->pt());
817 topoetcone40_shift_rel_vec.push_back( (getIsolation_topoetcone40(
eg)-2450)/
eg->pt() );
822 fill(
monGroup, Rhad_col, Rhad1_col, Reta_col, Rphi_col, weta1_col, weta2_col,
823 f1_col, f3_col, eratio_col, et_col, highet_col , eta_col, phi_col, topoetcone20_col, topoetcone40_shift_col,
824 topoetcone20_rel_col, topoetcone40_shift_rel_col );
◆ fillTracking()
void TrigEgammaMonitorAnalysisAlgorithm::fillTracking |
( |
const std::string & |
trigger, |
|
|
const std::vector< const xAOD::Electron * > & |
eg_vec, |
|
|
bool |
online |
|
) |
| const |
|
private |
Definition at line 829 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
836 std::vector<float> deta1_vec, deta1_EMECA_vec, deta1_EMECC_vec, deta1_EMEBA_vec, deta1_EMEBC_vec, deta2_vec, dphi2_vec,
837 dphiresc_vec, eprobht_vec, npixhits_vec, nscthits_vec, charge_vec, ptcone20_vec, ptvarcone20_vec, ptcone30_vec, ptvarcone30_vec, z0_vec, d0_vec, d0sig_vec,
838 pt_vec,pt_trk_vec, ptcone20_rel_vec, ptvarcone20_rel_vec, ptcone30_rel_vec, ptvarcone30_rel_vec, eta_vec, mu_vec;
870 for (
const auto *
eg : eg_vec ){
875 if(
eg->caloCluster()) cleta=
eg->caloCluster()->eta();
876 else cleta=
eg->eta();
878 deta1_vec.push_back( getCaloTrackMatch_deltaEta1(
eg));
880 if(cleta > 1.375 && cleta < 3.2)
881 deta1_EMECA_vec.push_back( getCaloTrackMatch_deltaEta1(
eg));
882 if(cleta < -1.375 && cleta > -3.2)
883 deta1_EMECC_vec.push_back( getCaloTrackMatch_deltaEta1(
eg));
884 if(cleta > 0 && cleta < 1.375)
885 deta1_EMEBA_vec.push_back( getCaloTrackMatch_deltaEta1(
eg));
886 if(cleta < 0 && cleta > -1.375)
887 deta1_EMEBC_vec.push_back( getCaloTrackMatch_deltaEta1(
eg));
889 deta2_vec.push_back( getCaloTrackMatch_deltaEta2(
eg));
890 dphi2_vec.push_back( getCaloTrackMatch_deltaPhi2(
eg));
891 dphiresc_vec.push_back( getCaloTrackMatch_deltaPhiRescaled2(
eg));
892 eprobht_vec.push_back( getTrackSummaryFloat_eProbabilityHT(
eg));
893 npixhits_vec.push_back( getTrackSummary_numberOfPixelHits(
eg));
894 nscthits_vec.push_back( getTrackSummary_numberOfSCTHits(
eg));
895 charge_vec.push_back(
eg->charge());
903 z0_vec.push_back( getTrack_z0(
eg));
904 d0_vec.push_back( getTrack_d0(
eg));
908 eta_vec.push_back(
eg->eta());
911 mu_vec.push_back( avgmu );
914 ptcone20_rel_vec.push_back( getIsolation_ptcone20(
eg)/
eg->pt());
915 ptvarcone20_rel_vec.push_back( getIsolation_ptvarcone20(
eg)/
eg->pt());
916 ptcone30_rel_vec.push_back( getIsolation_ptcone30(
eg)/
eg->pt());
917 ptvarcone30_rel_vec.push_back( getIsolation_ptvarcone30(
eg)/
eg->pt());
923 fill(
monGroup, deta1_col, deta1_EMECA_col, deta1_EMECC_col, deta1_EMEBA_col, deta1_EMEBC_col, deta2_col, dphi2_col,
924 dphiresc_col, eprobht_col, npixhits_col, nscthits_col, charge_col, ptcone20_col, ptvarcone20_col, ptcone30_col, ptvarcone30_col, z0_col, d0_col, d0sig_col,
925 pt_col, ptcone20_rel_col, ptvarcone20_rel_col, ptcone30_rel_col, ptvarcone30_rel_col, eta_col, mu_col,pt_trk_col);
◆ filterPassed()
◆ getD0sig()
Definition at line 382 of file TrigEgammaMonitorBaseAlgorithm.cxx.
387 float vard0 =
t->definingParametersCovMatrix()(0,0);
389 d0sigma=sqrtf(vard0);
393 if (fabs(d0sigma) < 1
e-6)
return -99.;
394 return t->d0()/d0sigma;
◆ getDEmaxs1()
◆ getE0Eaccordion()
float TrigEgammaMonitorBaseAlgorithm::getE0Eaccordion |
( |
const xAOD::Egamma * |
eg | ) |
const |
|
protectedinherited |
◆ getEaccordion()
◆ getEnergyBE0()
◆ getEnergyBE1()
◆ getEnergyBE2()
◆ getEnergyBE3()
◆ getEt()
◆ getEta2()
◆ getEtCluster37()
float TrigEgammaMonitorBaseAlgorithm::getEtCluster37 |
( |
const xAOD::Egamma * |
eg | ) |
const |
|
protectedinherited |
◆ GetEventInfo()
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
- Parameters
-
ctx | EventContext for the event |
- Returns
- a SG::ReadHandle<xAOD::EventInfo>
Definition at line 107 of file AthMonitorAlgorithm.cxx.
◆ getGroup()
Get a specific monitoring tool from the tool handle array.
Finds a specific GenericMonitoringTool instance from the list of monitoring tools (a ToolHandleArray). Throws a FATAL warning if the object found is empty.
- Parameters
-
name | string name of the desired tool |
- Returns
- reference to the desired monitoring tool
Definition at line 164 of file AthMonitorAlgorithm.cxx.
176 if (!isInitialized()) {
178 "It seems that the AthMonitorAlgorithm::initialize was not called "
179 "in derived class initialize method");
183 [](
const std::string&
s,
auto h) { return s +
"," + h.first; });
184 ATH_MSG_FATAL(
"The tool " <<
name <<
" could not be found in the tool array of the "
185 <<
"monitoring algorithm " <<
m_name <<
". This probably reflects a discrepancy between "
186 <<
"your python configuration and c++ filling code. Note: your available groups are {"
187 << available <<
"}.");
◆ getL1Item()
std::string TrigEgammaMonitorBaseAlgorithm::getL1Item |
( |
const std::string & |
trigger | ) |
const |
|
protectedinherited |
◆ getSigmaD0()
◆ getTrigDecisionTool()
Get the trigger decision tool member.
The trigger decision tool is used to check whether a specific trigger is passed by an event.
- Returns
- m_trigDecTool
Definition at line 194 of file AthMonitorAlgorithm.cxx.
◆ getTrigInfo()
TrigInfo TrigEgammaMonitorBaseAlgorithm::getTrigInfo |
( |
const std::string & |
trigger | ) |
const |
|
protectedinherited |
◆ getTrigInfoMap()
const std::map<std::string,TrigInfo>& TrigEgammaMonitorBaseAlgorithm::getTrigInfoMap |
( |
| ) |
|
|
inlineprotectedinherited |
◆ initialize()
StatusCode TrigEgammaMonitorAnalysisAlgorithm::initialize |
( |
| ) |
|
|
overridevirtual |
◆ 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.
◆ isClonable()
◆ isHLTTruncated()
bool TrigEgammaMonitorBaseAlgorithm::isHLTTruncated |
( |
| ) |
const |
|
protectedinherited |
◆ isIsolated()
Check if electron fulfils isolation criteria.
Definition at line 112 of file TrigEgammaMonitorBaseAlgorithm.cxx.
117 ATH_MSG_DEBUG(
"Electron doesn't provide isolation for ptcone20");
120 if (!(fabs(
eg->pt()) > 0)) {
121 ATH_MSG_DEBUG(
"Electron pt is zero, can't calculate relative isolation");
127 if (isolation ==
"loose"){
128 if (ptcone20_rel > 0.1) {
137 ATH_MSG_DEBUG(
"No valid working point defined for " << isolation <<
" continue without isolation");
◆ isPrescaled()
bool TrigEgammaMonitorBaseAlgorithm::isPrescaled |
( |
const std::string & |
trigger | ) |
const |
|
protectedinherited |
Check if the event is prescaled.
Definition at line 144 of file TrigEgammaMonitorBaseAlgorithm.cxx.
146 bool efprescale=
false;
147 bool l1prescale=
false;
150 std::string l1item=
"";
152 if(trigger.starts_with(
"L1" ))
154 if(trigger.starts_with(
"HLT")){
156 const unsigned int bit=
tdt()->isPassedBits(trigger);
157 efprescale=bit & TrigDefs::EF_prescaled;
158 rerun=bit&TrigDefs::EF_resurrected;
162 ATH_MSG_DEBUG(
"Checking prescale for " << trigger <<
" " << l1item);
163 const unsigned int l1bit=
tdt()->isPassedBits(l1item);
164 bool l1_afterpre=l1bit&TrigDefs::L1_isPassedAfterPrescale;
165 bool l1_beforepre=l1bit&TrigDefs::L1_isPassedBeforePrescale;
166 l1prescale=l1_beforepre && !l1_afterpre;
167 prescale=efprescale || l1prescale;
168 ATH_MSG_DEBUG(
"L1 prescale " << l1item <<
" " << l1prescale <<
" before " << l1_beforepre <<
" after " << l1_afterpre);
169 ATH_MSG_DEBUG(
"EF prescale " << trigger <<
" " << efprescale <<
" Prescale " << prescale);
170 if(rerun)
return false;
171 if(prescale)
return true;
◆ match()
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ 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.
◆ parseList()
StatusCode AthMonitorAlgorithm::parseList |
( |
const std::string & |
line, |
|
|
std::vector< std::string > & |
result |
|
) |
| const |
|
virtualinherited |
Parse a string into a vector.
The input string is a single long string of all of the trigger names. It parses this string and turns it into a vector, where each element is one trigger or trigger category.
- Parameters
-
line | The input string. |
result | The parsed output vector of strings. |
- Returns
- StatusCode
Definition at line 341 of file AthMonitorAlgorithm.cxx.
343 std::stringstream
ss(
line);
347 while ( std::getline(
ss,
item,
',') ) {
348 std::stringstream iss(
item);
353 return StatusCode::SUCCESS;
◆ renounce()
◆ renounceArray()
◆ rTRT()
◆ setAccept()
Set the accept object for all trigger levels.
Definition at line 177 of file TrigEgammaMonitorBaseAlgorithm.cxx.
181 unsigned int condition=TrigDefs::includeFailedDecisions;
185 bool passedL1Calo=
false;
186 bool passedL2Calo=
false;
187 bool passedEFCalo=
false;
189 bool passedEFTrk=
false;
193 auto trigger =
info.trigger;
205 if(
info.signature ==
"Electron"){
206 std::string
key =
match()->key(
"FastElectrons");
209 }
else if(
info.signature ==
"Photon"){
216 std::string
key =
match()->key(
"PrecisionCalo_Electron");
217 if(
info.signature ==
"Photon")
key =
match()->key(
"PrecisionCalo_Photon");
229 if(
info.signature ==
"Electron"){
233 std::string
key =
match()->key(
"Electrons_GSF");
239 }
else if(
info.signature ==
"Photon"){
253 if(
info.signature ==
"Electron"){
257 std::string
key =
match()->key(
"Electrons_GSF");
263 }
else if(
info.signature ==
"Photon"){
273 acceptData.setCutResult(
"L1Calo",passedL1Calo);
274 acceptData.setCutResult(
"L2Calo",passedL2Calo);
275 acceptData.setCutResult(
"L2",passedL2);
276 acceptData.setCutResult(
"EFCalo",passedEFCalo);
277 acceptData.setCutResult(
"EFTrack",passedEFTrk);
278 acceptData.setCutResult(
"HLT",passedEF);
◆ setFilterPassed()
◆ setTrigInfo()
void TrigEgammaMonitorBaseAlgorithm::setTrigInfo |
( |
const std::string & |
trigger | ) |
|
|
protectedinherited |
Set the trigger info parsed from the chain name.
Definition at line 611 of file TrigEgammaMonitorBaseAlgorithm.cxx.
637 std::map<std::string, std::string> pidMap = { {
"vloose" ,
"loose" },
638 {
"loose" ,
"loose" },
639 {
"medium" ,
"medium" },
640 {
"tight" ,
"tight" },
641 {
"loose1" ,
"loose" },
642 {
"medium1" ,
"medium" },
643 {
"tight1" ,
"tight" },
644 {
"lhvloose" ,
"lhvloose" },
645 {
"lhloose" ,
"lhloose" },
646 {
"lhmedium" ,
"lhmedium" },
647 {
"lhtight" ,
"lhtight" },
648 {
"dnnloose" ,
"dnnloose" },
649 {
"dnnmedium",
"dnnmedium"},
650 {
"dnntight" ,
"dnntight" } };
652 std::vector<std::string> isoNames = {
"ivarloose",
"ivarmedium",
"ivartight",
"icaloloose",
"icalomedium",
"icalotight"};
659 bool isolated =
false;
661 std::string isolation=
"";
664 std::string hltinfo=trigger;
665 std::string signature =
"";
671 std::vector<std::string>
parts;
677 signature =
"Electron";
680 signature =
"Photon";
687 if(
parts.at(1) ==
"idperf"){
691 else if(
parts.at(1)==
"etcut"){
697 pidname = pidMap.at(
parts.at(1));
706 for(
auto& iso : isoNames){
708 isolation=iso; isolated=
true;
break;
713 std::string str_thr =
parts.at(0);
714 str_thr.erase( 0, 1);
722 ATH_MSG_DEBUG(
"=================== Chain Parser =======================");
734 ATH_MSG_DEBUG(
"L1Seed : " << l1seed <<
" (Is Legacy? " << (l1legacy?
"Yes":
"No") <<
")");
735 ATH_MSG_DEBUG(
"========================================================");
737 TrigInfo info{l1legacy,l1seed,trigger,signature,
threshold,pidname,idperf,etcut,nogsf,lrt,ion,isolation,isolated};
◆ sysExecute()
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.
◆ sysInitialize()
Override sysInitialize.
Override sysInitialize from the base class.
Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc
Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc
Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.
Reimplemented in InputMakerBase, and HypoBase.
Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.
110 if (
sc.isFailure()) {
118 if ( cs.retrieve().isFailure() ) {
120 return StatusCode::SUCCESS;
122 if (cs->regHandle(
this,*
h).isFailure()) {
123 sc = StatusCode::FAILURE;
124 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ tdt()
◆ trigChainsArePassed()
bool AthMonitorAlgorithm::trigChainsArePassed |
( |
const std::vector< std::string > & |
vTrigNames | ) |
const |
|
inherited |
Check whether triggers are passed.
For the event, use the trigger decision tool to check that at least one of the triggers listed in the supplied vector is passed.
- Parameters
-
vTrigNames | List of trigger names. |
- Returns
- If empty input, default to true. If at least one trigger is specified, returns whether at least one trigger was passed.
Definition at line 199 of file AthMonitorAlgorithm.cxx.
203 if (vTrigNames.empty())
return true;
215 bool expressPass = passedBits & TrigDefs::Express_passed;
222 return group->isPassed();
◆ updateVHKA()
◆ m_accept
◆ m_dataType
◆ m_dataTypeStr
Gaudi::Property<std::string> AthMonitorAlgorithm::m_dataTypeStr {this,"DataType","userDefined"} |
|
protectedinherited |
◆ m_defaultLBDuration
Gaudi::Property<float> AthMonitorAlgorithm::m_defaultLBDuration {this,"DefaultLBDuration",60.} |
|
protectedinherited |
◆ m_defaultProbePidElectron
Gaudi::Property<std::string> TrigEgammaMonitorBaseAlgorithm::m_defaultProbePidElectron {this, "DefaultProbeSelectionElectron", "lhloose"} |
|
protectedinherited |
◆ m_defaultProbePidPhoton
Gaudi::Property<std::string> TrigEgammaMonitorBaseAlgorithm::m_defaultProbePidPhoton {this, "DefaultProbeSelectionPhoton", "loose"} |
|
protectedinherited |
◆ m_detailedHists
Gaudi::Property<bool> TrigEgammaMonitorBaseAlgorithm::m_detailedHists {this, "DetailedHistograms", false} |
|
protectedinherited |
◆ m_detailLevel
Gaudi::Property<int> AthMonitorAlgorithm::m_detailLevel {this,"DetailLevel",0} |
|
protectedinherited |
◆ m_detStore
◆ m_dnnname
Gaudi::Property<std::vector<std::string> > TrigEgammaMonitorBaseAlgorithm::m_dnnname {this, "DNNResultNames", {}, } |
|
protectedinherited |
◆ m_doEmulation
Gaudi::Property<bool> TrigEgammaMonitorBaseAlgorithm::m_doEmulation {this, "DoEmulation", false } |
|
protectedinherited |
◆ m_DQFilterTools
ToolHandleArray<IDQFilterTool> AthMonitorAlgorithm::m_DQFilterTools {this,"FilterTools",{}} |
|
protectedinherited |
◆ m_dummy
◆ m_electronDNNTool
ToolHandleArray<IAsgElectronLikelihoodTool> TrigEgammaMonitorBaseAlgorithm::m_electronDNNTool { this, "ElectronDNNSelectorTool", {},"DNN tools" } |
|
protectedinherited |
◆ m_electronIsEMTool
ToolHandleArray<IAsgElectronIsEMSelector> TrigEgammaMonitorBaseAlgorithm::m_electronIsEMTool {this,"ElectronIsEMSelector",{}} |
|
protectedinherited |
◆ m_electronLHTool
◆ m_emulatorTool
◆ m_enforceExpressTriggers
Gaudi::Property<bool> AthMonitorAlgorithm::m_enforceExpressTriggers |
|
privateinherited |
Initial value:{this,
"EnforceExpressTriggers", false,
"Requires that matched triggers made the event enter the express stream"}
Definition at line 372 of file AthMonitorAlgorithm.h.
◆ m_environment
◆ m_environmentStr
Gaudi::Property<std::string> AthMonitorAlgorithm::m_environmentStr {this,"Environment","user"} |
|
protectedinherited |
Environment string pulled from the job option and converted to enum.
Definition at line 352 of file AthMonitorAlgorithm.h.
◆ m_EventInfoKey
◆ m_evtStore
◆ m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 114 of file AthCommonReentrantAlgorithm.h.
◆ m_fileKey
Gaudi::Property<std::string> AthMonitorAlgorithm::m_fileKey {this,"FileKey",""} |
|
protectedinherited |
◆ m_isemname
Gaudi::Property<std::vector<std::string> > TrigEgammaMonitorBaseAlgorithm::m_isemname {this, "isEMResultNames", {} } |
|
protectedinherited |
◆ m_lbDurationDataKey
◆ m_lhname
Gaudi::Property<std::vector<std::string> > TrigEgammaMonitorBaseAlgorithm::m_lhname {this, "LHResultNames", {} } |
|
protectedinherited |
◆ m_lumiDataKey
◆ m_matchTool
◆ m_name
std::string AthMonitorAlgorithm::m_name |
|
privateinherited |
◆ m_photonIsEMTool
ToolHandleArray<IAsgPhotonIsEMSelector> TrigEgammaMonitorBaseAlgorithm::m_photonIsEMTool {this,"PhotonIsEMSelector",{}} |
|
protectedinherited |
◆ m_toolLookupMap
std::unordered_map<std::string, size_t> AthMonitorAlgorithm::m_toolLookupMap |
|
privateinherited |
◆ m_tools
◆ m_tp
Gaudi::Property<bool> TrigEgammaMonitorBaseAlgorithm::m_tp {this, "TPTrigger", false } |
|
protectedinherited |
◆ m_trigdec
◆ m_trigDecTool
◆ m_triggerChainString
Gaudi::Property<std::string> AthMonitorAlgorithm::m_triggerChainString {this,"TriggerChain",""} |
|
protectedinherited |
Trigger chain string pulled from the job option and parsed into a vector.
Definition at line 355 of file AthMonitorAlgorithm.h.
◆ m_trigInfo
std::map<std::string,TrigInfo> TrigEgammaMonitorBaseAlgorithm::m_trigInfo |
|
privateinherited |
◆ m_trigLiveFractionDataKey
◆ m_useLumi
Gaudi::Property<bool> AthMonitorAlgorithm::m_useLumi {this,"EnableLumi",false} |
|
protectedinherited |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_vTrigChainNames
std::vector<std::string> AthMonitorAlgorithm::m_vTrigChainNames |
|
protectedinherited |
The documentation for this class was generated from the following files:
virtual double phi() const
The azimuthal angle ( ) of the particle.
ToolHandleArray< IAsgPhotonIsEMSelector > m_photonIsEMTool
Offline isEM Photon Selectors.
float dR(const float, const float, const float, const float) const
Get delta R.
Extra patterns decribing particle interation process.
Electron_v1 Electron
Definition of the current "egamma version".
Scalar phi() const
phi method
ToolHandle< Trig::TrigDecisionTool > m_trigdec
Trigger decision tool.
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecTool
Tool to tell whether a specific trigger is passed.
float getEt(const xAOD::Electron *eg) const
Scalar eta() const
pseudorapidity method
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
asg::AcceptData setAccept(const TrigCompositeUtils::Decision *, const TrigInfo &, const bool) const
Set the accept object for all trigger levels.
std::vector< std::string > m_vTrigChainNames
Vector of trigger chain names parsed from trigger chain string.
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)
SG::ReadHandleKey< xAOD::EventInfo > m_EventInfoKey
Key for retrieving EventInfo from StoreGate.
std::string dirname(std::string name)
@ ptcone20
Track isolation.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
std::unordered_map< std::string, size_t > m_toolLookupMap
AthMonitorAlgorithm::Environment_t m_environment
Instance of the Environment_t enum.
setEt setPhi setE277 setWeta2 eta1
@ numberOfTRTHits
number of TRT hits [unit8_t].
std::vector< size_t > vec
const ToolHandle< Trig::TrigDecisionTool > & tdt() const
Get the TDT
void fillL1Calo(const std::string &trigger, const std::vector< const xAOD::EmTauRoI * > &l1_vec) const
void fillShowerShapes(const std::string &trigger, const std::vector< const xAOD::Egamma * > &eg_vec, bool online) const
bool trigChainsArePassed(const std::vector< std::string > &vTrigNames) const
Check whether triggers are passed.
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
virtual void setOwner(IDataHandleHolder *o)=0
const ToolHandle< GenericMonitoringTool > m_dummy
void fillL2Electron(const std::string &trigger, const std::vector< const xAOD::TrigElectron * > &el_vec) const
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
Description of a calorimeter cluster.
bool isConvertedPhoton(const xAOD::Egamma *eg, bool excludeTRT=false)
is the object a converted photon
ToolHandleArray< IDQFilterTool > m_DQFilterTools
Array of Data Quality filter tools.
void fillL1CaloResolution(const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma *, const xAOD::EmTauRoI * >> &pairObjs) const
std::map< std::string, TrigInfo > m_trigInfo
creates map of trigger name and TrigInfo struct
Gaudi::Property< std::string > m_defaultProbePidElectron
default probe pid for electron trigitems that don't have pid in their name
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
virtual double eta() const
The pseudorapidity ( ) of the particle.
void fillL2CaloResolution(const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * >> &pairObjs) const
::StatusCode StatusCode
StatusCode definition for legacy code.
bool isElectron(const xAOD::Egamma *eg)
is the object an electron (not Fwd)
void fillHLTPhotonResolution(const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * >> &pairObjs, const TrigInfo &info) const
void tolower(std::string &s)
virtual StatusCode fillHistograms(const EventContext &ctx) const =0
adds event to the monitoring histograms
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
ToolHandle< Trig::TrigEgammaEmulationToolMT > m_emulatorTool
bool contains(const std::string &s, const std::string ®x)
does a string contain the substring
const xAOD::CaloCluster * caloCluster(size_t index=0) const
Pointer to the xAOD::CaloCluster/s that define the electron candidate.
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Gaudi::Property< bool > m_doEmulation
Do emulation.
virtual double phi() const override final
The azimuthal angle ( ) of the particle.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const
Fills a vector of variables to a group by reference.
AthConfigFlags cosmics(AthConfigFlags flags, str instanceName, str recoMode)
ToolHandleArray< IAsgElectronIsEMSelector > m_electronIsEMTool
Offline isEM Selectors.
void fillL1CaloAbsResolution(const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma *, const xAOD::EmTauRoI * >> &pairObjs) const
ToolHandleArray< IAsgElectronLikelihoodTool > m_electronLHTool
Offline LH Selectors.
void fillL2Calo(const std::string &trigger, const std::vector< const xAOD::TrigEMCluster * > &emCluster_vec) const
AthMonitorAlgorithm::DataType_t m_dataType
Instance of the DataType_t enum.
double atof(std::string_view str)
Converts a string into a double / float.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Gaudi::Property< std::vector< std::string > > m_isemname
isem names
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.
void fillEFCalo(const std::string &trigger, const std::vector< const xAOD::CaloCluster * > &clus_vec) const
void fillL1eEM(const std::string &trigger, const std::vector< const xAOD::eFexEMRoI * > &l1_vec) const
Gaudi::Property< bool > m_enforceExpressTriggers
ToolHandle< TrigEgammaMatchingToolMT > m_matchTool
@ PHICALOFRAME
Phi in the calo frame (for egamma)
virtual float lbAverageInteractionsPerCrossing(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Calculate the average mu, i.e.
void fillTracking(const std::string &trigger, const std::vector< const xAOD::Electron * > &eg_vec, bool online) const
TrigEgammaMonitorBaseAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
const ToolHandle< TrigEgammaMatchingToolMT > & match() const
Get the e/g match tool.
Photon_v1 Photon
Definition of the current "egamma version".
void fillLabel(const ToolHandle< GenericMonitoringTool > &groupHandle, const std::string &histname, const std::string &label) const
accumulate
Update flags based on parser line args.
Gaudi::Property< std::vector< std::string > > m_lhname
lh names
ToolHandleArray< IAsgElectronLikelihoodTool > m_electronDNNTool
Offline DNN Selectors.
float getD0sig(const xAOD::Electron *eg) const
#define ATH_MSG_WARNING(x)
Gaudi::Property< bool > m_detailedHists
Include more detailed histograms.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
virtual StatusCode sysInitialize() override
Override sysInitialize.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
void fillInefficiency(const std::string &pidword, const TrigInfo &info, const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * >> &pairObjs, const std::vector< asg::AcceptData > &acceptObjs) const
Class describing a TrackParticle.
Declare a monitored scalar variable.
Description of a trigger EM cluster.
@ e2tsts1
energy of the cell corresponding to second energy maximum in the first sampling
@ ETACALOFRAME
Eta in the calo frame (for egamma)
virtual StatusCode initialize() override
initialize
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Gaudi::Property< std::string > m_defaultProbePidPhoton
default probe pid for photon trigitems that don't have pid in their name
void fillL2Photon(const std::string &trigger, const std::vector< const xAOD::TrigPhoton * > &eg_vec) const
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
@ emaxs1
energy of strip with maximal energy deposit
virtual double e() const
The total energy of the particle.
std::string getL1Item(const std::string &trigger) const
Creates static map to return L1 item from trigger name.
const ToolHandle< GenericMonitoringTool > & getGroup(const std::string &name) const
Get a specific monitoring tool from the tool handle array.
void fillHLTElectronResolution(const std::string &trigger, const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * >> &pairObjs, const TrigInfo &info) const
void fillEfficiency(const std::string &subgroup, const std::string &level, const std::string &pidword, const TrigInfo &info, const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * >> &pairObjs, const std::vector< asg::AcceptData > &acceptObjs, const std::string &dirname) const