![]() |
ATLAS Offline Software
|
#include <sTgcDigitizationTool.h>
Classes | |
| class | sTgcSimDigitData |
Public Types | |
| using | sTgcSimDigitVec = std::vector<sTgcSimDigitData> |
| using | sTgcSimDigitCont = std::vector<sTgcSimDigitVec> |
| using | DigiConditions = sTgcDigitMaker::DigiConditions |
| using | sTgcDigitVec = sTgcDigitMaker::sTgcDigitVec |
| using | sTgcDigtCont = std::vector<sTgcDigitVec> |
Public Member Functions | |
| sTgcDigitizationTool (const std::string &type, const std::string &name, const IInterface *parent) | |
| virtual StatusCode | initialize () |
| Initialize. | |
| StatusCode | prepareEvent (const EventContext &ctx, const unsigned int) |
| When being run from PileUpToolsAlgs, this method is called at the start of the subevts loop. | |
| StatusCode | processBunchXing (int bunchXing, SubEventIterator bSubEvents, SubEventIterator eSubEvents) |
| When being run from PileUpToolsAlgs, this method is called for each active bunch-crossing to process current SubEvents bunchXing is in ns. | |
| StatusCode | mergeEvent (const EventContext &ctx) |
| When being run from PileUpToolsAlgs, this method is called at the end of the subevts loop. | |
| virtual StatusCode | processAllSubEvents (const EventContext &ctx) |
| alternative interface which uses the PileUpMergeSvc to obtain all the required SubEvents. | |
| StatusCode | digitize (const EventContext &ctx) |
| Just calls processAllSubEvents - leaving for back-compatibility (IMuonDigitizationTool) | |
Private Member Functions | |
| CLHEP::HepRandomEngine * | getRandomEngine (const std::string &streamName, const EventContext &ctx) const |
| template<class CondType> | |
| StatusCode | retrieveCondData (const EventContext &ctx, SG::ReadCondHandleKey< CondType > &key, const CondType *&condPtr) const |
| StatusCode | getNextEvent (const EventContext &ctx) |
| Get next event and extract collection of hit collections. | |
| StatusCode | doDigitization (const EventContext &ctx) |
| Core part of digitization use by mergeEvent (IPileUpTool) and digitize (IMuonDigitizationTool) | |
| double | getChannelThreshold (const EventContext &ctx, const Identifier &channelID, const NswCalibDbThresholdData &thresholdData) const |
| StatusCode | processDigitsWithVMM (const EventContext &ctx, const DigiConditions &digiCond, sTgcSimDigitCont &unmergedContainer, const double vmmDeadTime, const bool isNeighbourOn, sTgcDigtCont &outDigitContainer, MuonSimDataCollection &outSdoContainer) const |
| sTgcSimDigitVec | processDigitsWithVMM (const EventContext &ctx, const DigiConditions &digiCond, const double vmmDeadTime, sTgcSimDigitVec &unmergedDigits, const bool isNeighborOn) const |
Static Private Member Functions | |
| static uint16_t | bcTagging (const double digittime) |
Private Attributes | |
| ServiceHandle< PileUpMergeSvc > | m_mergeSvc {this, "PileUpMergeSvc", "PileUpMergeSvc", "Merge service used in digitization"} |
| ServiceHandle< IAthRNGSvc > | m_rndmSvc {this, "RndmSvc", "AthRNGSvc", "Random Number Service used in Muon digitization"} |
| ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
| SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > | m_detMgrKey |
| SG::ReadCondHandleKey< Muon::DigitEffiData > | m_effiKey |
| std::unique_ptr< sTgcDigitMaker > | m_digitizer {} |
| std::unique_ptr< TimedHitCollection< sTGCSimHit > > | m_thpcsTGC {} |
| std::vector< std::unique_ptr< sTGCSimHitCollection > > | m_STGCHitCollList {} |
| ToolHandle< Muon::INSWCalibSmearingTool > | m_smearingTool {this,"SmearingTool","Muon::NSWCalibSmearingTool/STgcCalibSmearingTool"} |
| ToolHandle< Muon::INSWCalibTool > | m_calibTool {this,"CalibrationTool","Muon::NSWCalibTool/NSWCalibTool"} |
| SG::WriteHandleKey< sTgcDigitContainer > | m_outputDigitCollectionKey {this,"OutputObjectName","sTGC_DIGITS","WriteHandleKey for Output sTgcDigitContainer"} |
| SG::WriteHandleKey< MuonSimDataCollection > | m_outputSDO_CollectionKey {this,"OutputSDOName","sTGC_SDO","WriteHandleKey for Output MuonSimDataCollection"} |
| Gaudi::Property< bool > | m_doSmearing {this,"doSmearing",false} |
| Gaudi::Property< bool > | m_doToFCorrection {this,"doToFCorrection",false} |
| Gaudi::Property< bool > | m_doEfficiencyCorrection {this,"doEfficiencyCorrection",false} |
| Gaudi::Property< double > | m_runVoltage {this,"operatingHVinkV",2.8} |
| Gaudi::Property< std::string > | m_rndmEngineName {this,"RndmEngine","MuonDigitization","Random engine name"} |
| Gaudi::Property< bool > | m_onlyUseContainerName {this, "OnlyUseContainerName", true, "Don't use the ReadHandleKey directly. Just extract the container name from it."} |
| SG::ReadHandleKey< sTGCSimHitCollection > | m_hitsContainerKey {this, "InputObjectName", "sTGC_Hits", "name of the input object"} |
| std::string | m_inputObjectName {""} |
| Gaudi::Property< bool > | m_useCondThresholds {this, "useCondThresholds", false, "Use conditions data to get VMM charge threshold values"} |
| SG::ReadCondHandleKey< NswCalibDbThresholdData > | m_condThrshldsKey {this, "CondThrshldsKey", "NswCalibDbThresholdData", "Key of NswCalibDbThresholdData object containing calibration data (VMM thresholds)"} |
| Gaudi::Property< int > | m_doChannelTypes {this,"doChannelTypes",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_energyDepositThreshold {this,"energyDepositThreshold",300.0*CLHEP::eV,"Minimum energy deposit for hit to be digitized"} |
| Gaudi::Property< double > | m_limitElectronKineticEnergy {this,"limitElectronKineticEnergy",5.0*CLHEP::MeV,"Minimum kinetic energy for electron hit to be digitized"} |
| Gaudi::Property< double > | m_chargeThreshold {this,"chargeThreshold", 0.030, "vmm charge threshold in pC, need to set useCondThresholds to false if one wants to use this threshold value otherwise the one from the conditions database is used"} |
| Gaudi::Property< bool > | m_applyAsBuiltBLines {this, "applyAsBuiltBLines",false, "correct the hit position by the as built and B-lines parameters"} |
| const double | m_timeJitterElectronicsStrip {2.f} |
| const double | m_timeJitterElectronicsPad {2.f} |
| const 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} |
In the initialize() method... In the execute() method...
Definition at line 45 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
Definition at line 108 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
Definition at line 109 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
| using sTgcDigitizationTool::sTgcDigtCont = std::vector<sTgcDigitVec> |
Definition at line 110 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
| using sTgcDigitizationTool::sTgcSimDigitCont = std::vector<sTgcSimDigitVec> |
Definition at line 106 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
| using sTgcDigitizationTool::sTgcSimDigitVec = std::vector<sTgcSimDigitData> |
Definition at line 105 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
| sTgcDigitizationTool::sTgcDigitizationTool | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Definition at line 42 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
|
staticprivate |
Definition at line 535 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
| StatusCode sTgcDigitizationTool::digitize | ( | const EventContext & | ctx | ) |
Just calls processAllSubEvents - leaving for back-compatibility (IMuonDigitizationTool)
reads GEANT4 hits from StoreGate in each of detector components corresponding to sTGC modules which are triplets or doublets. A triplet has tree sensitive volumes and a double has two. This method calls sTgcDigitMaker::executeDigi, which digitizes every hit, for every readout element, i.e., a sensitive volume of a chamber. (IMuonDigitizationTool)
Definition at line 232 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
|
private |
Core part of digitization use by mergeEvent (IPileUpTool) and digitize (IMuonDigitizationTool)
apply the smearing tool to decide if the hit has to be digitized or not based on layer efficiency
Resize the container accordingly
Definition at line 267 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
|
inlineoverridevirtualinherited |
|
private |
Definition at line 548 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
|
private |
Get next event and extract collection of hit collections.
Definition at line 163 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
|
private |
Definition at line 563 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
|
virtual |
Initialize.
Reimplemented from PileUpToolBase.
Definition at line 48 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
| StatusCode sTgcDigitizationTool::mergeEvent | ( | const EventContext & | ctx | ) |
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 222 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
| StatusCode sTgcDigitizationTool::prepareEvent | ( | const EventContext & | ctx, |
| const unsigned int | nInputEvents ) |
When being run from PileUpToolsAlgs, this method is called at the start of the subevts loop.
Not able to access SubEvents
Definition at line 114 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
|
virtual |
alternative interface which uses the PileUpMergeSvc to obtain all the required SubEvents.
Reimplemented from PileUpToolBase.
Definition at line 236 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
|
virtual |
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 123 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
|
private |
Sort the unmerged digit vector per layer Id -> by channel -> time from early to late arrival
Catch the cases where the channel is 1 or maxChannel
merge digits in time. Do weighed 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 630 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
|
private |
Start the merging by looping over the digit container and grouping the hits from the same layer together.
Merge all digits
Update the container iterator to go to the next layer
Assign enough space in the container vector
Push back the SDO
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]
Definition at line 573 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
|
inlineoverridevirtualinherited |
dummy implementation of filter reset
Reimplemented in MergeTruthJetsTool.
Definition at line 51 of file PileUpToolBase.h.
|
private |
Definition at line 249 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
|
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 175 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 139 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 173 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 159 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 166 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 165 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 167 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 127 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 134 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 161 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 146 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 168 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 162 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 144 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 145 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 130 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 170 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
protectedinherited |
Definition at line 60 of file PileUpToolBase.h.
|
protectedinherited |
Definition at line 54 of file PileUpToolBase.h.
|
private |
Definition at line 155 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 179 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 125 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 156 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
protectedinherited |
Definition at line 56 of file PileUpToolBase.h.
|
private |
Definition at line 171 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 123 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 154 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 141 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 142 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 152 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 124 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 150 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 138 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 136 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 135 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 178 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 177 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 158 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
protectedinherited |
Definition at line 58 of file PileUpToolBase.h.