![]() |
ATLAS Offline Software
|
#include <MM_DigitizationTool.h>
Public Member Functions | |
| MM_DigitizationTool (const std::string &type, const std::string &name, const IInterface *pIID) | |
| StatusCode | initialize () override final |
| StatusCode | finalize () override final |
| 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 | |
| StatusCode | digitize (const EventContext &ctx, const TimedHits &hitsToDigit, xAOD::MuonSimHitContainer *sdoContainer) const override final |
| Digitize the time ordered hits and write them to the digit format specific for the detector technology. | |
| CLHEP::HepRandomEngine * | getRandomEngine (const EventContext &ctx) const |
| 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 | NoiseCalibConstants = NswCalibDbTimeChargeData::CalibConstants |
| using | DigiCache = OutDigitCache_t<MmDigitCollection> |
| 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 | |
| MM_ElectronicsToolInput | combinedStripResponseAllHits (const EventContext &ctx, const std::vector< MM_ElectronicsToolInput > &v_stripDigitOutput) const |
| StatusCode | fillTimedHits (PileUpHits &&hitColl, TimedHits &timedHits) const |
| Translates the PileUpHits into the timed hits format. | |
Private Attributes | |
| SG::WriteHandleKey< MmDigitContainer > | m_writeKey {this, "OutputObjectName", "MM_DIGITS"} |
| SG::ReadCondHandleKey< Muon::DigitEffiData > | m_effiDataKey {this, "EffiDataKey", "MmDigitEff", "Efficiency constants of the individual MM gasGaps"} |
| SG::ReadCondHandleKey< NswErrorCalibData > | m_uncertCalibKey {this, "ErrorCalibKey", "NswUncertData", "Key of the parametrized NSW uncertainties"} |
| SG::ReadCondHandleKey< NswCalibDbThresholdData > | m_condThrshldsKey |
| SG::ReadCondHandleKey< AtlasFieldCacheCondObj > | m_fieldCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj"} |
| ToolHandle< Muon::INSWCalibSmearingTool > | m_smearingTool {this, "SmearingTool", "Muon::NSWCalibSmearingTool/MMCalibSmearingTool"} |
| ToolHandle< Muon::INSWCalibTool > | m_calibrationTool {this, "CalibrationTool", "Muon::NSWCalibTool/NSWCalibTool"} |
| Gaudi::Property< bool > | m_digitizeMuonOnly {this, "ProcessTrueMuonsOnly", true, "If set to true hit with pdgId != 13 are skipped"} |
| Gaudi::Property< std::string > | m_vmmReadoutMode {this, "vmmReadoutMode", "peak", "For readout (DAQ) path. Can be peak or threshold"} |
| Gaudi::Property< std::string > | m_vmmARTMode {this, "vmmARTMode", "threshold", "For ART (trigger) path. Can be peak or threshold"} |
| Gaudi::Property< double > | m_energyThreshold {this, "EnergyThreshold", 50, "Minimal energy to process an electron sim hit"} |
| Gaudi::Property< double > | m_timeWindowLowerOffset |
| Gaudi::Property< double > | m_timeWindowUpperOffset |
| Gaudi::Property< double > | m_DiffMagSecondMuonHit {this, "DiffMagSecondMuonHit", 0.1} |
| Gaudi::Property< int > | m_maskMultiplet {this, "MaskMultiplet", 0, "0: all, 1: first, 2: second, 3: both"} |
| Gaudi::Property< bool > | m_writeOutputFile {this, "SaveInternalHistos", false} |
| Gaudi::Property< bool > | m_needsMcEventCollHelper {this, "UseMcEventCollectionHelper", false} |
| Gaudi::Property< bool > | m_checkMMSimHits {this, "CheckSimHits", true, "Control on the hit validity"} |
| Gaudi::Property< bool > | m_useTimeWindow {this, "UseTimeWindow", true} |
| Gaudi::Property< bool > | m_vmmNeighborLogic {this, "VMMNeighborLogic", false} |
| Gaudi::Property< bool > | m_doSmearing |
| Gaudi::Property< float > | m_qThreshold {this, "qThreshold", 0.001, "Charge Threshold"} |
| Gaudi::Property< float > | m_driftGapWidth {this, "DriftGapWidth", 5.04, "Drift Gap Width of 5.04 mm"} |
| Gaudi::Property< float > | m_crossTalk1 {this, "crossTalk1", 0.3, "Strip Cross Talk with Nearest Neighbor"} |
| Gaudi::Property< float > | m_crossTalk2 {this, "crossTalk2", 0.09, "Strip Cross Talk with 2nd Nearest Neighbor"} |
| Gaudi::Property< float > | m_avalancheGain {this, "AvalancheGain", 6.0e3, "avalanche Gain for rach gas mixture"} |
| Gaudi::Property< float > | m_electronicsThreshold |
| Gaudi::Property< float > | m_stripdeadtime {this, "StripDeadTime", 200, "dead-time for strip, default value 200 ns = 8 BCs"} |
| Gaudi::Property< float > | m_ARTdeadtime {this, "ARTDeadTime", 200, "dead-time for ART, default value 200 ns = 8 BCs"} |
| Gaudi::Property< bool > | m_useCondThresholds |
| Gaudi::Property< bool > | m_useThresholdScaling |
| Gaudi::Property< float > | m_thresholdScaleFactor |
| Gaudi::Property< float > | m_vmmDeadtime {this, "vmmDeadtime", 200, "Specifies how much before the lower time limit the VMM simulation should start evaluating the signal"} |
| Gaudi::Property< float > | m_vmmUpperGrazeWindow {this, "vmmUpperGrazeWindow", 150, "Specifies how much above the upper time window boundary the VMM sim evaluates the signal."} |
| Gaudi::Property< double > | m_deadTime {this, "deadTime", 300. * Gaudi::Units::ns} |
| std::unique_ptr< MM_StripsResponseSimulation > | m_StripsResponseSimulation {} |
| std::unique_ptr< MM_ElectronicsResponseSimulation > | m_ElectronicsResponseSimulation {} |
| std::map< int, NoiseCalibConstants > | m_noiseParams {} |
| Define a map to cache the noise parameters individually Key: stationName * std::abs(stationEta) | |
| std::array< std::atomic< unsigned >, 8 > m_allHits | ATLAS_THREAD_SAFE {} |
| std::array< std::atomic< unsigned >, 8 > m_acceptedHits | ATLAS_THREAD_SAFE {} |
| SG::ReadHandleKey< xAOD::MuonSimHitContainer > | m_simHitKey {this, "SimHitKey", ""} |
| SG::ReadHandleKey< ActsTrk::GeometryContext > | 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 | |
| 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 | |
| Gaudi::Property< int > | m_firstXing |
| Gaudi::Property< int > | m_lastXing |
| Gaudi::Property< int > | m_vetoPileUpTruthLinks |
| bool | m_filterPassed {true} |
Definition at line 33 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
protectedinherited |
Definition at line 100 of file MuonDigitizationTool.h.
|
private |
Definition at line 126 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 118 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
protectedinherited |
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.
|
privateinherited |
Definition at line 116 of file MuonDigitizationTool.h.
|
privateinherited |
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.
|
protectedinherited |
Definition at line 57 of file MuonDigitizationTool.h.
|
protectedinherited |
Definition at line 58 of file MuonDigitizationTool.h.
| MM_DigitizationTool::MM_DigitizationTool | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | pIID ) |
Definition at line 36 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.cxx.
|
protectedinherited |
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 142 of file MuonDigitizationTool.cxx.
|
private |
Definition at line 427 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.cxx.
|
finaloverrideprotectedvirtual |
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.
Reject hit within the dead time interval
Implements MuonR4::MuonDigitizationTool.
Definition at line 197 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.cxx.
|
protectedinherited |
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.
|
privateinherited |
Translates the PileUpHits into the timed hits format.
Definition at line 44 of file MuonDigitizationTool.cxx.
|
inlineoverridevirtualinherited |
|
finaloverride |
Definition at line 180 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.cxx.
|
protectedinherited |
Returns the reference to the ActsTrk::GeometryContext needed to fetch global positions from the Readout geometry.
Definition at line 135 of file MuonDigitizationTool.cxx.
|
protectedinherited |
Definition at line 129 of file MuonDigitizationTool.cxx.
|
staticprotectedinherited |
Returns the global time of the hit which is the sum of eventTime & individual hit time.
Definition at line 63 of file MuonDigitizationTool.cxx.
|
finaloverridevirtual |
Reimplemented from PileUpToolBase.
Definition at line 39 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.cxx.
|
finaloverrideinherited |
Definition at line 92 of file MuonDigitizationTool.cxx.
|
staticprotectedinherited |
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 164 of file MuonDigitizationTool.cxx.
|
inherited |
Definition at line 22 of file PileUpToolBase.cxx.
|
finaloverrideinherited |
When being run from PileUpToolsAlgs, this method is called at the start of the subevts loop.
Not able to access SubEvents
Definition at line 35 of file MuonDigitizationTool.cxx.
|
inherited |
Reentrant version of the digitization tool.
In case of single hits container just load the collection using read handles
Definition at line 71 of file MuonDigitizationTool.cxx.
|
finaloverridevirtualinherited |
alternative interface which uses the PileUpMergeSvc to obtain all the required SubEvents.
Reimplemented from PileUpToolBase.
Definition at line 66 of file MuonDigitizationTool.cxx.
|
finaloverridevirtualinherited |
Reimplemented from PileUpToolBase.
Definition at line 108 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.
|
protectedinherited |
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.
|
mutableprivate |
Definition at line 123 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
mutableprivate |
Definition at line 124 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 98 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 92 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 59 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 76 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 54 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 89 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 90 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 113 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
protectedinherited |
Definition at line 111 of file MuonDigitizationTool.h.
|
private |
Definition at line 70 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 61 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 79 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 88 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 51 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 116 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 95 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 65 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 57 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
protectedinherited |
Definition at line 60 of file PileUpToolBase.h.
|
protectedinherited |
Definition at line 54 of file PileUpToolBase.h.
|
privateinherited |
Definition at line 123 of file MuonDigitizationTool.h.
|
protectedinherited |
Definition at line 113 of file MuonDigitizationTool.h.
|
privateinherited |
Definition at line 137 of file MuonDigitizationTool.h.
|
privateinherited |
Definition at line 139 of file MuonDigitizationTool.h.
|
protectedinherited |
Definition at line 56 of file PileUpToolBase.h.
|
private |
Definition at line 72 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
privateinherited |
Definition at line 126 of file MuonDigitizationTool.h.
|
private |
Definition at line 75 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Define a map to cache the noise parameters individually Key: stationName * std::abs(stationEta)
Definition at line 121 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
privateinherited |
Definition at line 134 of file MuonDigitizationTool.h.
|
private |
Definition at line 87 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
privateinherited |
Definition at line 130 of file MuonDigitizationTool.h.
|
privateinherited |
Definition at line 132 of file MuonDigitizationTool.h.
|
privateinherited |
Definition at line 121 of file MuonDigitizationTool.h.
|
privateinherited |
Definition at line 145 of file MuonDigitizationTool.h.
|
private |
Definition at line 58 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
privateinherited |
Definition at line 128 of file MuonDigitizationTool.h.
|
private |
Definition at line 97 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 115 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 105 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
privateinherited |
Definition at line 141 of file MuonDigitizationTool.h.
|
private |
Definition at line 66 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 68 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 52 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 101 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 103 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 77 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
protectedinherited |
Definition at line 58 of file PileUpToolBase.h.
|
private |
Definition at line 63 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 107 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 78 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 62 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 110 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 49 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.
|
private |
Definition at line 74 of file MuonPhaseII/MuonDigitization/MmDigitizationR4/src/MM_DigitizationTool.h.