test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Attributes
WPlusJetsEventSelector Class Reference

#include <WPlusJetsEventSelector.h>

Inheritance diagram for WPlusJetsEventSelector:
EventSelector

Public Member Functions

std::vector
< reco::ShallowClonePtrCandidate >
const & 
cleanedJets () const
 
virtual bool operator() (edm::EventBase const &t, pat::strbitset &ret)
 
void printSelectors (std::ostream &out) const
 
virtual void scaleJets (double scale)
 
std::vector
< reco::ShallowClonePtrCandidate >
const & 
selectedElectrons () const
 
std::vector
< reco::ShallowClonePtrCandidate >
const & 
selectedJets () const
 
reco::ShallowClonePtrCandidate
const & 
selectedMET () const
 
std::vector
< reco::ShallowClonePtrCandidate >
const & 
selectedMuons () const
 
 WPlusJetsEventSelector ()
 
 WPlusJetsEventSelector (edm::ParameterSet const &params, edm::ConsumesCollector &&iC)
 
 WPlusJetsEventSelector (edm::ParameterSet const &params)
 
- Public Member Functions inherited from EventSelector
const std::vector< std::string > & description ()
 
 EventSelector ()
 
 EventSelector (const edm::ParameterSet &iConfig, edm::ConsumesCollector &&iC)
 
 EventSelector (const edm::ParameterSet &iConfig, edm::ConsumesCollector &iC)
 
const std::string & name () const
 name of the module (from configuration) More...
 
virtual bool select (const edm::Event &) const =0
 decision of the selector module More...
 
virtual ~EventSelector ()
 

Protected Attributes

std::vector
< reco::ShallowClonePtrCandidate
cleanedJets_
 
index_type conversionIndex_
 
index_type cosmicIndex_
 
ElectronVPlusJetsIDSelectionFunctor electronIdLoose_
 
ElectronVPlusJetsIDSelectionFunctor electronIdTight_
 
edm::InputTag electronTag_
 
edm::EDGetTokenT< std::vector
< pat::Electron > > 
electronToken_
 
double eleEtaMax_
 
double eleEtaMaxLoose_
 
double eleEtMin_
 
double eleEtMinLoose_
 
double eleJetDR_
 
std::string eleTrig_
 
bool ePlusJets_
 
index_type inclusiveIndex_
 
index_type jet1Index_
 
index_type jet2Index_
 
index_type jet3Index_
 
index_type jet4Index_
 
index_type jet5Index_
 
double jetEtaMax_
 
JetIDSelectionFunctor jetIdLoose_
 
double jetPtMin_
 
double jetScale_
 
edm::InputTag jetTag_
 
edm::EDGetTokenT< std::vector
< pat::Jet > > 
jetToken_
 
index_type lep1Index_
 
index_type lep2Index_
 
index_type lep3Index_
 
index_type lep4Index_
 
std::vector
< reco::ShallowClonePtrCandidate
looseElectrons_
 
std::vector
< reco::ShallowClonePtrCandidate
looseMuons_
 
reco::ShallowClonePtrCandidate met_
 
index_type metIndex_
 
double metMin_
 
edm::InputTag metTag_
 
edm::EDGetTokenT< std::vector
< pat::MET > > 
metToken_
 
int minJets_
 
double muEtaMax_
 
double muEtaMaxLoose_
 
double muJetDR_
 
MuonVPlusJetsIDSelectionFunctor muonIdLoose_
 
MuonVPlusJetsIDSelectionFunctor muonIdTight_
 
edm::InputTag muonTag_
 
edm::EDGetTokenT< std::vector
< pat::Muon > > 
muonToken_
 
bool muPlusJets_
 
double muPtMin_
 
double muPtMinLoose_
 
std::string muTrig_
 
PFJetIDSelectionFunctor pfjetIdLoose_
 
index_type pvIndex_
 
PVSelector pvSelector_
 
std::vector
< reco::ShallowClonePtrCandidate
selectedElectrons2_
 
std::vector
< reco::ShallowClonePtrCandidate
selectedElectrons_
 
std::vector
< reco::ShallowClonePtrCandidate
selectedJets_
 
std::vector
< reco::ShallowClonePtrCandidate
selectedMETs_
 
std::vector
< reco::ShallowClonePtrCandidate
selectedMuons_
 
index_type triggerIndex_
 
edm::InputTag trigTag_
 
edm::EDGetTokenT
< pat::TriggerEvent
trigToken_
 
index_type zvetoIndex_
 
- Protected Attributes inherited from EventSelector
std::vector< std::string > description_
 
std::string name_
 

Detailed Description

Definition at line 22 of file WPlusJetsEventSelector.h.

Constructor & Destructor Documentation

WPlusJetsEventSelector::WPlusJetsEventSelector ( )
inline

Definition at line 24 of file WPlusJetsEventSelector.h.

24 {}
WPlusJetsEventSelector::WPlusJetsEventSelector ( edm::ParameterSet const &  params,
edm::ConsumesCollector &&  iC 
)
inline

Definition at line 26 of file WPlusJetsEventSelector.h.

