![]() |
ATLAS Offline Software
|
#include <sTgcDigitizationTool.h>
Classes | |
| struct | SimHitSorter |
| Data type to deduplicate the SDOs && associate them with the digit produced by them. More... | |
| class | sTgcSimDigitHit |
Public Types | |
| using | ReadoutChannelType = sTgcIdHelper::sTgcChannelTypes |
| ReadoutChannelType to distinguish the available readout channels Pad - pad readout channel Strip - eta strip readout channel Wire - phi wire group readout channel. | |
| using | DigiConditions = sTgcDigitMaker::DigiConditions |
| using | sTgcDigitVec = sTgcDigitMaker::sTgcDigitVec |
| using | DigiCache = OutDigitCache_t<sTgcDigitCollection> |
| using | sTgcSimDigitVec = std::vector<sTgcSimDigitHit> |
Public Member Functions | |
| StatusCode | initialize () override final |
| 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. | |
| 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 |
| 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 | SdoIdMap_t = std::map<const TimedHit, std::vector<Identifier>, SimHitSorter> |
| 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 | processDigitsWithVMM (const EventContext &ctx, const DigiConditions &digiCond, sTgcSimDigitVec &&digitsInChamber, const double vmmDeadTime, const bool isNeighbourOn, sTgcDigitCollection &outColl, SdoIdMap_t &sdoIdMap) const |
| sTgcSimDigitVec | mergeDigitsVMM (const EventContext &ctx, const DigiConditions &digiCond, const double vmmDeadTime, const bool isNeighbourOn, sTgcSimDigitVec &&unmergedDigits) const |
| uint16_t | bcTagging (const double digitTime) const |
| double | getChannelThreshold (const EventContext &ctx, const Identifier &channelID, const NswCalibDbThresholdData &thresholdData) const |
| StatusCode | fillTimedHits (PileUpHits &&hitColl, TimedHits &timedHits) const |
| Translates the PileUpHits into the timed hits format. | |
Private Attributes | |
| SG::WriteHandleKey< sTgcDigitContainer > | m_writeKey {this, "OutputObjectName", "STGC_DIGITS"} |
| SG::ReadCondHandleKey< Muon::DigitEffiData > | m_effiDataKey {this, "EffiDataKey", "sTgcDigitEff", "Efficiency constants"} |
| SG::ReadCondHandleKey< NswCalibDbThresholdData > | m_condThrshldsKey {this, "CondThrshldsKey", "NswCalibDbThresholdData", "Calibration data"} |
| ToolHandle< Muon::INSWCalibSmearingTool > | m_smearingTool {this, "SmearingTool", "Muon::NSWCalibSmearingTool/STGCCalibSmearingTool"} |
| ToolHandle< Muon::INSWCalibTool > | m_calibrationTool {this, "CalibrationTool", "Muon::NSWCalibTool/STGCCalibTool"} |
| Gaudi::Property< bool > | m_digitizeMuonOnly {this, "ProcessTrueMuonsOnly", false} |
| Gaudi::Property< bool > | m_useTimeWindow {this, "UseTimeWindow", true} |
| Gaudi::Property< bool > | m_doSmearing {this, "doSmearing", false} |
| Gaudi::Property< bool > | m_doToFCorrection {this,"doToFCorrection", true} |
| Gaudi::Property< int > | m_digitMode {this, "digitMode", 3} |
| Gaudi::Property< bool > | m_doPadSharing {this,"padChargeSharing", false} |
| Gaudi::Property< double > | m_deadtimeStrip {this,"deadtimeStrip", 250} |
| Gaudi::Property< double > | m_deadtimePad {this,"deadtimePad" , 250} |
| Gaudi::Property< double > | m_deadtimeWire {this,"deadtimeWire" , 250} |
| Gaudi::Property< bool > | m_doNeighborOn {this,"neighborOn", true} |
| Gaudi::Property< double > | m_runVoltage {this,"operatingHVinkV" , 2.8} |
| Gaudi::Property< bool > | m_useCondThresholds |
| Gaudi::Property< double > | m_energyDepositThreshold {this,"energyDepositThreshold",300.0*CLHEP::eV} |
| Gaudi::Property< double > | m_limitElectronKineticEnergy {this,"limitElectronKineticEnergy",5.0*CLHEP::MeV} |
| Gaudi::Property< double > | m_chargeThreshold {this,"chargeThreshold", 0.030} |
| std::unique_ptr< sTgcDigitMaker > | m_digitizer {} |
| 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 {} |
Static Private Attributes | |
| static constexpr double | m_timeJitterElectronicsStrip {2.f} |
| static constexpr double | m_timeJitterElectronicsPad {2.f} |
| static constexpr double | m_hitTimeMergeThreshold {30.f} |
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 28 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
protectedinherited |
Definition at line 100 of file MuonDigitizationTool.h.
Definition at line 42 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
Definition at line 40 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.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.
ReadoutChannelType to distinguish the available readout channels Pad - pad readout channel Strip - eta strip readout channel Wire - phi wire group readout channel.
Definition at line 39 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 110 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.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.
Definition at line 41 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
| using MuonR4::sTgcDigitizationTool::sTgcSimDigitVec = std::vector<sTgcSimDigitHit> |
Definition at line 64 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
protectedinherited |
Definition at line 57 of file MuonDigitizationTool.h.
|
protectedinherited |
Definition at line 58 of file MuonDigitizationTool.h.
|
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 47 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitizationTool.cxx.
|
finaloverridevirtual |
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.
Storing hit position and direction in local frame
apply the smearing tool to decide if the hit has to be digitized or not based on layer efficiency
Add the only the hits and digits that pass VMM simulation to sdo container
Digits are sorted by
Implements MuonR4::MuonDigitizationTool.
Definition at line 72 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitizationTool.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 |
|
private |
Definition at line 56 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitizationTool.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 |
meanGasGain is the mean value of the polya gas gain function describing the avalanche of electrons caused by the electric field Parameterization is obtained from ATL-MUON-PUB-2014-001 and the corrected fit to data to parameterize gain vs HV in kV
Reimplemented from MuonR4::MuonDigitizationTool.
Definition at line 11 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitizationTool.cxx.
|
private |
Sort Digits in the unmergedDigits vector by gasgap -> channelType -> time
Catch the cases where the channel is 1 or maxChannel
merge digits in time. Do weighted average to find time of digits originally below threshold. Follows what we expect from real VMM.
We reached another digit. No need to merge
Definition at line 335 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitizationTool.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.
|
private |
Sort all digits from the same chamber according to layer->channelType->time
Update the container iterator to go to the next chamber
apply the smearing before adding the digit
Select strips with charge > 0.001 pC to avoid having zero ADC count when converting charge [pC] to PDO [ADC count]
Add the only the hits and digits that pass VMM simulation to sdo container
Add the VMM processed digit to cache
Definition at line 277 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitizationTool.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.
|
private |
Definition at line 77 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 97 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 74 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 87 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 86 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 88 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
protectedinherited |
Definition at line 111 of file MuonDigitizationTool.h.
|
private |
Definition at line 79 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 133 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 84 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 89 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 85 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 81 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 82 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 73 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 94 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.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.
|
staticconstexprprivate |
Definition at line 101 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.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 95 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
privateinherited |
Definition at line 126 of file MuonDigitizationTool.h.
|
privateinherited |
Definition at line 134 of file MuonDigitizationTool.h.
|
privateinherited |
Definition at line 130 of file MuonDigitizationTool.h.
|
private |
Definition at line 90 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.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 76 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
privateinherited |
Definition at line 128 of file MuonDigitizationTool.h.
|
privateinherited |
Definition at line 141 of file MuonDigitizationTool.h.
|
staticconstexprprivate |
Definition at line 100 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
staticconstexprprivate |
Definition at line 99 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 91 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
private |
Definition at line 80 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.
|
protectedinherited |
Definition at line 58 of file PileUpToolBase.h.
|
private |
Definition at line 71 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitizationTool.h.