|
|
Go to the documentation of this file.
38 theSync->setES(
setup);
68 angle = atan(lDirLoc.
x() / -lDirLoc.
z());
102 const float digiTime,
111 float driftTime = digiTime - theSync->offset(layer, wireId, globPos);
114 if (
step == 1 && (driftTime < minTime || driftTime >
maxTime)) {
116 cout <<
"*** Drift time out of window for in-time hits " << driftTime << endl;
146 cout <<
"[DTParametrizedDriftAlgo]*** WARNING: call to parametrization failed" << endl;
156 bool variableSigma =
false;
174 reso = (sigma_l + sigma_r) / 2.;
180 }
else if (
wheel == 1) {
182 }
else if (
wheel == 2) {
186 }
else if (
step == 2) {
187 reso = (sigma_l + sigma_r) / 2.;
193 }
else if (
wheel == 1) {
195 }
else if (
wheel == 2) {
199 }
else if (
step == 3) {
200 reso = (sigma_l + sigma_r) / 2.;
206 }
else if (
wheel == 1) {
208 }
else if (
wheel == 2) {
213 float sXDelays = sTDelays * DX.
v_drift / 10.;
214 reso =
sqrt(reso * reso + sXDelays * sXDelays);
220 }
else if (
wheel == 1) {
222 }
else if (
wheel == 2) {
228 }
else if (
step == 2) {
232 }
else if (
wheel == 1) {
234 }
else if (
wheel == 2) {
240 }
else if (
step == 3) {
244 }
else if (
wheel == 1) {
246 }
else if (
wheel == 2) {
268 int prevW =
cout.width();
269 cout << setiosflags(ios::showpoint |
ios::fixed) << setw(3) <<
"[DTParametrizedDriftAlgo]: step " <<
step << endl
270 <<
" Global Position " << globPos << endl
271 <<
" Local Position " << layer->
toLocal(globPos)
274 <<
" Digi time " << digiTime
278 <<
" >Drif time " << driftTime << endl
279 <<
" >Angle " <<
angle * 180. /
M_PI << endl
280 <<
" <Drift distance " <<
drift << endl
281 <<
" <sigma_l " << sigma_l << endl
282 <<
" <sigma_r " << sigma_r << endl
283 <<
" reso " << reso << endl
284 <<
" leftPoint " << leftPoint << endl
285 <<
" rightPoint " << rightPoint << endl
286 <<
" error " <<
error << resetiosflags(ios::showpoint |
ios::fixed) << setw(prevW) << endl
296 const float digiTime,
307 switch (newHit1D.
lrSide()) {
324 throw cms::Exception(
"InvalidDTCellSide") <<
"[DTParametrizedDriftAlgo] Compute at Step " <<
step
325 <<
", Hit side " << newHit1D.
lrSide() <<
" is invalid!" << endl;
int wire() const
Return the wire number.
bool compute(const DTLayer *layer, const DTDigi &digi, LocalPoint &leftPoint, LocalPoint &rightPoint, LocalError &error) const override
bool isWireValid(const int wireNumber) const
void setES(const edm::EventSetup &setup) override
Pass the Event Setup to the algo at each event.
DTEnums::DTCellSide lrSide() const
The side of the cell.
int superlayer() const
Return the superlayer number (deprecated method name)
Point3DBase< Scalar, LocalTag > LocalPoint
double time() const
Get time in ns.
void setPositionAndError(LocalPoint pos, LocalError err)
Set the local position and its error.
~DTParametrizedDriftAlgo() override
Destructor.
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.
Global3DPoint GlobalPoint
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.
DTParametrizedDriftAlgo(const edm::ParameterSet &config)
Constructor.
DTLayerId id() const
Return the DetId of this SL.
Basic3DVector unit() const
float digiTime() const
Return the time (ns) of the digi used to build the rechit.
Structure used to return output values.
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)
bool computeDriftDistance_mean(double time, double alpha, double by, double bz, short interpolate, drift_distance *dx) const
int wheel() const
Return the wheel number.