 |
ATLAS Offline Software
|
#include <sTgcDigitizationTool.h>
|
StatusCode | processDigitsWithVMM (const EventContext &ctx, const DigiConditions &digiCond, sTgcSimDigitVec &digitsInChamber, const double vmmDeadTime, const bool isNeighbourOn, DigiCache &cache, xAOD::MuonSimHitContainer &outSdoContainer) const |
|
sTgcSimDigitVec | processDigitsWithVMM (const EventContext &ctx, const DigiConditions &digiCond, const double vmmDeadTime, sTgcSimDigitVec &unmergedDigits, const bool isNeighbourOn) 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. More...
|
|
|
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", true} |
|
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} |
|
const double | m_timeJitterElectronicsStrip {2.f} |
|
const double | m_timeJitterElectronicsPad {2.f} |
|
const double | m_hitTimeMergeThreshold {30.f} |
|
std::unique_ptr< sTgcDigitMaker > | m_digitizer {} |
|
SG::ReadHandleKey< xAOD::MuonSimHitContainer > | m_simHitKey {this, "SimHitKey", ""} |
|
SG::ReadHandleKey< ActsGeometryContext > | 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 {} |
|
◆ DeadTimeMap
◆ DigiCache
◆ DigiConditions
◆ OutDigitCache_t
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.
◆ PileUpHits
◆ ReadoutChannelType
◆ SimHitLocalCopy
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.
◆ sTgcDigitVec
◆ sTgcSimDigitVec
◆ TimedHit
◆ TimedHits
◆ addSDO()
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.
159 acc_eventTime(*sdoHit) = hit.eventTime();
160 acc_eventID(*sdoHit) = hit.eventId();
161 acc_puType(*sdoHit) = hit.pileupType();
◆ bcTagging()
uint16_t sTgcDigitizationTool::bcTagging |
( |
const double |
digitTime | ) |
const |
|
private |
◆ digitize()
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
Digits are sorted by
Implements MuonR4::MuonDigitizationTool.
Definition at line 72 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitizationTool.cxx.
89 const double angular_tolerance = 1
e-3;
92 if (viewer.size() == 0) {
96 std::array<sTgcSimDigitVec , 3> simDigitsByChType{};
104 double eventTime = hit.eventTime();
105 earliestEventTime =
std::min(earliestEventTime, eventTime);
113 const Amg::Vector3D locHitPos = xAOD::toEigen(hit->localPosition());
114 const Amg::Vector3D locHitDir = xAOD::toEigen(hit->localDirection());
116 const double hitKineticEnergy = hit->kineticEnergy();
118 ATH_MSG_DEBUG(
"Skip electron hit with kinetic energy " << hitKineticEnergy
125 const double theta = std::acos(locHitDir.z());
128 if (std::abs(
theta - ninetyDegrees) < angular_tolerance) {
132 if (std::abs(locHitDir.z()) < 0.00001) {
137 ATH_MSG_DEBUG(
"Updated hit global time to include off set of " << eventTime <<
" ns from OOT bunch.");
147 bool acceptHit =
true;
156 double globalHitTime = hit->globalTime() + eventTime;
158 double bunchTime = globalHitTime - tofCorrection;
163 <<
" globalHitPosition " <<
Amg::toString(globalHitPos) <<
" hit: r " << globalHitPos.perp() <<
" z " << globalHitPos.z()
164 <<
" mclink " << particleLink <<
"Kinetic energy " << hitKineticEnergy);
165 ATH_MSG_VERBOSE(
"Total hits passed to digitize: " << hitsToDigit.size());
167 if(digitizedHits.empty()) {
170 ATH_MSG_VERBOSE(
"Hit produced " << digitizedHits.size() <<
" digits." );
172 for (std::unique_ptr<sTgcDigit>&
digit : digitizedHits) {
182 double digitTime =
digit->time();
183 int digitChType = idHelper.channelType(digitId);
185 if(digitChType == ReadoutChannelType::Strip) {
195 double digitCharge =
digit->charge();
197 int eventId = hit.eventId();
198 bool isDead{
false},
isPileup{eventId != 0};
199 ATH_MSG_VERBOSE(
"Hit is from the main signal subevent if eventId is zero, eventId = "
200 << eventId <<
" newDigit time: " << digitTime);
201 auto newDigitPtr = std::make_unique<sTgcDigit>(digitId, digitBCTag, digitTime, digitCharge, isDead,
isPileup);
202 if (digitChType == ReadoutChannelType::Strip) {
204 <<
" BC tag = " << newDigitPtr->bcTag()
205 <<
" digitTime = " << newDigitPtr->time()
206 <<
" charge = " << newDigitPtr->charge());
208 simDigitsByChType[digitChType].emplace_back(std::move(hit), std::move(newDigitPtr));
211 if (!simDigitsByChType[ReadoutChannelType::Strip].
empty()) {
214 if (!simDigitsByChType[ReadoutChannelType::Pad].
empty()) {
217 if (!simDigitsByChType[ReadoutChannelType::Wire].
empty()) {
220 }
while (viewer.next());
224 return StatusCode::SUCCESS;
◆ fetchCollection()
template<class DigitColl >
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.
◆ fillTimedHits()
StatusCode MuonR4::MuonDigitizationTool::fillTimedHits |
( |
PileUpHits && |
hitColl, |
|
|
TimedHits & |
timedHits |
|
) |
| const |
|
privateinherited |
Translates the PileUpHits into the timed hits format.
Definition at line 44 of file MuonDigitizationTool.cxx.
45 for (
const auto& [timeIndex, simHitColl] : hitColl) {
46 timedHits.reserve(timedHits.capacity() + simHitColl->size());
48 timedHits.emplace_back(timeIndex.time(), timeIndex.index(), simHit, timeIndex.type());
53 if (a->identify() != b->identify()){
54 return a->identify() < b->identify();
56 if (
a.eventId() !=
b.eventId()) {
57 return a.eventId() < b.eventId();
59 return a.eventTime() <
b.eventTime();
61 return StatusCode::SUCCESS;
◆ filterPassed()
virtual bool PileUpToolBase::filterPassed |
( |
| ) |
const |
|
inlineoverridevirtualinherited |
◆ getChannelThreshold()
◆ getGeoCtx()
◆ getRandomEngine()
CLHEP::HepRandomEngine * MuonR4::MuonDigitizationTool::getRandomEngine |
( |
const EventContext & |
ctx | ) |
const |
|
protectedinherited |
◆ hitTime()
double MuonR4::MuonDigitizationTool::hitTime |
( |
const TimedHit & |
hit | ) |
|
|
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.
64 return hit.eventTime() + hit->globalTime();
◆ initialize()
StatusCode sTgcDigitizationTool::initialize |
( |
| ) |
|
|
finaloverridevirtual |
◆ mergeEvent()
StatusCode MuonR4::MuonDigitizationTool::mergeEvent |
( |
const EventContext & |
ctx | ) |
|
|
finaloverrideinherited |
Definition at line 92 of file MuonDigitizationTool.cxx.
98 ATH_CHECK(sdoContainer.record(std::make_unique<xAOD::MuonSimHitContainer>(),
99 std::make_unique<xAOD::MuonSimHitAuxContainer>()));
104 return StatusCode::SUCCESS;
◆ passDeadTime()
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.
170 if (insertItr.second) {
173 if (
hitTime - insertItr.first->second < deadTimeWindow) {
177 insertItr.first->second =
hitTime;
◆ PileUpToolBase()
PileUpToolBase::PileUpToolBase |
|
inherited |
◆ prepareEvent()
StatusCode MuonR4::MuonDigitizationTool::prepareEvent |
( |
const EventContext & |
ctx, |
|
|
const unsigned int |
nInputEvents |
|
) |
| |
|
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.
38 ATH_MSG_DEBUG(
"prepareEvent() called for " << nInputEvents <<
" input events");
41 return StatusCode::SUCCESS;
◆ processAllSubEvents() [1/3]
StatusCode MuonR4::MuonDigitizationTool::processAllSubEvents |
( |
const EventContext & |
ctx | ) |
const |
|
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.
86 ATH_CHECK(sdoContainer.record(std::make_unique<xAOD::MuonSimHitContainer>(),
87 std::make_unique<xAOD::MuonSimHitAuxContainer>()));
90 return StatusCode::SUCCESS;
◆ processAllSubEvents() [2/3]
StatusCode MuonR4::MuonDigitizationTool::processAllSubEvents |
( |
const EventContext & |
ctx | ) |
|
|
finaloverridevirtualinherited |
alternative interface which uses the PileUpMergeSvc to obtain all the required SubEvents.
Reimplemented from PileUpToolBase.
Definition at line 66 of file MuonDigitizationTool.cxx.
67 const MuonDigitizationTool* digiTool =
this;
68 return digiTool->processAllSubEvents(ctx);
◆ processAllSubEvents() [3/3]
virtual StatusCode IPileUpTool::processAllSubEvents |
|
inherited |
dummy implementation to allow compilation while all Digitization packages are migrated to use this new interface.
◆ processBunchXing()
|
finaloverridevirtualinherited |
Reimplemented from PileUpToolBase.
Definition at line 108 of file MuonDigitizationTool.cxx.
115 for (
auto& [hitPtr, hitContainer] : hitList) {
116 auto copyContainer = std::make_unique<xAOD::MuonSimHitContainer>();
117 auto copyAuxContainer = std::make_unique<xAOD::MuonSimHitAuxContainer>();
118 copyContainer->setStore(copyAuxContainer.get());
120 (*copyContainer->push_back(std::make_unique<xAOD::MuonSimHit>())) = (*copyMe);
122 hitListPermanent.emplace_back(hitPtr, copyContainer.get());
123 m_simHits.emplace_back(std::move(copyContainer), std::move(copyAuxContainer));
126 return StatusCode::SUCCESS;
◆ processDigitsWithVMM() [1/2]
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 289 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitizationTool.cxx.
299 [&idHelper](
const sTgcSimDigitHit&
a,
const sTgcSimDigitHit&
b) {
300 const int layA = idHelper.gasGap(a.identify());
301 const int layB = idHelper.gasGap(b.identify());
302 if (layA != layB) return layA < layB;
303 const int chA = idHelper.channel(a.identify());
304 const int chB = idHelper.channel(b.identify());
305 if (chA != chB) return chA < chB;
306 return a.time() < b.time();
311 premerged.reserve(unmergedDigits.size());
312 savedDigits.reserve(premerged.capacity());
314 auto passNeigbourLogic = [&](
const sTgcSimDigitHit& candidate) {
315 if (!isNeighbourOn || savedDigits.empty())
return false;
316 if (savedDigits.back().identify() == candidate.identify() &&
317 std::abs(savedDigits.back().time() - candidate.time()) < vmmDeadTime) {
321 const Identifier digitId = candidate.identify();
322 const int channel = idHelper.channel(digitId);
323 const int maxChannel = detMgr->getsTgcReadoutElement(digitId)->numChannels(digitId);
326 if (neighbour ==
channel)
continue;
327 const Identifier neighbourId = idHelper.channelID(digitId,
328 idHelper.multilayer(digitId),
329 idHelper.gasGap(digitId),
330 idHelper.channelType(digitId), neighbour);
333 if (std::find_if(savedDigits.begin(), savedDigits.end(), [&](
const sTgcSimDigitHit&
known){
334 return known.identify() == neighbourId &&
335 known.getDigit().charge() > threshold &&
336 std::abs(known.time() - candidate.time()) < m_hitTimeMergeThreshold;
337 }) != savedDigits.end())
return true;
351 sTgcDigit& digit1{(*merge_me).getDigit()};
352 double totalCharge = digit1.
charge();
353 double weightedTime = digit1.time();
356 for ( ; merge_with!= unmergedDigits.end(); ++merge_with) {
358 if ((*merge_with).identify() != (*merge_me).identify()) {
361 const sTgcDigit& mergeDigit{(*merge_with).getDigit()};
367 weightedTime = (weightedTime * totalCharge + mergeDigit.time() * mergeDigit.charge())
368 / (totalCharge + mergeDigit.charge());
370 totalCharge += mergeDigit.
charge();
372 digit1.set_charge(totalCharge);
373 digit1.set_time(weightedTime);
374 sTgcSimDigitHit& mergedHit{*merge_me};
375 if (!savedDigits.empty() &&
376 savedDigits.back().identify() == digit1.identify() &&
377 std::abs(savedDigits.back().time() - digit1.time()) <= vmmDeadTime)
continue;
378 if (digit1.charge() >
threshold || passNeigbourLogic(mergedHit)){
379 savedDigits.emplace_back(std::move(mergedHit));
380 }
else if (isNeighbourOn) {
381 premerged.emplace_back(std::move(mergedHit));
384 std::copy_if(std::make_move_iterator(premerged.begin()),
385 std::make_move_iterator(premerged.end()),
386 std::back_inserter(savedDigits), passNeigbourLogic);
387 if(savedDigits.empty() && !unmergedDigits.empty()) {
◆ processDigitsWithVMM() [2/2]
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
Change the sdo hit time to include the pileup eventTime
Add the VMM processed digit to cache
Definition at line 227 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitizationTool.cxx.
236 if (digitsInChamber.empty()) {
237 ATH_MSG_WARNING(
"Failed to obtain the digitized hits for VMM Simulation" );
238 return StatusCode::SUCCESS;
242 digitsInChamber, isNeighbourOn);
244 if (mergedDigits.empty()) {
245 return StatusCode::SUCCESS;
248 for (sTgcSimDigitHit& merged : mergedDigits) {
251 bool acceptDigit{
true};
252 float chargeAfterSmearing = merged.getDigit().charge();
255 digiCond.rndEngine));
262 if (idHelper.channelType(merged.identify()) == ReadoutChannelType::Strip &&
263 chargeAfterSmearing < 0.001) {
266 std::unique_ptr<sTgcDigit> finalDigit = std::make_unique<sTgcDigit>(std::move(merged.getDigit()));
271 " BC tag = " << finalDigit->
bcTag()<<
272 " digitTime = " << finalDigit->
time() <<
273 " charge = " << finalDigit->
charge());
279 double globalHitTime = sdoHit->
globalTime() + merged.getSimHit().eventTime();
284 outColl->
push_back(std::move(finalDigit));
286 return StatusCode::SUCCESS;
◆ resetFilter()
virtual void PileUpToolBase::resetFilter |
( |
| ) |
|
|
inlineoverridevirtualinherited |
◆ toProcess()
virtual bool PileUpToolBase::toProcess |
( |
int |
bunchXing | ) |
const |
|
inlineoverridevirtualinherited |
◆ writeDigitContainer()
template<class DigitCont , class DigitColl >
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.
◆ m_calibrationTool
◆ m_chargeThreshold
Gaudi::Property<double> MuonR4::sTgcDigitizationTool::m_chargeThreshold {this,"chargeThreshold", 0.030} |
|
private |
◆ m_condThrshldsKey
◆ m_deadtimePad
Gaudi::Property<double> MuonR4::sTgcDigitizationTool::m_deadtimePad {this,"deadtimePad" , 250} |
|
private |
◆ m_deadtimeStrip
Gaudi::Property<double> MuonR4::sTgcDigitizationTool::m_deadtimeStrip {this,"deadtimeStrip", 250} |
|
private |
◆ m_deadtimeWire
Gaudi::Property<double> MuonR4::sTgcDigitizationTool::m_deadtimeWire {this,"deadtimeWire" , 250} |
|
private |
◆ m_detMgr
◆ m_digitizeMuonOnly
Gaudi::Property<bool> MuonR4::sTgcDigitizationTool::m_digitizeMuonOnly {this, "ProcessTrueMuonsOnly", true} |
|
private |
◆ m_digitizer
std::unique_ptr<sTgcDigitMaker> MuonR4::sTgcDigitizationTool::m_digitizer {} |
|
private |
◆ m_digitMode
Gaudi::Property<int> MuonR4::sTgcDigitizationTool::m_digitMode {this, "digitMode", 3} |
|
private |
◆ m_doNeighborOn
Gaudi::Property<bool> MuonR4::sTgcDigitizationTool::m_doNeighborOn {this,"neighborOn", true} |
|
private |
◆ m_doPadSharing
Gaudi::Property<bool> MuonR4::sTgcDigitizationTool::m_doPadSharing {this,"padChargeSharing", false} |
|
private |
◆ m_doSmearing
Gaudi::Property<bool> MuonR4::sTgcDigitizationTool::m_doSmearing {this, "doSmearing", false} |
|
private |
◆ m_doToFCorrection
Gaudi::Property<bool> MuonR4::sTgcDigitizationTool::m_doToFCorrection {this,"doToFCorrection", true} |
|
private |
◆ m_effiDataKey
◆ m_energyDepositThreshold
Gaudi::Property<double> MuonR4::sTgcDigitizationTool::m_energyDepositThreshold {this,"energyDepositThreshold",300.0*CLHEP::eV} |
|
private |
◆ m_filterPassed
bool PileUpToolBase::m_filterPassed {true} |
|
protectedinherited |
◆ m_firstXing
Gaudi::Property<int> PileUpToolBase::m_firstXing |
|
protectedinherited |
Initial value:{this, "FirstXing", -999,
"First bunch-crossing in which det is live"}
Definition at line 54 of file PileUpToolBase.h.
◆ m_geoCtxKey
Initial value:{this, "AlignmentKey", "ActsAlignment",
"Geometry context"}
Definition at line 123 of file MuonDigitizationTool.h.
◆ m_hitTimeMergeThreshold
const double MuonR4::sTgcDigitizationTool::m_hitTimeMergeThreshold {30.f} |
|
private |
◆ m_idHelperSvc
Initial value:{this, "MuonIdHelperSvc",
"Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
Definition at line 113 of file MuonDigitizationTool.h.
◆ m_includePileUpTruth
Gaudi::Property<bool> MuonR4::MuonDigitizationTool::m_includePileUpTruth {this, "IncludePileUpTruth", true, "Include pile-up truth info"} |
|
privateinherited |
◆ m_inputObjectName
std::string MuonR4::MuonDigitizationTool::m_inputObjectName {""} |
|
privateinherited |
◆ m_lastXing
Gaudi::Property<int> PileUpToolBase::m_lastXing |
|
protectedinherited |
Initial value:{this, "LastXing", 999,
"Last bunch-crossing in which det is live"}
Definition at line 56 of file PileUpToolBase.h.
◆ m_limitElectronKineticEnergy
Gaudi::Property<double> MuonR4::sTgcDigitizationTool::m_limitElectronKineticEnergy {this,"limitElectronKineticEnergy",5.0*CLHEP::MeV} |
|
private |
◆ m_mergeSvc
◆ m_onlyUseContainerName
Gaudi::Property<bool> MuonR4::MuonDigitizationTool::m_onlyUseContainerName |
|
privateinherited |
Initial value:{this, "OnlyUseContainerName", false,
"Don't use the ReadHandleKey directly. Just extract the container name from it."}
Definition at line 134 of file MuonDigitizationTool.h.
◆ m_rndmSvc
◆ m_runVoltage
Gaudi::Property<double> MuonR4::sTgcDigitizationTool::m_runVoltage {this,"operatingHVinkV" , 2.8} |
|
private |
◆ m_sdoKey
◆ m_simHitKey
◆ m_simHits
◆ m_smearingTool
◆ m_streamName
Gaudi::Property<std::string> MuonR4::MuonDigitizationTool::m_streamName {this, "StreamName", ""} |
|
privateinherited |
◆ m_timedHits
TimedHits MuonR4::MuonDigitizationTool::m_timedHits {} |
|
privateinherited |
◆ m_timeJitterElectronicsPad
const double MuonR4::sTgcDigitizationTool::m_timeJitterElectronicsPad {2.f} |
|
private |
◆ m_timeJitterElectronicsStrip
const double MuonR4::sTgcDigitizationTool::m_timeJitterElectronicsStrip {2.f} |
|
private |
◆ m_useCondThresholds
Gaudi::Property<bool> MuonR4::sTgcDigitizationTool::m_useCondThresholds |
|
private |
◆ m_useTimeWindow
Gaudi::Property<bool> MuonR4::sTgcDigitizationTool::m_useTimeWindow {this, "UseTimeWindow", true} |
|
private |
◆ m_vetoPileUpTruthLinks
Gaudi::Property<int> PileUpToolBase::m_vetoPileUpTruthLinks |
|
protectedinherited |
Initial value:{this, "VetoPileUpTruthLinks", true,
"Ignore links to suppressed pile-up truth"}
Definition at line 58 of file PileUpToolBase.h.
◆ m_writeKey
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
void setSeed(const std::string &algName, const EventContext &ctx)
Set the random seed using a string (e.g.
void set_charge(float newCharge)
Scalar theta() const
theta method
float globalTime() const
Returns the time ellapsed since the collision of the traversing particle.
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool empty() const
Test if the key is blank.
bool ignoreTruthLink(const T &p, bool vetoPileUp)
Helper function for SDO creation in PileUpTools.
void stable_sort(std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, std::reverse_iterator< DataModel_detail::iterator< DVL > > end, Compare comp)
Specialization of stable_sort for DataVector/List.
a link optimized in size for a GenParticle in a McEventCollection
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
const T * get(const ReadCondHandleKey< T > &key, const EventContext &ctx)
Convenience function to retrieve an object given a ReadCondHandleKey.
bool isElectron(const xAOD::Egamma *eg)
is the object an electron (not Fwd)
Out copy_if(In first, const In &last, Out res, const Pred &p)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Include the GeoPrimitives which need to be put first.
A wrapper class for event-slot-local random engines.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
#define THROW_EXCEPTION(MESSAGE)
CLHEP::HepRandomEngine * getEngine(const EventContext &ctx) const
Retrieve the random engine corresponding to the provided EventContext.
bool isPileup(int origin)
from pileup
Identifier identify() const
bool empty() const noexcept
#define ATH_MSG_WARNING(x)
bool getThreshold(const Identifier &, float &) const
digitMode
Constructor initializing digitization parameters.
const Amg::Transform3D & localToGlobalTrans(const ActsGeometryContext &ctx) const
Returns the local to global transformation into the ATLAS coordinate system.
a struct encapsulating the identifier of a pile-up event
void setGlobalTime(const float time)
Sets the time of the traversing particle.