ATLAS Offline Software
|
#include <MM_DigitizationTool.h>
Public Member Functions | |
MM_DigitizationTool (const std::string &type, const std::string &name, const IInterface *parent) | |
virtual StatusCode | initialize () override final |
Initialize. More... | |
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. More... | |
StatusCode | processBunchXing (int bunchXing, SubEventIterator bSubEvents, SubEventIterator eSubEvents) override final |
When being run from PileUpToolsAlgs, this method is called for each active bunch-crossing to process current SubEvents bunchXing is in ns. More... | |
StatusCode | mergeEvent (const EventContext &ctx) override final |
When being run from PileUpToolsAlgs, this method is called at the end of the subevts loop. More... | |
virtual StatusCode | processAllSubEvents (const EventContext &ctx) override |
When being run from MM_Digitizer, this method is called during the event loop. More... | |
StatusCode | digitize (const EventContext &ctx) |
Just calls processAllSubEvents - leaving for back-compatibility (IMuonDigitizationTool) More... | |
Private Types | |
using | NoiseCalibConstants = NswCalibDbTimeChargeData::CalibConstants |
Private Member Functions | |
CLHEP::HepRandomEngine * | getRandomEngine (const std::string &streamName, const EventContext &ctx) const |
StatusCode | getNextEvent (const EventContext &ctx) |
Record MmDigitContainer and MuonSimDataCollection. More... | |
StatusCode | doDigitization (const EventContext &ctx) |
bool | checkMMSimHit (const MMSimHit &) const |
MM_ElectronicsToolInput | combinedStripResponseAllHits (const std::vector< MM_ElectronicsToolInput > &v_stripDigitOutput) |
Private Attributes | |
ServiceHandle< IAthRNGSvc > | m_rndmSvc {this, "RndmSvc", "AthRNGSvc", "Random Number Service used in Muon digitization"} |
Gaudi::Property< std::string > | m_rndmEngineName {this, "RndmEngine", "MuonDigitization", "Random engine name"} |
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
ToolHandle< Muon::INSWCalibSmearingTool > | m_smearingTool {this, "SmearingTool", "Muon::NSWCalibSmearingTool/MMCalibSmearingTool"} |
ToolHandle< Muon::INSWCalibTool > | m_calibrationTool {this, "CalibrationTool", "Muon::NSWCalibTool/NSWCalibTool"} |
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > | m_fieldCondObjInputKey {this, "AtlasFieldCacheCondObj", "fieldCondObj"} |
SG::ReadCondHandleKey< NswCalibDbThresholdData > | m_condThrshldsKey |
Gaudi::Property< bool > | m_onlyUseContainerName |
SG::ReadHandleKey< MMSimHitCollection > | m_hitsContainerKey {this, "InputObjectName", "MM_Hits", "name of the input objects"} |
std::string | m_inputObjectName {""} |
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 produce a PRD"} |
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"} |
SG::WriteHandleKey< MmDigitContainer > | m_outputDigitCollectionKey |
SG::WriteHandleKey< MuonSimDataCollection > | m_outputSDO_CollectionKey |
ServiceHandle< PileUpMergeSvc > | m_mergeSvc {this, "PileUpMergeSvc", "PileUpMergeSvc", "Merge service used in digitization"} |
Gaudi::Property< bool > | m_useCondThresholds |
Gaudi::Property< bool > | m_useThresholdScaling |
Gaudi::Property< float > | m_thresholdScaleFactor |
Gaudi::Property< float > | m_vmmDeadtime |
Gaudi::Property< float > | m_vmmUpperGrazeWindow |
const MicromegasHitIdHelper * | m_muonHelper {nullptr} |
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > | m_DetectorManagerKey |
std::list< std::unique_ptr< MMSimHitCollection > > | m_MMHitCollList {} |
std::unique_ptr< TimedHitCollection< MMSimHit > > | m_timedHitCollection_MM {} |
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) More... | |
structors and AlgTool implementation | |
virtual bool | toProcess (int bunchXing) const override |
the method this base class helps implementing More... | |
virtual StatusCode | processAllSubEvents (const EventContext &ctx)=0 |
dummy implementation to allow compilation while all Digitization packages are migrated to use this new interface. More... | |
virtual bool | filterPassed () const override |
dummy implementation of passing filter More... | |
virtual void | resetFilter () override |
dummy implementation of filter reset More... | |
Gaudi::Property< int > | m_firstXing |
Gaudi::Property< int > | m_lastXing |
Gaudi::Property< int > | m_vetoPileUpTruthLinks |
bool | m_filterPassed {true} |
@section MM_DigitizerDetails Class methods and properties
Authors: Nektarios Chr. Benekos necta Konstantinos Karakostas rios .bene kos@ cern. chKonst ////////////////////////////////////////////////////////////////////////////// anti nos.K arak ostas @cer n.ch
In the initialize() method, the PileUpMerge and StoreGate services are initialized, and a pointer to an instance of the class MuonDetectorManager is retrieved from the detector store and used to obtain a MmIdHelper. The MMDigitContainer is initialized and the simulation identifier helper retrieved, together with the pointer to the digitization
tool. Random numbers are obtained in the code from a dedicated stream via AtRndmSvc, which is also initialized in the initialize() method. In the execute() method, the digits and the SDOs (Simulation Data Object, container for simulation data to be preserved after the digitization procedue, and persistified together with the RDOs) containers are created and recorded on StoreGate; the MMSimHit collection are merged using the TimedHitCollection sorted container (done in handleMicroMegasSimhit(TimedHitPtr<MMSimHit>& hit)) method); into a loop over the TimedHitCollection for the given DetectorElement, the handleMicroMegasSimhit() method converts the SimID into the Offline ID to be associated to the Digit and pass to the digitization tool the drift radius and the distance to the chamber RO side (for the propagation delay computation). The digitization tool returns a drift time, charge and strip position which are used together with the Offline ID, to create the digit object (in doDigitization() method). The finalize() method returns a SUCCESS StatusCode if the digitization procedure ends succesfully.
In the initialize() method... In the execute() method...
Definition at line 76 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
Definition at line 198 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
MM_DigitizationTool::MM_DigitizationTool | ( | const std::string & | type, |
const std::string & | name, | ||
const IInterface * | parent | ||
) |
Definition at line 65 of file MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx.
Definition at line 895 of file MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx.
|
private |
Definition at line 818 of file MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx.
StatusCode MM_DigitizationTool::digitize | ( | const EventContext & | ctx | ) |
Just calls processAllSubEvents - leaving for back-compatibility (IMuonDigitizationTool)
Definition at line 396 of file MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx.
|
private |
check if the hit has to be dropped, based on efficiency
move the initial track point to the readout plane
use the smearing tool to update time and charge
Definition at line 413 of file MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx.
|
inlineoverridevirtualinherited |
|
private |
Record MmDigitContainer and MuonSimDataCollection.
Definition at line 326 of file MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx.
|
private |
Definition at line 897 of file MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx.
|
finaloverridevirtual |
Initialize.
Small wedges first eta station
Small wedges second eta station
Large wedges first eta station
Large wedges first eta station
Reimplemented from PileUpToolBase.
Definition at line 71 of file MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx.
|
finaloverride |
When being run from PileUpToolsAlgs, this method is called at the end of the subevts loop.
Not (necessarily) able to access SubEvents
Definition at line 383 of file MuonDigitization/MM_Digitization/src/MM_DigitizationTool.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 279 of file MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx.
|
overridevirtual |
When being run from MM_Digitizer, this method is called during the event loop.
alternative interface which uses the PileUpMergeSvc to obtain all the required SubEvents.
Reimplemented from PileUpToolBase.
Definition at line 398 of file MuonDigitization/MM_Digitization/src/MM_DigitizationTool.cxx.
|
inherited |
dummy implementation to allow compilation while all Digitization packages are migrated to use this new interface.
|
finaloverridevirtual |
When being run from PileUpToolsAlgs, this method is called for each active bunch-crossing to process current SubEvents bunchXing is in ns.
Reimplemented from PileUpToolBase.
Definition at line 294 of file MuonDigitization/MM_Digitization/src/MM_DigitizationTool.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.
|
private |
Definition at line 166 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 160 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 118 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 144 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 121 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 157 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 158 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 190 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 138 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 147 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 156 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 196 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 163 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 133 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 120 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
protectedinherited |
Definition at line 60 of file PileUpToolBase.h.
|
protectedinherited |
Definition at line 54 of file PileUpToolBase.h.
|
private |
Definition at line 127 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 116 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 128 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
protectedinherited |
Definition at line 56 of file PileUpToolBase.h.
|
private |
Definition at line 140 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 173 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 193 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 189 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 143 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Define a map to cache the noise parameters individually Key: stationName * std::abs(stationEta)
Definition at line 201 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 125 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 168 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 170 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 155 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 114 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 113 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 117 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 165 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 195 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 179 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 194 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 134 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 136 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 175 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 177 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 145 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
protectedinherited |
Definition at line 58 of file PileUpToolBase.h.
|
private |
Definition at line 131 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 181 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 146 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 130 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 185 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.
|
private |
Definition at line 142 of file MuonDigitization/MM_Digitization/MM_Digitization/MM_DigitizationTool.h.