31 minTime(config.getParameter<double>(
"minTime")),
32 maxTime(config.getParameter<double>(
"maxTime")),
38 debug(config.getUntrackedParameter<
bool>(
"debug")) {}
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;
182 error =
LocalError(hitResolution * hitResolution, 0., 0.);
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
190 <<
" Hit Resolution: " << hitResolution << 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;
LocalPoint localPosition() const override
Return the 3-dimensional local position.
float wirePosition(int wireNumber) const
Returns the x position in the layer of a given wire number.
Point3DBase< Scalar, LocalTag > LocalPoint
int version() const
Version numer specifying the structure of the payload. See .cc file for details.
int nominalValue() const
The nominal field value for this map in kGauss.
LocalError localPositionError() const override
Return the 3-dimensional error on the local position.
DTLayerId id() const
Return the DetId of this SL.
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
LocalVector drift(const StripGeomDetUnit *, const MagneticField &, const SiStripLorentzAngle &)
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
int wire() const
Return wire number.
DTSuperLayerId superlayerId() const
Return the corresponding SuperLayerId.
const DTTopology & specificTopology() const
double time() const
Get time in ns.
int superLayer() const
Return the superlayer number.
Abs< T >::type abs(const T &t)
float digiTime() const
Return the time (ns) of the digi used to build the rechit.
const DTRecoConditions * uncertMap
const MagneticField * field
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...
int wire() const
Return the wire number.
std::unique_ptr< DTTTrigBaseSync > theSync
DTLinearDriftFromDBAlgo(const edm::ParameterSet &config)
Constructor.
~DTLinearDriftFromDBAlgo() override
Destructor.
const bool stepTwoFromDigi
const std::string & version() const
access version
void setES(const edm::EventSetup &setup) override
Pass the Event Setup to the algo at each event.
int get(int wheelId, int stationId, int sectorId, int slId, float &mTime, float &mTrms, DTTimeUnits::type unit) const
bool isWireValid(const int wireNumber) const
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.
int station() const
Return the station number.
int wheel() const
Return the wheel number.
DTEnums::DTCellSide lrSide() const
The side of the cell.
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
DTWireId wireId() const
Return the wireId.