CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Attributes
SelectedElectronFEDListProducer< TEle, TCand > Class Template Reference

#include <SelectedElectronFEDListProducer.h>

Inheritance diagram for SelectedElectronFEDListProducer< TEle, TCand >:
edm::stream::EDProducer<>

Public Member Functions

void pixelFedDump (std::vector< PixelModule >::const_iterator &itDn, std::vector< PixelModule >::const_iterator &itUp, const PixelRegion &region)
 
 SelectedElectronFEDListProducer (const edm::ParameterSet &)
 Producer constructor. More...
 
 ~SelectedElectronFEDListProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Protected Member Functions

virtual void beginJob ()
 
virtual void endJob ()
 
void produce (edm::Event &, const edm::EventSetup &) override
 

Private Types

typedef std::vector< TCand > TCandColl
 
typedef std::vector< TEle > TEleColl
 

Private Attributes

std::vector< int > addThisSelectedFEDs_
 
math::XYZVector beamSpotPosition_
 
edm::InputTag beamSpotTag_
 
edm::EDGetTokenT< reco::BeamSpotbeamSpotToken_
 
double dEtaPixelRegion_
 
double dPhiPixelRegion_
 
double dRHcalRegion_
 
double dRStripRegion_
 
bool dumpAllEcalFed_
 
bool dumpAllHCALFed_
 
bool dumpAllTrackerFed_
 
bool dumpSelectedEcalFed_
 
bool dumpSelectedHCALFed_
 
bool dumpSelectedSiPixelFed_
 
bool dumpSelectedSiStripFed_
 
const EcalElectronicsMappingEcalMapping_
 
std::vector< edm::InputTagelectronTags_
 
std::vector< edm::EDGetTokenT< TEleColl > > electronToken_
 
int ES_fedId_ [2][2][40][40]
 
edm::FileInPath ESLookupTable_
 
std::vector< uint32_t > fedList_
 
const CaloGeometryGeometryCalo_
 
const CaloSubdetectorGeometryGeometryES_
 
edm::InputTag HBHERecHitTag_
 
edm::EDGetTokenT< HBHERecHitCollectionhbheRecHitToken_
 
const HcalElectronicsMapHcalReadoutMap_
 
std::vector< int > isGsfElectronCollection_
 
double maxZPixelRegion_
 
std::string outputLabelModule_
 
std::unique_ptr< SiPixelFedCablingTreePixelCabling_
 
std::vector< PixelModulepixelModuleVector_
 
edm::InputTag rawDataTag_
 
edm::EDGetTokenT< FEDRawDataCollectionrawDataToken_
 
std::vector< edm::InputTagrecoEcalCandidateTags_
 
std::vector< edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > > recoEcalCandidateToken_
 
std::pair< double, double > regionDimension_
 
const SiStripRegionCablingStripRegionCabling_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

template<typename TEle, typename TCand>
class SelectedElectronFEDListProducer< TEle, TCand >

Definition at line 76 of file SelectedElectronFEDListProducer.h.

Member Typedef Documentation

◆ TCandColl

template<typename TEle , typename TCand >
typedef std::vector<TCand> SelectedElectronFEDListProducer< TEle, TCand >::TCandColl
private

Definition at line 90 of file SelectedElectronFEDListProducer.h.

◆ TEleColl

template<typename TEle , typename TCand >
typedef std::vector<TEle> SelectedElectronFEDListProducer< TEle, TCand >::TEleColl
private

Definition at line 89 of file SelectedElectronFEDListProducer.h.

Constructor & Destructor Documentation

◆ SelectedElectronFEDListProducer()

template<typename TEle , typename TCand >
SelectedElectronFEDListProducer< TEle, TCand >::SelectedElectronFEDListProducer ( const edm::ParameterSet iConfig)
explicit

Producer constructor.

Definition at line 70 of file SelectedElectronFEDListProducer.cc.

