13 #include <boost/regex.hpp> 54 return std::make_unique<alCaHBHEMuonProducer::Counters>();
83 labelBS_(iConfig.getParameter<
edm::
InputTag>(
"BeamSpotLabel")),
84 labelVtx_(iConfig.getParameter<
edm::
InputTag>(
"VertexLabel")),
85 labelEB_(iConfig.getParameter<
edm::
InputTag>(
"EBRecHitLabel")),
86 labelEE_(iConfig.getParameter<
edm::
InputTag>(
"EERecHitLabel")),
87 labelHBHE_(iConfig.getParameter<
edm::
InputTag>(
"HBHERecHitLabel")),
88 labelMuon_(iConfig.getParameter<
edm::
InputTag>(
"MuonLabel")),
89 pMuonMin_(iConfig.getParameter<double>(
"MinimumMuonP")) {
119 <<
iEvent.id().event() <<
" Luminosity " <<
iEvent.luminosityBlock() <<
" Bunch " 120 <<
iEvent.bunchCrossing();
125 if (!bmspot.isValid()) {
137 if (!barrelRecHitsHandle.isValid()) {
143 if (!endcapRecHitsHandle.isValid()) {
149 if (!
hbhe.isValid()) {
155 if (!muonhandle.isValid()) {
161 edm::LogVerbatim(
"HcalHBHEMuon") <<
"AlCaHBHEMuonProducer::obtained the collections with validity flag " <<
valid;
165 auto outputBeamSpot = std::make_unique<reco::BeamSpot>();
166 auto outputVColl = std::make_unique<reco::VertexCollection>();
167 auto outputEBColl = std::make_unique<EBRecHitCollection>();
168 auto outputEEColl = std::make_unique<EERecHitCollection>();
169 auto outputHBHEColl = std::make_unique<HBHERecHitCollection>();
170 auto outputMColl = std::make_unique<reco::MuonCollection>();
174 outputBeamSpot = std::make_unique<reco::BeamSpot>(
187 for (reco::VertexCollection::const_iterator vtr =
vtx.begin(); vtr !=
vtx.end(); ++vtr)
188 outputVColl->push_back(*vtr);
191 outputEBColl->push_back(*ehit);
194 outputEEColl->push_back(*ehit);
196 for (std::vector<HBHERecHit>::const_iterator hhit = hbhecoll.
begin(); hhit != hbhecoll.
end(); ++hhit)
197 outputHBHEColl->push_back(*hhit);
200 outputMColl->push_back(*
muon);
213 globalCache()->nAll_ +=
nAll_;
214 globalCache()->nGood_ +=
nGood_;
231 desc.add<
double>(
"MinimumMuonP", 5.0);
232 descriptions.
add(
"alcaHBHEMuonProducer",
desc);
237 for (
unsigned int k = 0;
k <
muons.size(); ++
k) {
Log< level::Info, true > LogVerbatim
bool select(const reco::MuonCollection &)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
const edm::InputTag labelEE_
std::vector< T >::const_iterator const_iterator
std::vector< Vertex > VertexCollection
collection of Vertex objects
const edm::InputTag labelHBHE_
muons
the two sets of parameters below are mutually exclusive, depending if RECO or ALCARECO is used the us...
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
const edm::InputTag labelBS_
std::vector< Muon > MuonCollection
collection of Muon objects
TupleMultiplicity< TrackerTraits > const HitToTuple< TrackerTraits > const cms::cuda::AtomicPairCounter GPUCACellT< TrackerTraits > const *__restrict__ uint32_t const *__restrict__ CellNeighborsVector< TrackerTraits > const CellTracksVector< TrackerTraits > const OuterHitOfCell< TrackerTraits > const int32_t uint32_t Counters * counters
const edm::InputTag labelEB_
edm::EDGetTokenT< HBHERecHitCollection > tok_HBHE_
std::atomic< unsigned int > nAll_
const edm::InputTag labelVtx_
const edm::InputTag labelMuon_
#define DEFINE_FWK_MODULE(type)
const_iterator begin() const
AlCaHBHEMuonProducer(edm::ParameterSet const &, const alCaHBHEMuonProducer::Counters *count)
const_iterator end() const
std::atomic< unsigned int > nGood_
void add(std::string const &label, ParameterSetDescription const &psetDescription)
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
edm::EDGetTokenT< reco::BeamSpot > tok_BS_
static std::unique_ptr< alCaHBHEMuonProducer::Counters > initializeGlobalCache(edm::ParameterSet const &)
~AlCaHBHEMuonProducer() override
void produce(edm::Event &, const edm::EventSetup &) override
edm::EDGetTokenT< reco::VertexCollection > tok_Vtx_
Log< level::Warning, false > LogWarning
static void globalEndJob(const alCaHBHEMuonProducer::Counters *counters)
void endStream() override
edm::EDGetTokenT< reco::MuonCollection > tok_Muon_