5#ifndef TRT_DIGITIZATION_TRTPROCESSINGOFSTRAW_H
6#define TRT_DIGITIZATION_TRTPROCESSINGOFSTRAW_H
28#include "CLHEP/Random/RandomEngine.h"
100 bool & m_alreadyPrintedPDGcodeWarning,
101 double m_cosmicEventPhase,
103 bool emulationArflag,
104 bool emulationKrflag,
105 CLHEP::HepRandomEngine* rndmEngine,
106 CLHEP::HepRandomEngine* elecProcRndmEngine,
107 CLHEP::HepRandomEngine* elecNoiseRndmEngine,
108 CLHEP::HepRandomEngine* paiRndmEngine );
188 double particleCharge,
196 std::vector<cluster>& clusterlist,
198 CLHEP::HepRandomEngine* rndmEngine,
199 CLHEP::HepRandomEngine* paiRndmEngine);
217 const std::vector<cluster>& clusters,
218 std::vector<TRTElectronicsProcessing::Deposit>& deposits,
220 double m_cosmicEventPhase,
222 CLHEP::HepRandomEngine* rndmEngine);
224 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.
GenData is a class for particle data access.
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
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
std::unique_ptr< CLHEP::RandBinomialFixedP > m_randBinomialAr
void ClustersToDeposits(MagField::AtlasFieldCache &fieldCache, int hitID, const std::vector< cluster > &clusters, std::vector< TRTElectronicsProcessing::Deposit > &deposits, const 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....
TRTElectronicsProcessing * m_pElectronicsProcessing
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
void addClustersFromStep(double scaledKineticEnergy, double particleCharge, double timeOfHit, double prex, double prey, double prez, double postx, double posty, 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.
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
std::unique_ptr< GenData > m_genData
TRTTimeCorrection * m_pTimeCorrection
const TRTDigSettings * m_settings
TRTProcessingOfStraw(const TRTDigSettings *, const InDetDD::TRT_DetectorManager *, ITRT_PAITool *, ITRT_SimDriftTimeTool *, TRTElectronicsProcessing *ep, TRTNoise *noise, TRTDigCondBase *digcond, const TRT_ID *, ITRT_PAITool *=nullptr, ITRT_PAITool *=nullptr, const ITRT_CalDbTool *=nullptr)
Constructor: Calls Initialize method.
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