References electronIdLoose_, electronIdTight_, electronTag_, electronToken_, edm::ParameterSet::getParameter(), jetIdLoose_, jetTag_, jetToken_, metTag_, metToken_, muonIdLoose_, muonIdTight_, muonTag_, muonToken_, pfjetIdLoose_, trigTag_, and trigToken_.

26  :
28  {
29  muonToken_ = iC.mayConsume< std::vector< pat::Muon > >(muonTag_);
30  electronToken_ = iC.mayConsume< std::vector< pat::Electron > >(electronTag_);
31  jetToken_ = iC.mayConsume< std::vector< pat::Jet > >(jetTag_);
32  metToken_ = iC.mayConsume< std::vector< pat::MET > >(metTag_);
34  muonIdTight_ = MuonVPlusJetsIDSelectionFunctor( params.getParameter<edm::ParameterSet>("muonIdTight"), iC );
35  electronIdTight_ = ElectronVPlusJetsIDSelectionFunctor(params.getParameter<edm::ParameterSet>("electronIdTight"), iC );
36  muonIdLoose_ = MuonVPlusJetsIDSelectionFunctor( params.getParameter<edm::ParameterSet>("muonIdLoose"), iC );
37  electronIdLoose_ = ElectronVPlusJetsIDSelectionFunctor(params.getParameter<edm::ParameterSet>("electronIdLoose"), iC );
38  jetIdLoose_ = JetIDSelectionFunctor(params.getParameter<edm::ParameterSet>("jetIdLoose"), iC );
39  pfjetIdLoose_ = PFJetIDSelectionFunctor(params.getParameter<edm::ParameterSet>("pfjetIdLoose"), iC );
40  }
ElectronVPlusJetsIDSelectionFunctor electronIdLoose_
ElectronVPlusJetsIDSelectionFunctor electronIdTight_
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
PFJetIDSelectionFunctor pfjetIdLoose_
edm::EDGetTokenT< std::vector< pat::Jet > > jetToken_
JetIDSelectionFunctor jetIdLoose_
edm::EDGetTokenT< std::vector< pat::MET > > metToken_
edm::EDGetTokenT< std::vector< pat::Electron > > electronToken_
PF Jet selector for pat::Jets.
Analysis-level trigger event class.
Definition: TriggerEvent.h:42
Jet selector for pat::Jets and for CaloJets.
MuonVPlusJetsIDSelectionFunctor muonIdLoose_
MuonVPlusJetsIDSelectionFunctor muonIdTight_
edm::EDGetTokenT< pat::TriggerEvent > trigToken_
edm::EDGetTokenT< std::vector< pat::Muon > > muonToken_
WPlusJetsEventSelector::WPlusJetsEventSelector ( edm::ParameterSet const &  params)

Definition at line 9 of file WPlusJetsEventSelector.cc.

References conversionIndex_, cosmicIndex_, edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), inclusiveIndex_, jet1Index_, jet2Index_, jet3Index_, jet4Index_, jet5Index_, lep1Index_, lep2Index_, lep3Index_, lep4Index_, metIndex_, minJets_, pvIndex_, AlCaHLTBitMon_QueryRunRegistry::string, triggerIndex_, and zvetoIndex_.

