CMS 3D CMS Logo

GenericClusterImporter.cc
Go to the documentation of this file.
5 
7 public:
9  : BlockElementImporterBase(conf, sumes),
10  _src(sumes.consumes<reco::PFClusterCollection>(conf.getParameter<edm::InputTag>("source"))) {}
11 
12  void importToBlock(const edm::Event&, ElementList&) const override;
13 
14 private:
16 };
17 
19 
21  auto clusters = e.getHandle(_src);
22  auto cbegin = clusters->cbegin();
23  auto cend = clusters->cend();
24  for (auto clus = cbegin; clus != cend; ++clus) {
26  reco::PFClusterRef cref(clusters, std::distance(cbegin, clus));
27  switch (clus->layer()) {
28  case PFLayer::PS1:
30  break;
31  case PFLayer::PS2:
33  break;
37  break;
41  break;
44  break;
45  case PFLayer::HF_EM:
47  break;
48  case PFLayer::HF_HAD:
50  break;
51  case PFLayer::HGCAL:
53  break;
54  default:
55  throw cms::Exception("InvalidPFLayer") << "Layer given, " << clus->layer() << " is not a valid PFLayer!";
56  }
57  reco::PFBlockElement* cptr = new reco::PFBlockElementCluster(cref, type);
58  elems.emplace_back(cptr);
59  }
60 }
type
Definition: HCALResponse.h:21
Abstract base class for a PFBlock element (track, cluster...)
Handle< PROD > getHandle(EDGetTokenT< PROD > token) const
Definition: Event.h:547
GenericClusterImporter(const edm::ParameterSet &conf, edm::ConsumesCollector &sumes)
fixed size matrix
HLT enums.
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
Definition: PFClusterFwd.h:9
#define DEFINE_EDM_PLUGIN(factory, type, name)
std::vector< std::unique_ptr< reco::PFBlockElement > > ElementList
edm::EDGetTokenT< reco::PFClusterCollection > _src
void importToBlock(const edm::Event &, ElementList &) const override