CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
EgammaHLTPhase2ExtraProducer Class Reference
Inheritance diagram for EgammaHLTPhase2ExtraProducer:
edm::global::EDProducer<> edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Classes

struct  Tokens
 

Public Member Functions

 EgammaHLTPhase2ExtraProducer (const edm::ParameterSet &pset)
 
void produce (edm::StreamID streamID, edm::Event &event, const edm::EventSetup &eventSetup) const override
 
 ~EgammaHLTPhase2ExtraProducer () 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
 
std::vector< bool > const & recordProvenanceList () 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)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~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 &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
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
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
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 Member Functions

template<typename CollType , typename RefType >
std::unique_ptr< CollType > filterObjs (const trigger::EgammaObjectCollection &egTrigObjs, const edm::Handle< CollType > &objs, std::vector< RefType > &orgRefs, float maxDR2=0.4 *0.4) const
 
template<typename RecHitCollection >
std::unique_ptr< RecHitCollection > filterRecHits (const trigger::EgammaObjectCollection &egTrigObjs, const edm::Handle< RecHitCollection > &recHits, const CaloGeometry &geom, float maxDR2=0.4 *0.4) const
 

Static Private Member Functions

template<typename T , typename H >
static std::unique_ptr< edm::ValueMap< T > > makeValueMap (const H &handle, const std::vector< T > &values)
 

Private Attributes

float minPtToSaveHits_
 
std::vector< double > recHitCountThresholds_
 
bool saveHitsPlusHalfPi_
 
bool saveHitsPlusPi_
 
const Tokens tokens_
 

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
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
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<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 82 of file EgammaHLTPhase2ExtraProducer.cc.

Constructor & Destructor Documentation

◆ EgammaHLTPhase2ExtraProducer()

EgammaHLTPhase2ExtraProducer::EgammaHLTPhase2ExtraProducer ( const edm::ParameterSet pset)
explicit

Definition at line 174 of file EgammaHLTPhase2ExtraProducer.cc.

176  minPtToSaveHits_(pset.getParameter<double>("minPtToSaveHits")),
177  saveHitsPlusPi_(pset.getParameter<bool>("saveHitsPlusPi")),
178  saveHitsPlusHalfPi_(pset.getParameter<bool>("saveHitsPlusHalfPi")),
179  recHitCountThresholds_(pset.getParameter<std::vector<double>>("recHitCountThresholds")) {
180  produces<L1TrackCollection>();
181  produces<L1TrackTruthPairCollection>();
182  produces<TrackingParticleCollection>();
183  produces<reco::CaloClusterCollection>("hgcalLayerClusters");
184  produces<edm::ValueMap<std::pair<float, float>>>("hgcalLayerClustersTime");
185  for (auto& tokenLabel : tokens_.hgcal) {
186  produces<HGCRecHitCollection>(tokenLabel.second);
187  for (const auto& thres : recHitCountThresholds_) {
188  produces<int>("countHgcalRecHits" + tokenLabel.second + "Thres" + convertToProdNameStr(thres) + "GeV");
189  }
190  }
191 }

References EgammaHLTPhase2ExtraProducer::Tokens::hgcal, recHitCountThresholds_, and tokens_.

◆ ~EgammaHLTPhase2ExtraProducer()

EgammaHLTPhase2ExtraProducer::~EgammaHLTPhase2ExtraProducer ( )
inlineoverride

Definition at line 85 of file EgammaHLTPhase2ExtraProducer.cc.

85 {}

Member Function Documentation

◆ fillDescriptions()

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

Definition at line 193 of file EgammaHLTPhase2ExtraProducer.cc.

