ATLAS Offline Software
|
The trigger config implementation of IBunchCrossingTool. More...
#include <TrigConfBunchCrossingTool.h>
Public Types | |
enum | BeamType { Beam1 = 0, Beam2 = 1, Crossing = 2 } |
Types of the return values of the bcIntensity function. More... | |
enum | BunchCrossingType { Empty = 0, FirstEmpty = 1, MiddleEmpty = 2, Single = 100, Front = 200, Middle = 201, Tail = 202, Unpaired = 300 } |
Simplified type for a given bunch crossing. More... | |
enum | BunchDistanceType { NanoSec, BunchCrossings, FilledBunches } |
Enumeration specifying the units in which to expect the bunch distance type. More... | |
enum | BunchFillType { CollidingBunch = 0, UnpairedBunch = 1, EmptyBunch = 2, UnpairedBeam1 = 3, UnpairedBeam2 = 4 } |
Enumeration specifying what kind of bunch to use in the gap functions. More... | |
typedef unsigned int | bcid_type |
Declare the interface that this class provides. More... | |
typedef unsigned int | configid_type |
Declare the interface that this class provides. More... | |
Public Member Functions | |
virtual void | print () const =0 |
Print the state of the tool. More... | |
virtual void | print () const |
Print the state of the tool. More... | |
virtual StatusCode | sysInitialize () |
Function initialising the tool in the correct way in Athena. More... | |
virtual StatusCode | initialize () |
Dummy implementation of the initialisation function. More... | |
ServiceHandle< StoreGateSvc > & | evtStore () |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More... | |
const ServiceHandle< StoreGateSvc > & | evtStore () const |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More... | |
const ServiceHandle< StoreGateSvc > & | detStore () const |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More... | |
virtual StatusCode | sysStart () override |
Handle START transition. More... | |
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
Return this algorithm's input handles. More... | |
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
Return this algorithm's output handles. More... | |
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
Declare a new Gaudi property. More... | |
void | updateVHKA (Gaudi::Details::PropertyBase &) |
MsgStream & | msg () const |
MsgStream & | msg (const MSG::Level lvl) const |
bool | msgLvl (const MSG::Level lvl) const |
virtual std::vector< int > | configuredBCIDs () const |
Function providing the BCIDs of the configured colliding bunches. More... | |
virtual std::vector< int > | configuredUnpairedBCIDsBeam1 () const |
Function providing the BCIDs of the configured unpaired bunches. More... | |
virtual std::vector< int > | configuredUnpairedBCIDsBeam2 () const |
Function providing the BCIDs of the configured unpaired bunches. More... | |
Protected Member Functions | |
virtual StatusCode | beginEvent () |
Function called when a new event is loaded. More... | |
StatusCode | loadSingleBunches (const std::vector< int > &bunches, const std::vector< float > &bunch_int1=std::vector< float >(), const std::vector< float > &bunch_int2=std::vector< float >()) |
Interpret the configuration for single bunches. More... | |
StatusCode | loadBunchTrains (const std::vector< int > &bunches, const std::vector< float > &bunch_int1=std::vector< float >(), const std::vector< float > &bunch_int2=std::vector< float >()) |
Interpret the configuration for bunch trains. More... | |
StatusCode | loadUnpairedBunches (const std::vector< int > &beam1, const std::vector< int > &beam2, const std::vector< float > &bunch_int1=std::vector< float >(), const std::vector< float > &bunch_int2=std::vector< float >()) |
Interpret the configuration for unpaired bunches. More... | |
void | printConfig () const |
Function printing the configuration of the tool. More... | |
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
remove all handles from I/O resolution More... | |
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
Add StoreName to extra input/output deps as needed. More... | |
Static Protected Attributes | |
static const std::string | BUNCH_CONFIG_INCIDENT_NAME = "BunchConfig" |
Type name for the incident that such tools should emit. More... | |
Private Types | |
typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
virtual configid_type | configID () const |
Unique identifier for the current configuration. More... | |
virtual std::vector< float > | configuredIntensitiesBeam1 () const |
Override the default implementation because this tool doesn't provide this info. More... | |
virtual std::vector< float > | configuredIntensitiesBeam2 () const |
Override the default implementation because this tool doesn't provide this info. More... | |
virtual std::vector< float > | configuredUnpairedIntensitiesBeam1 () const |
Override the default implementation because this tool doesn't provide this info. More... | |
virtual std::vector< float > | configuredUnpairedIntensitiesBeam2 () const |
Override the default implementation because this tool doesn't provide this info. More... | |
StatusCode | loadConfig () |
Make sure that the latest/correct configuration is loaded. More... | |
void | printBunchGroups (const TrigConf::IILVL1ConfigSvc *svc) const |
Print the "raw" configuration for debugging. More... | |
int | bunchSpacing (const std::vector< int > &bunches) const |
Get the apparent bunch spacing in the current configuration. More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
specialization for handling Gaudi::Property<SG::VarHandleKey> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
specialization for handling Gaudi::Property<SG::VarHandleBase> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More... | |
Private Attributes | |
unsigned int | m_bgId |
DB ID of the BunchGroups settings which was loaded last. More... | |
ServiceHandle< TrigConf::ILVL1ConfigSvc > | m_configSvc |
The config service handle. More... | |
ToolHandle< TrigConf::ITrigConfigTool > | m_configTool |
The config tool handle. More... | |
MetaStore_t | m_inputMetaStore |
Object accessing the input metadata store. More... | |
MetaStore_t | m_outputMetaStore |
Object accessing the output metadata store. More... | |
bool | m_beginInputFileCalled |
Flag helping to discover when the tool misses the opening of the first input file. More... | |
bool | m_useIncidents |
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 |
Callback functions helping in metadata reading/writing | |
void | setUseIncidents (const bool flag) |
virtual void | handle (const Incident &inc) |
Function receiving incidents from IncidentSvc/TEvent. More... | |
virtual StatusCode | beginInputFile () |
Function called when a new input file is opened. More... | |
virtual StatusCode | endInputFile () |
Function called when the currently open input file got completely processed. More... | |
virtual StatusCode | metaDataStop () |
Function called when the tool should write out its metadata. More... | |
The trigger config implementation of IBunchCrossingTool.
This implementation should be used primarily to get information about the bunch pattern for data files. It retrieves the bunch pattern configuration using the trigger configuration service. So in principle it can itself get the configuration from a few different places. (Currently TrigConf::LVL1ConfigSvc and TrigConf::DSConfigSvc provide this information.)
It also acts as a bunch crossing configuration provider, implementing the Trig::IBunchCrossingConfProvider interface.
Definition at line 47 of file TrigConfBunchCrossingTool.h.
|
inherited |
Declare the interface that this class provides.
Convenience type definition
Definition at line 47 of file IBunchCrossingTool.h.
|
inherited |
Declare the interface that this class provides.
Type for the unique identifier
Definition at line 60 of file IBunchCrossingConfProvider.h.
|
inherited |
Type of the metadata store object in Athena.
Definition at line 66 of file AsgMetadataTool.h.
|
inherited |
Type of the metadata store pointer in standalone mode.
Definition at line 68 of file AsgMetadataTool.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
|
inherited |
Types of the return values of the bcIntensity function.
The different information sources provide the "bunch intensity" information in quite different ways, and the information can mean different things actually. This enumeration is used to specify what exact type of information the user is looking for.
Enumerator | |
---|---|
Beam1 | The returned intensity should be for "beam 1". |
Beam2 | The returned intensity should be for "beam 2". |
Crossing | The returned intensity should describe the BC. |
Definition at line 118 of file IBunchCrossingTool.h.
|
inherited |
Simplified type for a given bunch crossing.
This enumeration can specify what kind of bunch crossing one BCID belongs to. The types could easily be extended later on.
Definition at line 145 of file IBunchCrossingTool.h.
|
inherited |
Enumeration specifying the units in which to expect the bunch distance type.
To make it clear for the following functions what units to interpret their return values in, it is possible to request their return values in different units.
Enumerator | |
---|---|
NanoSec | Distance in nanoseconds. |
BunchCrossings | Distance in units of 25 nanoseconds. |
FilledBunches | Distance in units of filled bunches (depends on filling scheme) |
Definition at line 174 of file IBunchCrossingTool.h.
|
inherited |
Enumeration specifying what kind of bunch to use in the gap functions.
The following functions can be used to calculate the gap before and after a specific BCID to some other bunch type. The gap can actually be wrt. two different types of bunches. The user may be interested between the space of two filled bunches, the space between an unpaired bunch and the previous filled bunch, the space between two unpaired bunches, or the space between a filled bunch and the previous unpaired bunch.
The empty type is just put here for completeness. Maybe once we'll be using 25 ns spacing in the bunch trains, this will be a useful parameter as well.
This enumeration helps in answeing all of these questions.
Definition at line 274 of file IBunchCrossingTool.h.
|
virtualinherited |
Function returning the "intensity" of a given bunch crossing.
Implements Trig::IBunchCrossingTool.
Definition at line 106 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
Get the type of the specific bunch crossing.
Implements Trig::IBunchCrossingTool.
Definition at line 166 of file BunchCrossingToolBase.cxx.
|
protectedvirtual |
Function called when a new event is loaded.
Reimplemented from asg::AsgMetadataTool.
Definition at line 92 of file TrigConfBunchCrossingTool.cxx.
|
protectedvirtualinherited |
Function called when a new input file is opened.
Dummy implementation that can be overridden by the derived tool.
Reimplemented in AsgElectronEfficiencyCorrectionTool, TrigConf::xAODConfigTool, PMGTools::PMGTruthWeightTool, BookkeeperTool, xAODMaker::FileMetaDataTool, BookkeeperDumperTool, Trig::TrigDecisionTool, xAODMaker::TriggerMenuMetaDataTool, xAODMaker::TruthMetaDataTool, Trig::xAODBunchCrossingTool, TauAnalysisTools::TauEfficiencyCorrectionsTool, and TauAnalysisTools::TauSmearingTool.
Definition at line 180 of file AsgMetadataTool.cxx.
|
virtualinherited |
Function returning whether the following bunches were filled, and how.
Implements Trig::IBunchCrossingTool.
Definition at line 734 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
Function returning whether the previous bunches were filled, and how.
Implements Trig::IBunchCrossingTool.
Definition at line 718 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
Function returning the intensities of the bunch crossings after the reference.
Implements Trig::IBunchCrossingTool.
Definition at line 781 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
Function returning the intensities of the bunch crossings before the reference.
Implements Trig::IBunchCrossingTool.
Definition at line 750 of file BunchCrossingToolBase.cxx.
|
privateinherited |
Get the apparent bunch spacing in the current configuration.
This function tries to figure out what's the right bunch spacing for the current configuration, before the code would try to properly interpret the configuration.
This allows us to set a "MaxBunchSpacing" property of a relatively large number, but still be able to interpret configurations with very small gaps between bunch trains. (Like the 8b4e 2017 configurations.)
bunches | The filled bunches in the current configuration |
Definition at line 1225 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
Get the bunch spacing in the trains.
Implements Trig::IBunchCrossingTool.
Definition at line 827 of file BunchCrossingToolBase.cxx.
|
privatevirtual |
Unique identifier for the current configuration.
This specialization of the function just returns the BGKey of the currently loaded configuration.
This is the simplest implementation for this function...
Implements Trig::IBunchCrossingConfProvider.
Definition at line 106 of file TrigConfBunchCrossingTool.cxx.
|
virtualinherited |
Function providing the BCIDs of the configured colliding bunches.
The implementation just loops over all the possible BCIDs and puts the IDs of the ones which are reported to be filled, into the output vector.
Implements Trig::IBunchCrossingConfProvider.
Definition at line 28 of file BunchCrossingConfProviderBase.cxx.
|
privatevirtual |
Override the default implementation because this tool doesn't provide this info.
This function will always return an empty vector, because this tool doesn't provide this sort of information.
While saving the default 1.0 values for all the filled bunches would have the same result right now, the tools may handle the absence of the intensity information in different ways in the future.
Reimplemented from Trig::BunchCrossingConfProviderBase.
Definition at line 121 of file TrigConfBunchCrossingTool.cxx.
|
privatevirtual |
Override the default implementation because this tool doesn't provide this info.
This function will always return an empty vector, because this tool doesn't provide this sort of information.
While saving the default 1.0 values for all the filled bunches would have the same result right now, the tools may handle the absence of the intensity information in different ways in the future.
Reimplemented from Trig::BunchCrossingConfProviderBase.
Definition at line 136 of file TrigConfBunchCrossingTool.cxx.
|
virtualinherited |
Function providing the BCIDs of the configured unpaired bunches.
The implementation just loops over all the possible BCIDs and puts the IDs of the ones which are reported to be unpaired, into the output vector.
Implements Trig::IBunchCrossingConfProvider.
Definition at line 88 of file BunchCrossingConfProviderBase.cxx.
|
virtualinherited |
Function providing the BCIDs of the configured unpaired bunches.
The implementation just loops over all the possible BCIDs and puts the IDs of the ones which are reported to be unpaired, into the output vector.
Implements Trig::IBunchCrossingConfProvider.
Definition at line 108 of file BunchCrossingConfProviderBase.cxx.
|
privatevirtual |
Override the default implementation because this tool doesn't provide this info.
This function will always return an empty vector, because this tool doesn't provide this sort of information.
While saving the default 1.0 values for all the unpaired bunches would have the same result right now, the tools may handle the absence of the intensity information in different ways in the future.
Reimplemented from Trig::BunchCrossingConfProviderBase.
Definition at line 151 of file TrigConfBunchCrossingTool.cxx.
|
privatevirtual |
Override the default implementation because this tool doesn't provide this info.
This function will always return an empty vector, because this tool doesn't provide this sort of information.
While saving the default 1.0 values for all the unpaired bunches would have the same result right now, the tools may handle the absence of the intensity information in different ways in the future.
Reimplemented from Trig::BunchCrossingConfProviderBase.
Definition at line 166 of file TrigConfBunchCrossingTool.cxx.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>
Definition at line 199 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
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.
|
inlineinherited |
Declare a new Gaudi property.
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.
|
inlineinherited |
Definition at line 259 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
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.
|
inlineinherited |
Declare a new Gaudi property.
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.
|
inlineinherited |
Definition at line 145 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc/DetectorStore
Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 95 of file AthCommonDataStore.h.
|
virtualinherited |
The distance of the specific bunch crossing from the front of the train.
This is one of the most tricky functions of this class.
When the user wants to ask the distance of a bunch crossing from the front of its train in units of nano seconds or bunch crossings, the main part of the logic is propagated to the algebra defined for the BunchCrossing class.
But when the user wants to know the distance in terms of filled bunches, the code has to treat 3 different bunch train configurations:
bunchtrain->begin()
.bunchtrain->train_front()
to bunchtrain->end()
, plus the filled bunches from bunchtrain->begin()
to the bcid in question.bunchtrain->train_front()
to the bcid in question.bcid | The bcid that should be checked |
type | The type of the requested return value |
Implements Trig::IBunchCrossingTool.
Definition at line 239 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
The distance of the specific bunch crossing from the tail of the train.
This is one of the most tricky functions of this class.
When the user wants to ask the distance of a bunch crossing from the tail of its train in units of nano seconds or bunch crossings, the main part of the logic is propagated to the algebra defined for the BunchCrossing class.
But when the user wants to know the distance in terms of filled bunches, the code has to treat 3 different bunch train configurations:
bunchtrain->end()
.bunchtrain->end()
, plus the filled bunches from bunchtrain->begin()
to bunchtrain->train_back()
.bunchtrain->train_back()
.bcid | The bcid that should be checked |
type | The type of the requested return value |
Implements Trig::IBunchCrossingTool.
Definition at line 316 of file BunchCrossingToolBase.cxx.
|
protectedvirtualinherited |
Function called when the currently open input file got completely processed.
Dummy implementation that can be overridden by the derived tool.
Reimplemented in BookkeeperTool, xAODMaker::FileMetaDataTool, BookkeeperDumperTool, xAODMaker::TriggerMenuMetaDataTool, and xAODMaker::TruthMetaDataTool.
Definition at line 188 of file AsgMetadataTool.cxx.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 85 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 90 of file AthCommonDataStore.h.
|
protectedinherited |
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
|
virtualinherited |
Gap after a particular bunch.
The function creates a smart BunchCrossing out of the BCID provided, then it goes looking for the next bunch crossing of the specified type.
Finally it just calculates the distance between the two bunch crossings in the requested units. It can return the size of the gap either in nanoseconds or in BCIDs (25 ns steps).
bcid | The bcid that should be investigated |
dtype | The type of the requested return value |
ftype | The type of the previous bunch to consider |
Implements Trig::IBunchCrossingTool.
Definition at line 608 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
Gap after the train this BCID is in.
The function first finds the train that the specified BCID is in.
Then it calculates the size of the gap after this train. It can return the size of the gap either in nanoseconds or in BCIDs (25 ns steps).
bcid | The bcid whose train should be investigated |
type | The type of the requested return value |
Implements Trig::IBunchCrossingTool.
Definition at line 429 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
Gap before a particular bunch.
The function creates a smart BunchCrossing out of the BCID provided, then it goes looking for the previous bunch crossing of the specified type.
Finally it just calculates the distance between the two bunch crossings in the requested units. It can return the size of the gap either in nanoseconds or in BCIDs (25 ns steps).
bcid | The bcid that should be investigated |
dtype | The type of the requested return value |
ftype | The type of the previous bunch to consider |
Implements Trig::IBunchCrossingTool.
Definition at line 487 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
Gap before the train this BCID is in.
The function first finds the train that the specified BCID is in.
Then it calculates the size of the gap before this train. It can return the size of the gap either in nanoseconds or in BCIDs (25 ns steps).
bcid | The bcid whose train should be investigated |
type | The type of the requested return value |
Implements Trig::IBunchCrossingTool.
Definition at line 374 of file BunchCrossingToolBase.cxx.
|
inherited |
Get the (hashed) key of an object that is in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the SG::sgkey_t
key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
ptr | The bare pointer to the object that the event store should know about |
Definition at line 119 of file AsgTool.cxx.
Get the name of an object that is / should be in the event store.
This is a bit of a special one. StoreGateSvc
and xAOD::TEvent
both provide ways for getting the std::string
name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.
In order to allow tools to efficiently perform this operation, they can use this helper function.
ptr | The bare pointer to the object that the event store should know about |
Definition at line 106 of file AsgTool.cxx.
Get one of the tool's properties.
|
protectedvirtualinherited |
Function receiving incidents from IncidentSvc/TEvent.
Reimplemented in Trig::TrigDecisionTool.
Definition at line 130 of file AsgMetadataTool.cxx.
|
inlinevirtualinherited |
Dummy implementation of the initialisation function.
It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...
Reimplemented in SimpleMuonTriggerScaleFactors, Trig::TrigMuonMatching, CP::MuonTriggerScaleFactors, IHIEventShapeMapTool, ST::SUSYObjDef_xAOD, InDetSecVtxTruthMatchTool, JetGrooming::RecSoftDrop, met::METMaker, AsgForwardElectronIsEMSelector, JetGrooming::JetTrimming, ORUtils::BaseOverlapTool, PMGTools::PMGSherpa22VJetsWeightTool, AsgElectronEfficiencyCorrectionTool, CP::ElectronChargeEfficiencyCorrectionTool, AsgForwardElectronLikelihoodTool, CorrectPFOTool, CP::IsolationCorrectionTool, TauAnalysisTools::TauTruthMatchingTool, EGammaAmbiguityTool, InDetVertexTruthMatchTool, AthOnnx::OnnxRuntimeSessionToolCPU, AthOnnx::OnnxRuntimeSessionToolCUDA, PuppiWeightTool, CP::EgammaCalibrationAndSmearingTool, CP::FFJetSmearingTool, JetBalancePFlowJvtTool, JetIsolationTool, JetForwardPFlowJvtTool, MCTruthClassifier, InDet::InDetHardScatterSelectionTool, dRMatchingTool, xAOD::BPhysBlindingTool, JetVertexTaggerTool, tauRecTools::TrackRNN, LVL1::L1CaloOfflineTriggerTowerTools, TauAnalysisTools::TauSelectionTool, JetRecTool, met::METAssociationTool, CP::TrackVertexAssociationTool, met::METRebuilder, met::METAssociator, xAOD::TrackIsolationTool, InDet::InDetTrackSelectionTool, egammaMVACalibTool, TrigConf::xAODConfigTool, JetCleaningTool, met::METCaloRegionsTool, ZDC::ZdcLEDAnalysisTool, CP::MuonCalibTool, LVL1::L1CaloCells2TriggerTowers, IDTPM::TrackAnalysisInfoWriteTool, JetVertexFractionTool, LVL1BS::PpmByteStreamReadV1V2Tool, ZDC::RpdSubtractCentroidTool, JetClusterer, JetForwardJvtToolBDT, CP::AsgFlagSelectionTool, TauTrackFinder, TauAnalysisTools::DiTauSelectionTool, JetClustererByVertex, JetBadChanCorrTool, xAOD::BPhysTrackVertexMapTool, JetModifiedMassDrop, xAOD::CaloIsolationTool, EnhancedBiasWeighter, BookkeeperTool, InDet::InDetUsedInFitTrackDecoratorTool, CP::AsgPtEtaSelectionTool, TauAnalysisTools::BuildTruthTaus, tauRecTools::TauTrackRNNClassifier, InDet::InDetSecVtxTrackSelectionTool, JetForwardJvtTool, JetPileupTag::JetVertexNNTagger, CP::EgammaIsGoodOQSelectionTool, CP::IsolationCloseByCorrectionTool, CP::MuonCalibIntScaleSmearTool, DiTauRecTools::DiTauIDVarCalculator, JetFinder, AsgElectronIsEMSelector, CP::MuonCalibIntHighpTSmearTool, CP::MuonCalibIntSagittaTool, DiTauRecTools::DiTauDiscriminantTool, met::METBuilderTool, CP::AsgMaskSelectionTool, ElectronPhotonVariableCorrectionBase, ECUtils::EventCleaningTool, TauAnalysisTools::TauTruthTrackMatchingTool, met::METSoftTermsTool, LVL1::L1CaloLArTowerEnergy, HiggsTruthCategoryTool, IDTPM::TrackRoiSelectionTool, TauAnalysisTools::CommonDiTauEfficiencyTool, HIJetConstituentSubtractionTool, JetTrackSumMomentsTool, JetGrooming::SoftDrop, JetTrackMomentsTool, met::METTruthTool, PMGTools::PMGSherpaVjetsSysTool, JetQGTaggerVariableTool, ClusterMatching::CaloClusterMatchingTool, AsgPhotonEfficiencyCorrectionTool, FlavorTagDiscriminants::MultifoldGNNTool, InDet::JetTrackFilterTool, asg::DataHandleTestTool, xAODMaker::FileMetaDataTool, InDet::InclusiveTrackFilterTool, InDet::InDetTrackTruthFilterTool, HIJetClusterSubtractorTool, CP::MVATrackVertexAssociationTool, IDTPM::RoiSelectionTool, CP::BaseFakeBkgTool, ElectronPhotonVariableCorrectionTool, JetCalibrationTool, JetCaloQualityTool, JetOriginCorrectionTool, IDTPM::TrackObjectSelectionTool, InDet::InDetTrackBiasingTool, HIJetClusterIndexAssociationTool, TauWPDecorator, TrigGlobalEfficiencyCorrectionTool, ZdcRecChannelToolV2, InDetGNNHardScatterSelection::GNNTool, CP::BaseLinearFakeBkgTool, FlavorTagDiscriminants::GNNTool, CP::MuonSelectionTool, TauAnalysisTools::CommonDiTauSmearingTool, JSSTaggerBase, IDTPM::TrackQualitySelectionTool, CP::LhoodMM_tools, AsgElectronLikelihoodTool, CP::JetQGTagger, CP::JetJvtEfficiency, LVL1::L1CaloFcal23Cells2RxMappingTool, ORUtils::OverlapRemovalTool, Ringer::AsgRingerSelectorTool, InDet::InDetTrackSmearingTool, JetCopier, JetGrooming::JetGroomer, met::METPhotonAssociator, Pileup1DResidualCalibStep, JetECPSFractionTool, JetPtAssociationTool, met::METElectronAssociator, met::METTauAssociator, PMGTools::PMGDecayProductsSelectionTool, WeightToolBase, HIJetDRAssociationTool, JetClusterMomentsTool, met::METJetAssocTool, TauVertexFinder, IDTPM::JsonPlotsDefReadTool, TauAnalysisTools::DiTauSmearingTool, BJetCorrectionTool, JetDRTrackAssocTool, JetReclusterer, TauDecayModeNNClassifier, BDTVertexWeightCalculator, asg::UnitTestTool1, ZDC::ZdcAnalysisTool, IDTPM::DeltaRMatchingToolBase< T, R >, AsgElectronSelectorTool, GSCCalibStep, EtaMassJESCalibStep, JetReclusteringTool, met::METMuonAssociator, TauPi0CreateROI, TauShotFinder, IDTPM::DeltaRMatchingToolBase< xAOD::TrackParticle, xAOD::TruthParticle >, IDTPM::DeltaRMatchingToolBase< xAOD::TruthParticle, xAOD::TrackParticle >, IDTPM::DeltaRMatchingToolBase< xAOD::TrackParticle >, ZdcRecChannelToolLucrod, PMGTools::PMGTruthWeightTool, JetCalibTool, SmearingCalibStep, JetVoronoiMomentsTool, Trig::MatchFromCompositeTool, asg::UnitTestTool3, IDTPM::TruthTrackMatchingTool, CP::ApplyFakeFactor, AsgElectronChargeIDSelectorTool, HIJetMaxOverMeanTool, PanTau::Tool_FeatureExtractor, TauElectronVetoVariables, ZDC::ZdcTrigValidTool, CP::IsolationSelectionTool, WeightsAgregator, EL::UnitTestTool, FlavorTagDiscriminants::TrackClassifier, JetLArHVTool, IDTPM::EFTrackMatchingTool, IDTPM::TrackTruthMatchingTool, HI::HIPileupTool, BTaggingSelectionTool, InDet::InDetTrackTruthOriginTool, JetHelper::VarTool, FlavorTagDiscriminants::DL2Tool, PileupAreaCalibStep, EnergyCorrelatorGeneralizedRatiosTool, EnergyCorrelatorGeneralizedTool, EnergyCorrelatorRatiosTool, EnergyCorrelatorTool, TauEleOverlapChecker, TauJetRNNEvaluator, asg::UnitTestTool2, JetTruthLabelingTool, ZDC::ZdcRecTool, HIJetConstituentModifierTool, TauCalibrateLC, TauGNNEvaluator, TauPi0ScoreCalculator, TauRecToolBase, Trig::TrigEgammaEmulationPrecisionElectronHypoTool, asg::UnitTestTool1A, IDTPM::TruthQualitySelectionTool, PDFWeight, HIEventShapeJetIteration, HIJetSignificanceTool, CP::JetQGTaggerBDT, JetWidthTool, TauVertexVariables, Trig::TrigEgammaEmulationPrecisionPhotonHypoTool, Trig::TrigEgammaMatchingTool, Trig::R3IParticleRetrievalTool, JetPileupLabelingTool, JetFromPseudojet, JetTruthParticleSelectorTool, Trig::TrigEgammaEmulationBaseHypoTool, AthOnnx::OnnxRuntimeInferenceTool, ZDC::RPDAnalysisTool, CP::ApplyE2YFakeRate, ParticleScaleFactorTool, InDet::InDetTrackSystematicsTool, JetCaloQualityToolFE, Trig::MatchingTool, Trig::R3MatchingTool, IDTPM::OfflineTrackQualitySelectionTool, JetParticleAssociation, Trig::TrigEgammaEmulationChain, Trig::TrigEgammaEmulationFastCaloHypoTool, xAODtoHepMCTool, HIEventShapeMapTool, HI::HIVertexSelectionTool, JetHelper::HistoInput2D, TauVertexedClusterDecorator, Trig::IParticleRetrievalTool, HI::HIEventSelectionTool, FlavorTagDiscriminants::HbbTagTool, JetConstituentFrac, JetGroomMRatio, Validator, JetHelper::HistoInput1D, JetHelper::TextInputMCJES, ExtendTrackToLayerTool, Trig::TypedScoringTool, TrackTruthSelectionTool, HIUEModulatorTool, JSSWTopTaggerANN, CP::JvtEfficiencyToolBase, JetEMScaleMomTool, MvaTESVariableDecorator, TauAODLeptonRemovalTool, TauCombinedTES, CP::AsymptMatrixTool, ParticleJetDeltaRLabelTool, HIEventShapeSummaryTool, FlavorTagDiscriminants::BTagAugmenterTool, FlavorTagDiscriminants::VRJetOverlapDecoratorTool, JetCaloEnergies, ParticleJetGhostLabelTool, FlavorTagDiscriminants::BTagMuonAugmenterTool, BTaggingEfficiencyJsonTool, MBTSTimeFilterTool, JSSWTopTaggerDNN, SmoothedTopTagger, MvaTESEvaluator, CP::IsolationLowPtPLVTool, Trig::DRScoringTool, Trig::EgammaDRScoringTool, BTaggingSelectionJsonTool, SmoothedWZTagger, CP::FJvtEfficiencyTool, CP::JvtSelectionToolBase, CP::NNJvtSelectionTool, AthAsgExUnittestTool, CP::JvtSelectionTool, CP::FJvtSelectionTool, CP::JvtEfficiencyTool, CP::NNJvtEfficiencyTool, BookkeeperDumperTool, TrigFastCalibWithRings, BTaggingEfficiencyTool, BTaggingTruthTaggingTool, MissingCellListTool, JetVoronoiDiagramHelpers::Diagram, FastJetInterfaceTool, CP::PhotonVertexSelectionTool, met::METSystematicsTool, Trig::TrigEgammaEmulationToolMT, JetAttributeRatioSelector, BTaggingEigenVectorRecompositionTool, Trig::TrigDecisionTool, CP::PhotonPointingTool, met::METRecoTool, ZdcByteStreamReadV1V2Tool, CP::PileupReweightingTool, LVL1::L1CaloxAODOfflineTriggerTowerTools, LVL1::TrigT1CaloMonErrorToolV1, met::METTrackFilterTool, LVL1::TrigT1CaloMonErrorTool, SoftKillerWeightTool, EventDensityTool, met::METSignificance, JetUncertaintiesTool, CP::JetTileCorrectionTool, xAODMaker::TriggerMenuMetaDataTool, D3PD::D3PDMCTruthClassifier, JetConstituentModSequence, HistoGroupBase, AsgPhotonIsEMSelector, JetAttributeSelector, TrackVertexAssociationTool, met::METRefinerTool, TauAnalysisTools::CommonSmearingTool, PanTau::Tool_DetailsArranger, LVL1::L1CaloMonitoringCaloTool, LVL1::L1CaloTTIdTools, JetInputElRemovalTool, TauAnalysisTools::CommonEfficiencyTool, PanTau::PanTauProcessor, xAODMaker::TruthMetaDataTool, EventShapeCopier, met::METJetTool, GoodRunsListSelectionTool, FSR::FsrPhotonTool, Trig::StaticBunchCrossingTool, ZMassConstraint::ConstraintFit, TauAnalysisTools::TauEfficiencyCorrectionsTool, PanTau::Tool_DecayModeDeterminator, PanTau::Tool_ModeDiscriminator, CP::ElectronLRTOverlapRemovalTool, HIClusterSubtraction, JetAttributeHisto, JetPseudojetCopier, met::METEgammaAssociator, Trig::xAODBunchCrossingTool, TauAnalysisTools::DiTauEfficiencyCorrectionsTool, TauAnalysisTools::DiTauTruthMatchingTool, TauAnalysisTools::TauSmearingTool, met::METTruthAssociator, PanTau::Tool_InformationStore, HistoDefinitionTool, PanTau::Tool_InputConverter, DiTauMassTools::MissingMassTool, JetBottomUpSoftDrop, JetRecursiveSoftDrop, PMGTools::PMGCrossSectionTool, JetSoftDrop, TrigEgammaMatchingToolMT, JetConstituentsRetriever, VoronoiWeightTool, JetCaloCellQualityTool, JetContainerHistoFiller, ChargedHadronSubtractionTool, met::METRegionsTool, met::METSoftAssociator, PanTau::Tool_TauConstituentGetter, ConstituentSubtractorTool, JetHistoBase, JetSelectorAttributeRunII, JetSplitter, CaloClusterConstituentsOrigin, CP::MuonLRTOverlapRemovalTool, HistosForJetSelection, JetPruner, JetToolRunner, JetUsedInFitTrackDecoratorTool, JetTrimmer, NSubjettinessRatiosTool, CP::MuonEfficiencyScaleFactors, JetConstitFourMomTool, NSubjettinessTool, ZdcDataAccessV2, JetPseudojetRetriever, LVL1BS::TrigT1CaloDataAccessV2, PanTau::Tool_TauConstituentSelector, CopyTruthParticles, ClusterAtEMScaleTool, CP::IsolationHelper, AsgDeadHVCellRemovalTool, EfficiencyResponseHistos, ConstitTimeCutTool, JetSelectorAttribute, HIJetUEMonitoring, HIEfficiencyResponseHistos, JetSubStructureMomentToolsBase, AsgHelloTool, CopyTruthJetParticles, LeadingJetsRelations, and JetEventSelector.
|
overridevirtualinherited |
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.
|
inherited |
|
virtualinherited |
Function deciding if there was a bunch from "beam 1" in this bunch crossing.
Implements Trig::IBunchCrossingTool.
Definition at line 66 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
Function deciding if there was a bunch from "beam 2" in this bunch crossing.
Implements Trig::IBunchCrossingTool.
Definition at line 86 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
The simplest query: Is the bunch crossing filled or not?
Implements Trig::IBunchCrossingTool.
Definition at line 32 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
Function deciding if a given bunch crossing is in a filled train.
Implements Trig::IBunchCrossingTool.
Definition at line 42 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
Function deciding if a given bunch crossing has an unpaired bunch.
Implements Trig::IBunchCrossingTool.
Definition at line 56 of file BunchCrossingToolBase.cxx.
|
protectedinherited |
Interpret the configuration for bunch trains.
This function takes care of identifying the bunch trains in the configuration.
The algorithm is quite simple. It starts off with all the filled bunches that have not been identified as single bunches by the loadSingleBunches(...) function. It takes the first available bunch crossing, then loops over the rest of them. When it finds a BC that's "close enough" to the current bunch train, then the bunch train is extended. From there on the algorithm continues with this extended bunch train. When the loop reaches the end of the available bunches, the created bunch train is added to the cache, and the algorithms starts again with the first still available bunch crossing.
The bunch intensity parameter is optional. If it's not specified, the code will assign an intensity of "1.0" to all the bunch crossings.
bunches | The filled bunch crossings |
bunch_int | The "intensities" of the paired bunches |
StatusCode::SUCCESS
if the interpretation was successful, StatusCode::FAILURE
otherwise Definition at line 986 of file BunchCrossingToolBase.cxx.
|
private |
Make sure that the latest/correct configuration is loaded.
This function makes sure that the latest configuration from the TriggerDB is loaded.
It has to be called using some mechanism, which is the incident mechanism at the moment.
The function checks if the currently loaded configuration is the same as the most recent configuration available from the trigger configuration service. If it's not, then it loads the current configuration from the trigger config service.
StatusCode::SUCCESS
if the operation wa successful, or StatusCode::FAILURE
if it wasn't. Definition at line 184 of file TrigConfBunchCrossingTool.cxx.
|
protectedinherited |
Interpret the configuration for single bunches.
This function takes care of selecting the single bunches from the paired bunches.
These will then not be taken into account in the train finding algorithm.
The bunch intensity parameter is optional. If it's not specified, the code will assign an intensity of "1.0" to all the bunch crossings.
bunches | The paired bunches |
bunch_int | The "intensities" of the paired bunches |
StatusCode::SUCCESS
if the interpretation was successful, StatusCode::FAILURE
otherwise Definition at line 870 of file BunchCrossingToolBase.cxx.
|
protectedinherited |
Interpret the configuration for unpaired bunches.
This function just caches the unpaired bunches internally.
It doesn't have to do anything as fancy as the other two load functions, it just takes the BCIDs as they are.
bunches | The unpaired bunch crossings |
bunch_int | The "intensities" of the unpaired bunches |
StatusCode::SUCCESS
if the caching was successful, StatusCode::FAILURE
otherwise Definition at line 1117 of file BunchCrossingToolBase.cxx.
|
protectedvirtualinherited |
Function called when the tool should write out its metadata.
Dummy implementation that can be overridden by the derived tool.
Reimplemented in xAODMaker::FileMetaDataTool, BookkeeperTool, BookkeeperDumperTool, xAODMaker::TriggerMenuMetaDataTool, and xAODMaker::TruthMetaDataTool.
Definition at line 204 of file AsgMetadataTool.cxx.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 27 of file AthCommonMsg.h.
|
inherited |
A deprecated function for getting the message level's name.
Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:
This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.
Definition at line 101 of file AsgTool.cxx.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
virtualinherited |
Get the number of the bunch trains in the current configuration.
Implements Trig::IBunchCrossingTool.
Definition at line 821 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
Get the number of filled bunches in the current configuration.
Implements Trig::IBunchCrossingTool.
Definition at line 811 of file BunchCrossingToolBase.cxx.
|
virtualinherited |
Get the number of unpaired bunches in the current configuration.
Implements Trig::IBunchCrossingTool.
Definition at line 816 of file BunchCrossingToolBase.cxx.
|
overridevirtualinherited |
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.
|
inherited |
|
virtualinherited |
Print the state of the tool.
Implements asg::IAsgTool.
Reimplemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
Definition at line 131 of file AsgTool.cxx.
|
pure virtualinherited |
Print the state of the tool.
Implemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, asg::AsgTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
|
private |
Print the "raw" configuration for debugging.
This function is only here for debugging.
It prints practically the full configuration information that the tool has to work with.
Definition at line 276 of file TrigConfBunchCrossingTool.cxx.
|
protectedinherited |
Function printing the configuration of the tool.
This function is used to print the overall configuration in a format very similar to how atlas-runqery.cern.ch started showing this information recently.
Definition at line 1199 of file BunchCrossingToolBase.cxx.
|
inlineprotectedinherited |
Definition at line 380 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
remove all handles from I/O resolution
Definition at line 364 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
Definition at line 132 of file AsgMetadataTool.h.
|
virtualinherited |
Function initialising the tool in the correct way in Athena.
This function is used to set up the callbacks from IncidentSvc in Athena at the right time during initialisation, without the user having to do anything special in his/her code.
Reimplemented from AthCommonDataStore< AthCommonMsg< AlgTool > >.
Definition at line 110 of file AsgMetadataTool.cxx.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
staticprotectedinherited |
Type name for the incident that such tools should emit.
Definition at line 52 of file BunchCrossingConfProviderBase.h.
|
privateinherited |
Flag helping to discover when the tool misses the opening of the first input file.
Definition at line 126 of file AsgMetadataTool.h.
|
private |
DB ID of the BunchGroups settings which was loaded last.
Definition at line 85 of file TrigConfBunchCrossingTool.h.
|
protectedinherited |
Internal list of bunch trains.
Definition at line 156 of file BunchCrossingToolBase.h.
|
private |
The config service handle.
Definition at line 89 of file TrigConfBunchCrossingTool.h.
|
private |
The config tool handle.
Definition at line 93 of file TrigConfBunchCrossingTool.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
protectedinherited |
List of colliding bunches.
Definition at line 150 of file BunchCrossingToolBase.h.
|
protectedinherited |
Length of the "front" of a bunch train.
Definition at line 166 of file BunchCrossingToolBase.h.
|
privateinherited |
Object accessing the input metadata store.
Definition at line 119 of file AsgMetadataTool.h.
|
protectedinherited |
The maximum bunch spacing that the tool should consider.
Definition at line 164 of file BunchCrossingToolBase.h.
|
privateinherited |
Object accessing the output metadata store.
Definition at line 121 of file AsgMetadataTool.h.
|
protectedinherited |
Internal list of single bunches.
Definition at line 152 of file BunchCrossingToolBase.h.
|
protectedinherited |
Length of the "tail" of a bunch train.
Definition at line 168 of file BunchCrossingToolBase.h.
|
protectedinherited |
Internal list of unpaired bunches.
Definition at line 154 of file BunchCrossingToolBase.h.
|
privateinherited |
Definition at line 128 of file AsgMetadataTool.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.