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