CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
HLTEgammaGenericQuadraticEtaFilter Class Reference

#include <HLTEgammaGenericQuadraticEtaFilter.h>

Inheritance diagram for HLTEgammaGenericQuadraticEtaFilter:
HLTFilter edm::global::EDFilter<> edm::global::EDFilterBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 HLTEgammaGenericQuadraticEtaFilter (const edm::ParameterSet &)
 
bool hltFilter (edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
 
 ~HLTEgammaGenericQuadraticEtaFilter () override
 
- Public Member Functions inherited from HLTFilter
 HLTFilter (const edm::ParameterSet &config)
 
int module (edm::Event const &) const
 
const std::string * moduleLabel () const
 
int path (edm::Event const &) const
 
const std::string * pathName (edm::Event const &) const
 
std::pair< int, int > pmid (edm::Event const &) const
 
bool saveTags () const
 
 ~HLTFilter () override
 
- Public Member Functions inherited from edm::global::EDFilter<>
 EDFilter ()=default
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDFilterBase
 EDFilterBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDFilterBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from HLTFilter
static void makeHLTFilterDescription (edm::ParameterSetDescription &desc)
 
- Static Public Member Functions inherited from edm::global::EDFilterBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Attributes

std::vector< double > absEtaLowEdges_
 
edm::InputTag candTag_
 
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefscandToken_
 
bool doRhoCorrection_
 
std::vector< double > effectiveAreas_
 
std::vector< double > energyLowEdges_
 
double etaBoundaryEB12_
 
double etaBoundaryEE12_
 
edm::InputTag l1EGTag_
 
bool lessThan_
 
int ncandcut_
 
double rhoMax_
 
double rhoScale_
 
edm::InputTag rhoTag_
 
edm::EDGetTokenT< double > rhoToken_
 
bool store_
 
std::vector< double > thrOverE2EB1_
 
std::vector< double > thrOverE2EB2_
 
std::vector< double > thrOverE2EE1_
 
std::vector< double > thrOverE2EE2_
 
std::vector< double > thrOverEEB1_
 
std::vector< double > thrOverEEB2_
 
std::vector< double > thrOverEEE1_
 
std::vector< double > thrOverEEE2_
 
std::vector< double > thrRegularEB1_
 
std::vector< double > thrRegularEB2_
 
std::vector< double > thrRegularEE1_
 
std::vector< double > thrRegularEE2_
 
bool useEt_
 
edm::InputTag varTag_
 
edm::EDGetTokenT< reco::RecoEcalCandidateIsolationMapvarToken_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDFilterBase
typedef EDFilterBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Author
Roberto Covarelli (CERN) modified by Chris Tully (Princeton)

Definition at line 23 of file HLTEgammaGenericQuadraticEtaFilter.h.

Constructor & Destructor Documentation

HLTEgammaGenericQuadraticEtaFilter::HLTEgammaGenericQuadraticEtaFilter ( const edm::ParameterSet iConfig)
explicit

Definition at line 25 of file HLTEgammaGenericQuadraticEtaFilter.cc.

References absEtaLowEdges_, candTag_, candToken_, doRhoCorrection_, effectiveAreas_, energyLowEdges_, etaBoundaryEB12_, etaBoundaryEE12_, Exception, edm::ParameterSet::getParameter(), l1EGTag_, lessThan_, ncandcut_, or, rhoMax_, rhoScale_, rhoTag_, rhoToken_, thrOverE2EB1_, thrOverE2EB2_, thrOverE2EE1_, thrOverE2EE2_, thrOverEEB1_, thrOverEEB2_, thrOverEEE1_, thrOverEEE2_, thrRegularEB1_, thrRegularEB2_, thrRegularEE1_, thrRegularEE2_, useEt_, varTag_, and varToken_.

25  : HLTFilter(iConfig){
26  candTag_ = iConfig.getParameter< edm::InputTag > ("candTag");
27  varTag_ = iConfig.getParameter< edm::InputTag > ("varTag");
28  rhoTag_ = iConfig.getParameter< edm::InputTag > ("rhoTag");
29 
30  energyLowEdges_ = iConfig.getParameter<std::vector<double> > ("energyLowEdges");
31  lessThan_ = iConfig.getParameter<bool> ("lessThan");
32  useEt_ = iConfig.getParameter<bool> ("useEt");
33 
34  etaBoundaryEB12_ = iConfig.getParameter<double> ("etaBoundaryEB12");
35  etaBoundaryEE12_ = iConfig.getParameter<double> ("etaBoundaryEE12");
36 
37  thrRegularEB1_ = iConfig.getParameter<std::vector<double> > ("thrRegularEB1");
38  thrRegularEE1_ = iConfig.getParameter<std::vector<double> > ("thrRegularEE1");
39  thrOverEEB1_ = iConfig.getParameter<std::vector<double> > ("thrOverEEB1");
40  thrOverEEE1_ = iConfig.getParameter<std::vector<double> > ("thrOverEEE1");
41  thrOverE2EB1_ = iConfig.getParameter<std::vector<double> > ("thrOverE2EB1");
42  thrOverE2EE1_ = iConfig.getParameter<std::vector<double> > ("thrOverE2EE1");
43  thrRegularEB2_ = iConfig.getParameter<std::vector<double> > ("thrRegularEB2");
44  thrRegularEE2_ = iConfig.getParameter<std::vector<double> > ("thrRegularEE2");
45  thrOverEEB2_ = iConfig.getParameter<std::vector<double> > ("thrOverEEB2");
46  thrOverEEE2_ = iConfig.getParameter<std::vector<double> > ("thrOverEEE2");
47  thrOverE2EB2_ = iConfig.getParameter<std::vector<double> > ("thrOverE2EB2");
48  thrOverE2EE2_ = iConfig.getParameter<std::vector<double> > ("thrOverE2EE2");
49 
50  ncandcut_ = iConfig.getParameter<int> ("ncandcut");
51 
52  doRhoCorrection_ = iConfig.getParameter<bool> ("doRhoCorrection");
53  rhoMax_ = iConfig.getParameter<double> ("rhoMax");
54  rhoScale_ = iConfig.getParameter<double> ("rhoScale");
55  effectiveAreas_ = iConfig.getParameter<std::vector<double> > ("effectiveAreas");
56  absEtaLowEdges_ = iConfig.getParameter<std::vector<double> > ("absEtaLowEdges");
57 
58  l1EGTag_ = iConfig.getParameter< edm::InputTag > ("l1EGCand");
59 
60  candToken_ = consumes<trigger::TriggerFilterObjectWithRefs> (candTag_);
61  varToken_ = consumes<reco::RecoEcalCandidateIsolationMap> (varTag_);
62 
63  if (energyLowEdges_.size() != thrRegularEB1_.size() or energyLowEdges_.size() != thrRegularEE1_.size() or
64  energyLowEdges_.size() != thrRegularEB2_.size() or energyLowEdges_.size() != thrRegularEE2_.size() or
65  energyLowEdges_.size() != thrOverEEB1_.size() or energyLowEdges_.size() != thrOverEEE1_.size() or
66  energyLowEdges_.size() != thrOverEEB2_.size() or energyLowEdges_.size() != thrOverEEE2_.size() or
67  energyLowEdges_.size() != thrOverE2EB1_.size() or energyLowEdges_.size() != thrOverE2EE1_.size() or
68  energyLowEdges_.size() != thrOverE2EB2_.size() or energyLowEdges_.size() != thrOverE2EE2_.size())
69  throw cms::Exception("IncompatibleVects") << "energyLowEdges and threshold vectors should be of the same size. \n";
70 
71  if (energyLowEdges_.at(0) != 0.0)
72  throw cms::Exception("IncompleteCoverage") << "energyLowEdges should start from 0. \n";
73 
74  for (unsigned int aIt = 0; aIt < energyLowEdges_.size() - 1; aIt++) {
75  if ( !(energyLowEdges_.at( aIt ) < energyLowEdges_.at( aIt + 1 )) )
76  throw cms::Exception("ImproperBinning") << "energyLowEdges entries should be in increasing order. \n";
77  }
78 
79  if (doRhoCorrection_) {
80  rhoToken_ = consumes<double> (rhoTag_);
81  if (absEtaLowEdges_.size() != effectiveAreas_.size())
82  throw cms::Exception("IncompatibleVects") << "absEtaLowEdges and effectiveAreas should be of the same size. \n";
83 
84  if (absEtaLowEdges_.at(0) != 0.0)
85  throw cms::Exception("IncompleteCoverage") << "absEtaLowEdges should start from 0. \n";
86 
87  for (unsigned int bIt = 0; bIt < absEtaLowEdges_.size() - 1; bIt++) {
88  if ( !(absEtaLowEdges_.at( bIt ) < absEtaLowEdges_.at( bIt + 1 )) )
89  throw cms::Exception("ImproperBinning") << "absEtaLowEdges entries should be in increasing order. \n";
90  }
91  }
92 }
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::RecoEcalCandidateIsolationMap > varToken_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > candToken_
HLTEgammaGenericQuadraticEtaFilter::~HLTEgammaGenericQuadraticEtaFilter ( )
override

Definition at line 128 of file HLTEgammaGenericQuadraticEtaFilter.cc.

128 {}

Member Function Documentation

void HLTEgammaGenericQuadraticEtaFilter::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 95 of file HLTEgammaGenericQuadraticEtaFilter.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), and HLTFilter::makeHLTFilterDescription().

