![]() |
ATLAS Offline Software
|
#include <sTgcDigitMaker.h>
Classes | |
| struct | DigiConditions |
| Holds necessary conditions and data for digitization. More... | |
| struct | DigiInput |
| Helper struct to carry the digit information around. More... | |
| struct | GammaParameter |
| Stores gamma distribution parameters for estimating digit time. More... | |
| struct | Ionization |
| Holds information about ionization points in the gas volume. More... | |
Public Types | |
| enum class | digitMode : std::uint8_t { StripsOnly = 1 , StripsAndPads = 2 , AllChType = 3 } |
| Constructor initializing digitization parameters. More... | |
| using | TimedHit = TimedHitPtr<xAOD::MuonSimHit> |
| using | ReadoutChannelType = sTgcIdHelper::sTgcChannelTypes |
| using | sTgcDigitVec = std::vector<std::unique_ptr<sTgcDigit>> |
| Digitize a given hit. | |
Public Member Functions | |
| sTgcDigitMaker (const MuonGMR4::MuonDetectorManager *detMgr, digitMode mode, double meanGasGain, bool doPadChargeSharing) | |
| virtual | ~sTgcDigitMaker () |
| Destructor. | |
| StatusCode | initialize () |
| Initialize digitization parameters, including reading necessary data files. | |
| sTgcDigitVec | executeDigi (const DigiConditions &condContainers, const TimedHit &hit) const |
| bool | msgLvl (const MSG::Level lvl) const |
| Test the output level. | |
| MsgStream & | msg () const |
| The standard message stream. | |
| MsgStream & | msg (const MSG::Level lvl) const |
| The standard message stream. | |
| void | setLevel (MSG::Level lvl) |
| Change the current logging level. | |
Private Member Functions | |
| bool | getIonizationPoint (const TimedHit &hit, const DigiConditions &condContainers, Ionization &ionization) const |
| Computes the ionization point for a hit. | |
| double | calculateTotalCharge (double energyDeposit, CLHEP::HepRandomEngine *rndEngine) const |
| Calculates total charge from energy deposit, including gas gain. | |
| sTgcDigitVec | processStripDigitization (const DigiConditions &condContainers, const DigiInput &digiInput) const |
| Processes strip digitization for a given hit. | |
| sTgcDigitVec | processPadDigitization (const DigiInput &digiInput) const |
| Processes pad digitization for a given hit. | |
| sTgcDigitVec | processWireDigitization (const DigiInput &digiInput) const |
| Processes wire digitization for a given hit. | |
| sTgcDigitVec | processStripChargeSharing (const DigiInput &digiInput, const double peak_position, const int stripNumber) const |
| Handles charge sharing for strip clusters. | |
| sTgcDigitVec | processPadChargeSharing (const DigiInput &digiInput, const int padEta, const int padPhi) const |
| Handles charge sharing for pad clusters. | |
| StatusCode | readFileOfTimeArrival () |
| Reads time arrival data file. | |
| StatusCode | readFileOfTimeOffsetStrip () |
| Reads strip time offset data file. | |
| Ionization | pointClosestApproach (const MuonGMR4::StripLayer &stripLayer, int wireNumber, const Amg::Vector3D &locHitPos, const Amg::Vector3D &locHitDir, const double stepLength) const |
| Computes the closest approach between a trajectory and a wire segment. | |
| double | getTimeOffsetStrip (size_t neighbor_index) const |
| Gets the time offset for a strip cluster. | |
| GammaParameter | getGammaParameter (double distance) const |
| Retrieves gamma distribution parameters based on distance. | |
| double | getMostProbableArrivalTime (double distance) const |
| Computes the most probable arrival time based on the distance of closest approach. | |
| double | chargeIntegral (double N, double M) const |
| void | initMessaging () const |
| Initialize our message level and MessageSvc. | |
Static Private Member Functions | |
| static void | addDigit (sTgcDigitVec &digits, const Identifier &id, double digittime, double charge) |
| Adds a digit to the appropriate cache. | |
| static double | getPadChargeFraction (double distance) |
| Computes charge fraction shared among pads. | |
Private Attributes | |
| std::vector< GammaParameter > | m_gammaParameter |
| std::array< double, 5 > | m_mostProbableArrivalTime {make_array<double, 5>(0.)} |
| std::array< double, 6 > | m_timeOffsetStrip {make_array<double, 6>(0.)} |
| const MuonGMR4::MuonDetectorManager * | m_detMgr {nullptr} |
| const Muon::IMuonIdHelperSvc * | m_idHelperSvc {m_detMgr->idHelperSvc()} |
| const sTgcIdHelper & | m_idHelper {m_idHelperSvc->stgcIdHelper()} |
| digitMode | m_digitMode {digitMode::AllChType} |
| define offsets and widths of time windows for signals from wiregroups and strips. | |
| double | m_theta {10} |
| double | m_meanGasGain {5.e4} |
| bool | m_doPadSharing {false} |
| bool | m_doTimeOffsetStrip {false} |
| double | m_StripResolution {0.0949} |
| double | m_posResIncident {1.} |
| double | m_posResAngular {0.305/m_StripResolution} |
| double | m_chargeAngularFactor {4.0} |
| std::string | m_nm |
| Message source name. | |
| boost::thread_specific_ptr< MsgStream > | m_msg_tls |
| MsgStream instance (a std::cout like with print-out levels) | |
| std::atomic< IMessageSvc * > | m_imsg { nullptr } |
| MessageSvc pointer. | |
| std::atomic< MSG::Level > | m_lvl { MSG::NIL } |
| Current logging level. | |
| std::atomic_flag m_initialized | ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
| Messaging initialized (initMessaging) | |
Static Private Attributes | |
| static constexpr std::array< double, 2 > | m_clusterParams {0.573, 1.092} |
Definition at line 36 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
Definition at line 72 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
| using MuonR4::sTgcDigitMaker::sTgcDigitVec = std::vector<std::unique_ptr<sTgcDigit>> |
Digitize a given hit.
| condContainers | Conditions required for digitization. |
| hit | The simulated hit to be digitized. |
Definition at line 79 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
Definition at line 71 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
strong |
Constructor initializing digitization parameters.
| Enumerator | |
|---|---|
| StripsOnly | |
| StripsAndPads | |
| AllChType | |
Definition at line 41 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
| sTgcDigitMaker::sTgcDigitMaker | ( | const MuonGMR4::MuonDetectorManager * | detMgr, |
| digitMode | mode, | ||
| double | meanGasGain, | ||
| bool | doPadChargeSharing ) |
Definition at line 27 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
virtualdefault |
Destructor.
|
staticprivate |
Adds a digit to the appropriate cache.
Definition at line 576 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
private |
Calculates total charge from energy deposit, including gas gain.
Definition at line 146 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
private |
Definition at line 655 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
| sTgcDigitVec sTgcDigitMaker::executeDigi | ( | const DigiConditions & | condContainers, |
| const TimedHit & | hit ) const |
Definition at line 159 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
private |
Retrieves gamma distribution parameters based on distance.
Definition at line 629 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
private |
Computes the ionization point for a hit.
Definition at line 57 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
private |
Computes the most probable arrival time based on the distance of closest approach.
Definition at line 648 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
staticprivate |
Computes charge fraction shared among pads.
Definition at line 712 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
private |
Gets the time offset for a strip cluster.
Get digit time offset of a strip depending on its relative position to the strip at the centre of the cluster. It returns 0 ns by default, as well as when it fails or container is empty.
Definition at line 705 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
| StatusCode sTgcDigitMaker::initialize | ( | ) |
Initialize digitization parameters, including reading necessary data files.
Definition at line 42 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 163 of file AthMessaging.h.
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 178 of file AthMessaging.h.
|
inlineinherited |
Test the output level.
| lvl | The message level to test against |
| true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
|
private |
Computes the closest approach between a trajectory and a wire segment.
Given two segments, e.g. a particle trajectory and a sTGC wire, solve for the two points, the point on the trajectory and the point on the wire, where the distance between the two segments is the smallest.
Positions returned are in the local coordinate frame of the wire plane. Returns an object with distance of -9.99 in case of error.
Definition at line 511 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
private |
Handles charge sharing for pad clusters.
Definition at line 384 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
private |
Processes pad digitization for a given hit.
Definition at line 348 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
private |
Handles charge sharing for strip clusters.
Definition at line 286 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
private |
Processes strip digitization for a given hit.
Definition at line 241 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
private |
Processes wire digitization for a given hit.
Definition at line 469 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
private |
Reads time arrival data file.
Definition at line 592 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
private |
Reads strip time offset data file.
Definition at line 667 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/src/sTgcDigitMaker.cxx.
|
inherited |
Change the current logging level.
Use this rather than msg().setLevel() for proper operation with MT.
Definition at line 28 of file AthMessaging.cxx.
|
mutableprivateinherited |
Messaging initialized (initMessaging)
Definition at line 141 of file AthMessaging.h.
|
private |
Definition at line 254 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
staticconstexprprivate |
Definition at line 231 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
private |
Definition at line 222 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
private |
define offsets and widths of time windows for signals from wiregroups and strips.
The offsets are defined as relative time diffference with respect to the time after TOF and cable length corrections. Bunch crossing time is specified.
Definition at line 241 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
private |
Definition at line 244 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
private |
Definition at line 247 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
private |
Definition at line 218 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
private |
Definition at line 224 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
private |
Definition at line 223 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
mutableprivateinherited |
|
mutableprivateinherited |
|
private |
Definition at line 243 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
private |
Definition at line 219 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
|
privateinherited |
Message source name.
Definition at line 129 of file AthMessaging.h.
|
private |
Definition at line 251 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
private |
Definition at line 250 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
private |
Definition at line 249 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
private |
Definition at line 242 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.
|
private |
Definition at line 220 of file MuonPhaseII/MuonDigitization/sTgcDigitizationR4/sTgcDigitizationR4/sTgcDigitMaker.h.