5#ifndef TRT_DIGITIZATION_TRTPROCESSINGOFSTRAW_H
6#define TRT_DIGITIZATION_TRTPROCESSINGOFSTRAW_H
13#include "HepPDT/ParticleDataTable.hh"
30#include "CLHEP/Random/RandomEngine.h"
67 const HepPDT::ParticleDataTable*,
102 bool & m_alreadyPrintedPDGcodeWarning,
103 double m_cosmicEventPhase,
105 bool emulationArflag,
106 bool emulationKrflag,
107 CLHEP::HepRandomEngine* rndmEngine,
108 CLHEP::HepRandomEngine* elecProcRndmEngine,
109 CLHEP::HepRandomEngine* elecNoiseRndmEngine,
110 CLHEP::HepRandomEngine* paiRndmEngine );
190 const double& particleCharge,
191 const double& timeOfHit,
198 std::vector<cluster>& clusterlist,
200 CLHEP::HepRandomEngine* rndmEngine,
201 CLHEP::HepRandomEngine* paiRndmEngine);
219 const std::vector<cluster>& clusters,
220 std::vector<TRTElectronicsProcessing::Deposit>& deposits,
222 double m_cosmicEventPhase,
224 CLHEP::HepRandomEngine* rndmEngine);
226 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.
Class to hold different TRT detector elements structures.
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)
Amg::Vector3D getGlobalPosition(int hitID, const TimedHitPtr< TRTUncompressedHit > *theHit, const InDetDD::TRT_DetElementContainer *detElements)
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.
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
ITRT_PAITool * m_pPAItoolAr
double m_attenuationLength
double m_solenoidFieldStrength
void ProcessStraw(MagField::AtlasFieldCache &fieldCache, const InDetDD::TRT_DetElementContainer *detElements, 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.
~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