70  {
71  // input electron collection Tag
72  if (iConfig.existsAs<std::vector<edm::InputTag>>("electronTags")) {
73  electronTags_ = iConfig.getParameter<std::vector<edm::InputTag>>("electronTags");
74  if (electronTags_.empty())
75  throw cms::Exception("Configuration")
76  << "[SelectedElectronFEDListProducer] empty electron collection is given --> at least one \n";
77  } else
78  throw cms::Exception("Configuration")
79  << "[SelectedElectronFEDListProducer] no electron collection are given --> need at least one \n";
80 
81  // Consumes for the electron collection
82  LogDebug("SelectedElectronFEDListProducer") << " Electron Collections" << std::endl;
83  for (std::vector<edm::InputTag>::const_iterator itEleTag = electronTags_.begin(); itEleTag != electronTags_.end();
84  ++itEleTag) {
85  electronToken_.push_back(consumes<TEleColl>(*itEleTag));
86  LogDebug("SelectedElectronFEDListProducer") << " Ele collection: " << *(itEleTag) << std::endl;
87  }
88 
89  // input RecoEcalCandidate collection Tag
90  if (iConfig.existsAs<std::vector<edm::InputTag>>("recoEcalCandidateTags")) {
91  recoEcalCandidateTags_ = iConfig.getParameter<std::vector<edm::InputTag>>("recoEcalCandidateTags");
92  if (recoEcalCandidateTags_.empty())
93  throw cms::Exception("Configuration") << "[SelectedElectronFEDListProducer] empty ecal candidate collections "
94  "collection is given --> at least one \n";
95  } else
96  throw cms::Exception("Configuration") << "[SelectedElectronFEDListProducer] no electron reco ecal candidate "
97  "collection are given --> need at least one \n";
98 
99  // Consumes for the recoEcal candidate collection
100  for (std::vector<edm::InputTag>::const_iterator itEcalCandTag = recoEcalCandidateTags_.begin();
101  itEcalCandTag != recoEcalCandidateTags_.end();
102  ++itEcalCandTag) {
103  recoEcalCandidateToken_.push_back(consumes<trigger::TriggerFilterObjectWithRefs>(*itEcalCandTag));
104  LogDebug("SelectedElectronFEDListProducer") << " Reco ecal candidate collection: " << *(itEcalCandTag) << std::endl;
105  }
106 
107  // list of gsf collections
108  if (iConfig.existsAs<std::vector<int>>("isGsfElectronCollection")) {
109  isGsfElectronCollection_ = iConfig.getParameter<std::vector<int>>("isGsfElectronCollection");
110  if (isGsfElectronCollection_.empty())
111  throw cms::Exception("Configuration")
112  << "[SelectedElectronFEDListProducer] empty electron flag collection --> at least one \n";
113  } else
114  throw cms::Exception("Configuration")
115  << "[SelectedElectronFEDListProducer] no electron flag are given --> need at least one \n";
116 
117  if (isGsfElectronCollection_.size() != electronTags_.size() or
119  throw cms::Exception("Configuration") << "[SelectedElectronFEDListProducer] electron flag , electron collection "
120  "and reco ecal cand collection must have the same size ! \n";
121 
122  // take the beam spot Tag
123  if (iConfig.existsAs<edm::InputTag>("beamSpot"))
124  beamSpotTag_ = iConfig.getParameter<edm::InputTag>("beamSpot");
125  else
126  beamSpotTag_ = edm::InputTag("hltOnlineBeamSpot");
127 
128  if (!(beamSpotTag_ == edm::InputTag("")))
129  beamSpotToken_ = consumes<reco::BeamSpot>(beamSpotTag_);
130 
131  LogDebug("SelectedElectronFEDListProducer") << " Beam Spot Tag " << beamSpotTag_ << std::endl;
132 
133  // take the HBHE recHit Tag
134  if (iConfig.existsAs<edm::InputTag>("HBHERecHitTag"))
135  HBHERecHitTag_ = iConfig.getParameter<edm::InputTag>("HBHERecHitTag");
136  else
137  HBHERecHitTag_ = edm::InputTag("hltHbhereco");
138 
139  if (!(HBHERecHitTag_ == edm::InputTag("")))
140  hbheRecHitToken_ = consumes<HBHERecHitCollection>(HBHERecHitTag_);
141 
142  // raw data collector label
143  if (iConfig.existsAs<edm::InputTag>("rawDataTag"))
144  rawDataTag_ = iConfig.getParameter<edm::InputTag>("rawDataTag");
145  else
146  rawDataTag_ = edm::InputTag("rawDataCollector");
147 
148  if (!(rawDataTag_ == edm::InputTag("")))
149  rawDataToken_ = consumes<FEDRawDataCollection>(rawDataTag_);
150 
151  LogDebug("SelectedElectronFEDListProducer") << " RawDataInput " << rawDataTag_ << std::endl;
152 
153  // add a set of selected feds
154  if (iConfig.existsAs<std::vector<int>>("addThisSelectedFEDs")) {
155  addThisSelectedFEDs_ = iConfig.getParameter<std::vector<int>>("addThisSelectedFEDs");
156  if (addThisSelectedFEDs_.empty())
157  addThisSelectedFEDs_.push_back(-1);
158  } else
159  addThisSelectedFEDs_.push_back(-1);
160 
161  std::vector<int>::const_iterator AddFed = addThisSelectedFEDs_.begin();
162  for (; AddFed != addThisSelectedFEDs_.end(); ++AddFed)
163  LogDebug("SelectedElectronFEDListProducer") << " Additional FED: " << *(AddFed) << std::endl;
164 
165  // ES look up table path
166  if (iConfig.existsAs<std::string>("ESLookupTable"))
167  ESLookupTable_ = iConfig.getParameter<edm::FileInPath>("ESLookupTable");
168  else
169  ESLookupTable_ = edm::FileInPath("EventFilter/ESDigiToRaw/data/ES_lookup_table.dat");
170 
171  // output model label
172  if (iConfig.existsAs<std::string>("outputLabelModule"))
173  outputLabelModule_ = iConfig.getParameter<std::string>("outputLabelModule");
174  else
175  outputLabelModule_ = "streamElectronRawData";
176 
177  LogDebug("SelectedElectronFEDListProducer") << " Output Label " << outputLabelModule_ << std::endl;
178 
179  // dR for the strip region
180  if (iConfig.existsAs<double>("dRStripRegion"))
181  dRStripRegion_ = iConfig.getParameter<double>("dRStripRegion");
182  else
183  dRStripRegion_ = 0.5;
184 
185  LogDebug("SelectedElectronFEDListProducer") << " dRStripRegion " << dRStripRegion_ << std::endl;
186 
187  // dR for the hcal region
188  if (iConfig.existsAs<double>("dRHcalRegion"))
189  dRHcalRegion_ = iConfig.getParameter<double>("dRHcalRegion");
190  else
191  dRHcalRegion_ = 0.5;
192 
193  // dPhi, dEta and maxZ for pixel dump
194  if (iConfig.existsAs<double>("dPhiPixelRegion"))
195  dPhiPixelRegion_ = iConfig.getParameter<double>("dPhiPixelRegion");
196  else
197  dPhiPixelRegion_ = 0.5;
198 
199  if (iConfig.existsAs<double>("dEtaPixelRegion"))
200  dEtaPixelRegion_ = iConfig.getParameter<double>("dEtaPixelRegion");
201  else
202  dEtaPixelRegion_ = 0.5;
203 
204  if (iConfig.existsAs<double>("maxZPixelRegion"))
205  maxZPixelRegion_ = iConfig.getParameter<double>("maxZPixelRegion");
206  else
207  maxZPixelRegion_ = 24.;
208 
209  LogDebug("SelectedElectronFEDListProducer")
210  << " dPhiPixelRegion " << dPhiPixelRegion_ << " dEtaPixelRegion " << dEtaPixelRegion_ << " MaxZPixelRegion "
211  << maxZPixelRegion_ << std::endl;
212 
213  // bool
214  if (iConfig.existsAs<bool>("dumpSelectedEcalFed"))
215  dumpSelectedEcalFed_ = iConfig.getParameter<bool>("dumpSelectedEcalFed");
216  else
217  dumpSelectedEcalFed_ = true;
218 
219  if (iConfig.existsAs<bool>("dumpSelectedSiStripFed"))
220  dumpSelectedSiStripFed_ = iConfig.getParameter<bool>("dumpSelectedSiStripFed");
221  else
223 
224  if (iConfig.existsAs<bool>("dumpSelectedSiPixelFed"))
225  dumpSelectedSiPixelFed_ = iConfig.getParameter<bool>("dumpSelectedSiPixelFed");
226  else
228 
229  if (iConfig.existsAs<bool>("dumpSelectedHCALFed"))
230  dumpSelectedHCALFed_ = iConfig.getParameter<bool>("dumpSelectedHCALFed");
231  else
232  dumpSelectedHCALFed_ = true;
233 
234  LogDebug("SelectedElectronFEDListProducer")
235  << " DumpEcalFedList set to " << dumpSelectedEcalFed_ << " DumpSelectedSiStripFed " << dumpSelectedSiStripFed_
236  << " DumpSelectedSiPixelFed " << dumpSelectedSiPixelFed_ << std::endl;
237 
238  if (iConfig.existsAs<bool>("dumpAllEcalFed"))
239  dumpAllEcalFed_ = iConfig.getParameter<bool>("dumpAllEcalFed");
240  else
241  dumpAllEcalFed_ = false;
242 
243  if (iConfig.existsAs<bool>("dumpAllTrackerFed"))
244  dumpAllTrackerFed_ = iConfig.getParameter<bool>("dumpAllTrackerFed");
245  else
246  dumpAllTrackerFed_ = false;
247 
248  if (iConfig.existsAs<bool>("dumpAllHCALFed"))
249  dumpAllHCALFed_ = iConfig.getParameter<bool>("dumpAllHCALFed");
250  else
251  dumpAllHCALFed_ = false;
252 
253  LogDebug("SelectedElectronFEDListProducer")
254  << " DumpAllEcalFed " << dumpAllEcalFed_ << " DumpAllTrackerFed " << dumpAllTrackerFed_ << " Dump all HCAL fed "
255  << dumpAllHCALFed_ << std::endl;
256 
257  // initialize pre-shower fed id --> look up table
258  for (int i = 0; i < 2; ++i)
259  for (int j = 0; j < 2; ++j)
260  for (int k = 0; k < 40; ++k)
261  for (int m = 0; m < 40; m++)
262  ES_fedId_[i][j][k][m] = -1;
263 
264  // read in look-up table
265  int nLines, iz, ip, ix, iy, fed, kchip, pace, bundle, fiber, optorx;
266  std::ifstream ES_file;
267  ES_file.open(ESLookupTable_.fullPath().c_str());
268  LogDebug("SelectedElectronFEDListProducer")
269  << " Look Up table for ES " << ESLookupTable_.fullPath().c_str() << std::endl;
270  if (ES_file.is_open()) {
271  ES_file >> nLines;
272  for (int i = 0; i < nLines; ++i) {
273  ES_file >> iz >> ip >> ix >> iy >> fed >> kchip >> pace >> bundle >> fiber >> optorx;
274  ES_fedId_[(3 - iz) / 2 - 1][ip - 1][ix - 1][iy - 1] = fed;
275  }
276  } else
277  LogDebug("SelectedElectronFEDListProducer")
278  << " Look up table file can not be found in " << ESLookupTable_.fullPath().c_str() << std::endl;
279  ES_file.close();
280 
281  // produce the final collection
282  produces<FEDRawDataCollection>(outputLabelModule_); // produce exit collection
283 }

References Exception, edm::ParameterSet::existsAs(), edm::ParameterSet::getParameter(), mps_fire::i, HLT_2018_cff::InputTag, dqmiolumiharvest::j, dqmdumpme::k, LogDebug, visualization-live-secondInstance_cfg::m, submitDQMOfflineCAF::nLines, or, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ ~SelectedElectronFEDListProducer()

template<typename TEle , typename TCand >
SelectedElectronFEDListProducer< TEle, TCand >::~SelectedElectronFEDListProducer ( )
override

Definition at line 286 of file SelectedElectronFEDListProducer.cc.

286  {
287  if (!electronTags_.empty())
288  electronTags_.clear();
289  if (!recoEcalCandidateTags_.empty())
290  recoEcalCandidateTags_.clear();
291  if (!recoEcalCandidateToken_.empty())
292  recoEcalCandidateToken_.clear();
293  if (!electronToken_.empty())
294  electronToken_.clear();
295  if (!fedList_.empty())
296  fedList_.clear();
297  if (!pixelModuleVector_.empty())
298  pixelModuleVector_.clear();
299 }

Member Function Documentation

◆ beginJob()

template<typename TEle , typename TCand >
void SelectedElectronFEDListProducer< TEle, TCand >::beginJob ( void  )
protectedvirtual

Definition at line 302 of file SelectedElectronFEDListProducer.cc.

302  {
303  LogDebug("SelectedElectronFEDListProducer") << " Begin of the Job " << std::endl;
304 }

References LogDebug.

◆ endJob()

template<typename TEle , typename TCand >
void SelectedElectronFEDListProducer< TEle, TCand >::endJob ( void  )
protectedvirtual

Definition at line 688 of file SelectedElectronFEDListProducer.cc.

688  {
689  LogDebug("SelectedElectronFEDListProducer") << " End of the Job " << std::endl;
690 }

References LogDebug.

Referenced by o2olib.O2ORunMgr::executeJob().

◆ fillDescriptions()

template<typename TEle , typename TCand >
void SelectedElectronFEDListProducer< TEle, TCand >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 718 of file SelectedElectronFEDListProducer.cc.

718  {
720  desc.add<vector<edm::InputTag>>("electronTags", {edm::InputTag("hltEgammaGsfElectrons")});
721  desc.add<vector<edm::InputTag>>("recoEcalCandidateTags", {edm::InputTag("hltL1EG25Ele27WP85GsfTrackIsoFilter")});
722  desc.add<edm::FileInPath>("ESLookupTable", edm::FileInPath("EventFilter/ESDigiToRaw/data/ES_lookup_table.dat"));
723  desc.add<edm::InputTag>("HBHERecHitTag", edm::InputTag("hltHbhereco"));
724  desc.add<edm::InputTag>("beamSpotTag", edm::InputTag("hltOnlineBeamSpot"));
725  desc.add<edm::InputTag>("rawDataTag", edm::InputTag("rawDataCollector"));
726  desc.add<vector<int>>("addThisSelectedFEDs", {812, 813});
727  desc.add<vector<int>>("isGsfElectronCollection", {true});
728  desc.add<std::string>("outputLabelModule", "StreamElectronRawFed");
729  desc.add<bool>("dumpSelectedSiPixelFed", true);
730  desc.add<bool>("dumpSelectedSiStripFed", true);
731  desc.add<bool>("dumpSelectedEcalFed", true);
732  desc.add<bool>("dumpSelectedHCALFed", true);
733  desc.add<double>("dPhiPixelRegion", 0.3);
734  desc.add<double>("dEtaPixelRegion", 0.3);
735  desc.add<double>("dRStripRegion", 0.3);
736  desc.add<double>("dRHcalRegion", 0.3);
737  desc.add<double>("maxZPixelRegion", 24);
738  desc.add<bool>("dumpAllTrackerFed", false);
739  desc.add<bool>("dumpAllEcalFed", false);
740  desc.add<bool>("dumpAllHcalFed", false);
741 
743 }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), defaultModuleLabel(), HLT_2018_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ pixelFedDump()