9  :
10  EventSelector(),
11  muonTag_ (params.getParameter<edm::InputTag>("muonSrc") ),
12  electronTag_ (params.getParameter<edm::InputTag>("electronSrc") ),
13  jetTag_ (params.getParameter<edm::InputTag>("jetSrc") ),
14  metTag_ (params.getParameter<edm::InputTag>("metSrc") ),
15  trigTag_ (params.getParameter<edm::InputTag>("trigSrc") ),
16  muTrig_ (params.getParameter<std::string>("muTrig")),
17  eleTrig_ (params.getParameter<std::string>("eleTrig")),
18  pvSelector_ (params.getParameter<edm::ParameterSet>("pvSelector") ),
19  muonIdTight_ (params.getParameter<edm::ParameterSet>("muonIdTight") ),
20  electronIdTight_ (params.getParameter<edm::ParameterSet>("electronIdTight") ),
21  muonIdLoose_ (params.getParameter<edm::ParameterSet>("muonIdLoose") ),
22  electronIdLoose_ (params.getParameter<edm::ParameterSet>("electronIdLoose") ),
23  jetIdLoose_ (params.getParameter<edm::ParameterSet>("jetIdLoose") ),
24  pfjetIdLoose_ (params.getParameter<edm::ParameterSet>("pfjetIdLoose") ),
25  minJets_ (params.getParameter<int> ("minJets") ),
26  muJetDR_ (params.getParameter<double>("muJetDR")),
27  eleJetDR_ (params.getParameter<double>("eleJetDR")),
28  muPlusJets_ (params.getParameter<bool>("muPlusJets") ),
29  ePlusJets_ (params.getParameter<bool>("ePlusJets") ),
30  muPtMin_ (params.getParameter<double>("muPtMin")),
31  muEtaMax_ (params.getParameter<double>("muEtaMax")),
32  eleEtMin_ (params.getParameter<double>("eleEtMin")),
33  eleEtaMax_ (params.getParameter<double>("eleEtaMax")),
34  muPtMinLoose_ (params.getParameter<double>("muPtMinLoose")),
35  muEtaMaxLoose_ (params.getParameter<double>("muEtaMaxLoose")),
36  eleEtMinLoose_ (params.getParameter<double>("eleEtMinLoose")),
37  eleEtaMaxLoose_ (params.getParameter<double>("eleEtaMaxLoose")),
38  jetPtMin_ (params.getParameter<double>("jetPtMin")),
39  jetEtaMax_ (params.getParameter<double>("jetEtaMax")),
40  jetScale_ (params.getParameter<double>("jetScale")),
41  metMin_ (params.getParameter<double>("metMin"))
42 {
43  // make the bitset
44  push_back( "Inclusive" );
45  push_back( "Trigger" );
46  push_back( "PV" );
47  push_back( ">= 1 Lepton" );
48  push_back( "== 1 Tight Lepton" );
49  push_back( "== 1 Tight Lepton, Mu Veto");
50  push_back( "== 1 Lepton" );
51  push_back( "MET Cut" );
52  push_back( "Z Veto" );
53  push_back( "Conversion Veto");
54  push_back( "Cosmic Veto" );
55  push_back( ">=1 Jets" );
56  push_back( ">=2 Jets" );
57  push_back( ">=3 Jets" );
58  push_back( ">=4 Jets" );
59  push_back( ">=5 Jets" );
60 
61 
62  // turn (almost) everything on by default
63  set( "Inclusive" );
64  set( "Trigger" );
65  set( "PV" );
66  set( ">= 1 Lepton" );
67  set( "== 1 Tight Lepton" );
68  set( "== 1 Tight Lepton, Mu Veto");
69  set( "== 1 Lepton" );
70  set( "MET Cut" );
71  set( "Z Veto" );
72  set( "Conversion Veto");
73  set( "Cosmic Veto" );
74  set( ">=1 Jets", minJets_ >= 1);
75  set( ">=2 Jets", minJets_ >= 2);
76  set( ">=3 Jets", minJets_ >= 3);
77  set( ">=4 Jets", minJets_ >= 4);
78  set( ">=5 Jets", minJets_ >= 5);
79 
80 
81  inclusiveIndex_ = index_type(&bits_, std::string("Inclusive" ));
82  triggerIndex_ = index_type(&bits_, std::string("Trigger" ));
83  pvIndex_ = index_type(&bits_, std::string("PV" ));
84  lep1Index_ = index_type(&bits_, std::string(">= 1 Lepton" ));
85  lep2Index_ = index_type(&bits_, std::string("== 1 Tight Lepton" ));
86  lep3Index_ = index_type(&bits_, std::string("== 1 Tight Lepton, Mu Veto"));
87  lep4Index_ = index_type(&bits_, std::string("== 1 Lepton" ));
88  metIndex_ = index_type(&bits_, std::string("MET Cut" ));
89  zvetoIndex_ = index_type(&bits_, std::string("Z Veto" ));
90  conversionIndex_ = index_type(&bits_, std::string("Conversion Veto"));
91  cosmicIndex_ = index_type(&bits_, std::string("Cosmic Veto" ));
92  jet1Index_ = index_type(&bits_, std::string(">=1 Jets"));
93  jet2Index_ = index_type(&bits_, std::string(">=2 Jets"));
94  jet3Index_ = index_type(&bits_, std::string(">=3 Jets"));
95  jet4Index_ = index_type(&bits_, std::string(">=4 Jets"));
96  jet5Index_ = index_type(&bits_, std::string(">=5 Jets"));
97 
98  if ( params.exists("cutsToIgnore") )
99  setIgnoredCuts( params.getParameter<std::vector<std::string> >("cutsToIgnore") );
100 
101 
102  retInternal_ = getBitTemplate();
103 }
ElectronVPlusJetsIDSelectionFunctor electronIdLoose_
ElectronVPlusJetsIDSelectionFunctor electronIdTight_
PFJetIDSelectionFunctor pfjetIdLoose_
JetIDSelectionFunctor jetIdLoose_
MuonVPlusJetsIDSelectionFunctor muonIdLoose_
MuonVPlusJetsIDSelectionFunctor muonIdTight_

Member Function Documentation

std::vector<reco::ShallowClonePtrCandidate> const& WPlusJetsEventSelector::cleanedJets ( ) const
inline

Definition at line 50 of file WPlusJetsEventSelector.h.

References cleanedJets_.

50 { return cleanedJets_; }
std::vector< reco::ShallowClonePtrCandidate > cleanedJets_
bool WPlusJetsEventSelector::operator() ( edm::EventBase const &  t,
pat::strbitset ret 
)
virtual

Definition at line 105 of file WPlusJetsEventSelector.cc.