193  {
195  desc.add<edm::InputTag>("egTrigObjs", edm::InputTag("hltEgammaHLTExtra"));
196  desc.add<edm::InputTag>("l1Trks", edm::InputTag("TTTracksFromTrackletEmulation", "Level1TTTracks"));
197  desc.add<edm::InputTag>("trkParts", edm::InputTag("mix", "MergedTrackTruth"));
198  desc.add<edm::InputTag>("l1TrkToTrkPartMap", edm::InputTag("TTTrackAssociatorFromPixelDigis", "Level1TTTracks"));
199  desc.add<edm::InputTag>("hgcalLayerClusters", edm::InputTag("hgcalLayerClusters"));
200  desc.add<edm::InputTag>("hgcalLayerClustersTime", edm::InputTag("hgcalLayerClusters", "timeLayerCluster"));
201  desc.add<double>("minPtToSaveHits", 0.);
202  desc.add<bool>("saveHitsPlusPi", true);
203  desc.add<bool>("saveHitsPlusHalfPi", true);
204  desc.add<std::vector<double>>("recHitCountThresholds", std::vector{0., 0.5, 1.0, 1.5, 2.0});
205  std::vector<edm::ParameterSet> ecalDefaults(2);
206  edm::ParameterSetDescription tokenLabelDesc;
207  tokenLabelDesc.add<edm::InputTag>("src", edm::InputTag(""));
208  tokenLabelDesc.add<std::string>("label", "");
209  std::vector<edm::ParameterSet> hgcalDefaults(3);
210  hgcalDefaults[0].addParameter("src", edm::InputTag("HGCalRecHit", "HGCEERecHits"));
211  hgcalDefaults[0].addParameter("label", std::string("HGCEERecHits"));
212  hgcalDefaults[1].addParameter("src", edm::InputTag("HGCalRecHit", "HGCHEFRecHits"));
213  hgcalDefaults[1].addParameter("label", std::string("HGCHEFRecHits"));
214  hgcalDefaults[2].addParameter("src", edm::InputTag("HGCalRecHit", "HGCHEBRecHits"));
215  hgcalDefaults[2].addParameter("label", std::string("HGCHEBRecHits"));
216  desc.addVPSet("hgcal", tokenLabelDesc, hgcalDefaults);
217  descriptions.add(("hltEgammaHLTPhase2ExtraProducer"), desc);
218 }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), submitPVResolutionJobs::desc, HLT_FULL_cff::InputTag, AlCaHLTBitMon_QueryRunRegistry::string, and trackerHitRTTI::vector.

◆ filterObjs()

template<typename CollType , typename RefType >
std::unique_ptr< CollType > EgammaHLTPhase2ExtraProducer::filterObjs ( const trigger::EgammaObjectCollection egTrigObjs,
const edm::Handle< CollType > &  objs,
std::vector< RefType > &  orgRefs,
float  maxDR2 = 0.4 * 0.4 
) const
private

Definition at line 308 of file EgammaHLTPhase2ExtraProducer.cc.

311  {
312  auto filteredObjs = std::make_unique<CollType>();
313  orgRefs.clear();
314  if (!objs.isValid())
315  return filteredObjs;
316 
317  //so because each egamma object can have multiple eta/phi pairs
318  //easier to just make a temp vector and then copy that in with the +pi and +pi/2
319  std::vector<std::pair<float, float>> etaPhisTmp;
320  for (const auto& egTrigObj : egTrigObjs) {
321  if (egTrigObj.pt() >= minPtToSaveHits_) {
322  etaPhisTmp.push_back({egTrigObj.eta(), egTrigObj.phi()});
323  //also save the eta /phi of all gsf tracks with the object
324  for (const auto& gsfTrk : egTrigObj.gsfTracks()) {
325  etaPhisTmp.push_back({gsfTrk->eta(), gsfTrk->phi()});
326  }
327  }
328  }
329  std::vector<std::pair<float, float>> etaPhis;
330  for (const auto& etaPhi : etaPhisTmp) {
331  etaPhis.push_back(etaPhi);
332  if (saveHitsPlusPi_)
333  etaPhis.push_back({etaPhi.first, etaPhi.second + 3.14159});
335  etaPhis.push_back({etaPhi.first, etaPhi.second + 3.14159 / 2.});
336  }
337 
338  auto deltaR2Match = [&etaPhis, &maxDR2](float eta, float phi) {
339  for (auto& etaPhi : etaPhis) {
340  if (reco::deltaR2(eta, phi, etaPhi.first, etaPhi.second) < maxDR2)
341  return true;
342  }
343  return false;
344  };
345 
346  for (size_t objNr = 0; objNr < objs->size(); objNr++) {
347  RefType ref(objs, objNr);
348  if (deltaR2Match(ref->eta(), ref->phi())) {
349  filteredObjs->push_back(*ref);
350  orgRefs.push_back(ref);
351  }
352  }
353  return filteredObjs;
354 }

