5#ifndef TRT_DIGITIZATION_TRTPROCESSINGOFSTRAW_H
6#define TRT_DIGITIZATION_TRTPROCESSINGOFSTRAW_H
13#include "HepPDT/ParticleDataTable.hh"
30#include "CLHEP/Random/RandomEngine.h"
64 const HepPDT::ParticleDataTable*,
98 bool & m_alreadyPrintedPDGcodeWarning,
99 double m_cosmicEventPhase,
101 bool emulationArflag,
102 bool emulationKrflag,
103 CLHEP::HepRandomEngine* rndmEngine,
104 CLHEP::HepRandomEngine* elecProcRndmEngine,
105 CLHEP::HepRandomEngine* elecNoiseRndmEngine,
106 CLHEP::HepRandomEngine* paiRndmEngine );
186 const double& particleCharge,
187 const double& timeOfHit,
194 std::vector<cluster>& clusterlist,
196 CLHEP::HepRandomEngine* rndmEngine,
197 CLHEP::HepRandomEngine* paiRndmEngine);
215 const std::vector<cluster>& clusters,
216 std::vector<TRTElectronicsProcessing::Deposit>& deposits,
218 double m_cosmicEventPhase,
220 CLHEP::HepRandomEngine* rndmEngine);
222 double setClusterZ(
double cluster_z_in,
bool isLong,
bool isShort,
bool isEC)
const;
This is an Identifier helper class for the TRT subdetector.
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Communication with CondDB.
Class containing parameters and settings used by TRT digitization.
Simulation of noise hits in the TRT.
cluster(double e, double t, double x, double y, double z)
std::unique_ptr< CLHEP::RandBinomialFixedP > m_randBinomialXe
const HepPDT::ParticleDataTable * m_pParticleTable
TRTProcessingOfStraw(const TRTDigSettings *, const InDetDD::TRT_DetectorManager *, ITRT_PAITool *, ITRT_SimDriftTimeTool *, TRTElectronicsProcessing *ep, TRTNoise *noise, TRTDigCondBase *digcond, const HepPDT::ParticleDataTable *, const TRT_ID *, ITRT_PAITool *=nullptr, ITRT_PAITool *=nullptr, const ITRT_CalDbTool *=nullptr)
Constructor: Calls Initialize method.
TRTDigCondBase * m_pDigConditions
std::unique_ptr< CLHEP::RandBinomialFixedP > m_randBinomialKr
std::vector< cluster > m_clusterlist
TRTProcessingOfStraw(const TRTProcessingOfStraw &)
double m_innerRadiusOfStraw
unsigned int m_maxelectrons
void ClustersToDeposits(MagField::AtlasFieldCache &fieldCache, const int &hitID, const std::vector< cluster > &clusters, std::vector< TRTElectronicsProcessing::Deposit > &deposits, Amg::Vector3D TRThitGlobalPos, double m_cosmicEventPhase, int strawGasType, CLHEP::HepRandomEngine *rndmEngine)
Transform the ioniation clusters along the particle trajectory inside a straw to energy deposits (i....
std::unique_ptr< CLHEP::RandBinomialFixedP > m_randBinomialAr
TRTElectronicsProcessing * m_pElectronicsProcessing
void addClustersFromStep(const double &scaledKineticEnergy, const double &particleCharge, const double &timeOfHit, const double &prex, const double &prey, const double &prez, const double &postx, const double &posty, const double &postz, std::vector< cluster > &clusterlist, int strawGasType, CLHEP::HepRandomEngine *rndmEngine, CLHEP::HepRandomEngine *paiRndmEngine)
This is the main function for re-simulation of the ionisation in the active gas via the PAI model.
Amg::Vector3D getGlobalPosition(int hitID, const TimedHitPtr< TRTUncompressedHit > *theHit)
void Initialize(const ITRT_CalDbTool *)
Initialize.
std::vector< TRTElectronicsProcessing::Deposit > m_depositList
std::vector< double > m_expattenuation
bool m_timeCorrection
Time to be corrected for flight and wire propagation delays false when beamType='cosmics'.
double m_shiftOfZeroPoint
double m_signalPropagationSpeed
ITRT_PAITool * m_pPAItoolXe
ITRT_PAITool * m_pPAItoolKr
TimedHitCollection< TRTUncompressedHit >::const_iterator hitCollConstIter
bool m_useMagneticFieldMap
const TRT_ID * m_id_helper
bool m_alreadywarnedagainstpdg0
void ProcessStraw(MagField::AtlasFieldCache &fieldCache, hitCollConstIter i, hitCollConstIter e, TRTDigit &outdigit, bool &m_alreadyPrintedPDGcodeWarning, double m_cosmicEventPhase, int strawGasType, bool emulationArflag, bool emulationKrflag, CLHEP::HepRandomEngine *rndmEngine, CLHEP::HepRandomEngine *elecProcRndmEngine, CLHEP::HepRandomEngine *elecNoiseRndmEngine, CLHEP::HepRandomEngine *paiRndmEngine)
Process this straw all the way from Geant4 hit to output digit.
ITRT_PAITool * m_pPAItoolAr
double m_attenuationLength
double m_solenoidFieldStrength
~TRTProcessingOfStraw()
Destructor.
std::vector< double > m_drifttimes
double m_outerRadiusOfWire
TRTTimeCorrection * m_pTimeCorrection
const TRTDigSettings * m_settings
ITRT_SimDriftTimeTool * m_pSimDriftTimeTool
const InDetDD::TRT_DetectorManager * m_detmgr
double setClusterZ(double cluster_z_in, bool isLong, bool isShort, bool isEC) const
TRTProcessingOfStraw & operator=(const TRTProcessingOfStraw &)
This is an Identifier helper class for the TRT subdetector.
TimedVector::const_iterator const_iterator
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