![]() |
ATLAS Offline Software
|
Barebone implementation of the I/O infrastructure for all MuonDigitizationTools. More...
#include <MuonDigitizationTool.h>
Public Member Functions | |
| StatusCode | initialize () override |
| StatusCode | processBunchXing (int bunchXing, SubEventIterator bSubEvents, SubEventIterator eSubEvents) override final |
| StatusCode | mergeEvent (const EventContext &ctx) override final |
| StatusCode | prepareEvent (const EventContext &ctx, const unsigned int) override final |
| When being run from PileUpToolsAlgs, this method is called at the start of the subevts loop. | |
| StatusCode | processAllSubEvents (const EventContext &ctx) override final |
| alternative interface which uses the PileUpMergeSvc to obtain all the required SubEvents. | |
| StatusCode | processAllSubEvents (const EventContext &ctx) const |
| Reentrant version of the digitization tool. | |
| PileUpToolBase (const std::string &type, const std::string &name, const IInterface *parent) | |
Protected Types | |
| using | TimedHit = TimedHitPtr<xAOD::MuonSimHit> |
| using | TimedHits = std::vector<TimedHitPtr<xAOD::MuonSimHit>> |
| template<class DetType> | |
| using | OutDigitCache_t = std::vector<std::unique_ptr<DetType>> |
| DigitContainers are sorted by DigitCollections which are the ensemble of all hits in a given MuonChamber. | |
| using | DeadTimeMap = std::unordered_map<Identifier, double> |
Protected Member Functions | |
| CLHEP::HepRandomEngine * | getRandomEngine (const EventContext &ctx) const |
| virtual StatusCode | digitize (const EventContext &ctx, const TimedHits &hitsToDigit, xAOD::MuonSimHitContainer *sdoContainer) const =0 |
| Digitize the time ordered hits and write them to the digit format specific for the detector technology. | |
| xAOD::MuonSimHit * | addSDO (const TimedHit &hit, xAOD::MuonSimHitContainer *sdoContainer) const |
| Adds the timed simHit to the output SDO container. | |
| const ActsTrk::GeometryContext & | getGeoCtx (const EventContext &ctx) const |
| Returns the reference to the ActsTrk::GeometryContext needed to fetch global positions from the Readout geometry. | |
| template<class DigitColl> | |
| DigitColl * | fetchCollection (const Identifier &hitId, OutDigitCache_t< DigitColl > &digitCache) const |
| Helper function that provides fetches the proper DigitCollection from the DigitCache for a given hit identifier If the Collection is fetched for the first time, it's inserted into the cache first. | |
| template<class DigitCont, class DigitColl> | |
| StatusCode | writeDigitContainer (const EventContext &ctx, const SG::WriteHandleKey< DigitCont > &key, OutDigitCache_t< DigitColl > &&digitCache, unsigned int hashMax) const |
| Helper function to move the collected digits into the final DigitContainer. | |
Static Protected Member Functions | |
| static double | hitTime (const TimedHit &hit) |
| Returns the global time of the hit which is the sum of eventTime & individual hit time. | |
| static bool | passDeadTime (const Identifier &channelId, const double hitTime, const double deadTimeWindow, DeadTimeMap &deadTimeMap) |
| Returns whether the new digit is within the dead time window. | |
Protected Attributes | |
| const MuonGMR4::MuonDetectorManager * | m_detMgr {nullptr} |
| ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc |
Private Types | |
| using | PileUpHits = PileUpMergeSvc::TimedList<xAOD::MuonSimHitContainer>::type |
| using | SimHitLocalCopy |
| Create a local copy of the sim hits to ensure overlayed hits across the events remain valid. | |
Private Member Functions | |
| StatusCode | fillTimedHits (PileUpHits &&hitColl, TimedHits &timedHits) const |
| Translates the PileUpHits into the timed hits format. | |
Private Attributes | |
| SG::ReadHandleKey< xAOD::MuonSimHitContainer > | m_simHitKey {this, "SimHitKey", ""} |
| ActsTrk::GeoContextReadKey_t | m_geoCtxKey |
| ServiceHandle< PileUpMergeSvc > | m_mergeSvc {this, "PileUpMergeSvc", "PileUpMergeSvc", ""} |
| Gaudi::Property< std::string > | m_streamName {this, "StreamName", ""} |
| ServiceHandle< IAthRNGSvc > | m_rndmSvc {this, "RndmSvc", "AthRNGSvc", ""} |
| SG::WriteHandleKey< xAOD::MuonSimHitContainer > | m_sdoKey {this, "OutputSDOName", ""} |
| Gaudi::Property< bool > | m_onlyUseContainerName |
| Gaudi::Property< bool > | m_includePileUpTruth {this, "IncludePileUpTruth", true, "Include pile-up truth info"} |
| std::string | m_inputObjectName {""} |
| TimedHits | m_timedHits {} |
| std::vector< SimHitLocalCopy > | m_simHits {} |
structors and AlgTool implementation | |
| Gaudi::Property< int > | m_firstXing |
| Gaudi::Property< int > | m_lastXing |
| Gaudi::Property< int > | m_vetoPileUpTruthLinks |
| bool | m_filterPassed {true} |
| virtual bool | toProcess (int bunchXing) const override |
| the method this base class helps implementing | |
| virtual bool | filterPassed () const override |
| dummy implementation of passing filter | |
| virtual void | resetFilter () override |
| dummy implementation of filter reset | |
Barebone implementation of the I/O infrastructure for all MuonDigitizationTools.
Definition at line 30 of file MuonDigitizationTool.h.
|
protected |
Definition at line 100 of file MuonDigitizationTool.h.
|
protected |
DigitContainers are sorted by DigitCollections which are the ensemble of all hits in a given MuonChamber.
To fill the final DigitContainer thread-safely, the DigitCollections shall be cached pre cached in a OutDigitCache_t vector which is later moved to the final DigitContainer
Definition at line 80 of file MuonDigitizationTool.h.
|
private |
Definition at line 116 of file MuonDigitizationTool.h.
|
private |
Create a local copy of the sim hits to ensure overlayed hits across the events remain valid.
Definition at line 143 of file MuonDigitizationTool.h.
|
protected |
Definition at line 57 of file MuonDigitizationTool.h.
|
protected |
Definition at line 58 of file MuonDigitizationTool.h.
|
protected |
Adds the timed simHit to the output SDO container.
The hit may be rejected if it's originating from pile-up and the pile-up truth skimming strategy is applied
Definition at line 138 of file MuonDigitizationTool.cxx.
|
protectedpure virtual |
Digitize the time ordered hits and write them to the digit format specific for the detector technology.
A new MuonSimHitContainer pointer is parsed to also create the MuonSDO. If a new SDO should be added to the container plese use the addSDO() method as defined below.
Implemented in MuonR4::MdtDigitizationTool, MuonR4::MM_DigitizationTool, MuonR4::MmFastDigiTool, MuonR4::RpcDigiTool, MuonR4::RpcFastDigiTool, MuonR4::sTgcDigitizationTool, MuonR4::sTgcFastDigiTool, and MuonR4::TgcFastDigiTool.
|
protected |
Helper function that provides fetches the proper DigitCollection from the DigitCache for a given hit identifier If the Collection is fetched for the first time, it's inserted into the cache first.
|
private |
Translates the PileUpHits into the timed hits format.
Definition at line 48 of file MuonDigitizationTool.cxx.
|
inlineoverridevirtualinherited |
|
protected |
Returns the reference to the ActsTrk::GeometryContext needed to fetch global positions from the Readout geometry.
Definition at line 131 of file MuonDigitizationTool.cxx.
|
protected |
Definition at line 125 of file MuonDigitizationTool.cxx.
Returns the global time of the hit which is the sum of eventTime & individual hit time.
Definition at line 67 of file MuonDigitizationTool.cxx.
|
overridevirtual |
Initialize ReadHandleKey
Reimplemented from PileUpToolBase.
Reimplemented in MuonR4::RpcDigiTool, MuonR4::RpcFastDigiTool, MuonR4::sTgcDigitizationTool, MuonR4::sTgcFastDigiTool, and MuonR4::TgcFastDigiTool.
Definition at line 15 of file MuonDigitizationTool.cxx.
|
finaloverride |
Definition at line 92 of file MuonDigitizationTool.cxx.
|
staticprotected |
Returns whether the new digit is within the dead time window.
channelId: Identifier of the fired channel
hitTime: Current hit time
deadTimeWindow: Dead time to pass before the next hit may be accepted
deadTimeMap: Map storing the last hit times from each Identifier
Channel not seen before
Update dead time map & accept hit
Definition at line 160 of file MuonDigitizationTool.cxx.
| PileUpToolBase::PileUpToolBase | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Definition at line 22 of file PileUpToolBase.cxx.
|
finaloverride |
When being run from PileUpToolsAlgs, this method is called at the start of the subevts loop.
Not able to access SubEvents
Definition at line 39 of file MuonDigitizationTool.cxx.
| StatusCode MuonR4::MuonDigitizationTool::processAllSubEvents | ( | const EventContext & | ctx | ) | const |
Reentrant version of the digitization tool.
In case of single hits container just load the collection using read handles
Definition at line 75 of file MuonDigitizationTool.cxx.
|
finaloverridevirtual |
alternative interface which uses the PileUpMergeSvc to obtain all the required SubEvents.
Reimplemented from PileUpToolBase.
Definition at line 70 of file MuonDigitizationTool.cxx.
|
finaloverridevirtual |
Reimplemented from PileUpToolBase.
Definition at line 104 of file MuonDigitizationTool.cxx.
|
inlineoverridevirtualinherited |
dummy implementation of filter reset
Reimplemented in MergeTruthJetsTool.
Definition at line 51 of file PileUpToolBase.h.
|
inlineoverridevirtualinherited |
the method this base class helps implementing
Reimplemented in MergeHijingParsTool, and MergeTrackRecordCollTool.
Definition at line 32 of file PileUpToolBase.h.
|
protected |
Helper function to move the collected digits into the final DigitContainer.
The function needs the maximal size of the container in advance which is provided by calling the module_hash_max() function of the corresponding MuonIdHelper.
|
protected |
Definition at line 111 of file MuonDigitizationTool.h.
|
protectedinherited |
Definition at line 60 of file PileUpToolBase.h.
|
protectedinherited |
Definition at line 54 of file PileUpToolBase.h.
|
private |
Definition at line 123 of file MuonDigitizationTool.h.
|
protected |
Definition at line 113 of file MuonDigitizationTool.h.
|
private |
Definition at line 137 of file MuonDigitizationTool.h.
|
private |
Definition at line 139 of file MuonDigitizationTool.h.
|
protectedinherited |
Definition at line 56 of file PileUpToolBase.h.
|
private |
Definition at line 126 of file MuonDigitizationTool.h.
|
private |
Definition at line 134 of file MuonDigitizationTool.h.
|
private |
Definition at line 130 of file MuonDigitizationTool.h.
|
private |
Definition at line 132 of file MuonDigitizationTool.h.
|
private |
Definition at line 121 of file MuonDigitizationTool.h.
|
private |
Definition at line 145 of file MuonDigitizationTool.h.
|
private |
Definition at line 128 of file MuonDigitizationTool.h.
|
private |
Definition at line 141 of file MuonDigitizationTool.h.
|
protectedinherited |
Definition at line 58 of file PileUpToolBase.h.