CMS 3D CMS Logo

HLTEcalPixelIsolTrackFilter.cc
Go to the documentation of this file.
9 
11  HLTFilter(iConfig),
12  candTag_( iConfig.getParameter<edm::InputTag> ("candTag")),
13  maxEnergyInEB_(iConfig.getParameter<double> ("MaxEnergyInEB")),
14  maxEnergyInEE_(iConfig.getParameter<double> ("MaxEnergyInEE")),
15  maxEnergyOutEB_(iConfig.getParameter<double> ("MaxEnergyOutEB")),
16  maxEnergyOutEE_(iConfig.getParameter<double> ("MaxEnergyOutEE")),
17  nMaxTrackCandidates_(iConfig.getParameter<int>("NMaxTrackCandidates")),
18  dropMultiL2Event_(iConfig.getParameter<bool> ("DropMultiL2Event")) {
19  candTok = consumes<reco::IsolatedPixelTrackCandidateCollection>(candTag_);
20 }
21 
23 
27  desc.add<edm::InputTag>("candTag",edm::InputTag("hltIsolEcalPixelTrackProd"));
28  desc.add<double>("MaxEnergyInEB",2.0);
29  desc.add<double>("MaxEnergyInEE",4.0);
30  desc.add<double>("MaxEnergyOutEB",1.2);
31  desc.add<double>("MaxEnergyOutEE",2.0);
32  desc.add<int>("NMaxTrackCandidates",10);
33  desc.add<bool>("DropMultiL2Event",false);
34  descriptions.add("isolEcalPixelTrackFilter",desc);
35 }
36 
38 
39  if (saveTags())
40  filterproduct.addCollectionTag(candTag_);
41 
43  iEvent.getByToken(candTok,recotrackcands);
44  if (!recotrackcands.isValid()) return false;
45 
46  int n=0;
47  for (unsigned int i=0; i<recotrackcands->size(); i++) {
50  LogDebug("IsoTrk") << "candref.isNull() " << candref.isNull() << "\n";
51  if (candref.isNull()) continue;
52  LogDebug("IsoTrk") << "candref.track().isNull() " << candref->track().isNull() << "\n";
53  if(candref->track().isNull()) continue;
54  // select on transverse momentum
55  double etaAbs = std::abs(candref->track()->eta());
56  double maxEnergyIn = (etaAbs < 1.479) ? maxEnergyInEB_ : maxEnergyInEE_;
57  double maxEnergyOut= (etaAbs < 1.479) ? maxEnergyOutEB_ : maxEnergyOutEE_;
58  LogDebug("IsoTrk") << "energyin/out: " << candref->energyIn() << "/" << candref->energyOut() << "\n";
59  if (candref->energyIn()<maxEnergyIn && candref->energyOut()<maxEnergyOut) {
60  filterproduct.addObject(trigger::TriggerTrack, candref);
61  n++;
62  LogDebug("IsoTrk") << "EcalIsol:Candidate[" << n <<"] pt|eta|phi "
63  << candref->pt() << "|" << candref->eta() << "|"
64  << candref->phi() << "\n";
65  }
66  if(!dropMultiL2Event_ && n>=nMaxTrackCandidates_) break;
67 
68  }
69  bool accept(n>0);
70  if (dropMultiL2Event_ && n>nMaxTrackCandidates_ ) accept=false;
71  return accept;
72 }
73 
74 
75 // declare this class as a framework plugin
#define LogDebug(id)
edm::EDGetTokenT< reco::IsolatedPixelTrackCandidateCollection > candTok
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
HLTEcalPixelIsolTrackFilter(const edm::ParameterSet &)
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:30
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
int iEvent
Definition: GenABIO.cc:224
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
~HLTEcalPixelIsolTrackFilter() override
ParameterDescriptionBase * add(U const &iLabel, T const &value)
bool isValid() const
Definition: HandleBase.h:74
bool isNull() const
Checks for null.
Definition: Ref.h:248
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:29
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
void add(std::string const &label, ParameterSetDescription const &psetDescription)
bool saveTags() const
Definition: HLTFilter.h:45
HLT enums.
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override