|
ATLAS Offline Software
|
#include <TrigEgammaMonitorElectronAlgorithm.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...
|
|
|
| TrigEgammaMonitorElectronAlgorithm (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual | ~TrigEgammaMonitorElectronAlgorithm () override |
|
virtual StatusCode | initialize () override |
| initialize More...
|
|
virtual StatusCode | fillHistograms (const EventContext &ctx) 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 |
|
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 |
| 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...
|
|
|
StatusCode | executeNavigation (const EventContext &ctx, const std::string &trigItem, float, const std::string &, std::vector< std::pair< std::shared_ptr< const xAOD::Egamma >, const TrigCompositeUtils::Decision * >> &) const |
| navigation method called by executeNavigation 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...
|
|
|
std::vector< std::string > | m_trigList |
| List of triggers to study. More...
|
|
Gaudi::Property< std::vector< std::string > > | m_trigInputList {this, "TriggerList", {}} |
| List of triggers from menu. More...
|
|
Gaudi::Property< std::string > | m_anatype {this, "Analysis", "Electron"} |
| Directory name for each algorithm. More...
|
|
Gaudi::Property< std::string > | m_offProbeIsolation { this, "OfflineProbeIsolation", "Loose"} |
| Define isolation working point for Probe electron. More...
|
|
Gaudi::Property< bool > | m_forceProbeIsolation {this, "ForceProbeIsolation", false} |
| force probe isolation More...
|
|
Gaudi::Property< bool > | m_forcePidSelection { this, "ForcePidSelection", true} |
| force pid and crack selection into electron navigation More...
|
|
Gaudi::Property< bool > | m_forceEtThr { this, "ForceEtThreshold", true} |
|
Gaudi::Property< bool > | m_forceVetoVeryLoose { this, "ForceVetoVeryLoose", false} |
|
Gaudi::Property< bool > | m_rmCrack { this, "RemoveCrack", true} |
| Remove crack region for Probe default True. More...
|
|
SG::ReadHandleKey< xAOD::ElectronContainer > | m_offElectronKey { this, "ElectronKey", "Electrons", ""} |
| Event Wise offline ElectronContainer Access and end iterator. More...
|
|
SG::ReadDecorHandleKey< xAOD::EventInfo > | m_eventInfoDecorKey {this, "LArStatusFlag", "EventInfo.larFlags", "Key for EventInfo object"} |
|
SG::ReadDecorHandleKey< xAOD::ElectronContainer > | m_electronIsolationKeyPtCone20 { this, "PtCone20Decoration", m_offElectronKey, "ptcone20", "Decoration key for the ptcone20 isolation decoration" } |
| Ensure offline electron isolation decoration is retrieved after being created. More...
|
|
ToolHandle< Trig::TrigDecisionTool > | m_trigdec |
| Trigger decision tool. More...
|
|
std::map< std::string, TrigInfo > | m_trigInfo |
| creates map of trigger name and TrigInfo struct More...
|
|
std::string | m_name |
|
std::unordered_map< std::string, size_t > | m_toolLookupMap |
|
const ToolHandle< GenericMonitoringTool > | m_dummy |
|
Gaudi::Property< bool > | m_enforceExpressTriggers |
|
DataObjIDColl | m_extendedExtraObjects |
| Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
|
|
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 |
|
◆ 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.
◆ TrigEgammaMonitorElectronAlgorithm()
TrigEgammaMonitorElectronAlgorithm::TrigEgammaMonitorElectronAlgorithm |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~TrigEgammaMonitorElectronAlgorithm()
TrigEgammaMonitorElectronAlgorithm::~TrigEgammaMonitorElectronAlgorithm |
( |
| ) |
|
|
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()
unsigned int AthReentrantAlgorithm::cardinality |
( |
| ) |
const |
|
overridevirtualinherited |
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 55 of file AthReentrantAlgorithm.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 272 of file TrigEgammaMonitorBaseAlgorithm.cxx.
274 float dphi = fabs(phi1 - phi2) < TMath::Pi() ? fabs(phi1 - phi2) : 2*TMath:: \
275 Pi() - fabs(phi1 - phi2);
276 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;
◆ executeNavigation()
navigation method called by executeNavigation
default is true
default is true
default is true
default is false
default is Loose
default is false
Definition at line 103 of file TrigEgammaMonitorElectronAlgorithm.cxx.
114 if(!offElectrons.isValid())
117 return StatusCode::FAILURE;
121 const std::string decorName=
"is"+pidName;
122 for(
const auto *
const eg : *offElectrons ){
126 if(!
eg->trackParticle()){
130 if(!
eg->caloCluster()){
136 if( !(
getEt(
eg) > (etthr-5.)*1.
e3) )
continue;
140 if ( (fabs(
eg->eta())>1.37 && fabs(
eg->eta())<1.52) || fabs(
eg->eta())>2.47 )
continue;
160 const auto el = std::make_shared<const xAOD::Electron>(*
eg);
162 decor(*
el)=
static_cast<bool>(
true);
164 match()->match(
el.get(), trigItem, dec, TrigDefs::includeFailedDecisions);
166 pairObjs.emplace_back(
el, dec);
170 ATH_MSG_DEBUG(
"BaseToolMT::Electron TEs " << pairObjs.size() <<
" found.");
171 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 & AthReentrantAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 79 of file AthReentrantAlgorithm.cxx.
86 return Algorithm::extraOutputDeps();
◆ fillDistributions()
Definition at line 407 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
411 const std::string trigger =
info.trigger;
413 unsigned int condition=TrigDefs::Physics;
416 std::vector<const xAOD::Egamma*> eg_vec;
417 std::vector<const xAOD::Electron*> el_vec;
418 for(
auto pairObj: pairObjs )
420 eg_vec.push_back(pairObj.first);
423 el_vec.push_back(elOff);
437 std::vector<const xAOD::EmTauRoI*> l1_vec;
438 for(
auto &initRoi: initRois ){
439 if( !initRoi.link.isValid() )
continue;
440 const auto *feat =
match()->getL1Feature( initRoi.source );
441 if(feat) l1_vec.push_back(feat);
445 std::vector<const xAOD::eFexEMRoI*> l1_vec;
446 for(
auto &initRoi: initRois ){
447 if( !initRoi.link.isValid() )
continue;
448 const auto *feat =
match()->getL1eEMFeature( initRoi.source );
449 if(feat) l1_vec.push_back(feat);
459 std::vector<const xAOD::TrigEMCluster*> emCluster_vec;
461 for(
auto &featLinkInfo :
vec ){
462 if(! featLinkInfo.isValid() )
continue;
463 const auto *feat = *(featLinkInfo.link);
465 emCluster_vec.push_back(feat);
471 std::string
key =
match()->key(
"PrecisionCalo_Electron");
472 if(
info.signature ==
"Photon")
key =
match()->key(
"PrecisionCalo_Photon");
476 std::vector<const xAOD::CaloCluster* > clus_vec;
478 for(
auto &featLinkInfo :
vec ){
479 if(! featLinkInfo.isValid() )
continue;
480 const auto *feat = *(featLinkInfo.link);
482 clus_vec.push_back(feat);
487 if (
info.signature ==
"Electron" ){
491 std::string
key =
match()->key(
"FastElectrons");
494 std::vector<const xAOD::TrigElectron*> el_vec;
497 for(
auto &featLinkInfo :
vec ){
498 if(! featLinkInfo.isValid() )
continue;
499 const auto *feat = *(featLinkInfo.link);
501 el_vec.push_back(feat);
507 std::string
key =
match()->key(
"Electrons_GSF");
511 std::vector<const xAOD::Electron*> el_vec;
512 std::vector<const xAOD::Egamma*> eg_vec;
514 for(
auto &featLinkInfo :
vec ){
515 if(! featLinkInfo.isValid() )
continue;
516 const auto *feat = *(featLinkInfo.link);
518 el_vec.push_back(feat);
519 eg_vec.push_back(feat);
524 }
else if (
info.signature ==
"Photon"){
527 std::string
key =
match()->key(
"FastPhotons");
528 std::vector<const xAOD::TrigPhoton*> ph_vec;
531 for(
auto &featLinkInfo :
vec ){
532 if(! featLinkInfo.isValid() )
continue;
533 const auto *feat = *(featLinkInfo.link);
535 ph_vec.push_back(feat);
542 std::vector<const xAOD::Egamma*> ph_vec;
544 for(
auto &featLinkInfo :
vec ){
545 if(! featLinkInfo.isValid() )
continue;
546 const auto *feat = *(featLinkInfo.link);
548 ph_vec.push_back(feat);
◆ fillEFCalo()
Definition at line 698 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
704 std::vector<float> energyBE0_vec, energyBE1_vec, energyBE2_vec, energyBE3_vec,
705 energy_vec, et_vec, eta_vec, phi_vec, eta_calo_vec, phi_calo_vec, highet_vec;
721 for (
const auto *clus : clus_vec )
723 double tmpeta = -999.;
726 double tmpphi = -999.;
737 eta_vec.push_back( clus->eta() );
738 phi_vec.push_back( clus->phi() );
739 eta_calo_vec.push_back( tmpeta );
740 phi_calo_vec.push_back( tmpphi );
745 fill(
monGroup, energyBE0_col, energyBE1_col, energyBE2_col, energyBE3_col,
746 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, 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_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, ptvarcone20rel_passed_vec, z0_passed_vec, d0_passed_vec;
171 std::vector<bool> et_slice0_passed_vec,et_slice1_passed_vec,et_slice2_passed_vec,et_slice3_passed_vec;
191 auto match_ptvarcone20rel_col =
Monitored::Collection(
"match_ptvarcone20rel" , match_ptvarcone20rel_vec );
205 auto ptvarcone20rel_passed_col =
Monitored::Collection(
"ptvarcone20rel_passed" , ptvarcone20rel_passed_vec );
223 for(
auto pairObj : pairObjs ){
226 bool isPassed = acceptObjs[iObj].getCutResult(
level );
228 float ptvarcone20rel = -99.0;
231 const auto *
eg = pairObj.first;
240 ptvarcone20rel = getIsolation_ptvarcone20(
el)/
el->pt();
242 z0 = getTrack_z0(
el);
243 d0 = getTrack_d0(
el);
247 float eta =
eg->caloCluster()->etaBE(2);
248 float phi =
eg->phi();
256 et_vec.push_back(
et );
257 pt_vec.push_back(
pt );
258 highet_vec.push_back(
et );
261 eta_vec.push_back(
eta);
262 phi_vec.push_back(
phi);
263 avgmu_vec.push_back(avgmu);
264 npvtx_vec.push_back(npvtx);
265 ptvarcone20rel_vec.push_back(ptvarcone20rel);
266 z0_vec.push_back(
z0);
267 d0_vec.push_back(
d0);
271 et_slice0_vec.push_back(
et);
272 }
else if( abs(
eta) > 0.80 && abs(
eta) <= 1.37 ){
273 et_slice1_vec.push_back(
et);
274 }
else if( abs(
eta) > 1.37 && abs(
eta) <= 1.54 ){
275 et_slice2_vec.push_back(
et);
276 }
else if( abs(
eta) > 1.54 && abs(
eta) <= 2.50 ){
277 et_slice3_vec.push_back(
et);
281 match_et_vec.push_back(
et );
282 match_pt_vec.push_back(
pt );
283 match_highet_vec.push_back(
et );
286 match_eta_vec.push_back(
eta);
287 match_phi_vec.push_back(
phi);
288 match_avgmu_vec.push_back(avgmu);
289 match_npvtx_vec.push_back(npvtx);
290 match_ptvarcone20rel_vec.push_back(ptvarcone20rel);
291 match_z0_vec.push_back(
z0);
292 match_d0_vec.push_back(
d0);
295 et_passed_vec.push_back(
true );
296 et_failed_vec.push_back(
false );
297 pt_passed_vec.push_back(
true );
298 highet_passed_vec.push_back(
true );
299 highet_failed_vec.push_back(
false );
302 et_slice0_passed_vec.push_back(
true);
303 }
else if( abs(
eta) > 0.80 && abs(
eta) <= 1.37 ){
304 et_slice1_passed_vec.push_back(
true);
305 }
else if( abs(
eta) > 1.37 && abs(
eta) <= 1.54 ){
306 et_slice2_passed_vec.push_back(
true);
307 }
else if( abs(
eta) > 1.54 && abs(
eta) <= 2.50 ){
308 et_slice3_passed_vec.push_back(
true);
312 eta_passed_vec.push_back(
true );
313 eta_failed_vec.push_back(
false );
314 phi_passed_vec.push_back(
true );
315 avgmu_passed_vec.push_back(
true );
316 npvtx_passed_vec.push_back(
true );
317 ptvarcone20rel_passed_vec.push_back(
true );
318 z0_passed_vec.push_back(
true );
319 d0_passed_vec.push_back(
true );
324 et_passed_vec.push_back(
false );
325 et_failed_vec.push_back(
true );
326 pt_passed_vec.push_back(
false );
327 highet_passed_vec.push_back(
false );
328 highet_failed_vec.push_back(
true );
331 et_slice0_passed_vec.push_back(
false);
332 }
else if( abs(
eta) > 0.80 && abs(
eta) <= 1.37 ){
333 et_slice1_passed_vec.push_back(
false);
334 }
else if( abs(
eta) > 1.37 && abs(
eta) <= 1.54 ){
335 et_slice2_passed_vec.push_back(
false);
336 }
else if( abs(
eta) > 1.54 && abs(
eta) <= 2.50 ){
337 et_slice3_passed_vec.push_back(
false);
341 eta_passed_vec.push_back(
false );
342 eta_failed_vec.push_back(
true );
343 phi_passed_vec.push_back(
false );
344 avgmu_passed_vec.push_back(
false );
345 npvtx_passed_vec.push_back(
false );
346 ptvarcone20rel_passed_vec.push_back(
false );
347 z0_passed_vec.push_back(
false );
348 d0_passed_vec.push_back(
false );
356 fill(
monGroup, et_col, highet_col, pt_col, eta_col, phi_col, avgmu_col, npvtx_col, ptvarcone20rel_col, z0_col, d0_col,
357 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_z0_col,match_d0_col,
358 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, z0_passed_col, d0_passed_col,
359 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()
StatusCode TrigEgammaMonitorElectronAlgorithm::fillHistograms |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
adds event to the monitoring histograms
User will overwrite this function. Histogram booking is no longer done in C++. This function is called in execute once the filters are all passed.
- Parameters
-
ctx | forwarded from execute |
- Returns
- StatusCode
Reimplemented from TrigEgammaMonitorBaseAlgorithm.
Definition at line 46 of file TrigEgammaMonitorElectronAlgorithm.cxx.
49 ATH_MSG_DEBUG(
"Executing TrigEgammaMonitorElectronAlgorithm");
53 return StatusCode::SUCCESS;
61 return StatusCode::SUCCESS;
70 ATH_MSG_DEBUG(
"Start Chain Analysis ============================= " << trigger <<
" " <<
info.trigger);
76 return StatusCode::SUCCESS;
79 std::vector< std::pair<const xAOD::Egamma*, const TrigCompositeUtils::Decision*>> pairObjsRaw;
80 pairObjsRaw.reserve(pairObjs.size());
81 for (
const auto& itr : pairObjs) {
82 pairObjsRaw.emplace_back(itr.first.get(), itr.second);
90 ATH_MSG_DEBUG(
"End Chain Analysis ============================= " << trigger);
94 return StatusCode::SUCCESS;
◆ fillHLTElectronResolution()
Definition at line 1028 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
1035 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,
1036 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,
1037 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,
1038 et_vec, eta_vec, mu_vec;
1039 std::vector<float> res_ptcone20_vec, res_ptcone20_rel_vec, res_ptvarcone20_vec, res_ptvarcone20_rel_vec;
1040 std::vector<float> res_etInEta0_vec, res_etInEta1_vec, res_etInEta2_vec, res_etInEta3_vec;
1084 auto res_ptvarcone20_rel_col =
Monitored::Collection(
"res_ptvarcone20_rel" , res_ptvarcone20_rel_vec );
1092 std::string
key =
match()->key(
"Electrons_GSF");
1096 for (
const auto & pairObj : pairObjs ){
1103 float maxDeltaR=0.05;
1105 for(
auto &featLinkInfo :
vec ){
1106 if(! featLinkInfo.isValid() )
continue;
1107 const auto *feat = *(featLinkInfo.link);
1109 float deltaR =
dR( off->
eta(), off->
phi(), feat->eta(), feat->phi() );
1120 const float onl_eta=
onl->eta();
1121 const float feta = abs(onl_eta);
1124 const float dummy=-999;
1126 eta_vec.push_back( onl_eta );
1127 et_vec.push_back( onl_et );
1128 mu_vec.push_back( avgmu );
1130 val_off=getTrack_pt(off);
1132 res_pt_vec.push_back( (getTrack_pt(off)-val_off)/val_off );
1139 res_et_vec.push_back( (
getEt(
onl)-val_off)/val_off );
1141 res_etInEta0_vec.push_back((
getEt(
onl)-val_off)/val_off);
1142 else if( feta >=1.37 && feta <= 1.52 )
1143 res_etInEta1_vec.push_back((
getEt(
onl)-val_off)/val_off);
1144 else if( feta >= 1.55 && feta < 1.8 )
1145 res_etInEta2_vec.push_back((
getEt(
onl)-val_off)/val_off);
1146 else if( feta >= 1.8 && feta < 2.45 )
1147 res_etInEta3_vec.push_back((
getEt(
onl)-val_off)/val_off);
1152 res_eta_vec.push_back( (onl_eta-val_off)/val_off );
1154 res_eta_vec.push_back(
dummy );
1159 res_phi_vec.push_back( (
onl->phi()-val_off)/val_off );
1161 res_phi_vec.push_back(
dummy );
1164 val_off=getShowerShape_ethad(off);
1166 res_ethad_vec.push_back((getShowerShape_ethad(
onl)-val_off)/val_off);
1168 res_ethad_vec.push_back(
dummy );
1171 val_off=getShowerShape_ethad1(off);
1173 res_ethad1_vec.push_back((getShowerShape_ethad1(
onl)-val_off)/val_off);
1175 res_ethad1_vec.push_back(
dummy);
1178 val_off=getShowerShape_Rhad(off);
1180 res_Rhad_vec.push_back( (getShowerShape_Rhad(
onl)-val_off)/val_off );
1182 res_Rhad_vec.push_back(
dummy );
1185 val_off=getShowerShape_Rhad1(off);
1187 res_Rhad1_vec.push_back( (getShowerShape_Rhad1(
onl)-val_off)/val_off );
1189 res_Rhad1_vec.push_back(
dummy );
1192 val_off=getShowerShape_Reta(off);
1194 res_Reta_vec.push_back( (getShowerShape_Reta(
onl)-val_off)/val_off );
1196 res_Reta_vec.push_back(
dummy );
1199 val_off=getShowerShape_Rphi(off);
1201 res_Rphi_vec.push_back( (getShowerShape_Rphi(
onl)-val_off)/val_off );
1203 res_Rphi_vec.push_back( (getShowerShape_Rphi(
onl)-val_off)/val_off );
1206 val_off=getShowerShape_weta1(off);
1208 res_weta1_vec.push_back( (getShowerShape_weta1(
onl)-val_off)/val_off );
1210 res_weta1_vec.push_back(
dummy );
1213 val_off=getShowerShape_weta2(off);
1215 res_weta2_vec.push_back( (getShowerShape_weta2(
onl)-val_off)/val_off );
1217 res_weta2_vec.push_back(
dummy );
1220 val_off=getShowerShape_wtots1(off);
1222 res_wtots1_vec.push_back( (getShowerShape_wtots1(
onl)-val_off)/val_off );
1224 res_wtots1_vec.push_back(
dummy );
1227 val_off=getShowerShape_f1(off);
1229 res_f1_vec.push_back( (getShowerShape_f1(
onl)-val_off)/val_off );
1231 res_f1_vec.push_back(
dummy );
1234 val_off=getShowerShape_f3(off);
1236 res_f3_vec.push_back( (getShowerShape_f3(
onl)-val_off)/val_off );
1238 res_f3_vec.push_back(
dummy );
1241 val_off=getShowerShape_Eratio(off);
1243 res_eratio_vec.push_back( (getShowerShape_Eratio(
onl)-val_off)/val_off );
1245 res_eratio_vec.push_back(
dummy );
1253 val_off=getTrack_pt(off);
1255 res_pt_vec.push_back( (getTrack_pt(
onl)-val_off)/val_off );
1257 res_pt_vec.push_back(
dummy );
1262 res_et_vec.push_back( (
getEt(
onl)-val_off)/val_off );
1264 res_et_vec.push_back(
dummy );
1267 val_off=getCaloTrackMatch_deltaEta1(off);
1269 res_deta1_vec.push_back( (getCaloTrackMatch_deltaEta1(
onl)-val_off)/val_off );
1271 res_deta1_vec.push_back(
dummy );
1274 val_off=getCaloTrackMatch_deltaEta2(off);
1275 res_deta2_vec.push_back( (getCaloTrackMatch_deltaEta2(
onl)-val_off)/val_off );
1276 val_off=getCaloTrackMatch_deltaPhi2(off);
1278 res_dphi2_vec.push_back( (getCaloTrackMatch_deltaPhi2(
onl)-val_off)/val_off );
1280 res_dphi2_vec.push_back(
dummy );
1283 val_off=getCaloTrackMatch_deltaPhiRescaled2(off);
1284 res_dphiresc_vec.push_back( (getCaloTrackMatch_deltaPhiRescaled2(
onl)-val_off)/val_off );
1286 val_off=getTrack_z0(off);
1288 res_z0_vec.push_back( getTrack_z0(
onl)-val_off );
1290 res_z0_vec.push_back(
dummy );
1294 val_off=getTrack_d0(off);
1296 res_d0_vec.push_back( getTrack_d0(
onl)-val_off );
1298 res_d0_vec.push_back(
dummy );
1305 res_d0sig_vec.push_back(
dummy );
1309 val_off=getTrackSummaryFloat_eProbabilityHT(off);
1310 res_eprobht_vec.push_back( (getTrackSummaryFloat_eProbabilityHT(
onl)-val_off) );
1311 res_npixhits_vec.push_back( getTrackSummary_numberOfPixelHits(
onl)-getTrackSummary_numberOfPixelHits(
onl) );
1312 res_nscthits_vec.push_back( getTrackSummary_numberOfSCTHits(
onl)-getTrackSummary_numberOfSCTHits(
onl) );
1319 float val_off=getIsolation_ptcone20(off);
1321 res_ptcone20_vec.push_back((getIsolation_ptcone20(
onl)-val_off)/val_off);
1323 const float reliso_onl=getIsolation_ptcone20(
onl)/
getEt(
onl);
1324 const float reliso_off=getIsolation_ptcone20(off)/
getEt(off);
1325 res_ptcone20_rel_vec.push_back((reliso_onl-reliso_off)/reliso_off);
1327 res_ptcone20_rel_vec.push_back(
dummy);
1330 res_ptcone20_vec.push_back(
dummy);
1331 res_ptcone20_rel_vec.push_back(
dummy);
1335 val_off=getIsolation_ptvarcone20(off);
1338 res_ptvarcone20_vec.push_back((getIsolation_ptvarcone20(
onl)-val_off)/val_off);
1339 const float reliso_onl=getIsolation_ptvarcone20(
onl)/
getEt(
onl);
1340 const float reliso_off=getIsolation_ptvarcone20(off)/
getEt(off);
1341 res_ptvarcone20_rel_vec.push_back((reliso_onl-reliso_off)/reliso_off);
1343 res_ptvarcone20_rel_vec.push_back(
dummy);
1346 res_ptvarcone20_vec.push_back(
dummy);
1347 res_ptvarcone20_rel_vec.push_back(
dummy);
1390 res_ptcone20_rel_col ,
1391 res_ptvarcone20_col ,
1392 res_ptvarcone20_rel_col ,
◆ fillHLTPhotonResolution()
Definition at line 1406 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
1413 std::vector<float> res_phi_vec, res_eta_vec, res_Rhad_vec, res_Rhad1_vec, res_Reta_vec, res_ethad_vec, res_ethad1_vec,
1414 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;
1416 std::vector<float> res_et_vec, res_et_cnv_vec, res_et_uncnv_vec;
1417 std::vector<float> res_etInEta0_vec, res_etInEta1_vec, res_etInEta2_vec, res_etInEta3_vec;
1418 std::vector<float> res_cnv_etInEta0_vec, res_cnv_etInEta1_vec, res_cnv_etInEta2_vec, res_cnv_etInEta3_vec;
1419 std::vector<float> res_uncnv_etInEta0_vec, res_uncnv_etInEta1_vec, res_uncnv_etInEta2_vec, res_uncnv_etInEta3_vec;
1423 std::vector<float> res_topoetcone20_vec, res_topoetcone20_rel_vec;
1457 auto res_uncnv_etInEta0_col =
Monitored::Collection(
"res_uncnv_etInEta0" , res_uncnv_etInEta0_vec);
1458 auto res_uncnv_etInEta1_col =
Monitored::Collection(
"res_uncnv_etInEta1" , res_uncnv_etInEta1_vec);
1459 auto res_uncnv_etInEta2_col =
Monitored::Collection(
"res_uncnv_etInEta2" , res_uncnv_etInEta2_vec);
1460 auto res_uncnv_etInEta3_col =
Monitored::Collection(
"res_uncnv_etInEta3" , res_uncnv_etInEta3_vec);
1464 auto res_topoetcone20_rel_col =
Monitored::Collection(
"res_topoetcone20_rel" , res_topoetcone20_rel_vec );
1474 for (
const auto & pairObj : pairObjs ){
1481 float maxDeltaR=0.05;
1483 for(
auto &featLinkInfo :
vec ){
1484 if(! featLinkInfo.isValid() )
continue;
1485 const auto *feat = *(featLinkInfo.link);
1487 float deltaR =
dR( off->
eta(), off->
phi(), feat->eta(), feat->phi() );
1499 const float onl_eta=
onl->eta();
1500 const float feta = abs(onl_eta);
1502 const float dummy=-999;
1505 et_vec.push_back( onl_et );
1506 eta_vec.push_back( onl_eta );
1507 mu_vec.push_back( avgmu );
1510 val_off=getCluster_et(off);
1512 res_et_vec.push_back( (getCluster_et(
onl)-val_off)/val_off );
1514 res_etInEta0_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1515 else if( feta >=1.37 && feta <= 1.52 )
1516 res_etInEta1_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1517 else if( feta >= 1.55 && feta < 1.8 )
1518 res_etInEta2_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1519 else if( feta >= 1.8 && feta < 2.45 )
1520 res_etInEta3_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1523 res_et_cnv_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1525 res_cnv_etInEta0_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1526 else if( feta >=1.37 && feta <= 1.52 )
1527 res_cnv_etInEta1_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1528 else if( feta >= 1.55 && feta < 1.8 )
1529 res_cnv_etInEta2_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1530 else if( feta >= 1.8 && feta < 2.45 )
1531 res_cnv_etInEta3_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1533 res_et_uncnv_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1535 res_uncnv_etInEta0_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1536 else if( feta >=1.37 && feta <= 1.52 )
1537 res_uncnv_etInEta1_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1538 else if( feta >= 1.55 && feta < 1.8 )
1539 res_uncnv_etInEta2_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1540 else if( feta >= 1.8 && feta < 2.45 )
1541 res_uncnv_etInEta3_vec.push_back((getCluster_et(
onl)-val_off)/val_off);
1547 res_eta_vec.push_back( (onl_eta-val_off)/val_off ) ;
1549 res_eta_vec.push_back(
dummy ) ;
1554 res_phi_vec.push_back( (
onl->phi()-val_off)/val_off );
1556 res_phi_vec.push_back(
dummy );
1559 val_off=getShowerShape_ethad(off);
1561 res_ethad_vec.push_back((getShowerShape_ethad(
onl)-val_off)/val_off);
1563 res_ethad_vec.push_back(
dummy);
1566 val_off=getShowerShape_ethad1(off);
1568 res_ethad1_vec.push_back((getShowerShape_ethad1(
onl)-val_off)/val_off);
1570 res_ethad1_vec.push_back(
dummy);
1573 val_off=getShowerShape_Rhad(off);
1575 res_Rhad_vec.push_back( (getShowerShape_Rhad(
onl)-val_off)/val_off );
1577 res_Rhad_vec.push_back(
dummy );
1580 val_off=getShowerShape_Rhad1(off);
1582 res_Rhad1_vec.push_back( (getShowerShape_Rhad1(
onl)-val_off)/val_off );
1584 res_Rhad1_vec.push_back(
dummy );
1587 val_off=getShowerShape_Reta(off);
1589 res_Reta_vec.push_back( (getShowerShape_Reta(
onl)-val_off)/val_off );
1591 res_Reta_vec.push_back(
dummy );
1594 val_off=getShowerShape_Rphi(off);
1596 res_Rphi_vec.push_back( (getShowerShape_Rphi(
onl)-val_off)/val_off );
1598 res_Rphi_vec.push_back(
dummy );
1601 val_off=getShowerShape_weta1(off);
1603 res_weta1_vec.push_back( (getShowerShape_weta1(
onl)-val_off)/val_off );
1605 res_weta1_vec.push_back(
dummy );
1608 val_off=getShowerShape_weta2(off);
1610 res_weta2_vec.push_back( (getShowerShape_weta2(
onl)-val_off)/val_off );
1612 res_weta2_vec.push_back(
dummy);
1615 val_off=getShowerShape_wtots1(off);
1617 res_wtots1_vec.push_back( (getShowerShape_wtots1(
onl)-val_off)/val_off );
1619 res_wtots1_vec.push_back(
dummy );
1622 val_off=getShowerShape_f1(off);
1624 res_f1_vec.push_back( (getShowerShape_f1(
onl)-val_off)/val_off );
1626 res_f1_vec.push_back(
dummy );
1629 val_off=getShowerShape_f3(off);
1631 res_f3_vec.push_back( (getShowerShape_f3(
onl)-val_off)/val_off );
1633 res_f3_vec.push_back(
dummy );
1636 val_off=getShowerShape_Eratio(off);
1638 res_eratio_vec.push_back( (getShowerShape_Eratio(
onl)-val_off)/val_off);
1640 res_eratio_vec.push_back(
dummy);
1644 if(
info.isolated ){
1646 float val_off=getIsolation_topoetcone20(off);
1647 float etonl=
onl->pt();
1648 float etoff=off->
pt();
1650 res_topoetcone20_vec.push_back((getIsolation_topoetcone20(
onl)-val_off)/val_off);
1651 if (etonl > 0. && etoff > 0.) {
1652 const float reliso_onl=getIsolation_topoetcone20(
onl)/etonl;
1653 const float reliso_off=getIsolation_topoetcone20(off)/etoff;
1654 res_topoetcone20_rel_vec.push_back((reliso_onl-reliso_off)/reliso_off);
1656 res_topoetcone20_rel_vec.push_back(
dummy);
1659 res_topoetcone20_vec.push_back(
dummy);
1660 res_topoetcone20_rel_vec.push_back(
dummy);
1688 res_topoetcone20_col ,
1689 res_topoetcone20_rel_col ,
1695 res_cnv_etInEta0_col,
1696 res_cnv_etInEta1_col,
1697 res_cnv_etInEta2_col,
1698 res_cnv_etInEta3_col,
1700 res_uncnv_etInEta0_col,
1701 res_uncnv_etInEta1_col,
1702 res_uncnv_etInEta2_col,
1703 res_uncnv_etInEta3_col
◆ fillInefficiency()
Definition at line 364 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
373 for(
auto pairObj : pairObjs ){
376 bool isPassedL1Calo = acceptObjs[iObj].getCutResult(
"L1Calo");
377 bool isPassedL2Calo = acceptObjs[iObj].getCutResult(
"L2Calo");
378 bool isPassedL2 = acceptObjs[iObj].getCutResult(
"L2" );
379 bool isPassedEFCalo = acceptObjs[iObj].getCutResult(
"EFCalo");
380 bool isPassedHLT = acceptObjs[iObj].getCutResult(
"HLT" );
382 const auto *
eg = pairObj.first;
392 }
if(!isPassedL2Calo){
396 }
if(!isPassedEFCalo){
◆ fillL1Calo()
Definition at line 562 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
566 std::vector<float> eta_vec, phi_vec, energy_vec, roi_et_vec, emIso_vec, hadCore_vec;
575 for(
const auto *
l1 : l1_vec )
578 eta_vec.push_back(
l1->eta() );
579 phi_vec.push_back(
l1->phi() );
586 fill(
monGroup, eta_col, phi_col, energy_col, roi_et_col, emIso_col, hadCore_col );
◆ fillL1CaloAbsResolution()
Definition at line 1000 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
1005 std::vector<float> eta_vec, res_et_vec;
1011 for (
const auto & pairObj : pairObjs){
1012 const auto *off = pairObj.first;
1013 const auto *
l1 = pairObj.second;
1017 eta_vec.push_back(
l1->eta() );
◆ fillL1CaloResolution()
Definition at line 970 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
975 std::vector<float> eta_vec, res_et_vec;
981 for (
const auto & pairObj : pairObjs){
982 const auto *off = pairObj.first;
983 const auto *
l1 = pairObj.second;
987 eta_vec.push_back(
l1->eta() );
988 res_et_vec.push_back( (
l1->emClus()-
getEt(eloff))/
getEt(eloff) ) ;
◆ fillL1eEM()
Definition at line 591 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
595 std::vector<float> eta_vec, phi_vec, et_vec, wstot_vec, reta_vec, rhad_vec;
605 for(
const auto *
l1 : l1_vec )
609 eta_vec.push_back(
l1->eta() );
610 phi_vec.push_back(
l1->phi() );
611 wstot_vec.push_back(
l1->Wstot() );
612 reta_vec.push_back(
l1->Reta() );
613 rhad_vec.push_back(
l1->Rhad() );
616 fill(
monGroup, eta_col, phi_col, et_col, wstot_col, reta_col, rhad_col );
◆ fillL2Calo()
Definition at line 622 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
626 std::vector<float> et_vec,highet_vec, eta_vec, phi_vec;
633 for (
const auto *emCluster : emCluster_vec )
635 if(!emCluster)
continue;
638 eta_vec.push_back( emCluster->eta() );
639 phi_vec.push_back( emCluster->phi() );
◆ fillL2CaloResolution()
Definition at line 1711 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
1719 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,
1720 res_Rphi_vec, res_weta2_vec, res_f1_vec, res_f3_vec, res_eratio_vec, et_vec, eta_vec;
1740 for (
const auto & pairObj : pairObjs ){
1747 float maxDeltaR=0.05;
1749 for(
auto &featLinkInfo :
vec ){
1750 if(! featLinkInfo.isValid() )
continue;
1751 const auto *feat = *(featLinkInfo.link);
1753 float deltaR =
dR( off->
eta(), off->
phi(), feat->eta(), feat->phi() );
1763 et_vec.push_back(
onl->et()*1
e-3);
1764 eta_vec.push_back(
onl->eta());
1765 const float dummy=-999;
1771 res_et_vec.push_back(((
onl->et())-val_off)/val_off);
1773 res_et_vec.push_back(
dummy);
1778 res_eta_vec.push_back((
onl->eta()-val_off)/val_off);
1780 res_eta_vec.push_back(
dummy);
1785 res_phi_vec.push_back((
onl->phi()-val_off)/val_off);
1787 res_phi_vec.push_back((
onl->phi()-val_off)/val_off);
1795 elonl_ethad /= TMath::CosH(
onl->eta() );
1796 val_off=getShowerShape_ethad(off);
1798 res_ethad_vec.push_back((elonl_ethad-val_off)/val_off);
1800 res_ethad_vec.push_back(
dummy);
1803 val_off=getShowerShape_ethad1(off);
1805 res_ethad1_vec.push_back(( (
onl->ehad1()/TMath::Abs(
onl->eta()) )-val_off)/val_off);
1807 res_ethad1_vec.push_back(
dummy);
1810 float elonl_Rhad = elonl_ethad /
onl->energy() ;
1811 val_off=getShowerShape_Rhad(off);
1813 res_Rhad_vec.push_back(( elonl_Rhad-val_off)/val_off);
1815 res_Rhad_vec.push_back(
dummy);
1818 float elonl_Rhad1 =
onl->ehad1() /
onl->energy() ;
1819 val_off=getShowerShape_Rhad1(off);
1821 res_Rhad1_vec.push_back(( elonl_Rhad1-val_off)/val_off);
1823 res_Rhad1_vec.push_back(
dummy);
1826 float onl_reta= 999.0;
1827 if ( fabsf (
onl->e277() ) > 0.01 ) onl_reta =
onl->e237() /
onl->e277();
1828 val_off=getShowerShape_Reta(off);
1830 res_Reta_vec.push_back( (onl_reta -val_off)/val_off);
1832 res_Reta_vec.push_back(
dummy);
1835 val_off=getShowerShape_weta2(off);
1837 res_weta2_vec.push_back(( (
onl->weta2())-val_off)/val_off);
1839 res_weta2_vec.push_back(
dummy);
1843 onl_f1 /=
onl->energy();
1844 val_off=getShowerShape_f1(off);
1846 res_f1_vec.push_back(( (onl_f1)-val_off)/val_off);
1848 res_f1_vec.push_back(
dummy);
1852 onl_f3 /=
onl->energy();
1853 val_off=getShowerShape_f3(off);
1855 res_f3_vec.push_back(( (onl_f3)-val_off)/val_off);
1857 res_f3_vec.push_back(
dummy);
1860 float onl_eratio = 999.0;
1861 if ( fabsf(
onl->emaxs1() +
onl->e2tsts1()) > 0.01 )
1862 onl_eratio = (
onl->emaxs1() -
onl->e2tsts1()) / (
onl->emaxs1() +
onl->e2tsts1());
1863 val_off=getShowerShape_Eratio(off);
1865 res_eratio_vec.push_back(( (onl_eratio)-val_off)/val_off);
1867 res_eratio_vec.push_back(
dummy);
◆ fillL2Electron()
Definition at line 649 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
654 std::vector<float> et_vec, eta_vec, phi_vec, highet_vec;
661 for (
const auto *
el : el_vec )
666 eta_vec.push_back(
el->eta() );
667 phi_vec.push_back(
el->phi() );
◆ fillL2Photon()
Definition at line 673 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
678 std::vector<float> et_vec, eta_vec, phi_vec, highet_vec;
685 for (
const auto *ph : ph_vec )
690 eta_vec.push_back( ph->eta() );
691 phi_vec.push_back( ph->phi() );
◆ fillLabel()
◆ fillResolutions()
***********************************************************************************************************************8
Definition at line 914 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
918 std::vector< std::pair< const xAOD::Egamma*, const xAOD::EmTauRoI * >> pair_l1_vec;
919 std::vector< std::pair< const xAOD::Egamma*, const TrigCompositeUtils::Decision * >> pair_eg_vec;
920 const std::string trigger =
info.trigger;
923 for(
auto pairObj : pairObjs ){
926 const auto *feat = pairObj.second;
933 const auto *
l1 =
match()->getL1Feature( feat );
937 if(
et <
info.etthr-5.0)
continue;
938 if(!pidnameDec(*
eg))
continue;
939 pair_eg_vec.emplace_back(
el,feat);
940 if(
l1) pair_l1_vec.emplace_back(
eg,
l1 );
944 if(
et <
info.etthr-5.0)
continue;
945 pair_eg_vec.emplace_back(
eg,feat);
946 if(
l1) pair_l1_vec.emplace_back(
eg,
l1 );
958 if (
info.signature==
"Electron"){
961 else if (
info.signature==
"Photon"){
◆ fillShowerShapes()
void TrigEgammaMonitorAnalysisAlgorithm::fillShowerShapes |
( |
const std::string & |
trigger, |
|
|
const std::vector< const xAOD::Egamma * > & |
eg_vec, |
|
|
bool |
online |
|
) |
| const |
|
privateinherited |
Definition at line 753 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
759 std::vector<float> Rhad_vec, Rhad1_vec, Reta_vec, Rphi_vec, weta1_vec, weta2_vec,
760 f1_vec, f3_vec, eratio_vec, et_vec, highet_vec , eta_vec, phi_vec, topoetcone20_vec, topoetcone40_shift_vec,
761 topoetcone20_rel_vec, topoetcone40_shift_rel_vec;
780 auto topoetcone40_shift_rel_col =
Monitored::Collection(
"topoetcone40_shift_rel", topoetcone40_shift_rel_vec );
782 for (
const auto *
eg : eg_vec ){
786 Rhad_vec.push_back( getShowerShape_Rhad(
eg));
787 Rhad1_vec.push_back( getShowerShape_Rhad(
eg));
788 Reta_vec.push_back( getShowerShape_Reta(
eg));
789 Rphi_vec.push_back( getShowerShape_Rphi(
eg));
790 weta1_vec.push_back( getShowerShape_weta1(
eg));
791 weta2_vec.push_back( getShowerShape_weta2(
eg));
792 f1_vec.push_back( getShowerShape_f1(
eg));
793 f3_vec.push_back( getShowerShape_f3(
eg));
794 eratio_vec.push_back( getShowerShape_Eratio(
eg));
797 eta_vec.push_back(
eg->eta());
798 phi_vec.push_back(
eg->phi());
800 topoetcone40_shift_vec.push_back( (getIsolation_topoetcone40(
eg)-2450)/
Gaudi::Units::GeV );
803 topoetcone20_rel_vec.push_back( getIsolation_topoetcone20(
eg)/
eg->pt());
804 topoetcone40_shift_rel_vec.push_back( (getIsolation_topoetcone40(
eg)-2450)/
eg->pt() );
809 fill(
monGroup, Rhad_col, Rhad1_col, Reta_col, Rphi_col, weta1_col, weta2_col,
810 f1_col, f3_col, eratio_col, et_col, highet_col , eta_col, phi_col, topoetcone20_col, topoetcone40_shift_col,
811 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 |
|
privateinherited |
Definition at line 816 of file TrigEgammaMonitorAnalysisAlgorithm.cxx.
823 std::vector<float> deta1_vec, deta1_EMECA_vec, deta1_EMECC_vec, deta1_EMEBA_vec, deta1_EMEBC_vec, deta2_vec, dphi2_vec,
824 dphiresc_vec, eprobht_vec, npixhits_vec, nscthits_vec, charge_vec, ptcone20_vec, ptvarcone20_vec, z0_vec, d0_vec, d0sig_vec,
825 pt_vec,pt_trk_vec, ptcone20_rel_vec, ptvarcone20_rel_vec, eta_vec, mu_vec;
853 for (
const auto *
eg : eg_vec ){
858 if(
eg->caloCluster()) cleta=
eg->caloCluster()->eta();
859 else cleta=
eg->eta();
861 deta1_vec.push_back( getCaloTrackMatch_deltaEta1(
eg));
863 if(cleta > 1.375 && cleta < 3.2)
864 deta1_EMECA_vec.push_back( getCaloTrackMatch_deltaEta1(
eg));
865 if(cleta < -1.375 && cleta > -3.2)
866 deta1_EMECC_vec.push_back( getCaloTrackMatch_deltaEta1(
eg));
867 if(cleta > 0 && cleta < 1.375)
868 deta1_EMEBA_vec.push_back( getCaloTrackMatch_deltaEta1(
eg));
869 if(cleta < 0 && cleta > -1.375)
870 deta1_EMEBC_vec.push_back( getCaloTrackMatch_deltaEta1(
eg));
872 deta2_vec.push_back( getCaloTrackMatch_deltaEta2(
eg));
873 dphi2_vec.push_back( getCaloTrackMatch_deltaPhi2(
eg));
874 dphiresc_vec.push_back( getCaloTrackMatch_deltaPhiRescaled2(
eg));
875 eprobht_vec.push_back( getTrackSummaryFloat_eProbabilityHT(
eg));
876 npixhits_vec.push_back( getTrackSummary_numberOfPixelHits(
eg));
877 nscthits_vec.push_back( getTrackSummary_numberOfSCTHits(
eg));
878 charge_vec.push_back(
eg->charge());
884 z0_vec.push_back( getTrack_z0(
eg));
885 d0_vec.push_back( getTrack_d0(
eg));
889 eta_vec.push_back(
eg->eta());
892 mu_vec.push_back( avgmu );
895 ptcone20_rel_vec.push_back( getIsolation_ptcone20(
eg)/
eg->pt());
896 ptvarcone20_rel_vec.push_back( getIsolation_ptvarcone20(
eg)/
eg->pt());
902 fill(
monGroup, deta1_col, deta1_EMECA_col, deta1_EMECC_col, deta1_EMEBA_col, deta1_EMEBC_col, deta2_col, dphi2_col,
903 dphiresc_col, eprobht_col, npixhits_col, nscthits_col, charge_col, ptcone20_col, ptvarcone20_col, z0_col, d0_col, d0sig_col,
904 pt_col, ptcone20_rel_col, ptvarcone20_rel_col, eta_col, mu_col,pt_trk_col);
◆ filterPassed()
virtual bool AthReentrantAlgorithm::filterPassed |
( |
const EventContext & |
ctx | ) |
const |
|
inlinevirtualinherited |
◆ getD0sig()
Definition at line 362 of file TrigEgammaMonitorBaseAlgorithm.cxx.
367 float vard0 =
t->definingParametersCovMatrix()(0,0);
369 d0sigma=sqrtf(vard0);
373 if (fabs(d0sigma) < 1
e-6)
return -99.;
374 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.
171 if (!isInitialized()) {
173 "It seems that the AthMonitorAlgorithm::initialize was not called "
174 "in derived class initialize method");
178 [](
const std::string&
s,
auto h) { return s +
"," + h.first; });
179 ATH_MSG_FATAL(
"The tool " <<
name <<
" could not be found in the tool array of the "
180 <<
"monitoring algorithm " <<
m_name <<
". This probably reflects a discrepancy between "
181 <<
"your python configuration and c++ filling code. Note: your available groups are {"
182 << 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 189 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 TrigEgammaMonitorElectronAlgorithm::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()
bool AthReentrantAlgorithm::isClonable |
( |
| ) |
const |
|
overridevirtualinherited |
Specify if the algorithm is clonable.
Reentrant algorithms are clonable.
Reimplemented in Simulation::BeamEffectsAlg, InDet::SiTrackerSpacePointFinder, InDet::SCT_Clusterization, InDet::SiSPSeededTrackFinder, SCTRawDataProvider, InDet::GNNSeedingTrackMaker, SCT_PrepDataToxAOD, RoIBResultToxAOD, InDet::SiSPGNNTrackMaker, SCT_CablingCondAlgFromCoraCool, SCT_ReadCalibDataTestAlg, SCT_CablingCondAlgFromText, SCT_ReadCalibChipDataTestAlg, SCT_TestCablingAlg, SCT_ConfigurationConditionsTestAlg, ITkPixelCablingAlg, ITkStripCablingAlg, SCTEventFlagWriter, SCT_ConditionsSummaryTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_TdaqEnabledTestAlg, SCT_SiliconConditionsTestAlg, SCTSiLorentzAngleTestAlg, SCT_ByteStreamErrorsTestAlg, SCT_ConditionsParameterTestAlg, SCT_FlaggedConditionTestAlg, SCT_StripVetoTestAlg, SCT_RawDataToxAOD, and SCTSiPropertiesTestAlg.
Definition at line 44 of file AthReentrantAlgorithm.cxx.
◆ 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 336 of file AthMonitorAlgorithm.cxx.
338 std::stringstream
ss(
line);
342 while ( std::getline(
ss,
item,
',') ) {
343 std::stringstream iss(
item);
348 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;
194 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 acceptData.setCutResult(
"L1Calo",passedL1Calo);
254 acceptData.setCutResult(
"L2Calo",passedL2Calo);
255 acceptData.setCutResult(
"L2",passedL2);
256 acceptData.setCutResult(
"EFCalo",passedEFCalo);
257 acceptData.setCutResult(
"EFTrack",passedEFTrk);
258 acceptData.setCutResult(
"HLT",passedEF);
◆ setFilterPassed()
virtual void AthReentrantAlgorithm::setFilterPassed |
( |
bool |
state, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
inlinevirtualinherited |
◆ setTrigInfo()
void TrigEgammaMonitorBaseAlgorithm::setTrigInfo |
( |
const std::string & |
trigger | ) |
|
|
protectedinherited |
Set the trigger info parsed from the chain name.
Definition at line 591 of file TrigEgammaMonitorBaseAlgorithm.cxx.
617 std::map<std::string, std::string> pidMap = { {
"vloose" ,
"loose" },
618 {
"loose" ,
"loose" },
619 {
"medium" ,
"medium" },
620 {
"tight" ,
"tight" },
621 {
"loose1" ,
"loose" },
622 {
"medium1" ,
"medium" },
623 {
"tight1" ,
"tight" },
624 {
"lhvloose" ,
"lhvloose" },
625 {
"lhloose" ,
"lhloose" },
626 {
"lhmedium" ,
"lhmedium" },
627 {
"lhtight" ,
"lhtight" },
628 {
"dnnloose" ,
"dnnloose" },
629 {
"dnnmedium",
"dnnmedium"},
630 {
"dnntight" ,
"dnntight" } };
632 std::vector<std::string> isoNames = {
"ivarloose",
"ivarmedium",
"ivartight",
"icaloloose",
"icalomedium",
"icalotight"};
639 bool isolated =
false;
641 std::string isolation=
"";
644 std::string hltinfo=trigger;
645 std::string signature =
"";
651 std::vector<std::string>
parts;
657 signature =
"Electron";
660 signature =
"Photon";
667 if(
parts.at(1) ==
"idperf"){
671 else if(
parts.at(1)==
"etcut"){
677 pidname = pidMap.at(
parts.at(1));
686 for(
auto& iso : isoNames){
688 isolation=iso; isolated=
true;
break;
693 std::string str_thr =
parts.at(0);
694 str_thr.erase( 0, 1);
702 ATH_MSG_DEBUG(
"=================== Chain Parser =======================");
714 ATH_MSG_DEBUG(
"L1Seed : " << l1seed <<
" (Is Legacy? " << (l1legacy?
"Yes":
"No") <<
")");
715 ATH_MSG_DEBUG(
"========================================================");
717 TrigInfo info{l1legacy,l1seed,trigger,signature,
threshold,pidname,idperf,etcut,nogsf,lrt,ion,isolation,isolated};
◆ sysExecute()
StatusCode AthReentrantAlgorithm::sysExecute |
( |
const EventContext & |
ctx | ) |
|
|
overridevirtualinherited |
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 67 of file AthReentrantAlgorithm.cxx.
69 return Gaudi::Algorithm::sysExecute (ctx);
◆ sysInitialize()
StatusCode AthReentrantAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
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 96 of file AthReentrantAlgorithm.cxx.
107 if ( cs.retrieve().isFailure() ) {
109 return StatusCode::SUCCESS;
111 if (cs->regHandle(
this,*
h).isFailure()) {
112 sc = StatusCode::FAILURE;
113 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 194 of file AthMonitorAlgorithm.cxx.
198 if (vTrigNames.empty())
return true;
210 bool expressPass = passedBits & TrigDefs::Express_passed;
217 return group->isPassed();
◆ updateVHKA()
◆ m_accept
◆ m_anatype
Gaudi::Property<std::string> TrigEgammaMonitorElectronAlgorithm::m_anatype {this, "Analysis", "Electron"} |
|
private |
◆ 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_electronIsolationKeyPtCone20
SG::ReadDecorHandleKey<xAOD::ElectronContainer> TrigEgammaMonitorElectronAlgorithm::m_electronIsolationKeyPtCone20 { this, "PtCone20Decoration", m_offElectronKey, "ptcone20", "Decoration key for the ptcone20 isolation decoration" } |
|
private |
◆ 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_eventInfoDecorKey
◆ m_EventInfoKey
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects |
|
privateinherited |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 153 of file AthReentrantAlgorithm.h.
◆ m_fileKey
Gaudi::Property<std::string> AthMonitorAlgorithm::m_fileKey {this,"FileKey",""} |
|
protectedinherited |
◆ m_forceEtThr
Gaudi::Property<bool> TrigEgammaMonitorElectronAlgorithm::m_forceEtThr { this, "ForceEtThreshold", true} |
|
private |
◆ m_forcePidSelection
Gaudi::Property<bool> TrigEgammaMonitorElectronAlgorithm::m_forcePidSelection { this, "ForcePidSelection", true} |
|
private |
◆ m_forceProbeIsolation
Gaudi::Property<bool> TrigEgammaMonitorElectronAlgorithm::m_forceProbeIsolation {this, "ForceProbeIsolation", false} |
|
private |
◆ m_forceVetoVeryLoose
Gaudi::Property<bool> TrigEgammaMonitorElectronAlgorithm::m_forceVetoVeryLoose { this, "ForceVetoVeryLoose", false} |
|
private |
◆ 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_offElectronKey
◆ m_offProbeIsolation
Gaudi::Property<std::string> TrigEgammaMonitorElectronAlgorithm::m_offProbeIsolation { this, "OfflineProbeIsolation", "Loose"} |
|
private |
◆ m_photonIsEMTool
ToolHandleArray<IAsgPhotonIsEMSelector> TrigEgammaMonitorBaseAlgorithm::m_photonIsEMTool {this,"PhotonIsEMSelector",{}} |
|
protectedinherited |
◆ m_rmCrack
Gaudi::Property<bool> TrigEgammaMonitorElectronAlgorithm::m_rmCrack { this, "RemoveCrack", true} |
|
private |
◆ 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_trigInputList
Gaudi::Property<std::vector<std::string> > TrigEgammaMonitorElectronAlgorithm::m_trigInputList {this, "TriggerList", {}} |
|
private |
◆ m_trigList
std::vector<std::string> TrigEgammaMonitorElectronAlgorithm::m_trigList |
|
private |
◆ 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:
Gaudi::Property< std::string > m_offProbeIsolation
Define isolation working point for Probe electron.
void fillEfficiencies(const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * > > &, const TrigInfo &) const
virtual double phi() const
The azimuthal angle ( ) of the particle.
ToolHandleArray< IAsgPhotonIsEMSelector > m_photonIsEMTool
Offline isEM Photon Selectors.
bool isIsolated(const xAOD::Electron *, const std::string &) const
Check if electron fulfils isolation criteria.
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".
const std::map< std::string, TrigInfo > & getTrigInfoMap()
Helper methods.
Gaudi::Property< bool > m_forceVetoVeryLoose
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::Property< bool > m_rmCrack
Remove crack region for Probe default True.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
SG::ReadDecorHandleKey< xAOD::EventInfo > m_eventInfoDecorKey
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
std::vector< std::string > m_vTrigChainNames
Vector of trigger chain names parsed from trigger chain string.
void fillDistributions(const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * > > &, const TrigInfo &) const
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
@ LAr
The LAr calorimeter.
std::vector< std::string > m_trigList
List of triggers to study.
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].
SG::ReadHandleKey< xAOD::ElectronContainer > m_offElectronKey
Event Wise offline ElectronContainer Access and end iterator.
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
asg::AcceptData setAccept(const TrigCompositeUtils::Decision *, const TrigInfo &) const
Set the accept object for all trigger levels.
void fillResolutions(const std::vector< std::pair< const xAOD::Egamma *, const TrigCompositeUtils::Decision * >> &pairObjs, const TrigInfo &info) const
*****************************************************************************************************...
float etaBE(const unsigned layer) const
Get the eta in one layer of the EM Calo.
void fillL2Electron(const std::string &trigger, const std::vector< const xAOD::TrigElectron * > &el_vec) const
bool isHLTTruncated() const
TrigInfo getTrigInfo(const std::string &) const
Get the trigger info parsed from the chain name (only single lepton triggers)
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.
TrigEgammaMonitorAnalysisAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
void setTrigInfo(const std::string &)
Set the trigger info parsed from the chain name.
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
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)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
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
Class used to describe composite objects in the HLT.
ToolHandleArray< IAsgElectronLikelihoodTool > m_electronLHTool
Offline LH Selectors.
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
void fillL2Calo(const std::string &trigger, const std::vector< const xAOD::TrigEMCluster * > &emCluster_vec) const
StatusCode executeNavigation(const EventContext &ctx, const std::string &trigItem, float, const std::string &, std::vector< std::pair< std::shared_ptr< const xAOD::Egamma >, const TrigCompositeUtils::Decision * >> &) const
navigation method called by executeNavigation
AthMonitorAlgorithm::DataType_t m_dataType
Instance of the DataType_t enum.
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
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.
bool ApplyElectronPid(const xAOD::Electron *eg, const std::string &) const
Get offline electron decision.
Gaudi::Property< std::vector< std::string > > m_trigInputList
List of triggers from menu.
virtual StatusCode initialize() override
initialize
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
virtual StatusCode sysInitialize() override
Override sysInitialize.
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
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
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)
float energyBE(const unsigned layer) const
Get the energy in one layer of the EM Calo.
Gaudi::Property< bool > m_forcePidSelection
force pid and crack selection into electron navigation
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 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
Gaudi::Property< bool > m_forceProbeIsolation
force probe isolation
Class describing a TrackParticle.
std::vector< std::string > veto
these patterns are anded
Declare a monitored scalar variable.
Gaudi::Property< bool > m_forceEtThr
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)
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.
SG::ReadDecorHandleKey< xAOD::ElectronContainer > m_electronIsolationKeyPtCone20
Ensure offline electron isolation decoration is retrieved after being created.
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