95  {
98  desc.add<edm::InputTag>("candTag", edm::InputTag("hltEGIsolFilter"));
99  desc.add<edm::InputTag>("varTag", edm::InputTag("hltEGIsol"));
100  desc.add<edm::InputTag>("rhoTag", edm::InputTag("")); // No rho correction by default
101  desc.add<std::vector<double> >("energyLowEdges", {0.0}); // No energy-dependent cuts by default
102  desc.add<bool>("lessThan", true);
103  desc.add<bool>("useEt", true);
104  desc.add<double>("etaBoundaryEB12", 1.0);
105  desc.add<double>("etaBoundaryEE12", 2.0);
106  desc.add<std::vector<double> >("thrRegularEB1", {4.0});
107  desc.add<std::vector<double> >("thrRegularEE1", {6.0});
108  desc.add<std::vector<double> >("thrOverEEB1", {0.0020});
109  desc.add<std::vector<double> >("thrOverEEE1", {0.0020});
110  desc.add<std::vector<double> >("thrOverE2EB1", {0.0});
111  desc.add<std::vector<double> >("thrOverE2EE1", {0.0});
112  desc.add<std::vector<double> >("thrRegularEB2", {6.0});
113  desc.add<std::vector<double> >("thrRegularEE2", {4.0});
114  desc.add<std::vector<double> >("thrOverEEB2", {0.0020});
115  desc.add<std::vector<double> >("thrOverEEE2", {0.0020});
116  desc.add<std::vector<double> >("thrOverE2EB2", {0.0});
117  desc.add<std::vector<double> >("thrOverE2EE2", {0.0});
118  desc.add<int>("ncandcut", 1);
119  desc.add<bool>("doRhoCorrection", false);
120  desc.add<double>("rhoMax", 9.9999999E7);
121  desc.add<double>("rhoScale", 1.0);
122  desc.add<std::vector<double> >("effectiveAreas", {0.0, 0.0});
123  desc.add<std::vector<double> >("absEtaLowEdges", {0.0, 1.479}); // EB, EE
124  desc.add<edm::InputTag>("l1EGCand", edm::InputTag("hltL1IsoRecoEcalCandidate"));
125  descriptions.add("hltEgammaGenericQuadraticEtaFilter", desc);
126 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:29
void add(std::string const &label, ParameterSetDescription const &psetDescription)
bool HLTEgammaGenericQuadraticEtaFilter::hltFilter ( edm::Event iEvent,
const edm::EventSetup iSetup,
trigger::TriggerFilterObjectWithRefs filterproduct 
) const
overridevirtual

Implements HLTFilter.

Definition at line 133 of file HLTEgammaGenericQuadraticEtaFilter.cc.

References funct::abs(), absEtaLowEdges_, accept(), trigger::TriggerFilterObjectWithRefs::addCollectionTag(), trigger::TriggerRefsCollections::addObject(), candToken_, DEFINE_FWK_MODULE, SoftLeptonByDistance_cfi::distance, doRhoCorrection_, effectiveAreas_, energyLowEdges_, etaBoundaryEB12_, etaBoundaryEE12_, JetChargeProducer_cfi::exp, edm::Event::getByToken(), trigger::TriggerRefsCollections::getObjects(), mps_fire::i, l1EGTag_, lessThan_, pfDeepBoostedJetPreprocessParams_cfi::lower_bound, gen::n, ncandcut_, edm::Handle< T >::product(), rho, rhoMax_, rhoScale_, rhoToken_, HLTFilter::saveTags(), funct::sin(), thrOverE2EB1_, thrOverE2EB2_, thrOverE2EE1_, thrOverE2EE2_, thrOverEEB1_, thrOverEEB2_, thrOverEEE1_, thrOverEEE2_, thrRegularEB1_, thrRegularEB2_, thrRegularEE1_, thrRegularEE2_, trigger::TriggerCluster, trigger::TriggerPhoton, useEt_, edm::helpers::KeyVal< K, V >::val, and varToken_.

134 {
135  using namespace trigger;
136  if ( saveTags() ) {
137  filterproduct.addCollectionTag(l1EGTag_);
138  }
139  // Ref to Candidate object to be recorded in filter object
141 
142  // Set output format
143  int trigger_type = trigger::TriggerCluster;
144  if ( saveTags() ) trigger_type = trigger::TriggerPhoton;
145 
147 
148  iEvent.getByToken (candToken_,PrevFilterOutput);
149 
150  std::vector<edm::Ref<reco::RecoEcalCandidateCollection> > recoecalcands;
151  PrevFilterOutput->getObjects(TriggerCluster, recoecalcands);
152  if(recoecalcands.empty()) PrevFilterOutput->getObjects(TriggerPhoton,recoecalcands); //we dont know if its type trigger cluster or trigger photon
153 
154  //get hold of isolated association map
156  iEvent.getByToken (varToken_,depMap);
157 
158  // Get rho if needed
159  edm::Handle<double> rhoHandle;
160  double rho = 0.0;
161  if (doRhoCorrection_) {
162  iEvent.getByToken(rhoToken_, rhoHandle);
163  rho = *(rhoHandle.product());
164  }
165 
166  if (rho > rhoMax_)
167  rho = rhoMax_;
168  rho = rho * rhoScale_;
169 
170  // look at all photons, check cuts and add to filter object
171  int n = 0;
172  for (unsigned int i=0; i<recoecalcands.size(); i++) {
173 
174  ref = recoecalcands[i];
175  reco::RecoEcalCandidateIsolationMap::const_iterator mapi = (*depMap).find( ref );
176 
177  float vali = mapi->val;
178  float EtaSC = ref->eta();
179 
180  // Pick the right EA and do rhoCorr
181  if (doRhoCorrection_) {
182  auto cIt = std::lower_bound( absEtaLowEdges_.begin(), absEtaLowEdges_.end(), std::abs(EtaSC) ) - 1;
183  vali = vali - (rho * effectiveAreas_.at( std::distance( absEtaLowEdges_.begin(), cIt ) ));
184  }
185 
186  float energy = ref->superCluster()->energy();
187  if (useEt_) energy = energy * sin (2*atan(exp(-EtaSC)));
188  if (energy < 0.) energy = 0.; /* first and second order terms assume non-negative energies */
189 
190  double cutRegularEB1_ = 9999., cutRegularEE1_ = 9999.;
191  double cutRegularEB2_ = 9999., cutRegularEE2_ = 9999.;
192  double cutOverEEB1_ = 9999., cutOverEEE1_ = 9999.;
193  double cutOverEEB2_ = 9999., cutOverEEE2_ = 9999.;
194  double cutOverE2EB1_ = 9999., cutOverE2EE1_ = 9999.;
195  double cutOverE2EB2_ = 9999., cutOverE2EE2_ = 9999.;
196 
197  auto dIt = std::lower_bound( energyLowEdges_.begin(), energyLowEdges_.end(), energy ) - 1;
198  unsigned iEn = std::distance( energyLowEdges_.begin(), dIt );
199 
200  cutRegularEB1_ = thrRegularEB1_.at(iEn);
201  cutRegularEB2_ = thrRegularEB2_.at(iEn);
202  cutRegularEE1_ = thrRegularEE1_.at(iEn);
203  cutRegularEE2_ = thrRegularEE2_.at(iEn);
204  cutOverEEB1_ = thrOverEEB1_.at(iEn);
205  cutOverEEB2_ = thrOverEEB2_.at(iEn);
206  cutOverEEE1_ = thrOverEEE1_.at(iEn);
207  cutOverEEE2_ = thrOverEEE2_.at(iEn);
208  cutOverE2EB1_ = thrOverE2EB1_.at(iEn);
209  cutOverE2EB2_ = thrOverE2EB2_.at(iEn);
210  cutOverE2EE1_ = thrOverE2EE1_.at(iEn);
211  cutOverE2EE2_ = thrOverE2EE2_.at(iEn);
212 
213  if ( lessThan_ ) {
214  if (std::abs(EtaSC) < etaBoundaryEB12_) {
215  if ( vali <= cutRegularEB1_ + energy*cutOverEEB1_ + energy*energy*cutOverE2EB1_) {
216  n++;
217  filterproduct.addObject(trigger_type, ref);
218  continue;
219  }
220  } else if (std::abs(EtaSC) < 1.479) {
221  if ( vali <= cutRegularEB2_ + energy*cutOverEEB2_ + energy*energy*cutOverE2EB2_) {
222  n++;
223  filterproduct.addObject(trigger_type, ref);
224  continue;
225  }
226  } else if (std::abs(EtaSC) < etaBoundaryEE12_) {
227  if ( vali <= cutRegularEE1_ + energy*cutOverEEE1_ + energy*energy*cutOverE2EE1_) {
228  n++;
229  filterproduct.addObject(trigger_type, ref);
230  continue;
231  }
232  } else if (vali <= cutRegularEE2_ + energy*cutOverEEE2_ + energy*energy*cutOverE2EE2_) {
233  n++;
234  filterproduct.addObject(trigger_type, ref);
235  continue;
236  }
237  } else {
238  if (std::abs(EtaSC) < etaBoundaryEB12_) {
239  if ( vali >= cutRegularEB1_ + energy*cutOverEEB1_ + energy*energy*cutOverE2EB1_) {
240  n++;
241  filterproduct.addObject(trigger_type, ref);
242  continue;
243  }
244  } else if (std::abs(EtaSC) < 1.479) {
245  if ( vali >= cutRegularEB2_ + energy*cutOverEEB2_ + energy*energy*cutOverE2EB2_) {
246  n++;
247  filterproduct.addObject(trigger_type, ref);
248  continue;
249  }
250  } else if (std::abs(EtaSC) < etaBoundaryEE12_) {
251  if ( vali >= cutRegularEE1_ + energy*cutOverEEE1_ + energy*energy*cutOverE2EE1_) {
252  n++;
253  filterproduct.addObject(trigger_type, ref);
254  continue;
255  }
256  } else if (vali >= cutRegularEE2_ + energy*cutOverEEE2_ + energy*energy*cutOverE2EE2_) {
257  n++;
258  filterproduct.addObject(trigger_type, ref);
259  continue;
260  }
261  }
262  }
263 
264  // filter decision
265  bool accept(n>=ncandcut_);
266 
267  return accept;
268 }
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
edm::EDGetTokenT< reco::RecoEcalCandidateIsolationMap > varToken_
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>)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
T const * product() const
Definition: Handle.h:74
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > candToken_
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
bool saveTags() const
Definition: HLTFilter.h:45

