CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HLTTrackWithHits.h
Go to the documentation of this file.
1 #ifndef HLTrigger_HLTTrackWithHits_H
2 
8 // system include files
9 #include <memory>
10 
11 // user include files
14 
17 
19 
21 
26 
27 class HLTTrackWithHits : public HLTFilter {
28 public:
29  explicit HLTTrackWithHits(const edm::ParameterSet& iConfig) :
30  src_(iConfig.getParameter<edm::InputTag>("src")),
31  minN_(iConfig.getParameter<int>("MinN")),
32  maxN_(iConfig.getParameter<int>("MaxN")),
33  MinBPX_(iConfig.getParameter<int>("MinBPX")),
34  MinFPX_(iConfig.getParameter<int>("MinFPX")),
35  MinPXL_(iConfig.getParameter<int>("MinPXL"))
36  {
37  produces<trigger::TriggerFilterObjectWithRefs>();
38  };
39 
41 
42 private:
43  virtual bool filter(edm::Event& iEvent, const edm::EventSetup&)
44  {
45  // The filtered object. which is put empty.
46  std::auto_ptr<trigger::TriggerFilterObjectWithRefs> filterproduct (new trigger::TriggerFilterObjectWithRefs(path(),module()));
47 
49  iEvent.getByLabel(src_, oHandle);
50  int s=oHandle->size();
51  int count=0;
52  for (int i=0;i!=s;++i){
53  const reco::Track & track = (*oHandle)[i];
54  const reco::HitPattern & hits = track.hitPattern();
55  if ( MinBPX_>0 && hits.numberOfValidPixelBarrelHits() >= MinBPX_ ) count++; continue;
56  if ( MinFPX_>0 && hits.numberOfValidPixelEndcapHits() >= MinFPX_ ) count++; continue;
57  if ( MinPXL_>0 && hits.numberOfValidPixelHits() >= MinPXL_ ) count++; continue;
58  }
59 
60  bool answer=(count>=minN_ && count<=maxN_);
61  LogDebug("HLTTrackWithHits")<<module()<<" sees: "<<s<<" objects. Only: "<<count<<" satisfy the hit requirement. Filter answer is: "<<(answer?"true":"false")<<std::endl;
62 
63  iEvent.put(filterproduct);
64  return answer;
65  }
66  virtual void endJob(){};
67 
70 };
71 
72 
73 #endif
#define LogDebug(id)
answer
Definition: submit.py:44
int i
Definition: DBlmapReader.cc:9
int module() const
Definition: HLTadd.h:12
int path() const
Definition: HLTadd.h:3
int iEvent
Definition: GenABIO.cc:243
int numberOfValidPixelEndcapHits() const
Definition: HitPattern.cc:385
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:84
int numberOfValidPixelHits() const
Definition: HitPattern.cc:359
HLTTrackWithHits(const edm::ParameterSet &iConfig)
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:216
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:359
virtual void endJob()
int numberOfValidPixelBarrelHits() const
Definition: HitPattern.cc:372
string s
Definition: asciidump.py:422
edm::InputTag src_
virtual bool filter(edm::Event &iEvent, const edm::EventSetup &)