24ElectronTransport::ElectronTransport() : mRandomGaus(), mRandomFlat(
RandomRing<>::RandomType::Flat)
33 mVDrift = vdrift > 0 ? vdrift : mGasParam->
DriftV;
39 float driftl = mDetParam->
TPClength - std::abs(posEle.Z());
43 driftl = std::sqrt(driftl);
44 const float sigT = driftl * mGasParam->
DiffT;
45 const float sigL = driftl * mGasParam->
DiffL;
57 if (posEle.Z() / posEleDiffusion.Z() < 0.f) {
59 posEleDiffusion.SetZ(posEle.Z());
65 return posEleDiffusion;
71 float driftl = mDetParam->
TPClength - std::abs(posEle.Z());
75 driftl = std::sqrt(driftl);
78 const float threeSigmaT = 3.f * driftl * mGasParam->
DiffT;
81 return mapper.isOutOfSector(posEle, sector, threeSigmaT);
Simple interface to the CDB manager.
Definition of the electron transport.
static const ParameterGas & Instance()
void updateParameters(float vdrift=0)
Update the OCDB parameters cached in the class. To be called once per event.
bool isCompletelyOutOfSectorCoarseElectronDrift(GlobalPosition3D posEle, const Sector §or) const
float getDriftTime(float zPos, float signChange=1.f) const
GlobalPosition3D getElectronDrift(GlobalPosition3D posEle, float &driftTime)
static Mapper & instance(const std::string mappingDir="")
Global TPC definitions and constants.
float TPClength
Length of the TPC [cm].
float DiffL
Longitudinal diffusion [sqrt(cm)].
float DiffT
Transverse diffusion [sqrt(cm)].
float DriftV
Drift velocity [cm/us].