Member Data Documentation

std::vector<double> HLTEgammaGenericQuadraticEtaFilter::absEtaLowEdges_
private
edm::InputTag HLTEgammaGenericQuadraticEtaFilter::candTag_
private
edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> HLTEgammaGenericQuadraticEtaFilter::candToken_
private
bool HLTEgammaGenericQuadraticEtaFilter::doRhoCorrection_
private
std::vector<double> HLTEgammaGenericQuadraticEtaFilter::effectiveAreas_
private
std::vector<double> HLTEgammaGenericQuadraticEtaFilter::energyLowEdges_
private
double HLTEgammaGenericQuadraticEtaFilter::etaBoundaryEB12_
private
double HLTEgammaGenericQuadraticEtaFilter::etaBoundaryEE12_
private
edm::InputTag HLTEgammaGenericQuadraticEtaFilter::l1EGTag_
private
bool HLTEgammaGenericQuadraticEtaFilter::lessThan_
private
int HLTEgammaGenericQuadraticEtaFilter::ncandcut_
private
double HLTEgammaGenericQuadraticEtaFilter::rhoMax_
private
double HLTEgammaGenericQuadraticEtaFilter::rhoScale_
private
edm::InputTag HLTEgammaGenericQuadraticEtaFilter::rhoTag_
private
edm::EDGetTokenT<double> HLTEgammaGenericQuadraticEtaFilter::rhoToken_
private
bool HLTEgammaGenericQuadraticEtaFilter::store_
private

