CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes

DTParametrizedDriftAlgo Class Reference

#include <DTParametrizedDriftAlgo.h>

Inheritance diagram for DTParametrizedDriftAlgo:
DTRecHitBaseAlgo

List of all members.

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 MagneticFieldmagField

Static Private Attributes

static bool debug
static bool interpolate
static float maxTime
static float minTime

Detailed Description

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

Date:
2007/04/19 11:08:17
Revision:
1.1
Author:
G. Cerminara - INFN Torino

Definition at line 18 of file DTParametrizedDriftAlgo.h.


Constructor & Destructor Documentation

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]

Destructor.

Definition at line 45 of file DTParametrizedDriftAlgo.cc.

{}

Member Function Documentation

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.


Member Data Documentation

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().

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().