template<typename TEle , typename TCand >
void SelectedElectronFEDListProducer< TEle, TCand >::pixelFedDump ( std::vector< PixelModule >::const_iterator &  itDn,
std::vector< PixelModule >::const_iterator &  itUp,
const PixelRegion region 
)

Definition at line 693 of file SelectedElectronFEDListProducer.cc.

695  {
696  for (; itDn != itUp; ++itDn) {
697  float zmodule = itDn->z - ((itDn->x - beamSpotPosition_.x()) * region.cosphi +
698  (itDn->y - beamSpotPosition_.y()) * region.sinphi) *
699  region.atantheta;
700  if (std::abs(zmodule) > region.maxZ)
701  continue;
702  int hitFED = itDn->Fed;
703  if (hitFED < FEDNumbering::MINSiPixelFEDID || hitFED > FEDNumbering::MAXSiPixelFEDID)
704  continue;
705  LogDebug("SelectedElectronFEDListProducer")
706  << " electron pixel hit " << itDn->DetId << " hitFED " << hitFED << std::endl;
707  if (!fedList_.empty()) {
708  if (std::find(fedList_.begin(), fedList_.end(), hitFED) == fedList_.end())
709  fedList_.push_back(hitFED);
710  } else
711  fedList_.push_back(hitFED);
712  }
713 
714  return;
715 }

References funct::abs(), spr::find(), LogDebug, FEDNumbering::MAXSiPixelFEDID, and HLT_2018_cff::region.

◆ produce()

template<typename TEle , typename TCand >
void SelectedElectronFEDListProducer< TEle, TCand >::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprotected

Definition at line 307 of file SelectedElectronFEDListProducer.cc.