References reco::deltaR2(), PVValHelper::eta, minPtToSaveHits_, HLTEGTnPMonitor_cfi::objs, phi, saveHitsPlusHalfPi_, and saveHitsPlusPi_.

Referenced by produce().

◆ filterRecHits()

template<typename RecHitCollection >
std::unique_ptr< RecHitCollection > EgammaHLTPhase2ExtraProducer::filterRecHits ( const trigger::EgammaObjectCollection egTrigObjs,
const edm::Handle< RecHitCollection > &  recHits,
const CaloGeometry geom,
float  maxDR2 = 0.4 * 0.4 
) const
private

Definition at line 357 of file EgammaHLTPhase2ExtraProducer.cc.

361  {
362  auto filteredHits = std::make_unique<RecHitCollection>();
363  if (!recHits.isValid())
364  return filteredHits;
365 
366  std::vector<std::pair<float, float>> etaPhis;
367  for (const auto& egTrigObj : egTrigObjs) {
368  if (egTrigObj.pt() >= minPtToSaveHits_) {
369  etaPhis.push_back({egTrigObj.eta(), egTrigObj.phi()});
370  if (saveHitsPlusPi_)
371  etaPhis.push_back({egTrigObj.eta(), egTrigObj.phi() + 3.14159});
373  etaPhis.push_back({egTrigObj.eta(), egTrigObj.phi() + 3.14159 / 2.});
374  }
375  }
376  auto deltaR2Match = [&etaPhis, &maxDR2](const GlobalPoint& pos) {
377  float eta = pos.eta();
378  float phi = pos.phi();
379  for (auto& etaPhi : etaPhis) {
380  if (reco::deltaR2(eta, phi, etaPhi.first, etaPhi.second) < maxDR2)
381  return true;
382  }
383  return false;
384  };
385 
386  for (auto& hit : *recHits) {
387  const CaloSubdetectorGeometry* subDetGeom = geom.getSubdetectorGeometry(hit.id());
388  if (subDetGeom) {
389  auto cellGeom = subDetGeom->getGeometry(hit.id());
390  if (deltaR2Match(cellGeom->getPosition()))
391  filteredHits->push_back(hit);
392  } else {
393  throw cms::Exception("GeomError") << "could not get geometry for det id " << hit.id().rawId();
394  }
395  }
396  return filteredHits;
397 }

References reco::deltaR2(), PVValHelper::eta, Exception, relativeConstraints::geom, hit::id, minPtToSaveHits_, phi, FastTrackerRecHitMaskProducer_cfi::recHits, saveHitsPlusHalfPi_, saveHitsPlusPi_, and GeomDetEnumerators::subDetGeom.

Referenced by produce().

◆ makeValueMap()

template<typename T , typename H >
static std::unique_ptr<edm::ValueMap<T> > EgammaHLTPhase2ExtraProducer::makeValueMap ( const H &  handle,
const std::vector< T > &  values 
)
inlinestaticprivate

Definition at line 148 of file EgammaHLTPhase2ExtraProducer.cc.

