![]() |
![]() |
#include <TSiStripRecHit2DLocalPos.h>
Public Types | |
typedef SiStripRecHit2D::ClusterRef | SiStripClusterRef |
typedef edm::LazyGetter < SiStripCluster >::value_ref | SiStripRegionalClusterRef |
Public Member Functions | |
virtual bool | canImproveWithTrack () const |
virtual RecHitPointer | clone (const TrajectoryStateOnSurface &ts) const |
const StripClusterParameterEstimator * | cpe () const |
virtual const GeomDetUnit * | detUnit () const |
virtual int | dimension () const |
virtual void | getKfComponents (KfComponentsHolder &holder) const |
virtual const TrackingRecHit * | hit () const |
virtual LocalPoint | localPosition () const |
virtual LocalError | localPositionError () const |
virtual AlgebraicVector | parameters () const |
virtual AlgebraicSymMatrix | parametersError () const |
virtual AlgebraicMatrix | projectionMatrix () const |
virtual std::vector < TrackingRecHit * > | recHits () |
Non-const access to component RecHits (if any) | |
virtual std::vector< const TrackingRecHit * > | recHits () const |
Access to component RecHits (if any) | |
const SiStripRecHit2D * | specificHit () const |
virtual | ~TSiStripRecHit2DLocalPos () |
Static Public Member Functions | |
static RecHitPointer | build (const GeomDet *geom, const SiStripRecHit2D *rh, const StripClusterParameterEstimator *cpe, bool computeCoarseLocalPosition=false) |
static RecHitPointer | build (const LocalPoint &pos, const LocalError &err, const GeomDet *det, const SiStripRegionalClusterRef &clust, const StripClusterParameterEstimator *cpe) |
static RecHitPointer | build (const LocalPoint &pos, const LocalError &err, const GeomDet *det, const SiStripClusterRef &clust, const StripClusterParameterEstimator *cpe) |
static RecHitPointer | build (const LocalPoint &pos, const LocalError &err, const GeomDet *det, const OmniClusterRef &clust, const StripClusterParameterEstimator *cpe) |
Private Member Functions | |
virtual TSiStripRecHit2DLocalPos * | clone () const |
virtual ConstRecHitContainer | transientHits () const |
Composite interface: returns the component hits, if any. | |
TSiStripRecHit2DLocalPos (const GeomDet *geom, const SiStripRecHit2D *rh, const StripClusterParameterEstimator *cpe, bool computeCoarseLocalPosition) | |
TSiStripRecHit2DLocalPos (const LocalPoint &pos, const LocalError &err, const GeomDet *det, const OmniClusterRef &clust, const StripClusterParameterEstimator *cpe) | |
Creates the TrackingRecHit internally, avoids redundent cloning. | |
Private Attributes | |
const StripClusterParameterEstimator * | theCPE |
SiStripRecHit2D | theHitData |
Definition at line 12 of file TSiStripRecHit2DLocalPos.h.
Definition at line 15 of file TSiStripRecHit2DLocalPos.h.
typedef edm::LazyGetter<SiStripCluster>::value_ref TSiStripRecHit2DLocalPos::SiStripRegionalClusterRef |
Definition at line 17 of file TSiStripRecHit2DLocalPos.h.
virtual TSiStripRecHit2DLocalPos::~TSiStripRecHit2DLocalPos | ( | ) | [inline, virtual] |
Definition at line 19 of file TSiStripRecHit2DLocalPos.h.
{}
TSiStripRecHit2DLocalPos::TSiStripRecHit2DLocalPos | ( | const GeomDet * | geom, |
const SiStripRecHit2D * | rh, | ||
const StripClusterParameterEstimator * | cpe, | ||
bool | computeCoarseLocalPosition | ||
) | [inline, private] |
Definition at line 96 of file TSiStripRecHit2DLocalPos.h.
References GeomDet::geographicalId(), relativeConstraints::geom, BaseTrackerRecHit::hasPositionAndError(), ClusterParameterEstimator< T >::localParameters(), LogDebug, TrackerSingleRecHit::omniCluster(), TrackerSingleRecHit::stripCluster(), theCPE, and theHitData.
Referenced by build(), and clone().
: TransientTrackingRecHit(geom), theCPE(cpe) { if (rh->hasPositionAndError() || !computeCoarseLocalPosition) { theHitData = SiStripRecHit2D(*rh); return; } if (computeCoarseLocalPosition && !cpe){ edm::LogError("TSiStripRecHit2DLocalPos")<<" trying to compute coarse local position but CPE is not provided. Not computing local position from disk for the transient tracking rechit."; theHitData = SiStripRecHit2D(*rh); return; } const GeomDetUnit* gdu = dynamic_cast<const GeomDetUnit*>(geom); LogDebug("TSiStripRecHit2DLocalPos")<<"calculating coarse position/error."; if (gdu){ StripClusterParameterEstimator::LocalValues lval= theCPE->localParameters(rh->stripCluster(), *gdu); theHitData = SiStripRecHit2D(lval.first, lval.second, geom->geographicalId(),rh->omniCluster()); } else{ edm::LogError("TSiStripRecHit2DLocalPos")<<" geomdet does not cast into geomdet unit. cannot create strip local parameters."; theHitData = SiStripRecHit2D(*rh); } }
TSiStripRecHit2DLocalPos::TSiStripRecHit2DLocalPos | ( | const LocalPoint & | pos, |
const LocalError & | err, | ||
const GeomDet * | det, | ||
const OmniClusterRef & | clust, | ||
const StripClusterParameterEstimator * | cpe | ||
) | [inline, private] |
Creates the TrackingRecHit internally, avoids redundent cloning.
Definition at line 124 of file TSiStripRecHit2DLocalPos.h.
: TransientTrackingRecHit(det), theCPE(cpe), theHitData(pos, err, det->geographicalId(), clust) {}
static RecHitPointer TSiStripRecHit2DLocalPos::build | ( | const GeomDet * | geom, |
const SiStripRecHit2D * | rh, | ||
const StripClusterParameterEstimator * | cpe, | ||
bool | computeCoarseLocalPosition = false |
||
) | [inline, static] |
Definition at line 59 of file TSiStripRecHit2DLocalPos.h.
References TSiStripRecHit2DLocalPos().
Referenced by TkStripMeasurementDet::buildRecHits(), clone(), TkTransientTrackingRecHitBuilder::oldbuild(), ProjectedRecHit2D::transientHits(), and TSiStripMatchedRecHit::transientHits().
{ return RecHitPointer( new TSiStripRecHit2DLocalPos( geom, rh, cpe,computeCoarseLocalPosition)); }
static RecHitPointer TSiStripRecHit2DLocalPos::build | ( | const LocalPoint & | pos, |
const LocalError & | err, | ||
const GeomDet * | det, | ||
const OmniClusterRef & | clust, | ||
const StripClusterParameterEstimator * | cpe | ||
) | [inline, static] |
Definition at line 66 of file TSiStripRecHit2DLocalPos.h.
References TSiStripRecHit2DLocalPos().
{ return RecHitPointer( new TSiStripRecHit2DLocalPos( pos, err, det, clust, cpe)); }
static RecHitPointer TSiStripRecHit2DLocalPos::build | ( | const LocalPoint & | pos, |
const LocalError & | err, | ||
const GeomDet * | det, | ||
const SiStripClusterRef & | clust, | ||
const StripClusterParameterEstimator * | cpe | ||
) | [inline, static] |
Definition at line 73 of file TSiStripRecHit2DLocalPos.h.
References TSiStripRecHit2DLocalPos().
{ return RecHitPointer( new TSiStripRecHit2DLocalPos( pos, err, det, OmniClusterRef(clust), cpe)); }
static RecHitPointer TSiStripRecHit2DLocalPos::build | ( | const LocalPoint & | pos, |
const LocalError & | err, | ||
const GeomDet * | det, | ||
const SiStripRegionalClusterRef & | clust, | ||
const StripClusterParameterEstimator * | cpe | ||
) | [inline, static] |
Definition at line 80 of file TSiStripRecHit2DLocalPos.h.
References TSiStripRecHit2DLocalPos().
{ return RecHitPointer( new TSiStripRecHit2DLocalPos( pos, err, det, OmniClusterRef(clust), cpe)); }
virtual bool TSiStripRecHit2DLocalPos::canImproveWithTrack | ( | ) | const [inline, virtual] |
Returns true if the clone( const TrajectoryStateOnSurface&) method returns an improved hit, false if it returns an identical copy. In order to avoid redundent copies one should call canImproveWithTrack() before calling clone( const TrajectoryStateOnSurface&).
Reimplemented from TransientTrackingRecHit.
Definition at line 49 of file TSiStripRecHit2DLocalPos.h.
{return true;}
virtual TSiStripRecHit2DLocalPos* TSiStripRecHit2DLocalPos::clone | ( | void | ) | const [inline, private, virtual] |
Implements TransientTrackingRecHit.
Definition at line 131 of file TSiStripRecHit2DLocalPos.h.
References TSiStripRecHit2DLocalPos().
Referenced by clone().
{ return new TSiStripRecHit2DLocalPos(*this); }
TransientTrackingRecHit::RecHitPointer TSiStripRecHit2DLocalPos::clone | ( | const TrajectoryStateOnSurface & | ts | ) | const [virtual] |
Returns a copy of the hit with parameters and errors computed with respect to the TrajectoryStateOnSurface given as argument. For concrete hits not capable to improve their parameters and errors this method returns an exact copy, and is equivalent to clone() without arguments.
FIXME: this only uses the first cluster and ignores the others
FIXME: should report the problem somehow
Reimplemented from TransientTrackingRecHit.
Definition at line 9 of file TSiStripRecHit2DLocalPos.cc.
References build(), clone(), TransientTrackingRecHit::det(), detUnit(), ClusterParameterEstimator< T >::localParameters(), specificHit(), TrackerSingleRecHit::stripCluster(), and theCPE.
{ if (theCPE != 0) { const SiStripCluster& clust = specificHit()->stripCluster(); StripClusterParameterEstimator::LocalValues lv = theCPE->localParameters( clust, *detUnit(), ts); return TSiStripRecHit2DLocalPos::build( lv.first, lv.second, det(), specificHit()->omniClusterRef(), theCPE); } else return clone(); }
const StripClusterParameterEstimator* TSiStripRecHit2DLocalPos::cpe | ( | ) | const [inline] |
Definition at line 57 of file TSiStripRecHit2DLocalPos.h.
References theCPE.
Referenced by ProjectedRecHit2D::ProjectedRecHit2D(), and transientHits().
{return theCPE;}
const GeomDetUnit * TSiStripRecHit2DLocalPos::detUnit | ( | ) | const [virtual] |
CAUTION: the GeomDetUnit* is zero for composite hits (matched hits in the tracker, segments in the muon). Always check this pointer before using it!
Reimplemented from TransientTrackingRecHit.
Definition at line 23 of file TSiStripRecHit2DLocalPos.cc.
References TransientTrackingRecHit::det().
Referenced by clone().
{ return static_cast<const GeomDetUnit*>(det()); }
virtual int TSiStripRecHit2DLocalPos::dimension | ( | ) | const [inline, virtual] |
Implements TrackingRecHit.
Definition at line 33 of file TSiStripRecHit2DLocalPos.h.
References SiStripRecHit2D::dimension(), and theHitData.
{return theHitData.dimension();}
virtual void TSiStripRecHit2DLocalPos::getKfComponents | ( | KfComponentsHolder & | holder | ) | const [inline, virtual] |
Reimplemented from TrackingRecHit.
Definition at line 22 of file TSiStripRecHit2DLocalPos.h.
References TransientTrackingRecHit::det(), HelpertRecHit2DLocalPos::getKfComponents(), and theHitData.
{ HelpertRecHit2DLocalPos().getKfComponents(holder, theHitData, *det()); }
virtual const TrackingRecHit* TSiStripRecHit2DLocalPos::hit | ( | void | ) | const [inline, virtual] |
Implements TransientTrackingRecHit.
Definition at line 38 of file TSiStripRecHit2DLocalPos.h.
References theHitData.
Referenced by recHits().
{return &theHitData;};
virtual LocalPoint TSiStripRecHit2DLocalPos::localPosition | ( | ) | const [inline, virtual] |
Implements TrackingRecHit.
Definition at line 35 of file TSiStripRecHit2DLocalPos.h.
References BaseTrackerRecHit::localPosition(), and theHitData.
Referenced by GlobalTrajectoryBuilderBase::fixTEC(), and TrackerDpgAnalysis::insertMeasurement().
{return theHitData.localPosition();}
virtual LocalError TSiStripRecHit2DLocalPos::localPositionError | ( | ) | const [inline, virtual] |
Implements TrackingRecHit.
Definition at line 36 of file TSiStripRecHit2DLocalPos.h.
References BaseTrackerRecHit::localPositionError(), and theHitData.
Referenced by GlobalTrajectoryBuilderBase::fixTEC().
{return theHitData.localPositionError();}
virtual AlgebraicVector TSiStripRecHit2DLocalPos::parameters | ( | void | ) | const [inline, virtual] |
Implements TrackingRecHit.
Definition at line 26 of file TSiStripRecHit2DLocalPos.h.
References BaseTrackerRecHit::parameters(), and theHitData.
{return theHitData.parameters();}
virtual AlgebraicSymMatrix TSiStripRecHit2DLocalPos::parametersError | ( | ) | const [inline, virtual] |
Implements TrackingRecHit.
Definition at line 27 of file TSiStripRecHit2DLocalPos.h.
References TransientTrackingRecHit::det(), BaseTrackerRecHit::localPositionError(), HelpertRecHit2DLocalPos::parError(), and theHitData.
{ return HelpertRecHit2DLocalPos().parError( theHitData.localPositionError(), *det()); // return theHitData->parametersError(); }
virtual AlgebraicMatrix TSiStripRecHit2DLocalPos::projectionMatrix | ( | ) | const [inline, virtual] |
Implements TrackingRecHit.
Definition at line 32 of file TSiStripRecHit2DLocalPos.h.
References BaseTrackerRecHit::projectionMatrix(), and theHitData.
{return theHitData.projectionMatrix();}
virtual std::vector<const TrackingRecHit*> TSiStripRecHit2DLocalPos::recHits | ( | ) | const [inline, virtual] |
Access to component RecHits (if any)
Implements TrackingRecHit.
Definition at line 40 of file TSiStripRecHit2DLocalPos.h.
References hit(), and TrackingRecHit::recHits().
virtual std::vector<TrackingRecHit*> TSiStripRecHit2DLocalPos::recHits | ( | ) | [inline, virtual] |
Non-const access to component RecHits (if any)
Implements TrackingRecHit.
Definition at line 43 of file TSiStripRecHit2DLocalPos.h.
References TrackerSingleRecHit::recHits(), and theHitData.
{ return theHitData.recHits(); }
const SiStripRecHit2D* TSiStripRecHit2DLocalPos::specificHit | ( | ) | const [inline] |
Definition at line 56 of file TSiStripRecHit2DLocalPos.h.
References theHitData.
Referenced by clone(), TkAlCaOverlapTagger::produce(), and transientHits().
{return &theHitData;};
TransientTrackingRecHit::ConstRecHitContainer TSiStripRecHit2DLocalPos::transientHits | ( | ) | const [private, virtual] |
Composite interface: returns the component hits, if any.
Reimplemented from TransientTrackingRecHit.
Definition at line 29 of file TSiStripRecHit2DLocalPos.cc.
References TSiStripRecHit1D::build(), cpe(), TransientTrackingRecHit::det(), query::result, and specificHit().
{ ConstRecHitContainer result; SiStripRecHit1D hit1d(specificHit()); result.push_back(TSiStripRecHit1D::build( det(),&hit1d, cpe())); return result; }
const StripClusterParameterEstimator* TSiStripRecHit2DLocalPos::theCPE [private] |
Definition at line 91 of file TSiStripRecHit2DLocalPos.h.
Referenced by clone(), cpe(), and TSiStripRecHit2DLocalPos().
Definition at line 92 of file TSiStripRecHit2DLocalPos.h.
Referenced by dimension(), getKfComponents(), hit(), localPosition(), localPositionError(), parameters(), parametersError(), projectionMatrix(), recHits(), specificHit(), and TSiStripRecHit2DLocalPos().