References cleanedJets_, conversionIndex_, cosmicIndex_, reco::deltaR(), electronIdLoose_, electronIdTight_, electronTag_, eleEtaMax_, eleEtaMaxLoose_, eleEtMin_, eleEtMinLoose_, eleJetDR_, eleTrig_, ePlusJets_, reco::LeafCandidate::eta(), Selector< T >::getBitTemplate(), inclusiveIndex_, jet1Index_, jet2Index_, jet3Index_, jet4Index_, jet5Index_, jetEtaMax_, jetIdLoose_, jetPtMin_, jetScale_, jetTag_, lep1Index_, lep2Index_, lep3Index_, lep4Index_, looseElectrons_, looseMuons_, met_, metIndex_, metMin_, metTag_, muEtaMax_, muEtaMaxLoose_, muJetDR_, muonIdLoose_, muonIdTight_, muonTag_, muPlusJets_, muPtMin_, muPtMinLoose_, muTrig_, pat::TriggerEvent::path(), pfjetIdLoose_, reco::LeafCandidate::phi(), reco::LeafCandidate::pt(), pvIndex_, pvSelector_, runTheMatrix::ret, selectedElectrons_, selectedJets_, selectedMETs_, selectedMuons_, pat::strbitset::set(), triggerIndex_, trigTag_, pat::TriggerPath::wasAccept(), pat::TriggerEvent::wasAccept(), pat::TriggerEvent::wasRun(), and zvetoIndex_.