307  {
308  // get the hcal electronics map
310  iSetup.get<HcalDbRecord>().get(pSetup);
311  HcalReadoutMap_ = pSetup->getHcalMapping();
312 
313  // get the ecal electronics map
315  iSetup.get<EcalMappingRcd>().get(ecalmapping);
316  EcalMapping_ = ecalmapping.product();
317 
318  // get the calo geometry
319  edm::ESHandle<CaloGeometry> caloGeometry;
320  iSetup.get<CaloGeometryRecord>().get(caloGeometry);
321  GeometryCalo_ = caloGeometry.product();
322 
323  //ES geometry
325 
326  // pixel tracker cabling map
328  iSetup.get<SiPixelFedCablingMapRcd>().get(pixelCablingMap);
329  PixelCabling_.reset();
330  PixelCabling_ = pixelCablingMap->cablingTree();
331 
334 
335  if (pixelModuleVector_.empty()) {
336  // build the tracker pixel module map
337  std::vector<const GeomDet*>::const_iterator itTracker = trackerGeometry->dets().begin();
338  for (; itTracker != trackerGeometry->dets().end(); ++itTracker) {
339  int subdet = (*itTracker)->geographicalId().subdetId();
340  if (!(subdet == PixelSubdetector::PixelBarrel || subdet == PixelSubdetector::PixelEndcap))
341  continue;
343  module.x = (*itTracker)->position().x();
344  module.y = (*itTracker)->position().y();
345  module.z = (*itTracker)->position().z();
346  module.Phi = (*itTracker)->position().phi();
347  module.Eta = (*itTracker)->position().eta();
348  module.DetId = (*itTracker)->geographicalId().rawId();
349  const std::vector<sipixelobjects::CablingPathToDetUnit> path2det = PixelCabling_->pathToDetUnit(module.DetId);
350  module.Fed = path2det[0].fed;
351 
352  pixelModuleVector_.push_back(module);
353  }
354  std::sort(pixelModuleVector_.begin(), pixelModuleVector_.end());
355  }
356 
357  edm::ESHandle<SiStripRegionCabling> SiStripCablingHandle;
358  iSetup.get<SiStripRegionCablingRcd>().get(SiStripCablingHandle);
359  StripRegionCabling_ = SiStripCablingHandle.product();
360 
361  SiStripRegionCabling::Cabling SiStripCabling;
362  SiStripCabling = StripRegionCabling_->getRegionCabling();
364 
365  // event by event analysis
366  // Get event raw data
368  if (!(rawDataTag_ == edm::InputTag("")))
369  iEvent.getByToken(rawDataToken_, rawdata);
370 
371  // take the beam spot position
373  if (!(beamSpotTag_ == edm::InputTag("")))
374  iEvent.getByToken(beamSpotToken_, beamSpot);
375  if (!beamSpot.failedToGet())
376  beamSpotPosition_ = beamSpot->position();
377  else
378  beamSpotPosition_.SetXYZ(0, 0, 0);
379 
380  // take the calo tower collection
381  edm::Handle<HBHERecHitCollection> hbheRecHitHandle;
382  if (!(HBHERecHitTag_ == edm::InputTag("")))
383  iEvent.getByToken(hbheRecHitToken_, hbheRecHitHandle);
384  const HBHERecHitCollection* hcalRecHitCollection = nullptr;
385  if (!hbheRecHitHandle.failedToGet())
386  hcalRecHitCollection = hbheRecHitHandle.product();
387 
388  double radTodeg = 180. / Geom::pi();
389 
390  if (dumpAllEcalFed_) {
391  for (uint32_t iEcalFed = FEDNumbering::MINECALFEDID; iEcalFed <= FEDNumbering::MAXECALFEDID; iEcalFed++)
392  fedList_.push_back(iEcalFed);
393  for (uint32_t iESFed = FEDNumbering::MINPreShowerFEDID; iESFed <= FEDNumbering::MAXPreShowerFEDID; iESFed++)
394  fedList_.push_back(iESFed);
395  }
396 
397  if (dumpAllTrackerFed_) {
398  for (uint32_t iPixelFed = FEDNumbering::MINSiPixelFEDID; iPixelFed <= FEDNumbering::MAXSiPixelFEDID; iPixelFed++)
399  fedList_.push_back(iPixelFed);
400  for (uint32_t iStripFed = FEDNumbering::MINSiStripFEDID; iStripFed <= FEDNumbering::MAXSiStripFEDID; iStripFed++)
401  fedList_.push_back(iStripFed);
402  }
403 
404  if (dumpAllHCALFed_) {
405  for (uint32_t iHcalFed = FEDNumbering::MINHCALFEDID; iHcalFed <= FEDNumbering::MAXHCALFEDID; iHcalFed++)
406  fedList_.push_back(iHcalFed);
407  }
408 
409  // loop on the input electron collection vector
410  TEle electron;
411  edm::Ref<TCandColl> recoEcalCand;
413  edm::Handle<trigger::TriggerFilterObjectWithRefs> triggerRecoEcalCandidateCollection;
414  std::vector<edm::Ref<TCandColl>> recoEcalCandColl;
415 
416  // iterator to electron and ecal candidate collections
417  typename std::vector<edm::EDGetTokenT<TEleColl>>::const_iterator itElectronColl = electronToken_.begin();
418  std::vector<int>::const_iterator itElectronCollFlag = isGsfElectronCollection_.begin();
419  std::vector<edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs>>::const_iterator itRecoEcalCandColl =
420  recoEcalCandidateToken_.begin();
421 
422  // if you want to dump just FED related to the triggering electron/s
424  // loop on the same time on ecal candidate and elctron collection and boolean for Gsf ones
425  for (; itRecoEcalCandColl != recoEcalCandidateToken_.end() and itElectronColl != electronToken_.end() and
426  itElectronCollFlag != isGsfElectronCollection_.end();
427  ++itElectronColl, ++itElectronCollFlag, ++itRecoEcalCandColl) {
428  // get ecal candidate collection
429  iEvent.getByToken(*itRecoEcalCandColl, triggerRecoEcalCandidateCollection);
430  if (triggerRecoEcalCandidateCollection.failedToGet())
431  continue;
432 
433  // get gsf electron collection
434  iEvent.getByToken(*itElectronColl, electrons);
435  if (electrons.failedToGet())
436  continue;
437 
438  triggerRecoEcalCandidateCollection->getObjects(trigger::TriggerCluster, recoEcalCandColl);
439  if (recoEcalCandColl.empty())
440  triggerRecoEcalCandidateCollection->getObjects(trigger::TriggerPhoton, recoEcalCandColl);
441  if (recoEcalCandColl.empty())
442  triggerRecoEcalCandidateCollection->getObjects(trigger::TriggerElectron, recoEcalCandColl);
443 
444  typename std::vector<edm::Ref<TCandColl>>::const_iterator itRecoEcalCand =
445  recoEcalCandColl.begin(); // loop on recoEcalCandidate objects
446 
447  // loop on the recoEcalCandidates
448  for (; itRecoEcalCand != recoEcalCandColl.end(); ++itRecoEcalCand) {
449  recoEcalCand = (*itRecoEcalCand);
450  reco::SuperClusterRef scRefRecoEcalCand =
451  recoEcalCand->superCluster(); // take the supercluster in order to match with electron objects
452 
453  typename TEleColl::const_iterator itEle = electrons->begin();
454  for (; itEle != electrons->end(); ++itEle) { // loop on all the electrons inside a collection
455  // get electron supercluster and the associated hit -> detID
456  electron = (*itEle);
457  reco::SuperClusterRef scRef = electron.superCluster();
458  if (scRefRecoEcalCand != scRef)
459  continue; // mathching
460 
461  const std::vector<std::pair<DetId, float>>& hits = scRef->hitsAndFractions();
462  // start in dump the ecal FED associated to the electron
463  std::vector<std::pair<DetId, float>>::const_iterator itSChits = hits.begin();
464  if (!dumpAllEcalFed_) {
465  for (; itSChits != hits.end(); ++itSChits) {
466  if ((*itSChits).first.subdetId() == EcalBarrel) { // barrel part
467  EBDetId idEBRaw((*itSChits).first);
469  int hitFED = FEDNumbering::MINECALFEDID +
470  EcalMapping_->GetFED(double(point.eta()), double(point.phi()) * radTodeg);
471  if (hitFED < FEDNumbering::MINECALFEDID || hitFED > FEDNumbering::MAXECALFEDID)
472  continue;
473 
474  LogDebug("SelectedElectronFEDListProducer")
475  << " electron hit detID Barrel " << (*itSChits).first.rawId() << " eta " << double(point.eta())
476  << " phi " << double(point.phi()) * radTodeg << " FED " << hitFED << std::endl;
477 
478  if (dumpSelectedEcalFed_) {
479  if (!fedList_.empty()) {
480  if (std::find(fedList_.begin(), fedList_.end(), hitFED) == fedList_.end())
481  fedList_.push_back(hitFED); // in order not to duplicate info
482  } else
483  fedList_.push_back(hitFED);
484  }
485  } else if ((*itSChits).first.subdetId() == EcalEndcap) { // endcap one
486  EEDetId idEERaw((*itSChits).first);
488  int hitFED = FEDNumbering::MINECALFEDID +
489  EcalMapping_->GetFED(double(point.eta()), double(point.phi()) * radTodeg);
490  if (hitFED < FEDNumbering::MINECALFEDID || hitFED > FEDNumbering::MAXECALFEDID)
491  continue;
492 
493  LogDebug("SelectedElectronFEDListProducer")
494  << " electron hit detID Endcap " << (*itSChits).first.rawId() << " eta " << double(point.eta())
495  << " phi " << double(point.phi()) * radTodeg << " FED " << hitFED << std::endl;
496  if (dumpSelectedEcalFed_) {
497  if (!fedList_.empty()) {
498  if (std::find(fedList_.begin(), fedList_.end(), hitFED) == fedList_.end())
499  fedList_.push_back(hitFED);
500  } else
501  fedList_.push_back(hitFED);
502 
503  // preshower hit for each ecal endcap hit
504  DetId tmpX =
505  (dynamic_cast<const EcalPreshowerGeometry*>(GeometryES_))->getClosestCellInPlane(point, 1);
506  ESDetId stripX = (tmpX == DetId(0)) ? ESDetId(0) : ESDetId(tmpX);
507  int hitFED =
508  ES_fedId_[(3 - stripX.zside()) / 2 - 1][stripX.plane() - 1][stripX.six() - 1][stripX.siy() - 1];
509  LogDebug("SelectedElectronFEDListProducer")
510  << " ES hit plane X (deiID) " << stripX.rawId() << " six " << stripX.six() << " siy "
511  << stripX.siy() << " plane " << stripX.plane() << " FED ID " << hitFED << std::endl;
512  if (hitFED < FEDNumbering::MINPreShowerFEDID || hitFED > FEDNumbering::MAXPreShowerFEDID)
513  continue;
514  if (hitFED < 0)
515  continue;
516  if (!fedList_.empty()) {
517  if (std::find(fedList_.begin(), fedList_.end(), hitFED) == fedList_.end())
518  fedList_.push_back(hitFED);
519  } else
520  fedList_.push_back(hitFED);
521 
522  DetId tmpY =
523  (dynamic_cast<const EcalPreshowerGeometry*>(GeometryES_))->getClosestCellInPlane(point, 2);
524  ESDetId stripY = (tmpY == DetId(0)) ? ESDetId(0) : ESDetId(tmpY);
525  hitFED =
526  ES_fedId_[(3 - stripY.zside()) / 2 - 1][stripY.plane() - 1][stripY.six() - 1][stripY.siy() - 1];
527  if (hitFED < FEDNumbering::MINPreShowerFEDID || hitFED > FEDNumbering::MAXPreShowerFEDID)
528  continue;
529  LogDebug("SelectedElectronFEDListProducer")
530  << " ES hit plane Y (deiID) " << stripY.rawId() << " six " << stripY.six() << " siy "
531  << stripY.siy() << " plane " << stripY.plane() << " FED ID " << hitFED << std::endl;
532  if (hitFED < 0)
533  continue;
534  if (!fedList_.empty()) {
535  if (std::find(fedList_.begin(), fedList_.end(), hitFED) == fedList_.end())
536  fedList_.push_back(hitFED);
537  } else
538  fedList_.push_back(hitFED);
539  }
540  } // end endcap
541  } // end loop on SC hit
542 
543  // check HCAL behind each hit
544  if (dumpSelectedHCALFed_) {
545  HBHERecHitCollection::const_iterator itHcalRecHit = hcalRecHitCollection->begin();
546  for (; itHcalRecHit != hcalRecHitCollection->end(); ++itHcalRecHit) {
547  HcalDetId recHitId(itHcalRecHit->id());
548  const HcalGeometry* cellGeometry =
549  static_cast<const HcalGeometry*>(GeometryCalo_->getSubdetectorGeometry(recHitId));
550  float dR = reco::deltaR(scRef->eta(),
551  scRef->phi(),
552  cellGeometry->getPosition(recHitId).eta(),
553  cellGeometry->getPosition(recHitId).phi());
554  if (dR <= dRHcalRegion_) {
555  const HcalElectronicsId electronicId = HcalReadoutMap_->lookup(recHitId);
556  int hitFED = electronicId.dccid() + FEDNumbering::MINHCALFEDID;
557  LogDebug("SelectedElectronFEDListProducer")
558  << " matched hcal recHit : HcalDetId " << recHitId << " HcalElectronicsId " << electronicId
559  << " dcc id " << electronicId.dccid() << " spigot " << electronicId.spigot() << " fiber channel "
560  << electronicId.fiberChanId() << " fiber index " << electronicId.fiberIndex() << std::endl;
561  if (hitFED < FEDNumbering::MINHCALFEDID || hitFED > FEDNumbering::MAXHCALFEDID)
562  continue; //first eighteen feds are for HBHE
563  if (hitFED < 0)
564  continue;
565  if (!fedList_.empty()) {
566  if (std::find(fedList_.begin(), fedList_.end(), hitFED) == fedList_.end())
567  fedList_.push_back(hitFED);
568  } else
569  fedList_.push_back(hitFED);
570  }
571  }
572  } // End Hcal
573  } // End Ecal
574 
575  // get the electron track
576  if (!dumpAllTrackerFed_) {
577  //loop on the region
579  double eta;
580  double phi;
581  if (*itElectronCollFlag) {
582  eta = electron.gsfTrack()->eta();
583  phi = electron.gsfTrack()->phi();
584  } else {
585  eta = electron.track()->eta();
586  phi = electron.track()->phi();
587  }
588  for (uint32_t iCabling = 0; iCabling < SiStripCabling.size(); iCabling++) {
590  double dphi = fabs(pos.second - phi);
591  if (dphi > acos(-1))
592  dphi = 2 * acos(-1) - dphi;
593  double R = sqrt(pow(pos.first - eta, 2) + dphi * dphi);
594  if (R - sqrt(pow(regionDimension_.first / 2, 2) + pow(regionDimension_.second / 2, 2)) > dRStripRegion_)
595  continue;
596  //get vector of subdets within region
597  const SiStripRegionCabling::RegionCabling regSubdets = SiStripCabling[iCabling];
598  //cycle on subdets
599  for (uint32_t idet = 0; idet < SiStripRegionCabling::ALLSUBDETS; idet++) { //cicle between 1 and 4
600  //get vector of layers whin subdet of region
601  const SiStripRegionCabling::WedgeCabling regSubdetLayers = regSubdets[idet]; // at most 10 layers
602  for (uint32_t ilayer = 0; ilayer < SiStripRegionCabling::ALLLAYERS; ilayer++) {
603  //get map of vectors of feds withing the layer of subdet of region
604  const SiStripRegionCabling::ElementCabling fedVectorMap =
605  regSubdetLayers[ilayer]; // vector of the fed
606  SiStripRegionCabling::ElementCabling::const_iterator itFedMap = fedVectorMap.begin();
607  for (; itFedMap != fedVectorMap.end(); itFedMap++) {
608  for (uint32_t op = 0; op < (itFedMap->second).size(); op++) {
609  int hitFED = (itFedMap->second)[op].fedId();
610  if (hitFED < FEDNumbering::MINSiStripFEDID || hitFED > FEDNumbering::MAXSiStripFEDID)
611  continue;
612  LogDebug("SelectedElectronFEDListProducer") << " SiStrip (FedID) " << hitFED << std::endl;
613  if (!fedList_.empty()) {
614  if (std::find(fedList_.begin(), fedList_.end(), hitFED) == fedList_.end())
615  fedList_.push_back(hitFED);
616  } else
617  fedList_.push_back(hitFED);
618  }
619  }
620  }
621  }
622  }
623  } // end si strip
625  math::XYZVector momentum;
626  if (*itElectronCollFlag)
627  momentum = electron.gsfTrack()->momentum();
628  else
629  momentum = electron.track()->momentum();
631  PixelModule lowerBound(region.vector.phi() - region.dPhi, region.vector.eta() - region.dEta);
632  PixelModule upperBound(region.vector.phi() + region.dPhi, region.vector.eta() + region.dEta);
633 
634  std::vector<PixelModule>::const_iterator itUp, itDn;
635  if (lowerBound.Phi >= -M_PI && upperBound.Phi <= M_PI) {
636  itDn = std::lower_bound(pixelModuleVector_.begin(), pixelModuleVector_.end(), lowerBound);
637  itUp = std::upper_bound(pixelModuleVector_.begin(), pixelModuleVector_.end(), upperBound);
638  pixelFedDump(itDn, itUp, region);
639  } else {
640  if (lowerBound.Phi < -M_PI)
641  lowerBound.Phi = lowerBound.Phi + 2 * M_PI;
642  PixelModule phi_p(M_PI, region.vector.eta() - region.dEta);
643  itDn = std::lower_bound(pixelModuleVector_.begin(), pixelModuleVector_.end(), lowerBound);
644  itUp = std::upper_bound(pixelModuleVector_.begin(), pixelModuleVector_.end(), phi_p);
645  pixelFedDump(itDn, itUp, region);
646 
647  if (upperBound.Phi < -M_PI)
648  upperBound.Phi = upperBound.Phi - 2 * M_PI;
649  PixelModule phi_m(-M_PI, region.vector.eta() - region.dEta);
650  itDn = std::lower_bound(pixelModuleVector_.begin(), pixelModuleVector_.end(), phi_m);
651  itUp = std::upper_bound(pixelModuleVector_.begin(), pixelModuleVector_.end(), upperBound);
652  pixelFedDump(itDn, itUp, region);
653  }
654  }
655  } // end tracker analysis
656  } // end loop on the electron candidate
657  } // end loop on the electron collection collection
658  } // end loop on the recoEcal candidate
659  } // end loop on the recoEcal candidate collection
660  // add a set of chosen FED
661  for (unsigned int iFed = 0; iFed < addThisSelectedFEDs_.size(); iFed++) {
662  if (addThisSelectedFEDs_.at(iFed) == -1)
663  continue;
664  fedList_.push_back(addThisSelectedFEDs_.at(iFed));
665  }
666 
667  // make the final raw data collection
668  auto streamFEDRawProduct = std::make_unique<FEDRawDataCollection>();
669  std::sort(fedList_.begin(), fedList_.end());
670  std::vector<uint32_t>::const_iterator itfedList = fedList_.begin();
671  for (; itfedList != fedList_.end(); ++itfedList) {
672  LogDebug("SelectedElectronFEDListProducer") << " fed point " << *itfedList << " ";
673  const FEDRawData& data = rawdata->FEDData(*itfedList);
674  if (data.size() > 0) {
675  FEDRawData& fedData = streamFEDRawProduct->FEDData(*itfedList);
676  fedData.resize(data.size());
677  memcpy(fedData.data(), data.data(), data.size());
678  }
679  }
680 
681  iEvent.put(std::move(streamFEDRawProduct), outputLabelModule_);
682 
683  if (!fedList_.empty())
684  fedList_.clear();
685 }

