|
 |
Go to the documentation of this file. 1 #ifndef PhysicsTools_SelectorUtils_interface_PFJetIDSelectionFunctor_h
2 #define PhysicsTools_SelectorUtils_interface_PFJetIDSelectionFunctor_h
41 if (versionStr ==
"FIRSTDATA")
43 else if (versionStr ==
"RUNIISTARTUP")
47 else if (versionStr ==
"WINTER16")
49 else if (versionStr ==
"WINTER17")
51 else if (versionStr ==
"WINTER17PUPPI")
53 else if (versionStr ==
"SUMMER18")
55 else if (versionStr ==
"SUMMER18PUPPI")
60 if (qualityStr ==
"LOOSE")
62 else if (qualityStr ==
"TIGHT")
64 else if (qualityStr ==
"TIGHTLEPVETO")
73 set(
"CHF",
params.getParameter<
double>(
"CHF"));
75 set(
"NHF",
params.getParameter<
double>(
"NHF"));
79 set(
"CEF",
params.getParameter<
double>(
"CEF"));
82 set(
"NEF",
params.getParameter<
double>(
"NEF"));
84 set(
"NCH",
params.getParameter<
int>(
"NCH"));
85 if (
params.exists(
"nConstituents"))
86 set(
"nConstituents",
params.getParameter<
int>(
"nConstituents"));
88 if (
params.exists(
"NEF_FW"))
89 set(
"NEF_FW",
params.getParameter<
double>(
"NEF_FW"));
90 if (
params.exists(
"nNeutrals_FW"))
91 set(
"nNeutrals_FW",
params.getParameter<
int>(
"nNeutrals_FW"));
94 if (
params.exists(
"NHF_EC"))
95 set(
"NHF_EC",
params.getParameter<
double>(
"NHF_EC"));
96 if (
params.exists(
"NEF_EC"))
97 set(
"NEF_EC",
params.getParameter<
double>(
"NEF_EC"));
98 if (
params.exists(
"nNeutrals_EC"))
99 set(
"nNeutrals_EC",
params.getParameter<
int>(
"nNeutrals_EC"));
100 if (
params.exists(
"NEF_FW"))
101 set(
"NEF_FW",
params.getParameter<
double>(
"NEF_FW"));
102 if (
params.exists(
"nNeutrals_FW"))
103 set(
"nNeutrals_FW",
params.getParameter<
int>(
"nNeutrals_FW"));
106 set(
"MUF",
params.getParameter<
double>(
"MUF"));
110 if (
params.exists(
"NEF_EC_L"))
111 set(
"NEF_EC_L",
params.getParameter<
double>(
"NEF_EC_L"));
112 if (
params.exists(
"NEF_EC_U"))
113 set(
"NEF_EC_U",
params.getParameter<
double>(
"NEF_EC_U"));
114 if (
params.exists(
"nNeutrals_EC"))
115 set(
"nNeutrals_EC",
params.getParameter<
int>(
"nNeutrals_EC"));
116 if (
params.exists(
"NHF_FW"))
117 set(
"NHF_FW",
params.getParameter<
double>(
"NHF_FW"));
118 if (
params.exists(
"NEF_FW"))
119 set(
"NEF_FW",
params.getParameter<
double>(
"NEF_FW"));
120 if (
params.exists(
"nNeutrals_FW"))
121 set(
"nNeutrals_FW",
params.getParameter<
int>(
"nNeutrals_FW"));
124 set(
"MUF",
params.getParameter<
double>(
"MUF"));
128 if (
params.exists(
"NHF_EC"))
129 set(
"NHF_EC",
params.getParameter<
double>(
"NHF_EC"));
130 if (
params.exists(
"NHF_FW"))
131 set(
"NHF_FW",
params.getParameter<
double>(
"NHF_FW"));
132 if (
params.exists(
"NEF_FW"))
133 set(
"NEF_FW",
params.getParameter<
double>(
"NEF_FW"));
134 if (
params.exists(
"nNeutrals_FW_L"))
135 set(
"nNeutrals_FW_L",
params.getParameter<
int>(
"nNeutrals_FW_L"));
136 if (
params.exists(
"nNeutrals_FW_U"))
137 set(
"nNeutrals_FW_U",
params.getParameter<
int>(
"nNeutrals_FW_U"));
140 set(
"MUF",
params.getParameter<
double>(
"MUF"));
144 if (
params.exists(
"NHF_TR"))
145 set(
"NHF_TR",
params.getParameter<
double>(
"NHF_TR"));
146 if (
params.exists(
"NEF_TR"))
147 set(
"NEF_TR",
params.getParameter<
double>(
"NEF_TR"));
148 if (
params.exists(
"NCH_TR"))
149 set(
"NCH_TR",
params.getParameter<
int>(
"NCH_TR"));
150 if (
params.exists(
"NEF_EC_L"))
151 set(
"NEF_EC_L",
params.getParameter<
double>(
"NEF_EC_L"));
152 if (
params.exists(
"NEF_EC_U"))
153 set(
"NEF_EC_U",
params.getParameter<
double>(
"NEF_EC_U"));
154 if (
params.exists(
"nNeutrals_EC"))
155 set(
"nNeutrals_EC",
params.getParameter<
int>(
"nNeutrals_EC"));
156 if (
params.exists(
"NHF_FW"))
157 set(
"NHF_FW",
params.getParameter<
double>(
"NHF_FW"));
158 if (
params.exists(
"NEF_FW"))
159 set(
"NEF_FW",
params.getParameter<
double>(
"NEF_FW"));
160 if (
params.exists(
"nNeutrals_FW"))
161 set(
"nNeutrals_FW",
params.getParameter<
int>(
"nNeutrals_FW"));
164 set(
"MUF",
params.getParameter<
double>(
"MUF"));
165 if (
params.exists(
"MUF_TR"))
166 set(
"MUF_TR",
params.getParameter<
double>(
"MUF_TR"));
167 if (
params.exists(
"CEF_TR"))
168 set(
"CEF_TR",
params.getParameter<
double>(
"CEF_TR"));
172 if (
params.exists(
"NHF_TR"))
173 set(
"NHF_TR",
params.getParameter<
double>(
"NHF_TR"));
174 if (
params.exists(
"NEF_TR"))
175 set(
"NEF_TR",
params.getParameter<
double>(
"NEF_TR"));
176 if (
params.exists(
"NHF_EC"))
177 set(
"NHF_EC",
params.getParameter<
double>(
"NHF_EC"));
178 if (
params.exists(
"NHF_FW"))
179 set(
"NHF_FW",
params.getParameter<
double>(
"NHF_FW"));
180 if (
params.exists(
"NEF_FW"))
181 set(
"NEF_FW",
params.getParameter<
double>(
"NEF_FW"));
182 if (
params.exists(
"nNeutrals_FW_L"))
183 set(
"nNeutrals_FW_L",
params.getParameter<
int>(
"nNeutrals_FW_L"));
184 if (
params.exists(
"nNeutrals_FW_U"))
185 set(
"nNeutrals_FW_U",
params.getParameter<
int>(
"nNeutrals_FW_U"));
188 set(
"MUF",
params.getParameter<
double>(
"MUF"));
189 if (
params.exists(
"MUF_TR"))
190 set(
"MUF_TR",
params.getParameter<
double>(
"MUF_TR"));
191 if (
params.exists(
"CEF_TR"))
192 set(
"CEF_TR",
params.getParameter<
double>(
"CEF_TR"));
196 if (
params.exists(
"cutsToIgnore"))
213 if (
jet.currentJECLevel() ==
"Uncorrected" || !
jet.jecSetsAvailable())
257 int nconstituents = 0;
261 reco::PFJet const *pfJet = dynamic_cast<reco::PFJet const *>(&
jet);
262 pat::Jet const *patJet = dynamic_cast<pat::Jet const *>(&
jet);
265 if (patJet !=
nullptr) {
290 reco::PFJet const *pfsub = dynamic_cast<reco::PFJet const *>(&*isub);
291 pat::Jet const *patsub = dynamic_cast<pat::Jet const *>(&*isub);
321 chf = nhf = cef = nef = muf = 0.0;
325 else if (pfJet !=
nullptr) {
330 if (jetEnergyUncorrected > 0.) {
335 muf = pfJet->
muonEnergy() / jetEnergyUncorrected;
343 else if (basicJet !=
nullptr) {
353 reco::PFJet const *pfsub = dynamic_cast<reco::PFJet const *>(&*isub);
688 <<
"The LOOSE operating point is only supported for the WINTER16 JetID version -- defaulting to TIGHT";
699 set(
"nConstituents", 1);
702 set(
"nNeutrals_FW", 10);
706 set(
"nNeutrals_EC", 2);
708 set(
"nNeutrals_FW", 10);
717 set(
"nConstituents", 1);
720 set(
"nNeutrals_FW", 10);
724 set(
"nNeutrals_EC", 2);
726 set(
"nNeutrals_FW", 10);
728 set(
"NEF_EC_L", 0.02);
729 set(
"NEF_EC_U", 0.99);
730 set(
"nNeutrals_EC", 2);
733 set(
"nNeutrals_FW", 10);
738 set(
"nNeutrals_FW_L", 2);
739 set(
"nNeutrals_FW_U", 15);
744 set(
"NEF_EC_L", 0.02);
745 set(
"NEF_EC_U", 0.99);
746 set(
"nNeutrals_EC", 2);
749 set(
"nNeutrals_FW", 10);
756 set(
"nNeutrals_FW_L", 2);
757 set(
"nNeutrals_FW_U", 15);
764 set(
"nConstituents", 1);
767 set(
"NEF_EC_L", 0.02);
768 set(
"NEF_EC_U", 0.99);
769 set(
"nNeutrals_EC", 2);
772 set(
"nNeutrals_FW", 10);
779 set(
"nNeutrals_FW_L", 2);
780 set(
"nNeutrals_FW_U", 15);
786 set(
"nNeutrals_EC", 2);
787 set(
"nNeutrals_FW", 10);
795 set(
"nNeutrals_FW_L", 2);
796 set(
"nNeutrals_FW_U", 15);
802 set(
"nNeutrals_EC", 2);
803 set(
"nNeutrals_FW", 10);
814 set(
"NEF_EC_L", 0.02);
815 set(
"NEF_EC_U", 0.99);
816 set(
"nNeutrals_EC", 2);
819 set(
"nNeutrals_FW", 10);
830 set(
"nNeutrals_FW_L", 2);
831 set(
"nNeutrals_FW_U", 15);
ret
prodAgent to be discontinued
float muonEnergy() const
muonEnergy
void setIgnored(pat::strbitset &ret)
set ignored bits
Functor that operates on <T>
pat::strbitset bits_
the bitset indexed by strings
Base class for all types of Jets.
index_type indexNEF_EC_L_
pat::strbitset::index_type index_type
index_type indexNNeutrals_EC_
bool firstDataCuts(reco::Jet const &jet, pat::strbitset &ret, Version_t version_)
strbitset & set(bool val=true)
set method of all bits
pat::strbitset retInternal_
internal ret if users don't care about return bits
bool ignoreCut(std::string const &s) const
ignore the cut at index "s"
bool operator()(const reco::PFJet &jet, pat::strbitset &ret)
float neutralHadronEnergyFraction() const
neutralHadronEnergyFraction (relative to uncorrected jet energy)
index_type indexNConstituents_
PFJetIDSelectionFunctor(edm::ParameterSet const ¶ms, edm::ConsumesCollector &iC)
PF Jet selector for pat::Jets.
PFJetIDSelectionFunctor(edm::ParameterSet const ¶ms)
float chargedHadronEnergy() const
chargedHadronEnergy
Jets made from CaloTowers.
Analysis-level calorimeter jet class.
float HFEMEnergy() const
HFEMEnergy.
PFJetIDSelectionFunctor(Version_t version, Quality_t quality)
float chargedHadronEnergy() const
chargedHadronEnergy
virtual void push_back(std::string const &s)
This is the registration of an individual cut string.
int chargedMultiplicity() const
chargedMultiplicity
float neutralEmEnergy() const
neutralEmEnergy
float chargedEmEnergy() const
chargedEmEnergy
index_type indexNNeutrals_FW_
int chargedMultiplicity() const
chargedMultiplicity
float neutralHadronEnergy() const
neutralHadronEnergy
bool operator()(const reco::PFJet &jet)
float photonEnergy() const
photonEnergy
pat::strbitset getBitTemplate() const
Get an empty bitset with the proper names.
float chargedEmEnergy() const
chargedEmEnergy
const_iterator end() const
last daughter const_iterator
float neutralEmEnergyFraction() const
neutralEmEnergyFraction (relative to uncorrected jet energy)
void passCut(pat::strbitset &ret, std::string const &s)
Passing cuts.
bool isBasicJet() const
check to see if the jet is no more than a reco::BasicJet
int neutralMultiplicity() const
neutralMultiplicity
index_type indexNEF_EC_U_
bool operator()(const pat::Jet &jet, pat::strbitset &ret) override
This provides the interface for base classes to select objects.
index_type indexNNeutrals_FW_L_
void setIgnoredCuts(std::vector< std::string > const &bitsToIgnore)
set the bits to ignore from a vector
bool isPFJet() const
check to see if the jet is a reco::PFJet
float chargedEmEnergyFraction() const
chargedEmEnergyFraction (relative to uncorrected jet energy)
float muonEnergy() const
muonEnergy
float chargedHadronEnergyFraction() const
chargedHadronEnergyFraction (relative to uncorrected jet energy)
int cut(index_type const &i, int val) const
Access the int cut values at index "s".
float neutralHadronEnergy() const
neutralHadronEnergy
float muonEnergyFraction() const
muonEnergyFraction (relative to corrected jet energy)
int neutralMultiplicity() const
neutralMultiplicity
PFJetIDSelectionFunctor()
Jets made from PFObjects.
float neutralEmEnergy() const
neutralEmEnergy
double energy() const final
energy
void set(std::string const &s, bool val=true)
Set a given selection cut, on or off.
index_type indexNNeutrals_FW_U_
Abs< T >::type abs(const T &t)
const_iterator begin() const
first daughter const_iterator
float electronEnergy() const
electronEnergy