CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes
HLTScoutingEgammaProducer Class Reference

#include <HLTScoutingEgammaProducer.h>

Inheritance diagram for HLTScoutingEgammaProducer:
edm::global::EDProducer<> edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 HLTScoutingEgammaProducer (const edm::ParameterSet &)
 
 ~HLTScoutingEgammaProducer () override
 
- Public Member Functions inherited from edm::global::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector
< edm::ProductResolverIndex >
const & 
indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector
< edm::ProductResolverIndex >
const & 
putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector
< ProductResolverIndexAndSkipBit >
const & 
itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Types

typedef edm::AssociationMap
< edm::OneToValue< std::vector
< reco::RecoEcalCandidate >
, float, unsigned int > > 
RecoEcalCandMap
 

Private Member Functions

void produce (edm::StreamID sid, edm::Event &iEvent, edm::EventSetup const &setup) const final
 

Private Attributes

const edm::EDGetTokenT
< RecoEcalCandMap
DetaMap_
 
const edm::EDGetTokenT
< RecoEcalCandMap
DphiMap_
 
const edm::EDGetTokenT
< RecoEcalCandMap
EcalPFClusterIsoMap_
 
const edm::EDGetTokenT
< EcalRecHitCollection
ecalRechitEB_
 
const edm::EDGetTokenT
< EcalRecHitCollection
ecalRechitEE_
 
const edm::EDGetTokenT
< reco::RecoEcalCandidateCollection
EgammaCandidateCollection_
 
const double egammaEtaCut
 
const edm::EDGetTokenT
< reco::GsfTrackCollection
EgammaGsfTrackCollection_
 
const double egammaHoverECut
 
const double egammaPtCut
 
const edm::EDGetTokenT
< RecoEcalCandMap
EleGsfTrackIsoMap_
 
const edm::EDGetTokenT
< RecoEcalCandMap
HcalPFClusterIsoMap_
 
const edm::EDGetTokenT
< RecoEcalCandMap
HoverEMap_
 
const int mantissaPrecision
 
const edm::EDGetTokenT
< RecoEcalCandMap
MissingHitsMap_
 
const edm::EDGetTokenT
< RecoEcalCandMap
OneOEMinusOneOPMap_
 
const edm::EDGetTokenT
< RecoEcalCandMap
R9Map_
 
const int rechitMatrixSize
 
const bool saveRecHitTiming
 
const edm::EDGetTokenT
< RecoEcalCandMap
SigmaIEtaIEtaMap_
 
edm::ESGetToken< CaloTopology,
CaloTopologyRecord
topologyToken_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Description: Producer for Run3ScoutingElectron and Run3ScoutingPhoton

Description: Producer for ScoutingElectron and ScoutingPhoton

Definition at line 54 of file HLTScoutingEgammaProducer.h.

Member Typedef Documentation

Definition at line 56 of file HLTScoutingEgammaProducer.h.

Constructor & Destructor Documentation

HLTScoutingEgammaProducer::HLTScoutingEgammaProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 47 of file HLTScoutingEgammaProducer.cc.

References edm::EDConsumerBase::esConsumes(), and topologyToken_.