References SiStripRegionCabling::ALLLAYERS, SiStripRegionCabling::ALLSUBDETS, pwdgSkimBPark_cfi::beamSpot, edm::SortedCollection< T, SORT >::begin(), SiPixelFedCablingMap::cablingTree(), FEDRawData::data(), std::data(), HcalElectronicsId::dccid(), reco::deltaR(), HGC3DClusterGenMatchSelector_cfi::dR, DetId::Ecal, EcalBarrel, EcalEndcap, EcalPreshower, HPSPFTauProducerPuppi_cfi::electron, pwdgSkimBPark_cfi::electrons, edm::SortedCollection< T, SORT >::end(), PVValHelper::eta, edm::HandleBase::failedToGet(), FEDRawDataCollection::FEDData(), l1tstage2_dqm_sourceclient-live_cfg::fedId, HcalElectronicsId::fiberChanId(), HcalElectronicsId::fiberIndex(), spr::find(), edm::EventSetup::get(), get, HcalDbService::getHcalMapping(), trigger::TriggerRefsCollections::getObjects(), SiStripRegionCabling::getRegionCabling(), CaloGeometry::getSubdetectorGeometry(), hfClusterShapes_cfi::hits, iEvent, LogDebug, cuda_std::lower_bound(), M_PI, FEDNumbering::MAXECALFEDID, FEDNumbering::MAXHCALFEDID, FEDNumbering::MAXPreShowerFEDID, FEDNumbering::MAXSiPixelFEDID, FEDNumbering::MAXSiStripFEDID, FEDNumbering::MINECALFEDID, FEDNumbering::MINHCALFEDID, FEDNumbering::MINPreShowerFEDID, FEDNumbering::MINSiPixelFEDID, FEDNumbering::MINSiStripFEDID, eostools::move(), Geom::pi(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, ESDetId::plane(), point, funct::pow(), edm::Handle< T >::product(), edm::ESHandle< T >::product(), dttmaxenums::R, DetId::rawId(), HLT_2018_cff::region, FEDRawData::resize(), ESDetId::six(), ESDetId::siy(), std::size(), HcalElectronicsId::spigot(), mathSSE::sqrt(), trackerGeometry_cfi::trackerGeometry, trigger::TriggerCluster, trigger::TriggerElectron, trigger::TriggerPhoton, cuda_std::upper_bound(), and ESDetId::zside().

Member Data Documentation

◆ addThisSelectedFEDs_

template<typename TEle , typename TCand >
std::vector<int> SelectedElectronFEDListProducer< TEle, TCand >::addThisSelectedFEDs_
private

Definition at line 107 of file SelectedElectronFEDListProducer.h.

◆ beamSpotPosition_

template<typename TEle , typename TCand >
math::XYZVector SelectedElectronFEDListProducer< TEle, TCand >::beamSpotPosition_
private

Definition at line 135 of file SelectedElectronFEDListProducer.h.

◆ beamSpotTag_

template<typename TEle , typename TCand >
edm::InputTag SelectedElectronFEDListProducer< TEle, TCand >::beamSpotTag_
private

Definition at line 101 of file SelectedElectronFEDListProducer.h.

◆ beamSpotToken_

template<typename TEle , typename TCand >
edm::EDGetTokenT<reco::BeamSpot> SelectedElectronFEDListProducer< TEle, TCand >::beamSpotToken_
private

Definition at line 129 of file SelectedElectronFEDListProducer.h.

◆ dEtaPixelRegion_

template<typename TEle , typename TCand >
double SelectedElectronFEDListProducer< TEle, TCand >::dEtaPixelRegion_
private

Definition at line 121 of file SelectedElectronFEDListProducer.h.

◆ dPhiPixelRegion_

template<typename TEle , typename TCand >
double SelectedElectronFEDListProducer< TEle, TCand >::dPhiPixelRegion_
private

Definition at line 120 of file SelectedElectronFEDListProducer.h.

◆ dRHcalRegion_

template<typename TEle , typename TCand >
double SelectedElectronFEDListProducer< TEle, TCand >::dRHcalRegion_
private

Definition at line 123 of file SelectedElectronFEDListProducer.h.

◆ dRStripRegion_

template<typename TEle , typename TCand >
double SelectedElectronFEDListProducer< TEle, TCand >::dRStripRegion_
private

Definition at line 119 of file SelectedElectronFEDListProducer.h.

◆ dumpAllEcalFed_

template<typename TEle , typename TCand >
bool SelectedElectronFEDListProducer< TEle, TCand >::dumpAllEcalFed_
private

Definition at line 115 of file SelectedElectronFEDListProducer.h.

◆ dumpAllHCALFed_

template<typename TEle , typename TCand >
bool SelectedElectronFEDListProducer< TEle, TCand >::dumpAllHCALFed_
private

Definition at line 117 of file SelectedElectronFEDListProducer.h.

◆ dumpAllTrackerFed_

template<typename TEle , typename TCand >
bool SelectedElectronFEDListProducer< TEle, TCand >::dumpAllTrackerFed_
private

Definition at line 116 of file SelectedElectronFEDListProducer.h.

◆ dumpSelectedEcalFed_

template<typename TEle , typename TCand >
bool SelectedElectronFEDListProducer< TEle, TCand >::dumpSelectedEcalFed_
private

Definition at line 111 of file SelectedElectronFEDListProducer.h.

◆ dumpSelectedHCALFed_

template<typename TEle , typename TCand >
bool SelectedElectronFEDListProducer< TEle, TCand >::dumpSelectedHCALFed_
private

Definition at line 114 of file SelectedElectronFEDListProducer.h.

◆ dumpSelectedSiPixelFed_

template<typename TEle , typename TCand >
bool SelectedElectronFEDListProducer< TEle, TCand >::dumpSelectedSiPixelFed_
private

Definition at line 113 of file SelectedElectronFEDListProducer.h.

◆ dumpSelectedSiStripFed_

template<typename TEle , typename TCand >
bool SelectedElectronFEDListProducer< TEle, TCand >::dumpSelectedSiStripFed_
private

Definition at line 112 of file SelectedElectronFEDListProducer.h.

◆ EcalMapping_

template<typename TEle , typename TCand >
const EcalElectronicsMapping* SelectedElectronFEDListProducer< TEle, TCand >::EcalMapping_
private

Definition at line 144 of file SelectedElectronFEDListProducer.h.

◆ electronTags_

template<typename TEle , typename TCand >
std::vector<edm::InputTag> SelectedElectronFEDListProducer< TEle, TCand >::electronTags_
private

Definition at line 100 of file SelectedElectronFEDListProducer.h.

◆ electronToken_

template<typename TEle , typename TCand >
std::vector<edm::EDGetTokenT<TEleColl> > SelectedElectronFEDListProducer< TEle, TCand >::electronToken_
private

Definition at line 132 of file SelectedElectronFEDListProducer.h.

◆ ES_fedId_

template<typename TEle , typename TCand >
int SelectedElectronFEDListProducer< TEle, TCand >::ES_fedId_[2][2][40][40]
private

Definition at line 138 of file SelectedElectronFEDListProducer.h.

◆ ESLookupTable_

template<typename TEle , typename TCand >
edm::FileInPath SelectedElectronFEDListProducer< TEle, TCand >::ESLookupTable_
private

Definition at line 109 of file SelectedElectronFEDListProducer.h.

◆ fedList_

template<typename TEle , typename TCand >
std::vector<uint32_t> SelectedElectronFEDListProducer< TEle, TCand >::fedList_
private

Definition at line 141 of file SelectedElectronFEDListProducer.h.

◆ GeometryCalo_

template<typename TEle , typename TCand >
const CaloGeometry* SelectedElectronFEDListProducer< TEle, TCand >::GeometryCalo_
private

Definition at line 145 of file SelectedElectronFEDListProducer.h.

◆ GeometryES_

template<typename TEle , typename TCand >
const CaloSubdetectorGeometry* SelectedElectronFEDListProducer< TEle, TCand >::GeometryES_
private

Definition at line 146 of file SelectedElectronFEDListProducer.h.

◆ HBHERecHitTag_

template<typename TEle , typename TCand >
edm::InputTag SelectedElectronFEDListProducer< TEle, TCand >::HBHERecHitTag_
private

Definition at line 104 of file SelectedElectronFEDListProducer.h.

◆ hbheRecHitToken_

template<typename TEle , typename TCand >
edm::EDGetTokenT<HBHERecHitCollection> SelectedElectronFEDListProducer< TEle, TCand >::hbheRecHitToken_
private

Definition at line 130 of file SelectedElectronFEDListProducer.h.

◆ HcalReadoutMap_

template<typename TEle , typename TCand >
const HcalElectronicsMap* SelectedElectronFEDListProducer< TEle, TCand >::HcalReadoutMap_
private

Definition at line 148 of file SelectedElectronFEDListProducer.h.

◆ isGsfElectronCollection_

template<typename TEle , typename TCand >
std::vector<int> SelectedElectronFEDListProducer< TEle, TCand >::isGsfElectronCollection_
private

Definition at line 106 of file SelectedElectronFEDListProducer.h.

◆ maxZPixelRegion_

template<typename TEle , typename TCand >
double SelectedElectronFEDListProducer< TEle, TCand >::maxZPixelRegion_
private

Definition at line 122 of file SelectedElectronFEDListProducer.h.

◆ outputLabelModule_

template<typename TEle , typename TCand >
std::string SelectedElectronFEDListProducer< TEle, TCand >::outputLabelModule_
private

Definition at line 125 of file SelectedElectronFEDListProducer.h.

◆ PixelCabling_

template<typename TEle , typename TCand >
std::unique_ptr<SiPixelFedCablingTree> SelectedElectronFEDListProducer< TEle, TCand >::PixelCabling_
private

Definition at line 151 of file SelectedElectronFEDListProducer.h.

◆ pixelModuleVector_

template<typename TEle , typename TCand >
std::vector<PixelModule> SelectedElectronFEDListProducer< TEle, TCand >::pixelModuleVector_
private

Definition at line 152 of file SelectedElectronFEDListProducer.h.

◆ rawDataTag_

template<typename TEle , typename TCand >
edm::InputTag SelectedElectronFEDListProducer< TEle, TCand >::rawDataTag_
private

Definition at line 102 of file SelectedElectronFEDListProducer.h.

◆ rawDataToken_

template<typename TEle , typename TCand >
edm::EDGetTokenT<FEDRawDataCollection> SelectedElectronFEDListProducer< TEle, TCand >::rawDataToken_
private

Definition at line 128 of file SelectedElectronFEDListProducer.h.

◆ recoEcalCandidateTags_

template<typename TEle , typename TCand >
std::vector<edm::InputTag> SelectedElectronFEDListProducer< TEle, TCand >::recoEcalCandidateTags_
private

Definition at line 99 of file SelectedElectronFEDListProducer.h.

◆ recoEcalCandidateToken_

template<typename TEle , typename TCand >
std::vector<edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> > SelectedElectronFEDListProducer< TEle, TCand >::recoEcalCandidateToken_
private

Definition at line 131 of file SelectedElectronFEDListProducer.h.

◆ regionDimension_

template<typename TEle , typename TCand >
std::pair<double, double> SelectedElectronFEDListProducer< TEle, TCand >::regionDimension_
private

Definition at line 155 of file SelectedElectronFEDListProducer.h.

◆ StripRegionCabling_

template<typename TEle , typename TCand >
const SiStripRegionCabling* SelectedElectronFEDListProducer< TEle, TCand >::StripRegionCabling_
private

Definition at line 147 of file SelectedElectronFEDListProducer.h.

SelectedElectronFEDListProducer::dumpSelectedHCALFed_
bool dumpSelectedHCALFed_
Definition: SelectedElectronFEDListProducer.h:114
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
SiStripRegionCabling::Position
std::pair< double, double > Position
Definition: SiStripRegionCabling.h:38
SiStripRegionCabling::RegionCabling
std::vector< WedgeCabling > RegionCabling
Definition: SiStripRegionCabling.h:33
SiStripRegionCabling::ALLLAYERS
Definition: SiStripRegionCabling.h:27
SelectedElectronFEDListProducer::outputLabelModule_
std::string outputLabelModule_
Definition: SelectedElectronFEDListProducer.h:125
FEDNumbering::MINECALFEDID
Definition: FEDNumbering.h:43
mps_fire.i
i
Definition: mps_fire.py:355
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
edm::SortedCollection::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: SortedCollection.h:80
pwdgSkimBPark_cfi.beamSpot
beamSpot
Definition: pwdgSkimBPark_cfi.py:5
trigger::TriggerElectron
Definition: TriggerTypeDefs.h:78
SiStripRegionCabling::WedgeCabling
std::vector< ElementCabling > WedgeCabling
Definition: SiStripRegionCabling.h:32
SelectedElectronFEDListProducer::pixelFedDump
void pixelFedDump(std::vector< PixelModule >::const_iterator &itDn, std::vector< PixelModule >::const_iterator &itUp, const PixelRegion &region)
Definition: SelectedElectronFEDListProducer.cc:693
SiStripRegionCabling::getRegionCabling
const Cabling & getRegionCabling() const
Definition: SiStripRegionCabling.h:118
PixelSubdetector::PixelEndcap
Definition: PixelSubdetector.h:11
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
edm::Handle::product
T const * product() const
Definition: Handle.h:70
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
SelectedElectronFEDListProducer::addThisSelectedFEDs_
std::vector< int > addThisSelectedFEDs_
Definition: SelectedElectronFEDListProducer.h:107
SelectedElectronFEDListProducer::fedList_
std::vector< uint32_t > fedList_
Definition: SelectedElectronFEDListProducer.h:141
CaloGeometry::getPosition
GlobalPoint getPosition(const DetId &id) const
Get the position of a given detector id.
Definition: CaloGeometry.cc:50
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
EBDetId
Definition: EBDetId.h:17
SelectedElectronFEDListProducer::dumpAllTrackerFed_
bool dumpAllTrackerFed_
Definition: SelectedElectronFEDListProducer.h:116
pos
Definition: PixelAliasList.h:18
SiStripRegionCabling::position
const Position position(const uint32_t) const
Definition: SiStripRegionCabling.h:128
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
SiStripRegionCabling::ALLSUBDETS
Definition: SiStripRegionCabling.h:26
CaloGeometry::getSubdetectorGeometry
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
edm::SortedCollection
Definition: SortedCollection.h:49
FEDNumbering::MINPreShowerFEDID
Definition: FEDNumbering.h:31
trackerGeometry_cfi.trackerGeometry
trackerGeometry
Definition: trackerGeometry_cfi.py:3
SelectedElectronFEDListProducer::ESLookupTable_
edm::FileInPath ESLookupTable_
Definition: SelectedElectronFEDListProducer.h:109
ESDetId
Definition: ESDetId.h:15
edm::ParameterSet::existsAs
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:160
SelectedElectronFEDListProducer::dumpSelectedEcalFed_
bool dumpSelectedEcalFed_
Definition: SelectedElectronFEDListProducer.h:111
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
SelectedElectronFEDListProducer::electronToken_
std::vector< edm::EDGetTokenT< TEleColl > > electronToken_
Definition: SelectedElectronFEDListProducer.h:132
edm::Handle
Definition: AssociativeIterator.h:50
SelectedElectronFEDListProducer::rawDataToken_
edm::EDGetTokenT< FEDRawDataCollection > rawDataToken_
Definition: SelectedElectronFEDListProducer.h:128
submitDQMOfflineCAF.nLines
nLines
Definition: submitDQMOfflineCAF.py:676
SelectedElectronFEDListProducer::electronTags_
std::vector< edm::InputTag > electronTags_
Definition: SelectedElectronFEDListProducer.h:100
trigger::TriggerRefsCollections::getObjects
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
Definition: TriggerRefsCollections.h:593
EcalBarrel
Definition: EcalSubdetector.h:10
FEDRawData::data
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:24
HcalDbService::getHcalMapping
const HcalElectronicsMap * getHcalMapping() const
Definition: HcalDbService.cc:343
FEDRawData
Definition: FEDRawData.h:19
edm::Ref
Definition: AssociativeIterator.h:58
SelectedElectronFEDListProducer::dEtaPixelRegion_
double dEtaPixelRegion_
Definition: SelectedElectronFEDListProducer.h:121
HcalElectronicsId::fiberIndex
constexpr int fiberIndex() const
get the fiber index. For VME 1-8 (which of eight fibers carried by a spigot), for uTCA fibers are zer...
Definition: HcalElectronicsId.h:78
SelectedElectronFEDListProducer::dumpAllEcalFed_
bool dumpAllEcalFed_
Definition: SelectedElectronFEDListProducer.h:115
SelectedElectronFEDListProducer::beamSpotToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition: SelectedElectronFEDListProducer.h:129
SelectedElectronFEDListProducer::dumpAllHCALFed_
bool dumpAllHCALFed_
Definition: SelectedElectronFEDListProducer.h:117
DetId
Definition: DetId.h:17
edm::FileInPath
Definition: FileInPath.h:64
SelectedElectronFEDListProducer::PixelCabling_
std::unique_ptr< SiPixelFedCablingTree > PixelCabling_
Definition: SelectedElectronFEDListProducer.h:151
SelectedElectronFEDListProducer::recoEcalCandidateTags_
std::vector< edm::InputTag > recoEcalCandidateTags_
Definition: SelectedElectronFEDListProducer.h:99
SelectedElectronFEDListProducer::GeometryES_
const CaloSubdetectorGeometry * GeometryES_
Definition: SelectedElectronFEDListProducer.h:146
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
FEDNumbering::MAXSiPixelFEDID
Definition: FEDNumbering.h:28
cuda_std::upper_bound
__host__ constexpr __device__ RandomIt upper_bound(RandomIt first, RandomIt last, const T &value, Compare comp={})
Definition: cudastdAlgorithm.h:45
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
PVValHelper::eta
Definition: PVValidationHelpers.h:69
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:72
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
edm::ESHandle< HcalDbService >
HcalElectronicsId
Readout chain identification for Hcal.
Definition: HcalElectronicsId.h:32
SelectedElectronFEDListProducer::dumpSelectedSiStripFed_
bool dumpSelectedSiStripFed_
Definition: SelectedElectronFEDListProducer.h:112
Geom::pi
constexpr double pi()
Definition: Pi.h:31
SelectedElectronFEDListProducer
Definition: SelectedElectronFEDListProducer.h:76
dqmdumpme.k
k
Definition: dqmdumpme.py:60
Point3DBase< float, GlobalTag >
EcalElectronicsMapping::GetFED
int GetFED(double eta, double phi) const
Definition: EcalElectronicsMapping.cc:1087
cuda_std::lower_bound
__host__ constexpr __device__ RandomIt lower_bound(RandomIt first, RandomIt last, const T &value, Compare comp={})
Definition: cudastdAlgorithm.h:27
FEDRawDataCollection::FEDData
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
Definition: FEDRawDataCollection.cc:19
EEDetId
Definition: EEDetId.h:14
PixelModule
Definition: SelectedElectronFEDListProducer.h:54
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiPixelFedCablingMap::cablingTree
std::unique_ptr< SiPixelFedCablingTree > cablingTree() const
Definition: SiPixelFedCablingMap.cc:103
EcalEndcap
Definition: EcalSubdetector.h:10
SelectedElectronFEDListProducer::dRHcalRegion_
double dRHcalRegion_
Definition: SelectedElectronFEDListProducer.h:123
FEDNumbering::MAXSiStripFEDID
Definition: FEDNumbering.h:30
edm::HandleBase::failedToGet
bool failedToGet() const
Definition: HandleBase.h:72
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
defaultModuleLabel
std::string defaultModuleLabel()
Definition: defaultModuleLabel.h:16
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
math::XYZVector
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
HcalDetId
Definition: HcalDetId.h:12
iEvent
int iEvent
Definition: GenABIO.cc:224
SelectedElectronFEDListProducer::regionDimension_
std::pair< double, double > regionDimension_
Definition: SelectedElectronFEDListProducer.h:155
PixelRegion
Definition: SelectedElectronFEDListProducer.h:36
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:50
SelectedElectronFEDListProducer::dRStripRegion_
double dRStripRegion_
Definition: SelectedElectronFEDListProducer.h:119
SiStripRegionCablingRcd
Definition: SiStripDependentRecords.h:23
l1tstage2_dqm_sourceclient-live_cfg.fedId
fedId
Definition: l1tstage2_dqm_sourceclient-live_cfg.py:88
FEDNumbering::MAXPreShowerFEDID
Definition: FEDNumbering.h:32
DetId::Ecal
Definition: DetId.h:27
module
Definition: vlib.h:198
trigger::TriggerCluster
Definition: TriggerTypeDefs.h:88
get
#define get
HPSPFTauProducerPuppi_cfi.electron
electron
Definition: HPSPFTauProducerPuppi_cfi.py:13
SelectedElectronFEDListProducer::pixelModuleVector_
std::vector< PixelModule > pixelModuleVector_
Definition: SelectedElectronFEDListProducer.h:152
edm::ESTransientHandle
Definition: ESTransientHandle.h:41
FEDNumbering::MINSiPixelFEDID
Definition: FEDNumbering.h:27
SelectedElectronFEDListProducer::HBHERecHitTag_
edm::InputTag HBHERecHitTag_
Definition: SelectedElectronFEDListProducer.h:104
DDAxes::phi
ESDetId::plane
int plane() const
Definition: ESDetId.h:41
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
EcalPreshower
Definition: EcalSubdetector.h:10
ESDetId::six
int six() const
Definition: ESDetId.h:43
SelectedElectronFEDListProducer::GeometryCalo_
const CaloGeometry * GeometryCalo_
Definition: SelectedElectronFEDListProducer.h:145
eostools.move
def move(src, dest)
Definition: eostools.py:511
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
SelectedElectronFEDListProducer::beamSpotTag_
edm::InputTag beamSpotTag_
Definition: SelectedElectronFEDListProducer.h:101
SiStripRegionCabling::Cabling
std::vector< RegionCabling > Cabling
Definition: SiStripRegionCabling.h:34
EcalMappingRcd
Definition: EcalMappingRcd.h:15
HcalElectronicsMap::lookup
const DetId lookup(HcalElectronicsId fId) const
lookup the logical detid associated with the given electronics id
Definition: HcalElectronicsMap.cc:70
pwdgSkimBPark_cfi.electrons
electrons
Definition: pwdgSkimBPark_cfi.py:6
SelectedElectronFEDListProducer::StripRegionCabling_
const SiStripRegionCabling * StripRegionCabling_
Definition: SelectedElectronFEDListProducer.h:147
SelectedElectronFEDListProducer::dPhiPixelRegion_
double dPhiPixelRegion_
Definition: SelectedElectronFEDListProducer.h:120
Exception
Definition: hltDiff.cc:246
FEDNumbering::MINHCALFEDID
Definition: FEDNumbering.h:47
FEDRawData::resize
void resize(size_t newsize)
Definition: FEDRawData.cc:28
HLT_2018_cff.region
region
Definition: HLT_2018_cff.py:81479
ESDetId::siy
int siy() const
Definition: ESDetId.h:45
SelectedElectronFEDListProducer::HcalReadoutMap_
const HcalElectronicsMap * HcalReadoutMap_
Definition: SelectedElectronFEDListProducer.h:148
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
SelectedElectronFEDListProducer::EcalMapping_
const EcalElectronicsMapping * EcalMapping_
Definition: SelectedElectronFEDListProducer.h:144
reco::deltaR
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
SelectedElectronFEDListProducer::hbheRecHitToken_
edm::EDGetTokenT< HBHERecHitCollection > hbheRecHitToken_
Definition: SelectedElectronFEDListProducer.h:130
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
HcalElectronicsId::spigot
constexpr int spigot() const
get the spigot (input number on DCC, AMC card number for uTCA)
Definition: HcalElectronicsId.h:93
HcalElectronicsId::dccid
constexpr int dccid() const
get the (Hcal local) DCC id for VME, crate number for uTCA
Definition: HcalElectronicsId.h:95
cms::Exception
Definition: Exception.h:70
trigger::TriggerPhoton
HLT.
Definition: TriggerTypeDefs.h:77
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HcalDbRecord
Definition: HcalDbRecord.h:30
HGC3DClusterGenMatchSelector_cfi.dR
dR
Definition: HGC3DClusterGenMatchSelector_cfi.py:7
FEDNumbering::MAXHCALFEDID
Definition: FEDNumbering.h:48
SelectedElectronFEDListProducer::isGsfElectronCollection_
std::vector< int > isGsfElectronCollection_
Definition: SelectedElectronFEDListProducer.h:106
SiPixelFedCablingMapRcd
Definition: SiPixelFedCablingMapRcd.h:5
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
HcalElectronicsId::fiberChanId
constexpr int fiberChanId() const
get the fiber channel id (which of channels on a fiber)
Definition: HcalElectronicsId.h:76
SelectedElectronFEDListProducer::dumpSelectedSiPixelFed_
bool dumpSelectedSiPixelFed_
Definition: SelectedElectronFEDListProducer.h:113
point
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
SiStripRegionCabling::ElementCabling
std::vector< Element > ElementCabling
Definition: SiStripRegionCabling.h:31
HcalGeometry
Definition: HcalGeometry.h:17
dttmaxenums::R
Definition: DTTMax.h:29
SelectedElectronFEDListProducer::rawDataTag_
edm::InputTag rawDataTag_
Definition: SelectedElectronFEDListProducer.h:102
edm::InputTag
Definition: InputTag.h:15
ESDetId::zside
int zside() const
Definition: ESDetId.h:39
FEDNumbering::MAXECALFEDID
Definition: FEDNumbering.h:44
edm::FileInPath::fullPath
std::string fullPath() const
Definition: FileInPath.cc:163
SiStripRegionCabling::regionDimensions
const std::pair< double, double > regionDimensions() const
Definition: SiStripRegionCabling.h:124
SelectedElectronFEDListProducer::maxZPixelRegion_
double maxZPixelRegion_
Definition: SelectedElectronFEDListProducer.h:122
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
SelectedElectronFEDListProducer::beamSpotPosition_
math::XYZVector beamSpotPosition_
Definition: SelectedElectronFEDListProducer.h:135
FEDNumbering::MINSiStripFEDID
Definition: FEDNumbering.h:29
SelectedElectronFEDListProducer::ES_fedId_
int ES_fedId_[2][2][40][40]
Definition: SelectedElectronFEDListProducer.h:138
SelectedElectronFEDListProducer::recoEcalCandidateToken_
std::vector< edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > > recoEcalCandidateToken_
Definition: SelectedElectronFEDListProducer.h:131