148  {
149  auto valueMap = std::make_unique<edm::ValueMap<T>>();
150  typename edm::ValueMap<T>::Filler filler(*valueMap);
151  filler.insert(handle, values.begin(), values.end());
152  filler.fill();
153  return valueMap;
154  }

References trigObjTnPSource_cfi::filler, patZpeak::handle, and contentValuesCheck::values.

Referenced by produce().

◆ produce()

void EgammaHLTPhase2ExtraProducer::produce ( edm::StreamID  streamID,
edm::Event event,
const edm::EventSetup eventSetup 
) const
overridevirtual

Implements edm::global::EDProducerBase.

Definition at line 220 of file EgammaHLTPhase2ExtraProducer.cc.

222  {
223  auto egTrigObjs = event.getHandle(tokens_.egTrigObjs);
224 
225  auto trkParts = event.getHandle(tokens_.trkParts);
226  auto l1trks = event.getHandle(tokens_.l1Trks);
227  auto l1TrkToTrkPartMap = event.getHandle(tokens_.l1TrkToTrkPartMap);
228 
229  edm::ESHandle<CaloGeometry> caloGeomHandle;
230  eventSetup.get<CaloGeometryRecord>().get(caloGeomHandle);
231  for (const auto& tokenLabel : tokens_.hgcal) {
232  auto handle = event.getHandle(tokenLabel.first);
233  auto recHits = filterRecHits(*egTrigObjs, handle, *caloGeomHandle);
234  event.put(std::move(recHits), tokenLabel.second);
235  }
236  auto storeCountRecHits = [&event](const auto& tokenLabels, const auto& thresholds, const std::string& prefixLabel) {
237  for (const auto& tokenLabel : tokenLabels) {
238  auto handle = event.getHandle(tokenLabel.first);
239  auto count = countRecHits(handle, thresholds);
240  for (size_t thresNr = 0; thresNr < thresholds.size(); thresNr++) {
241  const auto& thres = thresholds[thresNr];
242  event.put(std::move(count[thresNr]),
243  prefixLabel + tokenLabel.second + "Thres" + convertToProdNameStr(thres) + "GeV");
244  }
245  }
246  };
247  storeCountRecHits(tokens_.hgcal, recHitCountThresholds_, "countHgcalRecHits");
248 
249  auto hgcalLayerClusters = event.getHandle(tokens_.hgcalLayerClusters);
250  auto hgcalLayerClustersTime = event.getHandle(tokens_.hgcalLayerClustersTime);
251  std::vector<edm::Ref<reco::CaloClusterCollection>> orgHGCalLayerClusterRefs;
252  auto hgcalLayerClustersFiltered = filterObjs(*egTrigObjs, hgcalLayerClusters, orgHGCalLayerClusterRefs);
253  std::vector<std::pair<float, float>> timesFiltered;
254  timesFiltered.reserve(orgHGCalLayerClusterRefs.size());
255  for (auto& clusRef : orgHGCalLayerClusterRefs) {
256  timesFiltered.push_back((*hgcalLayerClustersTime)[clusRef]);
257  }
258  auto hgcalLayerClustersFilteredHandle = event.put(std::move(hgcalLayerClustersFiltered), "hgcalLayerClusters");
259  event.put(makeValueMap(hgcalLayerClustersFilteredHandle, timesFiltered), "hgcalLayerClustersTime");
260 
261  std::vector<edm::Ref<L1TrackCollection>> orgL1TrkRefs;
262  auto l1TrksFiltered = filterObjs(*egTrigObjs, l1trks, orgL1TrkRefs);
263  std::vector<edm::Ref<TrackingParticleCollection>> orgTPRefs;
264  auto trkPartsFiltered = filterObjs(*egTrigObjs, trkParts, orgTPRefs);
265 
266  //meh should make this edm::Ref<T>::key_type
267  std::unordered_map<size_t, size_t> orgTPIndxToNewIndx;
268  for (size_t refNr = 0; refNr < orgTPRefs.size(); refNr++) {
269  orgTPIndxToNewIndx.insert(std::make_pair(orgTPRefs[refNr].key(), refNr));
270  }
271 
272  edm::OrphanHandle<L1TrackCollection> l1TrksFiltHandle = event.put(std::move(l1TrksFiltered));
273  edm::OrphanHandle<TrackingParticleCollection> trkPartsFiltHandle = event.put(std::move(trkPartsFiltered));
274 
275  auto l1TrkExtraColl = std::make_unique<L1TrackTruthPairCollection>();
276 
277  for (size_t l1TrkNr = 0; l1TrkNr < orgL1TrkRefs.size(); l1TrkNr++) {
278  auto orgTrkRef = orgL1TrkRefs[l1TrkNr];
279  auto orgTrkPtr = edm::refToPtr(orgTrkRef);
280  int flags = 0;
281  if (l1TrkToTrkPartMap->isGenuine(orgTrkPtr))
283  if (l1TrkToTrkPartMap->isLooselyGenuine(orgTrkPtr))
285  if (l1TrkToTrkPartMap->isCombinatoric(orgTrkPtr))
287  if (l1TrkToTrkPartMap->isUnknown(orgTrkPtr))
289 
290  auto orgTPRef = l1TrkToTrkPartMap->findTrackingParticlePtr(orgTrkPtr);
291  auto getNewTPRef = [&orgTPIndxToNewIndx, &orgTPRef, &trkPartsFiltHandle]() {
292  auto newIndexPair = orgTPIndxToNewIndx.find(orgTPRef.key());
293  if (newIndexPair != orgTPIndxToNewIndx.end()) {
294  return edm::Ref<TrackingParticleCollection>(trkPartsFiltHandle, newIndexPair->second);
295  } else
296  return edm::Ref<TrackingParticleCollection>(trkPartsFiltHandle.id());
297  };
298  auto newTPRef = getNewTPRef();
299  edm::Ref<L1TrackCollection> newL1TrkRef(l1TrksFiltHandle, l1TrkNr);
300 
301  L1TrackTruthPair l1TrkExtra(newL1TrkRef, newTPRef, flags);
302  l1TrkExtraColl->push_back(l1TrkExtra);
303  }
304  event.put(std::move(l1TrkExtraColl));
305 }

