CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MaxConsecLostHitsTrajectoryFilter.h
Go to the documentation of this file.
1 #ifndef MaxConsecLostHitsTrajectoryFilter_H
2 #define MaxConsecLostHitsTrajectoryFilter_H
3 
5 
7 public:
8 
9  explicit MaxConsecLostHitsTrajectoryFilter( int maxHits=0): theMaxConsecLostHits( maxHits) {}
10 
12  theMaxConsecLostHits( pset.getParameter<int>("maxConsecLostHits")) {}
13 
14  virtual bool qualityFilter( const Trajectory& traj) const { return TrajectoryFilter::qualityFilterIfNotContributing; }
16 
17  virtual bool toBeContinued( TempTrajectory& traj) const { return TBC<TempTrajectory>(traj);}
18  virtual bool toBeContinued( Trajectory& traj) const { return TBC<Trajectory>(traj);}
19 
20  virtual std::string name() const {return "MaxConsecLostHitsTrajectoryFilter";}
21 
22 protected:
23 
24  template <class T> bool TBC(const T& traj) const{
25  int consecLostHit = 0;
26  const typename T::DataContainer & tms = traj.measurements();
27  typename T::DataContainer::size_type itm;
28  for( itm=tms.size(); itm!=0; --itm ) {
29  if (tms[itm-1].recHit()->isValid()) break;
30  else if ( // FIXME: restore this: !Trajectory::inactive(tms[itm-1].recHit()->det()) &&
31  Trajectory::lost(*tms[itm-1].recHit())) consecLostHit++;
32  }
33 
34  return consecLostHit <= theMaxConsecLostHits;
35 
36  }
37 
39 
40 };
41 
42 #endif
MaxConsecLostHitsTrajectoryFilter(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
virtual bool qualityFilter(const TempTrajectory &traj) const
uint16_t size_type
virtual bool toBeContinued(Trajectory &traj) const
virtual bool qualityFilter(const Trajectory &traj) const
long double T
virtual bool toBeContinued(TempTrajectory &traj) const
static const bool qualityFilterIfNotContributing
static bool lost(const TrackingRecHit &hit)
Definition: Trajectory.cc:128