49  consumes<reco::RecoEcalCandidateCollection>(iConfig.getParameter<edm::InputTag>("EgammaCandidates"))),
51  consumes<reco::GsfTrackCollection>(iConfig.getParameter<edm::InputTag>("EgammaGsfTracks"))),
52  SigmaIEtaIEtaMap_(consumes<RecoEcalCandMap>(iConfig.getParameter<edm::InputTag>("SigmaIEtaIEtaMap"))),
53  R9Map_(consumes<RecoEcalCandMap>(iConfig.getParameter<edm::InputTag>("r9Map"))),
54  HoverEMap_(consumes<RecoEcalCandMap>(iConfig.getParameter<edm::InputTag>("HoverEMap"))),
55  DetaMap_(consumes<RecoEcalCandMap>(iConfig.getParameter<edm::InputTag>("DetaMap"))),
56  DphiMap_(consumes<RecoEcalCandMap>(iConfig.getParameter<edm::InputTag>("DphiMap"))),
57  MissingHitsMap_(consumes<RecoEcalCandMap>(iConfig.getParameter<edm::InputTag>("MissingHitsMap"))),
58  OneOEMinusOneOPMap_(consumes<RecoEcalCandMap>(iConfig.getParameter<edm::InputTag>("OneOEMinusOneOPMap"))),
59  EcalPFClusterIsoMap_(consumes<RecoEcalCandMap>(iConfig.getParameter<edm::InputTag>("EcalPFClusterIsoMap"))),
60  EleGsfTrackIsoMap_(consumes<RecoEcalCandMap>(iConfig.getParameter<edm::InputTag>("EleGsfTrackIsoMap"))),
61  HcalPFClusterIsoMap_(consumes<RecoEcalCandMap>(iConfig.getParameter<edm::InputTag>("HcalPFClusterIsoMap"))),
62  egammaPtCut(iConfig.getParameter<double>("egammaPtCut")),
63  egammaEtaCut(iConfig.getParameter<double>("egammaEtaCut")),
64  egammaHoverECut(iConfig.getParameter<double>("egammaHoverECut")),
65  mantissaPrecision(iConfig.getParameter<int>("mantissaPrecision")),
66  saveRecHitTiming(iConfig.getParameter<bool>("saveRecHitTiming")),
67  rechitMatrixSize(iConfig.getParameter<int>("rechitMatrixSize")), //(2n+1)^2
68  ecalRechitEB_(consumes<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>("ecalRechitEB"))),
69  ecalRechitEE_(consumes<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>("ecalRechitEE"))) {
70  //register products
71  produces<Run3ScoutingElectronCollection>();
72  produces<Run3ScoutingPhotonCollection>();
74 }
const edm::EDGetTokenT< RecoEcalCandMap > SigmaIEtaIEtaMap_
const edm::EDGetTokenT< EcalRecHitCollection > ecalRechitEE_
edm::ESGetToken< CaloTopology, CaloTopologyRecord > topologyToken_
const edm::EDGetTokenT< RecoEcalCandMap > R9Map_
const edm::EDGetTokenT< reco::GsfTrackCollection > EgammaGsfTrackCollection_
const edm::EDGetTokenT< RecoEcalCandMap > EleGsfTrackIsoMap_
const edm::EDGetTokenT< RecoEcalCandMap > HoverEMap_
const edm::EDGetTokenT< reco::RecoEcalCandidateCollection > EgammaCandidateCollection_
const edm::EDGetTokenT< RecoEcalCandMap > DetaMap_
const edm::EDGetTokenT< RecoEcalCandMap > OneOEMinusOneOPMap_
const edm::EDGetTokenT< RecoEcalCandMap > MissingHitsMap_
const edm::EDGetTokenT< RecoEcalCandMap > DphiMap_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const edm::EDGetTokenT< EcalRecHitCollection > ecalRechitEB_
const edm::EDGetTokenT< RecoEcalCandMap > HcalPFClusterIsoMap_
const edm::EDGetTokenT< RecoEcalCandMap > EcalPFClusterIsoMap_
HLTScoutingEgammaProducer::~HLTScoutingEgammaProducer ( )
overridedefault

Member Function Documentation

void HLTScoutingEgammaProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 295 of file HLTScoutingEgammaProducer.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), submitPVResolutionJobs::desc, and HLT_FULL_cff::InputTag.

