CMS 3D CMS Logo

HLTCSCActivityFilter.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: HLTCSCActivityFilter
4 // Class: HLTCSCActivityFilter
5 //
13 //
14 // Original Author: Carlo Battilana
15 // Created: Tue Jan 22 13:55:00 CET 2008
16 //
17 //
18 
19 // system include files
20 #include <vector>
21 #include <map>
22 #include <iostream>
23 #include <memory>
24 
25 // user include files
26 #include "HLTCSCActivityFilter.h"
27 
28 //
29 // constructors and destructor
30 //
32  m_cscStripDigiTag( iConfig.getParameter<edm::InputTag>("cscStripDigiTag")),
33  m_MESR( iConfig.getParameter<bool>("skipStationRing")),
34  m_RingNumb( iConfig.getParameter<int>("skipRingNumber")),
35  m_StationNumb( iConfig.getParameter<int>("skipStationNumber"))
36 {
37  m_cscStripDigiToken = consumes<CSCStripDigiCollection>(m_cscStripDigiTag);
38 }
39 
41 
42 void
46  desc.add<edm::InputTag>("cscStripDigiTag",edm::InputTag("hltMuonCSCDigis","MuonCSCStripDigi"));
47  desc.add<bool>("skipStationRing",true);
48  desc.add<int>("skipRingNumber",1);
49  desc.add<int>("skipStationNumber",4);
50  descriptions.add("hltCSCActivityFilter",desc);
51 }
52 
53 //
54 // member functions
55 //
56 
57 // ------------ method called on each new Event ------------
59  using namespace edm;
60  using namespace std;
61  using namespace trigger;
62 
63  int nStripsFired = 0;
64 
66  iEvent.getByToken(m_cscStripDigiToken, cscStrips);
67 
68  for (auto && dSDiter : *cscStrips) {
69  CSCDetId id = (CSCDetId)dSDiter.first;
70  bool thisME = ((id.station()== m_StationNumb) && (id.ring()== m_RingNumb));
71  if (m_MESR && thisME)
72  continue;
73 
74  auto stripIter = dSDiter.second.first;
75  auto lStrip = dSDiter.second.second;
76  for( ; stripIter != lStrip; ++stripIter) {
77  const std::vector<int> & myADCVals = stripIter->getADCCounts();
78  const float pedestal = 0.5 * (float) (myADCVals[0] + myADCVals[1]);
79  const float threshold = 20;
80  const float cut = pedestal + threshold;
81  for (unsigned int i = 2; i < myADCVals.size(); ++i)
82  if (myADCVals[i] > cut) {
83  ++nStripsFired;
84  break;
85  }
86  }
87  }
88 
89  return (nStripsFired >= 1);
90 }
91 
92 // define as a framework module
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
edm::EDGetTokenT< CSCStripDigiCollection > m_cscStripDigiToken
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
int iEvent
Definition: GenABIO.cc:224
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
~HLTCSCActivityFilter() override
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:29
edm::InputTag m_cscStripDigiTag
void add(std::string const &label, ParameterSetDescription const &psetDescription)
HLT enums.
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
HLTCSCActivityFilter(const edm::ParameterSet &)