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=-1): theMaxConsecLostHits( maxHits) {}
10 
12  theMaxConsecLostHits( pset.getParameter<int>("maxConsecLostHits")) {}
13 
14 
15  virtual bool qualityFilter( const Trajectory& traj) const { return TrajectoryFilter::qualityFilterIfNotContributing; }
17 
18  virtual bool toBeContinued( TempTrajectory& traj) const { return TBC<TempTrajectory>(traj);}
19  virtual bool toBeContinued( Trajectory& traj) const { return TBC<Trajectory>(traj);}
20 
21  virtual std::string name() const {return "MaxConsecLostHitsTrajectoryFilter";}
22 
23 protected:
24 
25  template <class T> bool TBC(const T& traj) const{
26  int consecLostHit = 0;
27  const typename T::DataContainer & tms = traj.measurements();
28  typename T::DataContainer::size_type itm;
29  for( itm=tms.size(); itm!=0; --itm ) {
30  if (tms[itm-1].recHit()->isValid()) break;
31  else if ( // FIXME: restore this: !Trajectory::inactive(tms[itm-1].recHit()->det()) &&
32  Trajectory::lost(*tms[itm-1].recHit())) consecLostHit++;
33  }
34 
35  if (consecLostHit > theMaxConsecLostHits) return false;
36  else return true;
37  }
38 
40 
41 };
42 
43 #endif
static bool lost(const TransientTrackingRecHit &hit)
Definition: Trajectory.cc:205
virtual bool qualityFilter(const TempTrajectory &traj) const
uint16_t size_type
virtual bool toBeContinued(Trajectory &traj) const
MaxConsecLostHitsTrajectoryFilter(const edm::ParameterSet &pset)
virtual bool qualityFilter(const Trajectory &traj) const
long double T
virtual bool toBeContinued(TempTrajectory &traj) const
static const bool qualityFilterIfNotContributing