295  {
297  desc.add<edm::InputTag>("EgammaCandidates", edm::InputTag("hltEgammaCandidates"));
298  desc.add<edm::InputTag>("EgammaGsfTracks", edm::InputTag("hltEgammaGsfTracks"));
299  desc.add<edm::InputTag>("SigmaIEtaIEtaMap", edm::InputTag("hltEgammaClusterShape:sigmaIEtaIEta5x5"));
300  desc.add<edm::InputTag>("r9Map", edm::InputTag("hltEgammaR9ID:r95x5"));
301  desc.add<edm::InputTag>("HoverEMap", edm::InputTag("hltEgammaHoverE"));
302  desc.add<edm::InputTag>("DetaMap", edm::InputTag("hltEgammaGsfTrackVars:DetaSeed"));
303  desc.add<edm::InputTag>("DphiMap", edm::InputTag("hltEgammaGsfTrackVars:Dphi"));
304  desc.add<edm::InputTag>("MissingHitsMap", edm::InputTag("hltEgammaGsfTrackVars:MissingHits"));
305  desc.add<edm::InputTag>("OneOEMinusOneOPMap", edm::InputTag("hltEgammaGsfTrackVars:OneOESuperMinusOneOP"));
306  desc.add<edm::InputTag>("EcalPFClusterIsoMap", edm::InputTag("hltEgammaEcalPFClusterIso"));
307  desc.add<edm::InputTag>("EleGsfTrackIsoMap", edm::InputTag("hltEgammaEleGsfTrackIso"));
308  desc.add<edm::InputTag>("HcalPFClusterIsoMap", edm::InputTag("hltEgammaHcalPFClusterIso"));
309  desc.add<double>("egammaPtCut", 4.0);
310  desc.add<double>("egammaEtaCut", 2.5);
311  desc.add<double>("egammaHoverECut", 1.0);
312  desc.add<bool>("saveRecHitTiming", false);
313  desc.add<int>("mantissaPrecision", 10)->setComment("default float16, change to 23 for float32");
314  desc.add<int>("rechitMatrixSize", 10);
315  desc.add<edm::InputTag>("ecalRechitEB", edm::InputTag("hltEcalRecHit:EcalRecHitsEB"));
316  desc.add<edm::InputTag>("ecalRechitEE", edm::InputTag("hltEcalRecHit:EcalRecHitsEE"));
317  descriptions.add("hltScoutingEgammaProducer", desc);
318 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void HLTScoutingEgammaProducer::produce ( edm::StreamID  sid,
edm::Event iEvent,
edm::EventSetup const &  setup 
) const
finalprivatevirtual

Implements edm::global::EDProducerBase.

Definition at line 79 of file HLTScoutingEgammaProducer.cc.

References funct::abs(), edm::RefToBase< T >::castTo(), RecoTauCleanerPlugins::charge, d0, HLT_FULL_cff::DetaMap, DetaMap_, HLT_FULL_cff::DphiMap, DphiMap_, PVValHelper::dz, HLT_FULL_cff::EcalPFClusterIsoMap, EcalPFClusterIsoMap_, ecalRechitEB_, ecalRechitEE_, EgammaCandidateCollection_, egammaEtaCut, EgammaGsfTrackCollection_, egammaPtCut, HLT_FULL_cff::EleGsfTrackIsoMap, EleGsfTrackIsoMap_, edm::Event::getByToken(), edm::EventSetup::getData(), edm::getRef(), HLT_FULL_cff::HcalPFClusterIsoMap, HcalPFClusterIsoMap_, HLT_FULL_cff::HoverEMap, HoverEMap_, mps_fire::i, edm::Ref< C, T, F >::isAvailable(), edm::Ref< C, T, F >::isNull(), mantissaPrecision, HLT_FULL_cff::MissingHitsMap, MissingHitsMap_, eostools::move(), HLT_FULL_cff::OneOEMinusOneOPMap, OneOEMinusOneOPMap_, edm::Event::put(), R9Map_, recHitE(), rechitMatrixSize, HI_PhotonSkim_cff::rechits, recHitT(), MiniFloatConverter::reduceMantissaToNbitsRounding(), saveRecHitTiming, fileCollector::seed, HLT_FULL_cff::SigmaIEtaIEtaMap, SigmaIEtaIEtaMap_, Cluster2ndMoments::sMaj, Cluster2ndMoments::sMin, topologyToken_, and HLT_FULL_cff::track.

79  {
80  using namespace edm;
81 
82  auto outElectrons = std::make_unique<Run3ScoutingElectronCollection>();
83  auto outPhotons = std::make_unique<Run3ScoutingPhotonCollection>();
84 
85  // Get RecoEcalCandidate
86  Handle<reco::RecoEcalCandidateCollection> EgammaCandidateCollection;
87  if (!iEvent.getByToken(EgammaCandidateCollection_, EgammaCandidateCollection)) {
88  iEvent.put(std::move(outElectrons));
89  iEvent.put(std::move(outPhotons));
90  return;
91  }
92 
93  // Get GsfTrack
94  Handle<reco::GsfTrackCollection> EgammaGsfTrackCollection;
95  if (!iEvent.getByToken(EgammaGsfTrackCollection_, EgammaGsfTrackCollection)) {
96  iEvent.put(std::move(outElectrons));
97  iEvent.put(std::move(outPhotons));
98  return;
99  }
100 
101  // Get SigmaIEtaIEtaMap
104  iEvent.put(std::move(outElectrons));
105  iEvent.put(std::move(outPhotons));
106  return;
107  }
108 
110  if (!iEvent.getByToken(R9Map_, R9Map)) {
111  iEvent.put(std::move(outElectrons));
112  iEvent.put(std::move(outPhotons));
113  return;
114  }
115 
116  // Get HoverEMap
118  if (!iEvent.getByToken(HoverEMap_, HoverEMap)) {
119  iEvent.put(std::move(outElectrons));
120  iEvent.put(std::move(outPhotons));
121  return;
122  }
123 
124  // Get DetaMap
126  if (!iEvent.getByToken(DetaMap_, DetaMap)) {
127  iEvent.put(std::move(outElectrons));
128  iEvent.put(std::move(outPhotons));
129  return;
130  }
131 
132  // Get DphiMap
134  if (!iEvent.getByToken(DphiMap_, DphiMap)) {
135  iEvent.put(std::move(outElectrons));
136  iEvent.put(std::move(outPhotons));
137  return;
138  }
139 
140  // Get MissingHitsMap
142  if (!iEvent.getByToken(MissingHitsMap_, MissingHitsMap)) {
143  iEvent.put(std::move(outElectrons));
144  iEvent.put(std::move(outPhotons));
145  return;
146  }
147 
148  // Get 1/E - 1/p Map
151  iEvent.put(std::move(outElectrons));
152  iEvent.put(std::move(outPhotons));
153  return;
154  }
155 
156  // Get EcalPFClusterIsoMap
159  iEvent.put(std::move(outElectrons));
160  iEvent.put(std::move(outPhotons));
161  return;
162  }
163 
164  // Get EleGsfTrackIsoMap
167  iEvent.put(std::move(outElectrons));
168  iEvent.put(std::move(outPhotons));
169  return;
170  }
171 
172  // Get HcalPFClusterIsoMap
175  iEvent.put(std::move(outElectrons));
176  iEvent.put(std::move(outPhotons));
177  return;
178  }
179 
182  iEvent.getByToken(ecalRechitEB_, rechitsEB);
183  iEvent.getByToken(ecalRechitEE_, rechitsEE);
184 
185  const CaloTopology* topology = &setup.getData(topologyToken_);
186 
187  // Produce electrons and photons
188  int index = 0;
189  for (auto& candidate : *EgammaCandidateCollection) {
190  reco::RecoEcalCandidateRef candidateRef = getRef(EgammaCandidateCollection, index);
191  ++index;
192  if (candidateRef.isNull() && !candidateRef.isAvailable())
193  continue;
194 
195  if (candidate.pt() < egammaPtCut)
196  continue;
197  if (fabs(candidate.eta()) > egammaEtaCut)
198  continue;
199 
200  reco::SuperClusterRef scRef = candidate.superCluster();
201  if (scRef.isNull() && !scRef.isAvailable())
202  continue;
203 
204  reco::CaloClusterPtr SCseed = candidate.superCluster()->seed();
205  const EcalRecHitCollection* rechits = (std::abs(scRef->eta()) < 1.479) ? rechitsEB.product() : rechitsEE.product();
206  Cluster2ndMoments moments = EcalClusterTools::cluster2ndMoments(*SCseed, *rechits);
207  float sMin = moments.sMin;
208  float sMaj = moments.sMaj;
209 
210  uint32_t seedId = (*SCseed).seed();
211 
212  std::vector<DetId> mDetIds = EcalClusterTools::matrixDetId((topology), (*SCseed).seed(), rechitMatrixSize);
213 
214  int detSize = mDetIds.size();
215  std::vector<uint32_t> mDetIdIds(detSize, 0);
216  std::vector<float> mEnergies(detSize, 0.);
217  std::vector<float> mTimes(detSize, 0.);
218 
219  for (int i = 0; i < detSize; i++) {
220  mDetIdIds[i] = mDetIds[i];
221  mEnergies[i] =
223  if (saveRecHitTiming)
225  }
226 
227  float HoE = 999.;
228  if (candidate.superCluster()->energy() != 0.)
229  HoE = (*HoverEMap)[candidateRef] / candidate.superCluster()->energy();
230 
231  float d0 = 0.0;
232  float dz = 0.0;
233  int charge = -999;
234  for (auto& track : *EgammaGsfTrackCollection) {
235  RefToBase<TrajectorySeed> seed = track.extra()->seedRef();
237  RefToBase<reco::CaloCluster> caloCluster = elseed->caloCluster();
238  reco::SuperClusterRef scRefFromTrk = caloCluster.castTo<reco::SuperClusterRef>();
239  if (scRefFromTrk == scRef) {
240  d0 = track.d0();
241  dz = track.dz();
242  charge = track.charge();
243  }
244  }
245  if (charge == -999) { // No associated track. Candidate is a scouting photon
246  outPhotons->emplace_back(candidate.pt(),
247  candidate.eta(),
248  candidate.phi(),
249  candidate.mass(),
250  (*SigmaIEtaIEtaMap)[candidateRef],
251  HoE,
252  (*EcalPFClusterIsoMap)[candidateRef],
253  (*HcalPFClusterIsoMap)[candidateRef],
254  0.,
255  (*R9Map)[candidateRef],
256  sMin,
257  sMaj,
258  seedId,
259  mEnergies,
260  mDetIdIds,
261  mTimes); //read for(ieta){for(iphi){}}
262  } else { // Candidate is a scouting electron
263  outElectrons->emplace_back(candidate.pt(),
264  candidate.eta(),
265  candidate.phi(),
266  candidate.mass(),
267  d0,
268  dz,
269  (*DetaMap)[candidateRef],
270  (*DphiMap)[candidateRef],
271  (*SigmaIEtaIEtaMap)[candidateRef],
272  HoE,
273  (*OneOEMinusOneOPMap)[candidateRef],
274  (*MissingHitsMap)[candidateRef],
275  charge,
276  (*EcalPFClusterIsoMap)[candidateRef],
277  (*HcalPFClusterIsoMap)[candidateRef],
278  (*EleGsfTrackIsoMap)[candidateRef],
279  (*R9Map)[candidateRef],
280  sMin,
281  sMaj,
282  seedId,
283  mEnergies,
284  mDetIdIds,
285  mTimes); //read for(ieta){for(iphi){}}
286  }
287  }
288 
289  // Put output
290  iEvent.put(std::move(outElectrons));
291  iEvent.put(std::move(outPhotons));
292 }
helper::MatcherGetRef< C >::ref_type getRef(const Handle< C > &c, size_t k)
Definition: getRef.h:28
bool isAvailable() const
Definition: Ref.h:537
const edm::EDGetTokenT< RecoEcalCandMap > SigmaIEtaIEtaMap_
const edm::EDGetTokenT< EcalRecHitCollection > ecalRechitEE_
edm::ESGetToken< CaloTopology, CaloTopologyRecord > topologyToken_
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
const edm::EDGetTokenT< RecoEcalCandMap > R9Map_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
const edm::EDGetTokenT< reco::GsfTrackCollection > EgammaGsfTrackCollection_
const edm::EDGetTokenT< RecoEcalCandMap > EleGsfTrackIsoMap_
const edm::EDGetTokenT< RecoEcalCandMap > HoverEMap_
const edm::EDGetTokenT< reco::RecoEcalCandidateCollection > EgammaCandidateCollection_
tuple MissingHitsMap
tuple EcalPFClusterIsoMap
const edm::EDGetTokenT< RecoEcalCandMap > DetaMap_
def move
Definition: eostools.py:511
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isNull() const
Checks for null.
Definition: Ref.h:235
float recHitT(const DetId id, const EcalRecHitCollection &recHits)
tuple EleGsfTrackIsoMap
const edm::EDGetTokenT< RecoEcalCandMap > OneOEMinusOneOPMap_
const edm::EDGetTokenT< RecoEcalCandMap > MissingHitsMap_
const edm::EDGetTokenT< RecoEcalCandMap > DphiMap_
tuple SigmaIEtaIEtaMap
static constexpr float d0
REF castTo() const
Definition: RefToBase.h:257
tuple HcalPFClusterIsoMap
tuple OneOEMinusOneOPMap
static float reduceMantissaToNbitsRounding(const float &f)
Definition: libminifloat.h:79
const edm::EDGetTokenT< EcalRecHitCollection > ecalRechitEB_
float recHitE(const DetId id, const EcalRecHitCollection &recHits)
const edm::EDGetTokenT< RecoEcalCandMap > HcalPFClusterIsoMap_
const edm::EDGetTokenT< RecoEcalCandMap > EcalPFClusterIsoMap_

