#include <StripCPEfromTrackAngle.h>
Public Member Functions | |
StripClusterParameterEstimator::LocalValues | localParameters (const SiStripCluster &, const GeomDetUnit &, const LocalTrajectoryParameters &) const |
StripCPEfromTrackAngle (edm::ParameterSet &conf, const MagneticField &mag, const TrackerGeometry &geom, const SiStripLorentzAngle &lorentz, const SiStripConfObject &confObj, const SiStripLatency &latency) |
Definition at line 6 of file StripCPEfromTrackAngle.h.
StripCPEfromTrackAngle::StripCPEfromTrackAngle | ( | edm::ParameterSet & | conf, |
const MagneticField & | mag, | ||
const TrackerGeometry & | geom, | ||
const SiStripLorentzAngle & | lorentz, | ||
const SiStripConfObject & | confObj, | ||
const SiStripLatency & | latency | ||
) | [inline] |
Definition at line 13 of file StripCPEfromTrackAngle.h.
: StripCPE(conf, mag, geom, lorentz, confObj, latency ) {}
StripClusterParameterEstimator::LocalValues StripCPEfromTrackAngle::localParameters | ( | const SiStripCluster & | cluster, |
const GeomDetUnit & | det, | ||
const LocalTrajectoryParameters & | ltp | ||
) | const [virtual] |
Reimplemented from ClusterParameterEstimator< SiStripCluster >.
Definition at line 21 of file StripCPEfromTrackAngle.cc.
References abs, SiStripCluster::amplitudes(), SiStripCluster::barycenter(), StripCPE::Param::coveredStrips(), StripCPE::Param::drift, f, StripTopology::localError(), StripTopology::localPosition(), PV3DBase< T, PVType, FrameType >::mag(), StripCPE::Param::maxLength, StripCPE::Param::moduleGeom, LocalTrajectoryParameters::momentum(), AlCaHLTBitMon_ParallelJobs::p, StripCPE::param(), LocalTrajectoryParameters::position(), StripCPE::shift, strip(), StripCPE::Param::thickness, StripCPE::Param::topology, LocalTrajectoryParameters::vector(), and PV3DBase< T, PVType, FrameType >::z().
{ StripCPE::Param const & p = param(det); LocalVector track = ltp.momentum(); track *= (track.z()<0) ? std::abs(p.thickness/track.z()) : (track.z()>0) ? -std::abs(p.thickness/track.z()) : p.maxLength/track.mag() ; const unsigned N = cluster.amplitudes().size(); const float fullProjection = p.coveredStrips( track+p.drift, ltp.position()); const float uerr2 = stripErrorSquared( N, std::abs(fullProjection) ); const float strip = cluster.barycenter() - 0.5f*(1.f-shift[p.moduleGeom]) * fullProjection + 0.5f*p.coveredStrips(track, ltp.position()); return std::make_pair( p.topology->localPosition(strip, ltp.vector()), p.topology->localError(strip, uerr2, ltp.vector()) ); }