97 typedef std::vector<edm::ParameterSet>
VPSet;
100 for (VPSet::const_iterator builderPSet =
builders.begin(); builderPSet !=
builders.end(); ++builderPSet) {
108 for (VPSet::const_iterator modfierPSet = modfiers.begin(); modfierPSet != modfiers.end(); ++modfierPSet) {
122 produces<reco::PFTauCollection>();
144 builder->setup(evt, es);
147 modifier->setup(evt, es);
151 auto output = std::make_unique<reco::PFTauCollection>();
155 for (
size_t i_j = 0; i_j < jetView->
size(); ++i_j) {
156 const auto& jetRef = jetView->
refAt(i_j);
163 if (jetRegionRef.
isNull()) {
164 throw cms::Exception(
"BadJetRegionRef") <<
"No jet region can be found for the current jet: " << jetRef.id();
167 std::vector<reco::CandidatePtr> jetCands = jetRef->daughterPtrVector();
168 std::vector<reco::CandidatePtr> allRegionalCands = jetRegionRef->daughterPtrVector();
170 std::sort(jetCands.begin(), jetCands.end());
171 std::sort(allRegionalCands.begin(), allRegionalCands.end());
173 std::vector<reco::CandidatePtr> uniqueRegionalCands;
177 if (allRegionalCands.size() > jetCands.size()) {
178 uniqueRegionalCands.reserve(allRegionalCands.size() - jetCands.size());
182 std::set_difference(allRegionalCands.begin(),
183 allRegionalCands.end(),
186 std::back_inserter(uniqueRegionalCands));
189 const std::vector<reco::PFRecoTauChargedHadron>& chargedHadrons = (*chargedHadronAssoc)[jetRef];
192 const std::vector<reco::RecoTauPiZero>& piZeros = (*piZeroAssoc)[jetRef];
194 unsigned int nTausBuilt = 0;
198 (*builder)(jetRef, chargedHadrons, piZeros, uniqueRegionalCands));
205 nTausBuilt +=
taus.size();
220 reco::PFTau nullTau(std::numeric_limits<int>::quiet_NaN(), jetRef->p4());
222 output->push_back(nullTau);
234 modifier->endEvent();
252 vpsd_modifiers.
add<
int>(
"verbosity", 0);
257 vpsd_modifiers.
addOptional<
double>(
"maximumForElectrionPreIDOutput");
258 vpsd_modifiers.
addOptional<
double>(
"ElecPreIDLeadTkMatch_maxDR");
259 vpsd_modifiers.
addOptional<
double>(
"EcalStripSumE_minClusEnergy");
260 vpsd_modifiers.
addOptional<
double>(
"EcalStripSumE_deltaPhiOverQ_minValue");
261 vpsd_modifiers.
addOptional<
double>(
"EcalStripSumE_deltaPhiOverQ_maxValue");
262 vpsd_modifiers.
addOptional<
double>(
"EcalStripSumE_deltaEta");
263 vpsd_modifiers.
addOptional<
double>(
"dRaddNeutralHadron");
266 vpsd_modifiers.
addOptional<
double>(
"minNeutralHadronEt");
269 desc.addVPSet(
"modifiers", vpsd_modifiers);
273 desc.add<
double>(
"maxJetAbsEta", 2.5);
274 desc.add<
std::string>(
"outputSelection",
"leadPFChargedHadrCand().isNonnull()");
276 desc.add<
double>(
"minJetPt", 14.0);
283 desc_builders.
add<
int>(
"verbosity", 0);
288 desc_decayModes.
add<
unsigned int>(
"nPiZeros", 0);
289 desc_decayModes.
add<
unsigned int>(
"maxPiZeros", 0);
290 desc_decayModes.
add<
unsigned int>(
"nCharged", 1);
291 desc_decayModes.
add<
unsigned int>(
"maxTracks", 6);
294 desc_builders.
add<
double>(
"minAbsPhotonSumPt_insideSignalCone", 2.5);
295 desc_builders.
add<
double>(
"minRelPhotonSumPt_insideSignalCone", 0.1);
299 desc_builders.
addOptional<
double>(
"isolationConeSize");
300 desc_builders.
addOptional<
double>(
"minAbsPhotonSumPt_outsideSignalCone");
301 desc_builders.
addOptional<
double>(
"minRelPhotonSumPt_outsideSignalCone");
307 desc_builders.
addOptional<
int>(
"maxSignalConeChargedHadrons");
313 std::vector<edm::ParameterSet> vpset_default;
318 pset_default_builders.
addParameter<
int>(
"verbosity", 0);
319 pset_default_builders.
addParameter<
double>(
"minAbsPhotonSumPt_insideSignalCone", 2.5);
320 pset_default_builders.
addParameter<
double>(
"minRelPhotonSumPt_insideSignalCone", 0.1);
322 vpset_default.push_back(pset_default_builders);
324 desc.addVPSet(
"builders", desc_builders, vpset_default);
327 desc.add<
bool>(
"buildNullTaus",
false);
328 desc.add<
int>(
"verbosity", 0);
329 descriptions.
add(
"combinatoricRecoTaus",
desc);