13#ifndef sTGCDigitizationR4_STGCDIGITMAKER_H
14#define sTGCDigitizationR4_STGCDIGITMAKER_H
27 class HepRandomEngine;
49 bool doPadChargeSharing);
133 const DigiInput& digiInput)
const;
149 const double peak_position,
150 const int stripNumber)
const;
157 const int padPhi)
const;
191 const double stepLength)
const;
constexpr std::array< T, N > make_array(const T &def_val)
Helper function to initialize in-place arrays with non-zero values.
double charge(const T &p)
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
The StripLayer interfaces the 2D description of the strip plane layout with the 3D description of the...
std::vector< std::unique_ptr< sTgcDigit > > sTgcDigitVec
Digitize a given hit.
sTgcDigitVec processWireDigitization(const DigiInput &digiInput) const
Processes wire digitization for a given hit.
const Muon::IMuonIdHelperSvc * m_idHelperSvc
StatusCode readFileOfTimeOffsetStrip()
Reads strip time offset data file.
digitMode
Constructor initializing digitization parameters.
std::vector< GammaParameter > m_gammaParameter
std::array< double, 5 > m_mostProbableArrivalTime
static constexpr std::array< double, 2 > m_clusterParams
sTgcDigitVec processPadDigitization(const DigiInput &digiInput) const
Processes pad digitization for a given hit.
static double getPadChargeFraction(double distance)
Computes charge fraction shared among pads.
double getTimeOffsetStrip(size_t neighbor_index) const
Gets the time offset for a strip cluster.
sTgcIdHelper::sTgcChannelTypes ReadoutChannelType
bool getIonizationPoint(const TimedHit &hit, const DigiConditions &condContainers, Ionization &ionization) const
Computes the ionization point for a hit.
digitMode m_digitMode
define offsets and widths of time windows for signals from wiregroups and strips.
double chargeIntegral(double N, double M) const
GammaParameter getGammaParameter(double distance) const
Retrieves gamma distribution parameters based on distance.
static void addDigit(sTgcDigitVec &digits, const Identifier &id, double digittime, double charge)
Adds a digit to the appropriate cache.
sTgcDigitVec processStripChargeSharing(const DigiInput &digiInput, const double peak_position, const int stripNumber) const
Handles charge sharing for strip clusters.
StatusCode initialize()
Initialize digitization parameters, including reading necessary data files.
sTgcDigitMaker(const MuonGMR4::MuonDetectorManager *detMgr, digitMode mode, double meanGasGain, bool doPadChargeSharing)
sTgcDigitVec processStripDigitization(const DigiConditions &condContainers, const DigiInput &digiInput) const
Processes strip digitization for a given hit.
double getMostProbableArrivalTime(double distance) const
Computes the most probable arrival time based on the distance of closest approach.
const sTgcIdHelper & m_idHelper
double m_chargeAngularFactor
double calculateTotalCharge(double energyDeposit, CLHEP::HepRandomEngine *rndEngine) const
Calculates total charge from energy deposit, including gas gain.
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.
sTgcDigitVec processPadChargeSharing(const DigiInput &digiInput, const int padEta, const int padPhi) const
Handles charge sharing for pad clusters.
sTgcDigitVec executeDigi(const DigiConditions &condContainers, const TimedHit &hit) const
TimedHitPtr< xAOD::MuonSimHit > TimedHit
std::array< double, 6 > m_timeOffsetStrip
virtual ~sTgcDigitMaker()
Destructor.
StatusCode readFileOfTimeArrival()
Reads time arrival data file.
const MuonGMR4::MuonDetectorManager * m_detMgr
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
a smart pointer to a hit that also provides access to the extended timing info of the host event.
Eigen::Matrix< double, 3, 1 > Vector3D
This header ties the generic definitions in this package.
sTgcDigitMaker::sTgcDigitVec sTgcDigitVec
Holds necessary conditions and data for digitization.
const Muon::DigitEffiData * efficiencies
CLHEP::HepRandomEngine * rndEngine
const NswCalibDbThresholdData * thresholdData
Stores gamma distribution parameters for estimating digit time.
Holds information about ionization points in the gas volume.
Amg::Vector3D posOnSegment