|
|
Go to the documentation of this file.
44 cout <<
"[DTLinearDriftFromDBAlgo] setES called" << endl;
84 return compute(layer, wireId, digi.
time(), globWirePos, leftPoint, rightPoint,
error, 1);
105 return compute(layer, wireId, recHit1D.
digiTime(), globWirePos, newHit1D, 2);
120 const float digiTime,
127 float driftTime = digiTime -
theSync->offset(layer, wireId, globPos);
130 if (driftTime < minTime || driftTime >
maxTime) {
132 cout <<
"[DTLinearDriftFromDBAlgo]*** Drift time out of window for in-time hits " << driftTime << endl;
156 double args[1] = {double(
step - 1)};
166 const float k_param = 1.2e-04;
168 vDrift = vDrift * (1. - k_param * local_pos.
y());
173 float drift = driftTime * vDrift;
185 cout <<
"[DTLinearDriftFromDBAlgo] Compute drift distance, for digi at wire: " << wireId << endl
186 <<
" Step: " <<
step << endl
187 <<
" Digi time: " << digiTime << endl
188 <<
" Drift time: " << driftTime << endl
189 <<
" Drift distance: " <<
drift << endl
191 <<
" Left point: " << leftPoint << endl
192 <<
" Right point: " << rightPoint << endl
193 <<
" Error: " <<
error << endl;
202 const float digiTime,
210 if (
compute(layer, wireId, digiTime, globPos, leftPoint, rightPoint,
error,
step)) {
212 switch (newHit1D.
lrSide()) {
229 throw cms::Exception(
"InvalidDTCellSide") <<
"[DTLinearDriftFromDBAlgo] Compute at Step " <<
step
230 <<
", Hit side " << newHit1D.
lrSide() <<
" is invalid!" << endl;
int wire() const
Return the wire number.
bool isWireValid(const int wireNumber) const
DTEnums::DTCellSide lrSide() const
The side of the cell.
int superLayer() const
Return the superlayer number.
Point3DBase< Scalar, LocalTag > LocalPoint
LocalError localPositionError() const override
Return the 3-dimensional error on the local position.
double time() const
Get time in ns.
float get(const DTWireId &wireid, double *x=nullptr) const
Get the value correspoding to the given WireId, / using x[] as parameters of the parametrization when...
void setPositionAndError(LocalPoint pos, LocalError err)
Set the local position and its error.
float wirePosition(int wireNumber) const
Returns the x position in the layer of a given wire number.
DTWireId wireId() const
Return the wireId.
LocalVector drift(const StripGeomDetUnit *, const MagneticField &, const SiStripLorentzAngle &)
int wire() const
Return wire number.
int version() const
Version numer specifying the structure of the payload. See .cc file for details.
std::unique_ptr< DTTTrigBaseSync > theSync
int nominalValue() const
The nominal field value for this map in kGauss.
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
LocalPoint localPosition() const override
Return the 3-dimensional local position.
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
const DTRecoConditions * uncertMap
DTLayerId id() const
Return the DetId of this SL.
void setES(const edm::EventSetup &setup) override
Pass the Event Setup to the algo at each event.
const std::string & version() const
access version
DTLinearDriftFromDBAlgo(const edm::ParameterSet &config)
Constructor.
~DTLinearDriftFromDBAlgo() override
Destructor.
float digiTime() const
Return the time (ns) of the digi used to build the rechit.
const MagneticField * field
const bool stepTwoFromDigi
bool compute(const DTLayer *layer, const DTDigi &digi, LocalPoint &leftPoint, LocalPoint &rightPoint, LocalError &error) const override
DTSuperLayerId superlayerId() const
Return the corresponding SuperLayerId.
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
const DTTopology & specificTopology() const
Abs< T >::type abs(const T &t)
int get(int wheelId, int stationId, int sectorId, int slId, float &mTime, float &mTrms, DTTimeUnits::type unit) const
int wheel() const
Return the wheel number.
int station() const
Return the station number.