22 vDrift(
config.getParameter<double>(
"driftVelocity")),
42 if (!
layer->specificTopology().isWireValid(digi.
wire()))
78 float driftTime = digiTime -
theSync->offset(
layer, wireId, globPos);
81 if (driftTime < minTime || driftTime >
maxTime) {
83 cout <<
"[DTLinearDriftAlgo]*** Drift time out of window for in-time hits " << driftTime << endl;
107 if (!
layer->specificTopology().isWireValid(wireId.
wire()))
116 cout <<
"[DTLinearDriftAlgo] Compute drift distance, for digi at wire: " << wireId << endl
117 <<
" Step: " <<
step << endl
118 <<
" Digi time: " << digiTime << endl
119 <<
" Drift time: " << driftTime << endl
120 <<
" Drift distance: " <<
drift << endl
122 <<
" Left point: " << leftPoint << endl
123 <<
" Right point: " << rightPoint << endl
124 <<
" Error: " <<
error << endl;
133 const float digiTime,
143 switch (newHit1D.
lrSide()) {
160 throw cms::Exception(
"InvalidDTCellSide") <<
"[DTLinearDriftAlgo] Compute at Step " <<
step <<
", Hit side " 161 << newHit1D.
lrSide() <<
" is invalid!" << endl;
Point3DBase< Scalar, LocalTag > LocalPoint
void setES(const edm::EventSetup &setup) override
Pass the Event Setup to the algo at each event.
int wire() const
Return the wire number.
LocalVector drift(const StripGeomDetUnit *, const MagneticField &, const SiStripLorentzAngle &)
int wire() const
Return wire number.
float digiTime() const
Return the time (ns) of the digi used to build the rechit.
constexpr std::array< uint8_t, layerIndexSize > layer
double time() const
Get time in ns.
~DTLinearDriftAlgo() override
Destructor.
DTEnums::DTCellSide lrSide() const
The side of the cell.
std::vector< DeviationSensor2D * > vd
const float hitResolution
std::unique_ptr< DTTTrigBaseSync > theSync
DTLinearDriftAlgo(const edm::ParameterSet &config, edm::ConsumesCollector)
Constructor.
LocalError localPositionError() const override
Return the 3-dimensional error on the local position.
DTWireId wireId() const
Return the wireId.
bool compute(const DTLayer *layer, const DTDigi &digi, LocalPoint &leftPoint, LocalPoint &rightPoint, LocalError &error) const override
void setPositionAndError(LocalPoint pos, LocalError err)
Set the local position and its error.
LocalPoint localPosition() const override
Return the 3-dimensional local position.
T angle(T x1, T y1, T z1, T x2, T y2, T z2)