Member Data Documentation

const edm::EDGetTokenT<RecoEcalCandMap> HLTScoutingEgammaProducer::DetaMap_
private

Definition at line 72 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const edm::EDGetTokenT<RecoEcalCandMap> HLTScoutingEgammaProducer::DphiMap_
private

Definition at line 73 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const edm::EDGetTokenT<RecoEcalCandMap> HLTScoutingEgammaProducer::EcalPFClusterIsoMap_
private

Definition at line 76 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const edm::EDGetTokenT<EcalRecHitCollection> HLTScoutingEgammaProducer::ecalRechitEB_
private

Definition at line 89 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const edm::EDGetTokenT<EcalRecHitCollection> HLTScoutingEgammaProducer::ecalRechitEE_
private

Definition at line 90 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const edm::EDGetTokenT<reco::RecoEcalCandidateCollection> HLTScoutingEgammaProducer::EgammaCandidateCollection_
private

Definition at line 67 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const double HLTScoutingEgammaProducer::egammaEtaCut
private

Definition at line 83 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const edm::EDGetTokenT<reco::GsfTrackCollection> HLTScoutingEgammaProducer::EgammaGsfTrackCollection_
private

Definition at line 68 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const double HLTScoutingEgammaProducer::egammaHoverECut
private

Definition at line 84 of file HLTScoutingEgammaProducer.h.

