#include <DTParametrizedDriftAlgo.h>
Public Member Functions | |
virtual bool | compute (const DTLayer *layer, const DTDigi &digi, LocalPoint &leftPoint, LocalPoint &rightPoint, LocalError &error) const |
virtual bool | compute (const DTLayer *layer, const DTRecHit1D &recHit1D, const float &angle, DTRecHit1D &newHit1D) const |
virtual bool | compute (const DTLayer *layer, const DTRecHit1D &recHit1D, const float &angle, const GlobalPoint &globPos, DTRecHit1D &newHit1D) const |
DTParametrizedDriftAlgo (const edm::ParameterSet &config) | |
Constructor. | |
virtual void | setES (const edm::EventSetup &setup) |
Pass the Event Setup to the algo at each event. | |
virtual | ~DTParametrizedDriftAlgo () |
Destructor. | |
Private Member Functions | |
virtual bool | compute (const DTLayer *layer, const DTWireId &wireId, const float digiTime, const float &angle, const GlobalPoint &globPos, LocalPoint &leftPoint, LocalPoint &rightPoint, LocalError &error, int step) const |
virtual bool | compute (const DTLayer *layer, const DTWireId &wireId, const float digiTime, const float &angle, const GlobalPoint &globPos, DTRecHit1D &newHit1D, int step) const |
Private Attributes | |
const MagneticField * | magField |
Static Private Attributes | |
static bool | debug |
static bool | interpolate |
static float | maxTime |
static float | minTime |
Concrete implementation of DTRecHitBaseAlgo. Compute drift distance using the CIEMAT (by P.Garcia Abia and J. Puerta) parametrization of the cell behavior obtained with GARFIELD
Definition at line 18 of file DTParametrizedDriftAlgo.h.
DTParametrizedDriftAlgo::DTParametrizedDriftAlgo | ( | const edm::ParameterSet & | config | ) |
Constructor.
Definition at line 30 of file DTParametrizedDriftAlgo.cc.
References debug, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), interpolate, maxTime, and minTime.
: DTRecHitBaseAlgo(config) { interpolate = config.getParameter<bool>("interpolate"); minTime = config.getParameter<double>("minTime"); // FIXME: Default was -3 ns maxTime = config.getParameter<double>("maxTime"); // FIXME: Default was 415 ns // Set verbose output debug = config.getUntrackedParameter<bool>("debug","false"); }
DTParametrizedDriftAlgo::~DTParametrizedDriftAlgo | ( | ) | [virtual] |
virtual bool DTParametrizedDriftAlgo::compute | ( | const DTLayer * | layer, |
const DTDigi & | digi, | ||
LocalPoint & | leftPoint, | ||
LocalPoint & | rightPoint, | ||
LocalError & | error | ||
) | const [virtual] |
First step in computation of Left/Right hits from a Digi. The results are the local position (in DTLayer frame) of the Left and Right hit, and the error (which is common). The center of the wire is assumed as hit coordinate along y. Returns false on failure.
Implements DTRecHitBaseAlgo.
virtual bool DTParametrizedDriftAlgo::compute | ( | const DTLayer * | layer, |
const DTWireId & | wireId, | ||
const float | digiTime, | ||
const float & | angle, | ||
const GlobalPoint & | globPos, | ||
DTRecHit1D & | newHit1D, | ||
int | step | ||
) | const [private, virtual] |
virtual bool DTParametrizedDriftAlgo::compute | ( | const DTLayer * | layer, |
const DTWireId & | wireId, | ||
const float | digiTime, | ||
const float & | angle, | ||
const GlobalPoint & | globPos, | ||
LocalPoint & | leftPoint, | ||
LocalPoint & | rightPoint, | ||
LocalError & | error, | ||
int | step | ||
) | const [private, virtual] |
virtual bool DTParametrizedDriftAlgo::compute | ( | const DTLayer * | layer, |
const DTRecHit1D & | recHit1D, | ||
const float & | angle, | ||
const GlobalPoint & | globPos, | ||
DTRecHit1D & | newHit1D | ||
) | const [virtual] |
Third (and final) step in hits position computation. In addition the the angle, also the global position of the hit is given as input. This allows to get the magnetic field at the hit position (and not only that at the center of the wire). Also the position along the wire is available and can be used to correct the drift time for particle TOF and propagation of signal along the wire. NOTE: Only position and error of the new hit are modified
Implements DTRecHitBaseAlgo.
virtual bool DTParametrizedDriftAlgo::compute | ( | const DTLayer * | layer, |
const DTRecHit1D & | recHit1D, | ||
const float & | angle, | ||
DTRecHit1D & | newHit1D | ||
) | const [virtual] |
Second step. The impact angle is given as input, and it's used to improve the hit position (and relative error). The angle is defined in radians, with respect to the perpendicular to the layer plane. Given the local direction, angle=atan(dir.x()/-dir.z()) . This can be used when a SL segment is built, so the impact angle is known but the position along wire is not. NOTE: Only position and error of the new hit are modified
Implements DTRecHitBaseAlgo.
virtual void DTParametrizedDriftAlgo::setES | ( | const edm::EventSetup & | setup | ) | [virtual] |
Pass the Event Setup to the algo at each event.
Implements DTRecHitBaseAlgo.
bool DTParametrizedDriftAlgo::debug [static, private] |
Definition at line 102 of file DTParametrizedDriftAlgo.h.
Referenced by DTParametrizedDriftAlgo().
bool DTParametrizedDriftAlgo::interpolate [static, private] |
Definition at line 73 of file DTParametrizedDriftAlgo.h.
Referenced by DTParametrizedDriftAlgo().
const MagneticField* DTParametrizedDriftAlgo::magField [private] |
Definition at line 106 of file DTParametrizedDriftAlgo.h.
float DTParametrizedDriftAlgo::maxTime [static, private] |
Definition at line 79 of file DTParametrizedDriftAlgo.h.
Referenced by DTParametrizedDriftAlgo().
float DTParametrizedDriftAlgo::minTime [static, private] |
Definition at line 76 of file DTParametrizedDriftAlgo.h.
Referenced by DTParametrizedDriftAlgo().