References submitPVResolutionJobs::count, EgammaHLTPhase2ExtraProducer::Tokens::egTrigObjs, edmPickEvents::event, filterObjs(), filterRecHits(), HLT_FULL_cff::flags, edm::EventSetup::get(), get, patZpeak::handle, EgammaHLTPhase2ExtraProducer::Tokens::hgcal, hgcalLayerClusters_cff::hgcalLayerClusters, EgammaHLTPhase2ExtraProducer::Tokens::hgcalLayerClusters, EgammaHLTPhase2ExtraProducer::Tokens::hgcalLayerClustersTime, edm::OrphanHandleBase::id(), TTTrackTruthPair< T >::StatusFlags::IsCombinatoric, TTTrackTruthPair< T >::StatusFlags::IsGenuine, TTTrackTruthPair< T >::StatusFlags::IsLooselyGenuine, TTTrackTruthPair< T >::StatusFlags::IsUnknown, crabWrapper::key, EgammaHLTPhase2ExtraProducer::Tokens::l1Trks, EgammaHLTPhase2ExtraProducer::Tokens::l1TrkToTrkPartMap, makeValueMap(), eostools::move(), recHitCountThresholds_, FastTrackerRecHitMaskProducer_cfi::recHits, edm::refToPtr(), AlCaHLTBitMon_QueryRunRegistry::string, particleFlowZeroSuppressionECAL_cff::thresholds, tokens_, and EgammaHLTPhase2ExtraProducer::Tokens::trkParts.

Member Data Documentation

◆ minPtToSaveHits_

float EgammaHLTPhase2ExtraProducer::minPtToSaveHits_
private