106 {
107 
108  ret.set(false);
109 
110  selectedJets_.clear();
111  cleanedJets_.clear();
112  selectedMuons_.clear();
113  selectedElectrons_.clear();
114  looseMuons_.clear();
115  looseElectrons_.clear();
116  selectedMETs_.clear();
117 
118 
119  passCut( ret, inclusiveIndex_);
120 
121 
122  bool passTrig = false;
123  if (!ignoreCut(triggerIndex_) ) {
124 
125 
126  edm::Handle<pat::TriggerEvent> triggerEvent;
127  event.getByLabel(trigTag_, triggerEvent);
128 
129  pat::TriggerEvent const * trig = &*triggerEvent;
130 
131  if ( trig->wasRun() && trig->wasAccept() ) {
132 
133  pat::TriggerPath const * muPath = trig->path(muTrig_);
134 
135  pat::TriggerPath const * elePath = trig->path(eleTrig_);
136 
137  if ( muPlusJets_ && muPath != 0 && muPath->wasAccept() ) {
138  passTrig = true;
139  }
140 
141  if ( ePlusJets_ && elePath != 0 && elePath->wasAccept() ) {
142  passTrig = true;
143  }
144  }
145  }
146 
147 
148 
149 
150  if ( ignoreCut(triggerIndex_) ||
151  passTrig ) {
152  passCut(ret, triggerIndex_);
153 
154 
155  bool passPV = false;
156 
157  passPV = pvSelector_( event );
158  if ( ignoreCut(pvIndex_) || passPV ) {
159  passCut(ret, pvIndex_);
160 
161  edm::Handle< vector< pat::Electron > > electronHandle;
162  event.getByLabel (electronTag_, electronHandle);
163 
165  event.getByLabel (muonTag_, muonHandle);
166 
168 
170 
172  event.getByLabel (metTag_, metHandle);
173 
174  int nElectrons = 0;
175  for ( std::vector<pat::Electron>::const_iterator electronBegin = electronHandle->begin(),
176  electronEnd = electronHandle->end(), ielectron = electronBegin;
177  ielectron != electronEnd; ++ielectron ) {
178  ++nElectrons;
179  // Tight cuts
180  if ( ielectron->et() > eleEtMin_ && fabs(ielectron->eta()) < eleEtaMax_ &&
181  electronIdTight_(*ielectron) &&
182  ielectron->electronID( "eidRobustTight" ) > 0 ) {
183  selectedElectrons_.push_back( reco::ShallowClonePtrCandidate( edm::Ptr<pat::Electron>( electronHandle, ielectron - electronBegin ) ) );
184  } else {
185  // Loose cuts
186  if ( ielectron->et() > eleEtMinLoose_ && fabs(ielectron->eta()) < eleEtaMaxLoose_ &&
187  electronIdLoose_(*ielectron) ) {
188  looseElectrons_.push_back( reco::ShallowClonePtrCandidate( edm::Ptr<pat::Electron>( electronHandle, ielectron - electronBegin ) ) );
189  }
190  }
191  }
192 
193 
194  for ( std::vector<pat::Muon>::const_iterator muonBegin = muonHandle->begin(),
195  muonEnd = muonHandle->end(), imuon = muonBegin;
196  imuon != muonEnd; ++imuon ) {
197  if ( !imuon->isGlobalMuon() ) continue;
198 
199  // Tight cuts
200  bool passTight = muonIdTight_(*imuon,event) && imuon->isTrackerMuon() ;
201  if ( imuon->pt() > muPtMin_ && fabs(imuon->eta()) < muEtaMax_ &&
202  passTight ) {
203 
204  selectedMuons_.push_back( reco::ShallowClonePtrCandidate( edm::Ptr<pat::Muon>( muonHandle, imuon - muonBegin ) ) );
205  } else {
206  // Loose cuts
207  if ( imuon->pt() > muPtMinLoose_ && fabs(imuon->eta()) < muEtaMaxLoose_ &&
208  muonIdLoose_(*imuon,event) ) {
209  looseMuons_.push_back( reco::ShallowClonePtrCandidate( edm::Ptr<pat::Muon>( muonHandle, imuon - muonBegin ) ) );
210  }
211  }
212  }
213 
214 
216  metHandle->at(0).charge(),
217  metHandle->at(0).p4() );
218 
219 
220 
221  event.getByLabel (jetTag_, jetHandle);
224  for ( std::vector<pat::Jet>::const_iterator jetBegin = jetHandle->begin(),
225  jetEnd = jetHandle->end(), ijet = jetBegin;
226  ijet != jetEnd; ++ijet ) {
227  reco::ShallowClonePtrCandidate scaledJet ( reco::ShallowClonePtrCandidate( edm::Ptr<pat::Jet>( jetHandle, ijet - jetBegin ),
228  ijet->charge(),
229  ijet->p4() * jetScale_ ) );
230  bool passJetID = false;
231  if ( ijet->isCaloJet() || ijet->isJPTJet() ) passJetID = jetIdLoose_(*ijet, ret1);
232  else passJetID = pfjetIdLoose_(*ijet, ret2);
233  if ( scaledJet.pt() > jetPtMin_ && fabs(scaledJet.eta()) < jetEtaMax_ && passJetID ) {
234  selectedJets_.push_back( scaledJet );
235 
236  if ( muPlusJets_ ) {
237 
238  //Remove some jets
239  bool indeltaR = false;
240  for( std::vector<reco::ShallowClonePtrCandidate>::const_iterator muonBegin = selectedMuons_.begin(),
241  muonEnd = selectedMuons_.end(), imuon = muonBegin;
242  imuon != muonEnd; ++imuon ) {
243  if( reco::deltaR( imuon->eta(), imuon->phi(), scaledJet.eta(), scaledJet.phi() ) < muJetDR_ )
244  { indeltaR = true; }
245  }
246  if( !indeltaR ) {
247  cleanedJets_.push_back( scaledJet );
248  }// end if jet is not within dR of a muon
249  }// end if mu+jets
250  else {
251  //Remove some jets
252  bool indeltaR = false;
253  for( std::vector<reco::ShallowClonePtrCandidate>::const_iterator electronBegin = selectedElectrons_.begin(),
254  electronEnd = selectedElectrons_.end(), ielectron = electronBegin;
255  ielectron != electronEnd; ++ielectron ) {
256  if( reco::deltaR( ielectron->eta(), ielectron->phi(), scaledJet.eta(), scaledJet.phi() ) < eleJetDR_ )
257  { indeltaR = true; }
258  }
259  if( !indeltaR ) {
260  cleanedJets_.push_back( scaledJet );
261  }// end if jet is not within dR of an electron
262  }// end if e+jets
263  }// end if pass id and kin cuts
264  }// end loop over jets
265 
266 
267 
268  int nleptons = 0;
269  if ( muPlusJets_ )
270  nleptons += selectedMuons_.size();
271 
272  if ( ePlusJets_ )
273  nleptons += selectedElectrons_.size();
274 
275  if ( ignoreCut(lep1Index_) ||
276  ( nleptons > 0 ) ){
277  passCut( ret, lep1Index_);
278 
279  if ( ignoreCut(lep2Index_) ||
280  ( nleptons == 1 ) ){
281  passCut( ret, lep2Index_);
282 
283  bool oneMuon =
284  ( selectedMuons_.size() == 1 &&
285  looseMuons_.size() + selectedElectrons_.size() + looseElectrons_.size() == 0
286  );
287  bool oneElectron =
288  ( selectedElectrons_.size() == 1 &&
289  selectedMuons_.size() == 0
290  );
291 
292  bool oneMuonMuVeto =
293  ( selectedMuons_.size() == 1 &&
294  looseMuons_.size() == 0
295  );
296 
297 
298  if ( ignoreCut(lep3Index_) ||
299  ePlusJets_ ||
300  (muPlusJets_ && oneMuonMuVeto)
301  ) {
302  passCut(ret, lep3Index_);
303 
304  if ( ignoreCut(lep4Index_) ||
305  ( (muPlusJets_ && oneMuon) ^ (ePlusJets_ && oneElectron ) )
306  ) {
307  passCut(ret, lep4Index_);
308 
309  bool metCut = met_.pt() > metMin_;
310  if ( ignoreCut(metIndex_) ||
311  metCut ) {
312  passCut( ret, metIndex_ );
313 
314 
315  bool zVeto = true;
316  if ( selectedMuons_.size() == 2 ) {
317  }
318  if ( selectedElectrons_.size() == 2 ) {
319  }
320  if ( ignoreCut(zvetoIndex_) ||
321  zVeto ){
322  passCut(ret, zvetoIndex_);
323 
324 
325  bool conversionVeto = true;
326  if ( ignoreCut(conversionIndex_) ||
327  conversionVeto ) {
328  passCut(ret,conversionIndex_);
329 
330 
331 
332  bool cosmicVeto = true;
333  if ( ignoreCut(cosmicIndex_) ||
334  cosmicVeto ) {
335  passCut(ret,cosmicIndex_);
336 
337  if ( ignoreCut(jet1Index_) ||
338  static_cast<int>(cleanedJets_.size()) >= 1 ){
339  passCut(ret,jet1Index_);
340  } // end if >=1 tight jets
341 
342  if ( ignoreCut(jet2Index_) ||
343  static_cast<int>(cleanedJets_.size()) >= 2 ){
344  passCut(ret,jet2Index_);
345  } // end if >=2 tight jets
346 
347  if ( ignoreCut(jet3Index_) ||
348  static_cast<int>(cleanedJets_.size()) >= 3 ){
349  passCut(ret,jet3Index_);
350  } // end if >=3 tight jets
351 
352  if ( ignoreCut(jet4Index_) ||
353  static_cast<int>(cleanedJets_.size()) >= 4 ){
354  passCut(ret,jet4Index_);
355  } // end if >=4 tight jets
356 
357  if ( ignoreCut(jet5Index_) ||
358  static_cast<int>(cleanedJets_.size()) >= 5 ){
359  passCut(ret,jet5Index_);
360  } // end if >=5 tight jets
361 
362 
363 
364  } // end if cosmic veto
365 
366  } // end if conversion veto
367 
368  } // end if z veto
369 
370  } // end if met cut
371 
372  } // end if == 1 lepton
373 
374  } // end if == 1 tight lepton with a muon veto separately
375 
376  } // end if == 1 tight lepton
377 
378  } // end if >= 1 lepton
379 
380  } // end if PV
381 
382  } // end if trigger
383 
384 
385  setIgnored(ret);
386 
387  return (bool)ret;
388 }
std::vector< reco::ShallowClonePtrCandidate > selectedElectrons_
bool wasAccept() const
Get the success flag.
Definition: TriggerEvent.h:151
tuple ret
prodAgent to be discontinued
ElectronVPlusJetsIDSelectionFunctor electronIdLoose_
ElectronVPlusJetsIDSelectionFunctor electronIdTight_
PFJetIDSelectionFunctor pfjetIdLoose_
reco::ShallowClonePtrCandidate met_
JetIDSelectionFunctor jetIdLoose_
Analysis-level HLTrigger path class.
Definition: TriggerPath.h:39
std::vector< reco::ShallowClonePtrCandidate > selectedJets_
const TriggerPath * path(const std::string &namePath) const
auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:28
std::vector< reco::ShallowClonePtrCandidate > selectedMuons_
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
Analysis-level trigger event class.
Definition: TriggerEvent.h:42
strbitset & set(bool val=true)
set method of all bits
Definition: strbitset.h:144
pat::strbitset getBitTemplate() const
Get an empty bitset with the proper names.
Definition: Selector.h:212
std::vector< reco::ShallowClonePtrCandidate > looseElectrons_
std::vector< reco::ShallowClonePtrCandidate > selectedMETs_
std::vector< reco::ShallowClonePtrCandidate > cleanedJets_
MuonVPlusJetsIDSelectionFunctor muonIdLoose_
MuonVPlusJetsIDSelectionFunctor muonIdTight_
bool wasRun() const
Get the run flag.
Definition: TriggerEvent.h:149
bool wasAccept() const
Get the success flag.
Definition: TriggerPath.h:121
virtual double pt() const final
transverse momentum
std::vector< reco::ShallowClonePtrCandidate > looseMuons_
void WPlusJetsEventSelector::printSelectors ( std::ostream &  out) const
inline