Definition at line 61 of file HLTEgammaGenericQuadraticEtaFilter.h.

std::vector<double> HLTEgammaGenericQuadraticEtaFilter::thrOverE2EB1_
private
std::vector<double> HLTEgammaGenericQuadraticEtaFilter::thrOverE2EB2_
private
std::vector<double> HLTEgammaGenericQuadraticEtaFilter::thrOverE2EE1_
private
std::vector<double> HLTEgammaGenericQuadraticEtaFilter::thrOverE2EE2_
private
std::vector<double> HLTEgammaGenericQuadraticEtaFilter::thrOverEEB1_
private
std::vector<double> HLTEgammaGenericQuadraticEtaFilter::thrOverEEB2_
private
std::vector<double> HLTEgammaGenericQuadraticEtaFilter::thrOverEEE1_
private
std::vector<double> HLTEgammaGenericQuadraticEtaFilter::thrOverEEE2_
private
std::vector<double> HLTEgammaGenericQuadraticEtaFilter::thrRegularEB1_
private
std::vector<double> HLTEgammaGenericQuadraticEtaFilter::thrRegularEB2_
private
std::vector<double> HLTEgammaGenericQuadraticEtaFilter::thrRegularEE1_
private
std::vector<double> HLTEgammaGenericQuadraticEtaFilter::thrRegularEE2_
private
bool HLTEgammaGenericQuadraticEtaFilter::useEt_
private
edm::InputTag HLTEgammaGenericQuadraticEtaFilter::varTag_
private
edm::EDGetTokenT<reco::RecoEcalCandidateIsolationMap> HLTEgammaGenericQuadraticEtaFilter::varToken_
private