Definition at line 158 of file EgammaHLTPhase2ExtraProducer.cc.

Referenced by filterObjs(), and filterRecHits().

◆ recHitCountThresholds_

std::vector<double> EgammaHLTPhase2ExtraProducer::recHitCountThresholds_
private

Definition at line 161 of file EgammaHLTPhase2ExtraProducer.cc.

Referenced by EgammaHLTPhase2ExtraProducer(), and produce().

◆ saveHitsPlusHalfPi_

bool EgammaHLTPhase2ExtraProducer::saveHitsPlusHalfPi_
private

Definition at line 160 of file EgammaHLTPhase2ExtraProducer.cc.

Referenced by filterObjs(), and filterRecHits().

◆ saveHitsPlusPi_

bool EgammaHLTPhase2ExtraProducer::saveHitsPlusPi_
private

Definition at line 159 of file EgammaHLTPhase2ExtraProducer.cc.

Referenced by filterObjs(), and filterRecHits().

◆ tokens_

const Tokens EgammaHLTPhase2ExtraProducer::tokens_
private

Definition at line 156 of file EgammaHLTPhase2ExtraProducer.cc.

Referenced by EgammaHLTPhase2ExtraProducer(), and produce().

EgammaHLTPhase2ExtraProducer::recHitCountThresholds_
std::vector< double > recHitCountThresholds_
Definition: EgammaHLTPhase2ExtraProducer.cc:161
EgammaHLTPhase2ExtraProducer::saveHitsPlusHalfPi_
bool saveHitsPlusHalfPi_
Definition: EgammaHLTPhase2ExtraProducer.cc:160
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
hit::id
unsigned int id
Definition: SiStripHitEffFromCalibTree.cc:92
particleFlowZeroSuppressionECAL_cff.thresholds
thresholds
Definition: particleFlowZeroSuppressionECAL_cff.py:31
EgammaHLTPhase2ExtraProducer::tokens_
const Tokens tokens_
Definition: EgammaHLTPhase2ExtraProducer.cc:156
EgammaHLTPhase2ExtraProducer::makeValueMap
static std::unique_ptr< edm::ValueMap< T > > makeValueMap(const H &handle, const std::vector< T > &values)
Definition: EgammaHLTPhase2ExtraProducer.cc:148
patZpeak.handle
handle
Definition: patZpeak.py:23
EgammaHLTPhase2ExtraProducer::filterObjs
std::unique_ptr< CollType > filterObjs(const trigger::EgammaObjectCollection &egTrigObjs, const edm::Handle< CollType > &objs, std::vector< RefType > &orgRefs, float maxDR2=0.4 *0.4) const
Definition: EgammaHLTPhase2ExtraProducer.cc:308
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
EgammaHLTPhase2ExtraProducer::Tokens::l1TrkToTrkPartMap
edm::EDGetTokenT< TTTrackAssociationMap< Ref_Phase2TrackerDigi_ > > l1TrkToTrkPartMap
Definition: EgammaHLTPhase2ExtraProducer.cc:110
TTTrackTruthPair::StatusFlags::IsLooselyGenuine
Definition: TTTrackTruthPair.h:15
pos
Definition: PixelAliasList.h:18
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89285
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
EgammaHLTPhase2ExtraProducer::Tokens::hgcal
std::vector< std::pair< edm::EDGetTokenT< HGCRecHitCollection >, std::string > > hgcal
Definition: EgammaHLTPhase2ExtraProducer.cc:113
edm::EDConsumerBase::consumesCollector
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
Definition: EDConsumerBase.cc:47
TTTrackTruthPair::StatusFlags::IsGenuine
Definition: TTTrackTruthPair.h:15
edm::Ref< TrackingParticleCollection >
edm::refToPtr
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
Definition: RefToPtr.h:18
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
EgammaHLTPhase2ExtraProducer::saveHitsPlusPi_
bool saveHitsPlusPi_
Definition: EgammaHLTPhase2ExtraProducer.cc:159
PVValHelper::eta
Definition: PVValidationHelpers.h:70
contentValuesCheck.values
values
Definition: contentValuesCheck.py:38
edm::ESHandle< CaloGeometry >
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
submitPVResolutionJobs.count
count
Definition: submitPVResolutionJobs.py:352
Point3DBase< float, GlobalTag >
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
EgammaHLTPhase2ExtraProducer::Tokens::hgcalLayerClusters
edm::EDGetTokenT< reco::CaloClusterCollection > hgcalLayerClusters
Definition: EgammaHLTPhase2ExtraProducer.cc:111
FastTrackerRecHitMaskProducer_cfi.recHits
recHits
Definition: FastTrackerRecHitMaskProducer_cfi.py:8
EgammaHLTPhase2ExtraProducer::Tokens::hgcalLayerClustersTime
edm::EDGetTokenT< edm::ValueMap< std::pair< float, float > > > hgcalLayerClustersTime
Definition: EgammaHLTPhase2ExtraProducer.cc:112
trigObjTnPSource_cfi.filler
filler
Definition: trigObjTnPSource_cfi.py:21
reco::deltaR2
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:16
edmPickEvents.event
event
Definition: edmPickEvents.py:273
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
get
#define get
TTTrackTruthPair
Definition: TTTrackTruthPair.h:12
DDAxes::phi
edm::OrphanHandleBase::id
ProductID id() const
Definition: OrphanHandleBase.cc:6
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
EgammaHLTPhase2ExtraProducer::minPtToSaveHits_
float minPtToSaveHits_
Definition: EgammaHLTPhase2ExtraProducer.cc:158
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::OrphanHandle
Definition: EDProductfwd.h:39
EgammaHLTPhase2ExtraProducer::Tokens::trkParts
edm::EDGetTokenT< TrackingParticleCollection > trkParts
Definition: EgammaHLTPhase2ExtraProducer.cc:109
GeomDetEnumerators::subDetGeom
constexpr SubDetector subDetGeom[21]
Definition: GeomDetEnumerators.h:40
EgammaHLTPhase2ExtraProducer::Tokens::l1Trks
edm::EDGetTokenT< L1TrackCollection > l1Trks
Definition: EgammaHLTPhase2ExtraProducer.cc:108
Exception
Definition: hltDiff.cc:245
EgammaHLTPhase2ExtraProducer::filterRecHits
std::unique_ptr< RecHitCollection > filterRecHits(const trigger::EgammaObjectCollection &egTrigObjs, const edm::Handle< RecHitCollection > &recHits, const CaloGeometry &geom, float maxDR2=0.4 *0.4) const
Definition: EgammaHLTPhase2ExtraProducer.cc:357
CaloSubdetectorGeometry
Definition: CaloSubdetectorGeometry.h:22
EgammaHLTPhase2ExtraProducer::Tokens::egTrigObjs
edm::EDGetTokenT< trigger::EgammaObjectCollection > egTrigObjs
Definition: EgammaHLTPhase2ExtraProducer.cc:107
HLTEGTnPMonitor_cfi.objs
objs
Definition: HLTEGTnPMonitor_cfi.py:1018
edm::helper::Filler
Definition: ValueMap.h:22
HLT_FULL_cff.flags
flags
Definition: HLT_FULL_cff.py:13150
crabWrapper.key
key
Definition: crabWrapper.py:19
TTTrackTruthPair::StatusFlags::IsUnknown
Definition: TTTrackTruthPair.h:15
edm::InputTag
Definition: InputTag.h:15
hit
Definition: SiStripHitEffFromCalibTree.cc:88
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
TTTrackTruthPair::StatusFlags::IsCombinatoric
Definition: TTTrackTruthPair.h:15
hgcalLayerClusters_cff.hgcalLayerClusters
hgcalLayerClusters
Definition: hgcalLayerClusters_cff.py:11