Definition at line 55 of file WPlusJetsEventSelector.h.

References electronIdLoose_, electronIdTight_, jetIdLoose_, muonIdLoose_, muonIdTight_, pfjetIdLoose_, Selector< T >::print(), and pvSelector_.

55  {
56  out << "PV Selector: " << std::endl;
58  out << "Muon ID Tight Selector: " << std::endl;
60  out << "Electron ID Tight Selector: " << std::endl;
62  out << "Muon ID Loose Selector: " << std::endl;
64  out << "Electron ID Loose Selector: " << std::endl;
66  out << "Calo Jet Selector: " << std::endl;
68  out << "PF Jet Selector: " << std::endl;
70  }
ElectronVPlusJetsIDSelectionFunctor electronIdLoose_
ElectronVPlusJetsIDSelectionFunctor electronIdTight_
PFJetIDSelectionFunctor pfjetIdLoose_
JetIDSelectionFunctor jetIdLoose_
void print(std::ostream &out) const
Print the cut flow.
Definition: Selector.h:233
MuonVPlusJetsIDSelectionFunctor muonIdLoose_
MuonVPlusJetsIDSelectionFunctor muonIdTight_
virtual void WPlusJetsEventSelector::scaleJets ( double  scale)
inlinevirtual
std::vector<reco::ShallowClonePtrCandidate> const& WPlusJetsEventSelector::selectedElectrons ( ) const
inline

Definition at line 51 of file WPlusJetsEventSelector.h.

References selectedElectrons_.

51 { return selectedElectrons_;}
std::vector< reco::ShallowClonePtrCandidate > selectedElectrons_
std::vector<reco::ShallowClonePtrCandidate> const& WPlusJetsEventSelector::selectedJets ( ) const
inline

