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"))
44 push_back(
"Inclusive" );
45 push_back(
"Trigger" );
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" );
67 set(
"== 1 Tight Lepton" );
68 set(
"== 1 Tight Lepton, Mu Veto");
72 set(
"Conversion Veto");
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" ));
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"));
98 if ( params.
exists(
"cutsToIgnore") )
99 setIgnoredCuts( params.
getParameter<std::vector<std::string> >(
"cutsToIgnore") );
102 retInternal_ = getBitTemplate();
122 bool passTrig =
false;
127 event.getByLabel(
trigTag_, triggerEvent);
158 if ( ignoreCut(
pvIndex_) || passPV ) {
165 event.getByLabel (
muonTag_, muonHandle);
172 event.getByLabel (
metTag_, metHandle);
175 for ( std::vector<pat::Electron>::const_iterator electronBegin = electronHandle->begin(),
176 electronEnd = electronHandle->end(), ielectron = electronBegin;
177 ielectron != electronEnd; ++ielectron ) {
182 ielectron->electronID(
"eidRobustTight" ) > 0 ) {
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;
200 bool passTight =
muonIdTight_(*imuon,event) && imuon->isTrackerMuon() ;
216 metHandle->at(0).charge(),
217 metHandle->at(0).p4() );
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 ) {
230 bool passJetID =
false;
231 if ( ijet->isCaloJet() || ijet->isJPTJet() ) passJetID =
jetIdLoose_(*ijet, ret1);
239 bool indeltaR =
false;
240 for( std::vector<reco::ShallowClonePtrCandidate>::const_iterator muonBegin =
selectedMuons_.begin(),
242 imuon != muonEnd; ++imuon ) {
252 bool indeltaR =
false;
253 for( std::vector<reco::ShallowClonePtrCandidate>::const_iterator electronBegin =
selectedElectrons_.begin(),
255 ielectron != electronEnd; ++ielectron ) {
325 bool conversionVeto =
true;
332 bool cosmicVeto =
true;
std::vector< reco::ShallowClonePtrCandidate > selectedElectrons_
bool wasAccept() const
Get the success flag.
T getParameter(std::string const &) const
ElectronVPlusJetsIDSelectionFunctor electronIdLoose_
ElectronVPlusJetsIDSelectionFunctor electronIdTight_
index_type conversionIndex_
PFJetIDSelectionFunctor pfjetIdLoose_
bool exists(std::string const ¶meterName) const
checks if a parameter exists
reco::ShallowClonePtrCandidate met_
virtual double eta() const
momentum pseudorapidity
double deltaR(double eta1, double phi1, double eta2, double phi2)
JetIDSelectionFunctor jetIdLoose_
Analysis-level HLTrigger path class.
std::vector< reco::ShallowClonePtrCandidate > selectedJets_
const TriggerPath * path(const std::string &namePath) const
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.
index_type inclusiveIndex_
virtual bool operator()(edm::EventBase const &t, pat::strbitset &ret)
virtual double pt() const
transverse momentum
edm::InputTag electronTag_
strbitset & set(bool val=true)
set method of all bits
pat::strbitset getBitTemplate() const
Get an empty bitset with the proper names.
std::vector< reco::ShallowClonePtrCandidate > looseElectrons_
std::vector< reco::ShallowClonePtrCandidate > selectedMETs_
std::vector< reco::ShallowClonePtrCandidate > cleanedJets_
MuonVPlusJetsIDSelectionFunctor muonIdLoose_
MuonVPlusJetsIDSelectionFunctor muonIdTight_
virtual double phi() const
momentum azimuthal angle
bool wasRun() const
Get the run flag.
bool wasAccept() const
Get the success flag.
void set(const std::string &name, int value)
set the flag, with a run-time name
std::vector< reco::ShallowClonePtrCandidate > looseMuons_