SimG4Core
SensitiveDetector
src
sensitiveDetectorMakers.cc
Go to the documentation of this file.
1
// -*- C++ -*-
2
//
3
// Package: SimG4Core/SensitiveDetector
4
// Class : sensitiveDetectorMakers
5
//
6
// Implementation:
7
// [Notes on implementation]
8
//
9
// Original Author: Christopher Jones
10
// Created: Mon, 07 Jun 2021 19:48:40 GMT
11
//
12
13
// system include files
14
15
// user include files
16
#include "
SimG4Core/SensitiveDetector/interface/sensitiveDetectorMakers.h
"
17
#include "
SimG4Core/SensitiveDetector/interface/SensitiveDetectorPluginFactory.h
"
18
#include "
FWCore/PluginManager/interface/PluginManager.h
"
19
#include "
FWCore/Utilities/interface/Exception.h
"
20
21
namespace
sim
{
22
std::unordered_map<std::string, std::unique_ptr<SensitiveDetectorMakerBase>>
sensitiveDetectorMakers
(
23
edm::ParameterSet
const
&
pset
,
edm::ConsumesCollector
cc
, std::vector<std::string>
const
& chosenMakers) {
24
std::unordered_map<std::string, std::unique_ptr<SensitiveDetectorMakerBase>> retValue;
25
if
(chosenMakers.empty()) {
26
//load all
27
auto
const
& categoriesToInfo =
edmplugin::PluginManager::get
()->
categoryToInfos
();
28
auto
infosItr = categoriesToInfo.find(
SensitiveDetectorPluginFactory::get
()->
category
());
29
if
(infosItr == categoriesToInfo.end()) {
30
throw
cms::Exception
(
"MissingPlugins"
)
31
<<
"When trying to load all SensitiveDetectorMakerBase, no plugins found"
;
32
}
else
{
33
for
(
auto
const
&
info
: infosItr->second) {
34
retValue[
info
.name_] =
SensitiveDetectorPluginFactory::get
()->create(
info
.name_,
pset
,
cc
);
35
}
36
}
37
}
else
{
38
for
(
auto
const
&
name
: chosenMakers) {
39
retValue[
name
] =
SensitiveDetectorPluginFactory::get
()->create(
name
,
pset
,
cc
);
40
}
41
}
42
return
retValue;
43
}
44
}
// namespace sim
taus_updatedMVAIds_cff.category
category
Definition:
taus_updatedMVAIds_cff.py:31
info
static const TGPicture * info(bool iBackgroundIsBlack)
Definition:
FWCollectionSummaryWidget.cc:153
edmplugin::PluginManager::get
static PluginManager * get()
Definition:
PluginManager.cc:306
edmplugin::PluginManager::categoryToInfos
const CategoryToInfos & categoryToInfos() const
Definition:
PluginManager.h:82
edm::ParameterSet
Definition:
ParameterSet.h:47
sim
Definition:
GeometryProducer.h:20
get
#define get
cc
PluginManager.h
sim::sensitiveDetectorMakers
std::unordered_map< std::string, std::unique_ptr< SensitiveDetectorMakerBase > > sensitiveDetectorMakers(edm::ParameterSet const &, edm::ConsumesCollector, std::vector< std::string > const &chosenMakers)
Definition:
sensitiveDetectorMakers.cc:22
Exception
Definition:
hltDiff.cc:245
Skims_PA_cff.name
name
Definition:
Skims_PA_cff.py:17
Exception.h
SensitiveDetectorPluginFactory.h
sensitiveDetectorMakers.h
edm::ConsumesCollector
Definition:
ConsumesCollector.h:45
muonDTDigis_cfi.pset
pset
Definition:
muonDTDigis_cfi.py:27
Generated for CMSSW Reference Manual by
1.8.16