const double HLTScoutingEgammaProducer::egammaPtCut
private

Definition at line 82 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const edm::EDGetTokenT<RecoEcalCandMap> HLTScoutingEgammaProducer::EleGsfTrackIsoMap_
private

Definition at line 77 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const edm::EDGetTokenT<RecoEcalCandMap> HLTScoutingEgammaProducer::HcalPFClusterIsoMap_
private

Definition at line 78 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const edm::EDGetTokenT<RecoEcalCandMap> HLTScoutingEgammaProducer::HoverEMap_
private

Definition at line 71 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const int HLTScoutingEgammaProducer::mantissaPrecision
private

Definition at line 85 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const edm::EDGetTokenT<RecoEcalCandMap> HLTScoutingEgammaProducer::MissingHitsMap_
private

Definition at line 74 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const edm::EDGetTokenT<RecoEcalCandMap> HLTScoutingEgammaProducer::OneOEMinusOneOPMap_
private

Definition at line 75 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const edm::EDGetTokenT<RecoEcalCandMap> HLTScoutingEgammaProducer::R9Map_
private

Definition at line 70 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const int HLTScoutingEgammaProducer::rechitMatrixSize
private

Definition at line 87 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const bool HLTScoutingEgammaProducer::saveRecHitTiming
private

Definition at line 86 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

const edm::EDGetTokenT<RecoEcalCandMap> HLTScoutingEgammaProducer::SigmaIEtaIEtaMap_
private

Definition at line 69 of file HLTScoutingEgammaProducer.h.

Referenced by produce().

edm::ESGetToken<CaloTopology, CaloTopologyRecord> HLTScoutingEgammaProducer::topologyToken_
private

Definition at line 91 of file HLTScoutingEgammaProducer.h.

Referenced by HLTScoutingEgammaProducer(), and produce().