![]() |
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) |
| StatusCode | processBunchXing (int bunchXing, SubEventIterator bSubEvents, SubEventIterator eSubEvents) |
| StatusCode | mergeEvent (const EventContext &ctx) |
| 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 |
| 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_digitizeMuonOnly {this, "ProcessTrueMuonsOnly", false} |
| 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 522 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 250 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
|
inlineoverridevirtualinherited |
|
private |
Definition at line 535 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 550 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 | ) |
Definition at line 222 of file MuonDigitization/sTGC_Digitization/src/sTgcDigitizationTool.cxx.
| StatusCode sTgcDigitizationTool::prepareEvent | ( | const EventContext & | ctx, |
| const unsigned int | nInputEvents ) |
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 |
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 617 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 560 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.
|
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 173 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 171 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 157 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 164 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 163 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 124 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 131 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 144 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 160 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 143 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 168 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 153 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 122 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 154 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
protectedinherited |
Definition at line 56 of file PileUpToolBase.h.
|
private |
Definition at line 169 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 120 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 138 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 150 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 121 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 148 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 133 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 132 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 176 of file MuonDigitization/sTGC_Digitization/sTGC_Digitization/sTgcDigitizationTool.h.
|
private |
Definition at line 175 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 58 of file PileUpToolBase.h.