Definition at line 49 of file WPlusJetsEventSelector.h.

References selectedJets_.

49 { return selectedJets_; }
std::vector< reco::ShallowClonePtrCandidate > selectedJets_
reco::ShallowClonePtrCandidate const& WPlusJetsEventSelector::selectedMET ( ) const
inline

Definition at line 53 of file WPlusJetsEventSelector.h.

References met_.

53 { return met_; }
reco::ShallowClonePtrCandidate met_
std::vector<reco::ShallowClonePtrCandidate> const& WPlusJetsEventSelector::selectedMuons ( ) const
inline

Definition at line 52 of file WPlusJetsEventSelector.h.

References selectedMuons_.

52 { return selectedMuons_; }
std::vector< reco::ShallowClonePtrCandidate > selectedMuons_

Member Data Documentation

std::vector<reco::ShallowClonePtrCandidate> WPlusJetsEventSelector::cleanedJets_
protected

Definition at line 104 of file WPlusJetsEventSelector.h.

Referenced by cleanedJets(), and operator()().

index_type WPlusJetsEventSelector::conversionIndex_
protected

Definition at line 150 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

index_type WPlusJetsEventSelector::cosmicIndex_
protected

Definition at line 151 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

ElectronVPlusJetsIDSelectionFunctor WPlusJetsEventSelector::electronIdLoose_
protected

Definition at line 112 of file WPlusJetsEventSelector.h.

Referenced by operator()(), printSelectors(), and WPlusJetsEventSelector().

ElectronVPlusJetsIDSelectionFunctor WPlusJetsEventSelector::electronIdTight_
protected

Definition at line 110 of file WPlusJetsEventSelector.h.

Referenced by operator()(), printSelectors(), and WPlusJetsEventSelector().

edm::InputTag WPlusJetsEventSelector::electronTag_
protected

Definition at line 78 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

edm::EDGetTokenT< std::vector< pat::Electron > > WPlusJetsEventSelector::electronToken_
protected

Definition at line 80 of file WPlusJetsEventSelector.h.

Referenced by WPlusJetsEventSelector().

double WPlusJetsEventSelector::eleEtaMax_
protected

Definition at line 127 of file WPlusJetsEventSelector.h.

Referenced by operator()().

double WPlusJetsEventSelector::eleEtaMaxLoose_
protected

Definition at line 132 of file WPlusJetsEventSelector.h.

Referenced by operator()().

double WPlusJetsEventSelector::eleEtMin_
protected

Definition at line 126 of file WPlusJetsEventSelector.h.

Referenced by operator()().

double WPlusJetsEventSelector::eleEtMinLoose_
protected

Definition at line 131 of file WPlusJetsEventSelector.h.

Referenced by operator()().

double WPlusJetsEventSelector::eleJetDR_
protected

Definition at line 119 of file WPlusJetsEventSelector.h.

Referenced by operator()().

std::string WPlusJetsEventSelector::eleTrig_
protected

Definition at line 96 of file WPlusJetsEventSelector.h.

Referenced by operator()().

bool WPlusJetsEventSelector::ePlusJets_
protected

Definition at line 122 of file WPlusJetsEventSelector.h.

Referenced by operator()().

index_type WPlusJetsEventSelector::inclusiveIndex_
protected

Definition at line 141 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

index_type WPlusJetsEventSelector::jet1Index_
protected

Definition at line 152 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

index_type WPlusJetsEventSelector::jet2Index_
protected

Definition at line 153 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

index_type WPlusJetsEventSelector::jet3Index_
protected

Definition at line 154 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

index_type WPlusJetsEventSelector::jet4Index_
protected

Definition at line 155 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

index_type WPlusJetsEventSelector::jet5Index_
protected

Definition at line 156 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

double WPlusJetsEventSelector::jetEtaMax_
protected

Definition at line 135 of file WPlusJetsEventSelector.h.

Referenced by operator()().

JetIDSelectionFunctor WPlusJetsEventSelector::jetIdLoose_
protected

Definition at line 113 of file WPlusJetsEventSelector.h.

Referenced by operator()(), printSelectors(), and WPlusJetsEventSelector().

double WPlusJetsEventSelector::jetPtMin_
protected

Definition at line 134 of file WPlusJetsEventSelector.h.

Referenced by operator()().

double WPlusJetsEventSelector::jetScale_
protected

Definition at line 137 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and scaleJets().

edm::InputTag WPlusJetsEventSelector::jetTag_
protected

Definition at line 82 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

edm::EDGetTokenT< std::vector< pat::Jet > > WPlusJetsEventSelector::jetToken_
protected

Definition at line 84 of file WPlusJetsEventSelector.h.

Referenced by WPlusJetsEventSelector().

index_type WPlusJetsEventSelector::lep1Index_
protected

Definition at line 144 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

index_type WPlusJetsEventSelector::lep2Index_
protected

Definition at line 145 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

index_type WPlusJetsEventSelector::lep3Index_
protected

Definition at line 146 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

index_type WPlusJetsEventSelector::lep4Index_
protected

Definition at line 147 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

