49 produces<edm::ValueMap<bool> >();
59 descriptions.
add(
"hltDQMMuonSelector", desc);
71 if(!muonHandle.
isValid())
return;
73 std::vector<bool> selResults;
74 for(
auto&
muon : *muonHandle){
75 if(vtxHandle.
isValid() && !vtxHandle->empty()){
78 selResults.push_back(
false);
81 auto valMap = std::make_unique<edm::ValueMap<bool> >();
83 filler.insert(muonHandle, selResults.begin(), selResults.end());
90 const std::vector<std::pair<std::string,MuonSelectionType> > strsToEnums = {
98 for(
const auto& strEnumPair : strsToEnums){
99 if(val==strEnumPair.first)
return strEnumPair.second;
101 std::ostringstream validEnums;
102 for(
const auto& strEnumPair : strsToEnums) validEnums <<strEnumPair.first<<
" ";
103 throw cms::Exception(
"InvalidConfig") <<
"invalid muonSelectionType "<<val<<
", allowed values are "<<validEnums.str();
122 edm::LogError(
"HLTDQMMuonSelector")<<
" inconsistent code, an option has been added to MuonSelectionType without updating HLTDQMMuonSelector::passMuonSel";
static MuonSelectionType convertToEnum(const std::string &val)
bool isMediumMuon(const reco::Muon &, bool run2016_hip_mitigation=false)
MuonSelectionType muonSelType_
HLTDQMMuonSelector(const edm::ParameterSet &config)
StringCutObjectSelector< reco::Muon, true > selection_
void produce(edm::Event &, edm::EventSetup const &) override
def setup(process, global_tag, zero_tesla=False)
std::vector< Vertex > VertexCollection
collection of Vertex objects
std::vector< Muon > MuonCollection
collection of Muon objects
bool isLooseMuon(const reco::Muon &)
#define DEFINE_FWK_MODULE(type)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
bool isSoftMuon(const reco::Muon &, const reco::Vertex &, bool run2016_hip_mitigation=false)
bool isHighPtMuon(const reco::Muon &, const reco::Vertex &)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
edm::EDGetTokenT< reco::MuonCollection > muonToken_
bool passMuonSel(const reco::Muon &muon, const reco::Vertex &vertex) const
bool isTightMuon(const reco::Muon &, const reco::Vertex &)
edm::EDGetTokenT< reco::VertexCollection > vtxToken_