37 : theSACollectionLabel(par.getParameter<
edm::
InputTag>(
"StandAloneCollectionLabel")) {
38 LogDebug(
"Muon|RecoMuon|L2MuonIsolationProducer") <<
" L2MuonIsolationProducer constructor called";
47 theExtractor = std::unique_ptr<reco::isodeposit::IsoDepositExtractor>{
51 bool haveIsolator = !isolatorPSet.
empty();
59 produces<edm::ValueMap<bool>>();
60 produces<reco::IsoDepositMap>();
64 produces<edm::ValueMap<float>>();
70 LogDebug(
"Muon|RecoMuon|L2MuonIsolationProducer") <<
" L2MuonIsolationProducer destructor called";
79 extractorPSet.
add<
double>(
"DR_Veto_H", 0.1);
80 extractorPSet.add<
bool>(
"Vertex_Constraint_Z",
false);
81 extractorPSet.add<
double>(
"Threshold_H", 0.5);
82 extractorPSet.add<
std::string>(
"ComponentName",
"CaloExtractor");
83 extractorPSet.add<
double>(
"Threshold_E", 0.2);
84 extractorPSet.add<
double>(
"DR_Max", 1.0);
85 extractorPSet.add<
double>(
"DR_Veto_E", 0.07);
86 extractorPSet.add<
double>(
"Weight_E", 1.5);
87 extractorPSet.add<
bool>(
"Vertex_Constraint_XY",
false);
88 extractorPSet.addUntracked<
std::string>(
"DepositLabel",
"EcalPlusHcal");
90 extractorPSet.add<
double>(
"Weight_H", 1.0);
95 std::vector<double>
temp;
96 isolatorPSet.add<std::vector<double>>(
"ConeSizesRel", std::vector<double>(1, 0.3));
97 isolatorPSet.add<
double>(
"EffAreaSFEndcap", 1.0);
98 isolatorPSet.add<
bool>(
"CutAbsoluteIso",
true);
99 isolatorPSet.add<
bool>(
"AndOrCuts",
true);
101 isolatorPSet.add<std::vector<double>>(
"ConeSizes", std::vector<double>(1, 0.3));
102 isolatorPSet.add<
std::string>(
"ComponentName",
"CutsIsolatorWithCorrection");
103 isolatorPSet.add<
bool>(
"ReturnRelativeSum",
false);
104 isolatorPSet.add<
double>(
"RhoScaleBarrel", 1.0);
105 isolatorPSet.add<
double>(
"EffAreaSFBarrel", 1.0);
106 isolatorPSet.add<
bool>(
"CutRelativeIso",
false);
107 isolatorPSet.add<std::vector<double>>(
"EtaBounds", std::vector<double>(1, 2.411));
108 isolatorPSet.add<std::vector<double>>(
"Thresholds", std::vector<double>(1, 9.9999999E7));
109 isolatorPSet.add<
bool>(
"ReturnAbsoluteSum",
true);
110 isolatorPSet.add<std::vector<double>>(
"EtaBoundsRel", std::vector<double>(1, 2.411));
111 isolatorPSet.add<std::vector<double>>(
"ThresholdsRel", std::vector<double>(1, 9.9999999E7));
112 isolatorPSet.add<
double>(
"RhoScaleEndcap", 1.0);
113 isolatorPSet.add<
double>(
"RhoMax", 9.9999999E7);
114 isolatorPSet.add<
bool>(
"UseRhoCorrection",
true);
117 desc.add<
bool>(
"WriteIsolatorFloat",
false);
118 descriptions.
add(
"hltL2MuonIsolations",
desc);
134 auto depMap = std::make_unique<reco::IsoDepositMap>();
135 auto isoMap = std::make_unique<edm::ValueMap<bool>>();
136 auto isoFloatMap = std::make_unique<edm::ValueMap<float>>();
140 std::vector<bool> isos(
nMuons,
false);
141 std::vector<float> isoFloats(
nMuons, 0);
145 for (
unsigned int i = 0;
i <
nMuons;
i++) {
152 for (
unsigned int i = 0;
i <
nMuons;
i++) {
180 isoFloatFiller.
insert(
muons, isoFloats.begin(), isoFloats.end());
181 isoFloatFiller.
fill();
187 <<
"================================";
T getParameter(std::string const &) const
~L2MuonIsolationProducer() override
destructor
std::unique_ptr< muonisolation::MuIsoBaseIsolator > theDepositIsolator
const std::string metname
void insert(const H &h, I begin, I end)
std::vector< Track > TrackCollection
collection of Tracks
edm::InputTag theSACollectionLabel
std::unique_ptr< reco::isodeposit::IsoDepositExtractor > theExtractor
ParameterDescriptionBase * add(U const &iLabel, T const &value)
edm::EDGetTokenT< reco::RecoChargedCandidateCollection > theSACollectionToken
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
ParameterSet descriptions.
std::vector< DepositAndVetos > DepositContainer
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void produce(edm::Event &, const edm::EventSetup &) override
Produce isolation maps.
bool optOutputIsolatorFloat
L2MuonIsolationProducer(const edm::ParameterSet &)
constructor with config