CMS 3D CMS Logo

CkfBaseTrajectoryFilter.h
Go to the documentation of this file.
1 #ifndef CkfBaseTrajectoryFilter_H
2 #define CkfBaseTrajectoryFilter_H
3 
5 
17 
19 public:
20 
22  //define the filters by default in the BaseCkfTrajectoryBuilder
33  {}
34 
35  void setEvent(const edm::Event& iEvent, const edm::EventSetup& iSetup) override {
36  theChargeSignificanceTrajectoryFilter->setEvent(iEvent, iSetup);
37  theMaxLostHitsTrajectoryFilter->setEvent(iEvent, iSetup);
38  theMaxConsecLostHitsTrajectoryFilter->setEvent(iEvent, iSetup);
39  theMinPtTrajectoryFilter->setEvent(iEvent, iSetup);
40  theMaxHitsTrajectoryFilter->setEvent(iEvent, iSetup);
41  theMinHitsTrajectoryFilter->setEvent(iEvent, iSetup);
42  theLostHitsFractionTrajectoryFilter->setEvent(iEvent, iSetup);
43  theLooperTrajectoryFilter->setEvent(iEvent, iSetup);
44  theMaxCCCLostHitsTrajectoryFilter->setEvent(iEvent, iSetup);
45  }
46 
47  bool qualityFilter( const Trajectory& traj) const override {return QF<Trajectory>(traj);}
48  bool qualityFilter( const TempTrajectory& traj) const override {return QF<TempTrajectory>(traj);}
49 
50  bool toBeContinued( Trajectory& traj) const override {return TBC<Trajectory>(traj);}
51  bool toBeContinued( TempTrajectory& traj) const override {return TBC<TempTrajectory>(traj);}
52 
53  std::string name() const override { return "CkfBaseTrajectoryFilter";}
54 
56  edm::ParameterSetDescription descLooper = theLooperTrajectoryFilter->getFilledConfigurationDescription();
57  edm::ParameterSetDescription descLostHitsFraction = theLostHitsFractionTrajectoryFilter->getFilledConfigurationDescription();
58  edm::ParameterSetDescription descMinHits = theMinHitsTrajectoryFilter->getFilledConfigurationDescription();
59 
61  desc.add<edm::ParameterSetDescription>("looperTrajectoryFilter", descLooper);
62  desc.add<edm::ParameterSetDescription>("lostHitsFractionTrajectoryFilter",descLostHitsFraction);
63  desc.add<edm::ParameterSetDescription>("minHitsTrajectoryFilter", descMinHits);
64  return desc;
65  }
66 
67 protected:
68 
69  template <class T> bool QF(const T& traj) const{
70  if (!theSeedExtensionTrajectoryFilter->qualityFilter(traj)) return false;
71  if (!theChargeSignificanceTrajectoryFilter->qualityFilter(traj)) return false;
72  if (!theMinHitsTrajectoryFilter->qualityFilter(traj)) return false;
73  if (!theMinPtTrajectoryFilter->qualityFilter(traj)) return false;
74  if (!theLooperTrajectoryFilter->qualityFilter(traj)) return false;
75  return true;}
76 
77  template <class T> bool TBC(T& traj) const{
78  if (!theSeedExtensionTrajectoryFilter->toBeContinued(traj)) return false;
79  if (!theMaxHitsTrajectoryFilter->toBeContinued(traj)) return false;
80  if (!theMaxLostHitsTrajectoryFilter->toBeContinued(traj)) return false;
81  if (!theMaxConsecLostHitsTrajectoryFilter->toBeContinued(traj)) return false;
82  if (!theLostHitsFractionTrajectoryFilter->toBeContinued(traj)) return false;
83  if (!theMaxCCCLostHitsTrajectoryFilter->toBeContinued(traj)) return false;
84  if (!theMinPtTrajectoryFilter->toBeContinued(traj)) return false;
85  if (!theChargeSignificanceTrajectoryFilter->toBeContinued(traj)) return false;
86  if (!theLooperTrajectoryFilter->toBeContinued(traj)) return false;
87  return true;}
88 
89 
90 
91  std::unique_ptr<ChargeSignificanceTrajectoryFilter> theChargeSignificanceTrajectoryFilter;
92  std::unique_ptr<MaxConsecLostHitsTrajectoryFilter> theMaxConsecLostHitsTrajectoryFilter;
93  std::unique_ptr<MaxHitsTrajectoryFilter> theMaxHitsTrajectoryFilter;
94  std::unique_ptr<MaxLostHitsTrajectoryFilter> theMaxLostHitsTrajectoryFilter;
95  std::unique_ptr<LostHitsFractionTrajectoryFilter> theLostHitsFractionTrajectoryFilter;
96  std::unique_ptr<MinHitsTrajectoryFilter> theMinHitsTrajectoryFilter;
97  std::unique_ptr<MinPtTrajectoryFilter> theMinPtTrajectoryFilter;
98  std::unique_ptr<LooperTrajectoryFilter> theLooperTrajectoryFilter;
99  std::unique_ptr<SeedExtensionTrajectoryFilter> theSeedExtensionTrajectoryFilter;
100  std::unique_ptr<MaxCCCLostHitsTrajectoryFilter> theMaxCCCLostHitsTrajectoryFilter;
101 };
102 
103 #endif
std::unique_ptr< LooperTrajectoryFilter > theLooperTrajectoryFilter
CkfBaseTrajectoryFilter(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
bool toBeContinued(TempTrajectory &traj) const override
bool qualityFilter(const Trajectory &traj) const override
std::unique_ptr< SeedExtensionTrajectoryFilter > theSeedExtensionTrajectoryFilter
bool qualityFilter(const TempTrajectory &traj) const override
std::string name() const override
int iEvent
Definition: GenABIO.cc:224
std::unique_ptr< MaxLostHitsTrajectoryFilter > theMaxLostHitsTrajectoryFilter
std::unique_ptr< ChargeSignificanceTrajectoryFilter > theChargeSignificanceTrajectoryFilter
bool QF(const T &traj) const
bool toBeContinued(Trajectory &traj) const override
std::unique_ptr< MinPtTrajectoryFilter > theMinPtTrajectoryFilter
std::unique_ptr< MinHitsTrajectoryFilter > theMinHitsTrajectoryFilter
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::unique_ptr< LostHitsFractionTrajectoryFilter > theLostHitsFractionTrajectoryFilter
std::unique_ptr< MaxConsecLostHitsTrajectoryFilter > theMaxConsecLostHitsTrajectoryFilter
void setEvent(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
std::unique_ptr< MaxHitsTrajectoryFilter > theMaxHitsTrajectoryFilter
std::unique_ptr< MaxCCCLostHitsTrajectoryFilter > theMaxCCCLostHitsTrajectoryFilter
long double T
edm::ParameterSetDescription getFilledConfigurationDescription()