23 activeThisEvent_(
true), activeThisPeriod_(
true),
28 throw MeasurementDetException(
"TkStripMeasurementDet constructed with a GeomDet which is not a StripGeomDetUnit");
37 std::vector<TrajectoryMeasurement>
44 std::vector<TrajectoryMeasurement>
result;
80 if (
isMasked(*leftCluster))
continue;
85 bool isCompatible(
false);
86 for(RecHitContainer::const_iterator recHit=recHits.begin();recHit!=recHits.end();++recHit){
87 std::pair<bool,double> diffEst = est.
estimate(stateOnThisDet, **recHit);
88 if ( diffEst.first ) {
94 if(!isCompatible)
break;
98 for ( ; rightCluster !=
detSet_.
end(); rightCluster++) {
99 if (
isMasked(*rightCluster))
continue;
104 bool isCompatible(
false);
105 for(RecHitContainer::const_iterator recHit=recHits.begin();recHit!=recHits.end();++recHit){
106 std::pair<bool,double> diffEst = est.
estimate(stateOnThisDet, **recHit);
107 if ( diffEst.first ) {
113 if(!isCompatible)
break;
124 if (
isMasked(*leftCluster))
continue;
131 bool isCompatible(
false);
132 for(RecHitContainer::const_iterator recHit=recHits.begin();recHit!=recHits.end();++recHit){
133 std::pair<bool,double> diffEst = est.
estimate(stateOnThisDet, **recHit);
134 if ( diffEst.first ) {
140 if(!isCompatible)
break;
144 for ( ; rightCluster !=
endCluster; rightCluster++) {
145 if (
isMasked(*rightCluster))
continue;
151 bool isCompatible(
false);
152 for(RecHitContainer::const_iterator recHit=recHits.begin();recHit!=recHits.end();++recHit){
153 std::pair<bool,double> diffEst = est.
estimate(stateOnThisDet, **recHit);
154 if ( diffEst.first ) {
160 if(!isCompatible)
break;
165 if ( result.empty()) {
183 if ( result.size() > 1) {
218 for(VLocalValues::const_iterator it=vlv.begin();it!=vlv.end();++it){
232 for(VLocalValues::const_iterator it=vlv.begin();it!=vlv.end();++it){
267 template<
class ClusterRefT>
271 std::vector<SiStripRecHit2D>& res )
const
275 for(VLocalValues::const_iterator it=vlv.begin();it!=vlv.end();++it){
318 for (
int i = 0; i < (totalStrips_ >> 7);
i++) {
328 int16_t start = (int16_t) std::max<float>(utraj - 3*uerr, 0);
341 typedef std::vector<BadStripBlock>::const_iterator BSBIT;
344 int16_t
bad = 0, largestBadBlock = 0;
346 if (bsbc->last < start)
continue;
347 if (bsbc->first > end)
break;
349 if (thisBad > largestBadBlock) largestBadBlock = thisBad;
353 bool ok = (bad < (end-start)) &&
edm::Ref< typename HandleT::element_type, typename HandleT::element_type::value_type::value_type > makeRefTo(const HandleT &iHandle, typename HandleT::element_type::value_type::const_iterator itIter)
virtual int nstrips() const =0
void buildSimpleRecHit(const ClusterRefT &cluster, const TrajectoryStateOnSurface <p, std::vector< SiStripRecHit2D > &res) const
static RecHitPointer build(const GeomDet *geom, Type type=TrackingRecHit::missing, const DetLayer *layer=0)
const StripClusterParameterEstimator * theCPE
uint16_t maxConsecutiveBad
virtual HitReturnType estimate(const TrajectoryStateOnSurface &ts, const TransientTrackingRecHit &hit) const =0
StripClusterParameterEstimator::VLocalValues VLocalValues
LocalPoint localPosition() const
StripClusterParameterEstimator::LocalValues LocalValues
TransientTrackingRecHit::ConstRecHitContainer RecHitContainer
virtual const GeomDet & geomDet() const
static RecHitPointer build(const GeomDet *geom, const SiStripRecHit2D *rh, const StripClusterParameterEstimator *cpe, float weight=1., float annealing=1., bool computeCoarseLocalPosition=false)
virtual RecHitContainer recHits(const TrajectoryStateOnSurface &) const
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
TransientTrackingRecHit::RecHitPointer buildRecHit(const SiStripClusterRef &, const TrajectoryStateOnSurface <p) const
LocalError positionError() const
std::vector< SiStripCluster >::const_iterator beginCluster
bool isMasked(const SiStripCluster &cluster) const
int bad(Items const &cont)
uint32_t rawId() const
get the raw id
virtual LocalValues localParameters(const T &, const GeomDetUnit &) const =0
virtual VLocalValues localParametersV(const T &cluster, const GeomDetUnit &gd) const
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
std::vector< SiStripCluster >::const_iterator endCluster
virtual std::vector< TrajectoryMeasurement > fastMeasurements(const TrajectoryStateOnSurface &stateOnThisDet, const TrajectoryStateOnSurface &startingState, const Propagator &, const MeasurementEstimator &) const
const T & max(const T &a, const T &b)
Ref< LazyGetter< T >, T, FindValue< T > > makeRefToLazyGetter(const Handle< LazyGetter< T > > &handle, const uint32_t index)
TkStripMeasurementDet::RecHitContainer buildRecHits(const SiStripClusterRef &, const TrajectoryStateOnSurface <p) const
DetId geographicalId() const
The label of this GeomDet.
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
const LocalTrajectoryError & localError() const
TkStripMeasurementDet(const GeomDet *gdet, const StripClusterParameterEstimator *cpe, bool regional)
std::vector< SiStripCluster >::const_iterator const_iterator
void set128StripStatus(bool good, int idx=-1)
Sets the status of a block of 128 strips (or all blocks if idx=-1)
std::vector< BadStripBlock > badStripBlocks_
edm::Handle< edmNew::DetSetVector< SiStripCluster > > handle_
const StripGeomDetUnit & specificGeomDet() const
const StripGeomDetUnit * theStripGDU
void simpleRecHits(const TrajectoryStateOnSurface &ts, std::vector< SiStripRecHit2D > &result) const
detset::const_iterator new_const_iterator
bool testStrips(float utraj, float uerr) const
return true if there are 'enough' good strips in the utraj +/- 3 uerr range.
bool isActive() const
Is this module active in reconstruction? It must be both 'setActiveThisEvent' and 'setActive'...
edm::Handle< edm::LazyGetter< SiStripCluster > > regionalHandle_
BadStripCuts badStripCuts_