std::vector<reco::ShallowClonePtrCandidate> WPlusJetsEventSelector::looseElectrons_
protected

Definition at line 102 of file WPlusJetsEventSelector.h.

Referenced by operator()().

std::vector<reco::ShallowClonePtrCandidate> WPlusJetsEventSelector::looseMuons_
protected

Definition at line 101 of file WPlusJetsEventSelector.h.

Referenced by operator()().

reco::ShallowClonePtrCandidate WPlusJetsEventSelector::met_
protected

Definition at line 106 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and selectedMET().

index_type WPlusJetsEventSelector::metIndex_
protected

Definition at line 148 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

double WPlusJetsEventSelector::metMin_
protected

Definition at line 139 of file WPlusJetsEventSelector.h.

Referenced by operator()().

edm::InputTag WPlusJetsEventSelector::metTag_
protected

Definition at line 86 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

edm::EDGetTokenT< std::vector< pat::MET > > WPlusJetsEventSelector::metToken_
protected

Definition at line 88 of file WPlusJetsEventSelector.h.

Referenced by WPlusJetsEventSelector().

int WPlusJetsEventSelector::minJets_
protected

Definition at line 116 of file WPlusJetsEventSelector.h.

Referenced by WPlusJetsEventSelector().

double WPlusJetsEventSelector::muEtaMax_
protected

Definition at line 125 of file WPlusJetsEventSelector.h.

Referenced by operator()().

double WPlusJetsEventSelector::muEtaMaxLoose_
protected

Definition at line 130 of file WPlusJetsEventSelector.h.

Referenced by operator()().

double WPlusJetsEventSelector::muJetDR_
protected

Definition at line 118 of file WPlusJetsEventSelector.h.

Referenced by operator()().

MuonVPlusJetsIDSelectionFunctor WPlusJetsEventSelector::muonIdLoose_
protected

Definition at line 111 of file WPlusJetsEventSelector.h.

Referenced by operator()(), printSelectors(), and WPlusJetsEventSelector().

MuonVPlusJetsIDSelectionFunctor WPlusJetsEventSelector::muonIdTight_
protected

Definition at line 109 of file WPlusJetsEventSelector.h.

Referenced by operator()(), printSelectors(), and WPlusJetsEventSelector().

edm::InputTag WPlusJetsEventSelector::muonTag_
protected

Definition at line 74 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

edm::EDGetTokenT< std::vector< pat::Muon > > WPlusJetsEventSelector::muonToken_
protected

Definition at line 76 of file WPlusJetsEventSelector.h.

Referenced by WPlusJetsEventSelector().

bool WPlusJetsEventSelector::muPlusJets_
protected

Definition at line 121 of file WPlusJetsEventSelector.h.

Referenced by operator()().

double WPlusJetsEventSelector::muPtMin_
protected

Definition at line 124 of file WPlusJetsEventSelector.h.

Referenced by operator()().

double WPlusJetsEventSelector::muPtMinLoose_
protected

Definition at line 129 of file WPlusJetsEventSelector.h.

Referenced by operator()().

std::string WPlusJetsEventSelector::muTrig_
protected

Definition at line 95 of file WPlusJetsEventSelector.h.

Referenced by operator()().

PFJetIDSelectionFunctor WPlusJetsEventSelector::pfjetIdLoose_
protected

Definition at line 114 of file WPlusJetsEventSelector.h.

Referenced by operator()(), printSelectors(), and WPlusJetsEventSelector().

index_type WPlusJetsEventSelector::pvIndex_
protected

Definition at line 143 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

PVSelector WPlusJetsEventSelector::pvSelector_
protected

Definition at line 108 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and printSelectors().

std::vector<reco::ShallowClonePtrCandidate> WPlusJetsEventSelector::selectedElectrons2_
protected

Definition at line 105 of file WPlusJetsEventSelector.h.

std::vector<reco::ShallowClonePtrCandidate> WPlusJetsEventSelector::selectedElectrons_
protected

Definition at line 100 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and selectedElectrons().

std::vector<reco::ShallowClonePtrCandidate> WPlusJetsEventSelector::selectedJets_
protected

Definition at line 98 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and selectedJets().

std::vector<reco::ShallowClonePtrCandidate> WPlusJetsEventSelector::selectedMETs_
protected

Definition at line 103 of file WPlusJetsEventSelector.h.

Referenced by operator()().

std::vector<reco::ShallowClonePtrCandidate> WPlusJetsEventSelector::selectedMuons_
protected

Definition at line 99 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and selectedMuons().

index_type WPlusJetsEventSelector::triggerIndex_
protected

Definition at line 142 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

edm::InputTag WPlusJetsEventSelector::trigTag_
protected

Definition at line 90 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().

edm::EDGetTokenT<pat::TriggerEvent> WPlusJetsEventSelector::trigToken_
protected

Definition at line 92 of file WPlusJetsEventSelector.h.

Referenced by WPlusJetsEventSelector().

index_type WPlusJetsEventSelector::zvetoIndex_
protected

Definition at line 149 of file WPlusJetsEventSelector.h.

Referenced by operator()(), and WPlusJetsEventSelector().