CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
DTParametrizedDriftAlgo Class Reference

#include <DTParametrizedDriftAlgo.h>

Inheritance diagram for DTParametrizedDriftAlgo:
DTRecHitBaseAlgo

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. More...
 
virtual void setES (const edm::EventSetup &setup)
 Pass the Event Setup to the algo at each event. More...
 
virtual ~DTParametrizedDriftAlgo ()
 Destructor. More...
 
- Public Member Functions inherited from DTRecHitBaseAlgo
 DTRecHitBaseAlgo (const edm::ParameterSet &config)
 Constructor. More...
 
virtual edm::OwnVector
< DTRecHit1DPair
reconstruct (const DTLayer *layer, const DTLayerId &layerId, const DTDigiCollection::Range &digiRange)
 Build all hits in the range associated to the layerId, at the 1st step. More...
 
virtual ~DTRecHitBaseAlgo ()
 Destructor. More...
 

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
 

Additional Inherited Members

- Protected Attributes inherited from DTRecHitBaseAlgo
DTTTrigBaseSynctheSync
 

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.

30  :
31  DTRecHitBaseAlgo(config) {
32  interpolate = config.getParameter<bool>("interpolate");
33 
34  minTime = config.getParameter<double>("minTime"); // FIXME: Default was -3 ns
35 
36  maxTime = config.getParameter<double>("maxTime"); // FIXME: Default was 415 ns
37 
38  // Set verbose output
39  debug = config.getUntrackedParameter<bool>("debug","false");
40 
41  }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
DTRecHitBaseAlgo(const edm::ParameterSet &config)
Constructor.
DTParametrizedDriftAlgo::~DTParametrizedDriftAlgo ( )
virtual

Destructor.

Definition at line 45 of file DTParametrizedDriftAlgo.cc.

45 {}

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 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 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 DTWireId wireId,
const float  digiTime,
const float &  angle,
const GlobalPoint globPos,
LocalPoint leftPoint,
LocalPoint rightPoint,
LocalError error,
int  step 
) const
privatevirtual
virtual bool DTParametrizedDriftAlgo::compute ( const DTLayer layer,
const DTWireId wireId,
const float  digiTime,
const float &  angle,
const GlobalPoint globPos,
DTRecHit1D newHit1D,
int  step 
) const
privatevirtual
void DTParametrizedDriftAlgo::setES ( const edm::EventSetup setup)
virtual

Pass the Event Setup to the algo at each event.

Implements DTRecHitBaseAlgo.

Definition at line 49 of file DTParametrizedDriftAlgo.cc.

References edm::EventSetup::get().

49  {
50  theSync->setES(setup);
51  // Access the magnetic field
52  ESHandle<MagneticField> magneticField;
53  setup.get<IdealMagneticFieldRecord>().get(magneticField);
54  magField = &*magneticField;
55 }
const MagneticField * magField
virtual void setES(const edm::EventSetup &setup)=0
Pass the Event Setup to the synchronization module at each event.
DTTTrigBaseSync * theSync
const T & get() const
Definition: EventSetup.h:55

Member Data Documentation

bool DTParametrizedDriftAlgo::debug
staticprivate

Definition at line 102 of file DTParametrizedDriftAlgo.h.

Referenced by DTParametrizedDriftAlgo().

bool DTParametrizedDriftAlgo::interpolate
staticprivate

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
staticprivate

Definition at line 79 of file DTParametrizedDriftAlgo.h.

Referenced by DTParametrizedDriftAlgo().

float DTParametrizedDriftAlgo::minTime
staticprivate

Definition at line 76 of file DTParametrizedDriftAlgo.h.

Referenced by DTParametrizedDriftAlgo().