CMS 3D CMS Logo

EgammaEcalPFClusterIsolationProducer.cc
Go to the documentation of this file.
3 
8 
12 
14 
17 
18 template <typename T1>
20  :
21 
22  emObjectProducer_(consumes<T1Collection>(config.getParameter<edm::InputTag>("candidateProducer"))),
23  pfClusterProducer_(consumes<reco::PFClusterCollection>(config.getParameter<edm::InputTag>("pfClusterProducer"))),
24  drMax_(config.getParameter<double>("drMax")),
25  drVetoBarrel_(config.getParameter<double>("drVetoBarrel")),
26  drVetoEndcap_(config.getParameter<double>("drVetoEndcap")),
27  etaStripBarrel_(config.getParameter<double>("etaStripBarrel")),
28  etaStripEndcap_(config.getParameter<double>("etaStripEndcap")),
29  energyBarrel_(config.getParameter<double>("energyBarrel")),
30  energyEndcap_(config.getParameter<double>("energyEndcap")) {
31  produces<edm::ValueMap<float>>();
32 }
33 
34 template <typename T1>
36 
37 template <typename T1>
40  desc.add<edm::InputTag>("candidateProducer", edm::InputTag("gedGsfElectrons"));
41  desc.add<edm::InputTag>("pfClusterProducer", edm::InputTag("particleFlowClusterECAL"));
42  desc.add<double>("drMax", 0.3);
43  desc.add<double>("drVetoBarrel", 0.0);
44  desc.add<double>("drVetoEndcap", 0.0);
45  desc.add<double>("etaStripBarrel", 0.0);
46  desc.add<double>("etaStripEndcap", 0.0);
47  desc.add<double>("energyBarrel", 0.0);
48  desc.add<double>("energyEndcap", 0.0);
50 }
51 
52 template <typename T1>
54  edm::Handle<T1Collection> emObjectHandle;
55  iEvent.getByToken(emObjectProducer_, emObjectHandle);
56 
57  auto isoMap = std::make_unique<edm::ValueMap<float>>();
59  std::vector<float> retV(emObjectHandle->size(), 0);
60 
62  iEvent.getByToken(pfClusterProducer_, clusterHandle);
63 
66 
67  for (unsigned int iReco = 0; iReco < emObjectHandle->size(); iReco++) {
68  T1Ref candRef(emObjectHandle, iReco);
69  retV[iReco] = isoAlgo.getSum(candRef, clusterHandle);
70  }
71 
72  filler.insert(emObjectHandle, retV.begin(), retV.end());
73  filler.fill();
74 
75  iEvent.put(std::move(isoMap));
76 }
77 
80 
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:131
const edm::EDGetTokenT< reco::PFClusterCollection > pfClusterProducer_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: config.py:1
std::string defaultModuleLabel()
EgammaEcalPFClusterIsolationProducer< reco::GsfElectron > ElectronEcalPFClusterIsolationProducer
int iEvent
Definition: GenABIO.cc:224
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
EgammaEcalPFClusterIsolationProducer< reco::Photon > PhotonEcalPFClusterIsolationProducer
ParameterDescriptionBase * add(U const &iLabel, T const &value)
const edm::EDGetTokenT< T1Collection > emObjectProducer_
double getSum(T1Ref, edm::Handle< std::vector< reco::PFCluster > >)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
fixed size matrix
HLT enums.
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
Definition: PFClusterFwd.h:9
def move(src, dest)
Definition: eostools.py:511
void produce(edm::Event &, const edm::EventSetup &) override