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
 
 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
 
const EDProduceroperator= (const EDProducer &)=delete
 

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<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::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 73 of file SelectedElectronFEDListProducer.cc.

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

References Exception, edm::ParameterSet::existsAs(), edm::ParameterSet::getParameter(), mps_fire::i, HLT_FULL_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 289 of file SelectedElectronFEDListProducer.cc.

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

Member Function Documentation

◆ beginJob()

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

Definition at line 305 of file SelectedElectronFEDListProducer.cc.

305  {
306  LogDebug("SelectedElectronFEDListProducer") << " Begin of the Job " << std::endl;
307 }

References LogDebug.

◆ endJob()

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

Definition at line 691 of file SelectedElectronFEDListProducer.cc.

691  {
692  LogDebug("SelectedElectronFEDListProducer") << " End of the Job " << std::endl;
693 }

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 721 of file SelectedElectronFEDListProducer.cc.

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

References edm::ConfigurationDescriptions::add(), defaultModuleLabel(), submitPVResolutionJobs::desc, HLT_FULL_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 696 of file SelectedElectronFEDListProducer.cc.

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

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

◆ produce()

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

Definition at line 310 of file SelectedElectronFEDListProducer.cc.

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

References SiStripRegionCabling::ALLLAYERS, SiStripRegionCabling::ALLSUBDETS, pwdgSkimBPark_cfi::beamSpot, edm::SortedCollection< T, SORT >::begin(), SiPixelFedCablingMap::cablingTree(), FEDRawData::data(), data, HcalElectronicsId::dccid(), reco::deltaR(), TrackerGeometry::dets(), 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, pfDeepBoostedJetPreprocessParams_cfi::lower_bound, M_PI, FEDNumbering::MAXECALFEDID, FEDNumbering::MAXHCALFEDID, FEDNumbering::MAXPreShowerFEDID, FEDNumbering::MAXSiPixelFEDID, FEDNumbering::MAXSiStripFEDID, FEDNumbering::MINECALFEDID, FEDNumbering::MINHCALFEDID, FEDNumbering::MINPreShowerFEDID, FEDNumbering::MINSiPixelFEDID, FEDNumbering::MINSiStripFEDID, callgraph::module, 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_FULL_cff::region, FEDRawData::resize(), ESDetId::six(), ESDetId::siy(), findQualityFiles::size, jetUpdater_cfi::sort, HcalElectronicsId::spigot(), mathSSE::sqrt(), trigger::TriggerCluster, trigger::TriggerElectron, trigger::TriggerPhoton, pfDeepBoostedJetPreprocessParams_cfi::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
pfDeepBoostedJetPreprocessParams_cfi.upper_bound
upper_bound
Definition: pfDeepBoostedJetPreprocessParams_cfi.py:16
SelectedElectronFEDListProducer::outputLabelModule_
std::string outputLabelModule_
Definition: SelectedElectronFEDListProducer.h:125
mps_fire.i
i
Definition: mps_fire.py:428
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:696
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
FEDNumbering::MINSiPixelFEDID
Definition: FEDNumbering.h:27
SelectedElectronFEDListProducer::addThisSelectedFEDs_
std::vector< int > addThisSelectedFEDs_
Definition: SelectedElectronFEDListProducer.h:107
SelectedElectronFEDListProducer::fedList_
std::vector< uint32_t > fedList_
Definition: SelectedElectronFEDListProducer.h:141
FEDNumbering::MAXSiPixelFEDID
Definition: FEDNumbering.h:28
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
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
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
SelectedElectronFEDListProducer::ESLookupTable_
edm::FileInPath ESLookupTable_
Definition: SelectedElectronFEDListProducer.h:109
FEDNumbering::MAXECALFEDID
Definition: FEDNumbering.h:44
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:171
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< FEDRawDataCollection >
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:590
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:61
SelectedElectronFEDListProducer::PixelCabling_
std::unique_ptr< SiPixelFedCablingTree > PixelCabling_
Definition: SelectedElectronFEDListProducer.h:151
FEDNumbering::MAXHCALFEDID
Definition: FEDNumbering.h:48
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:87
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
PVValHelper::eta
Definition: PVValidationHelpers.h:70
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:78
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:16
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
FEDNumbering::MINSiStripFEDID
Definition: FEDNumbering.h:29
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
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
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
pfDeepBoostedJetPreprocessParams_cfi.lower_bound
lower_bound
Definition: pfDeepBoostedJetPreprocessParams_cfi.py:15
edm::HandleBase::failedToGet
bool failedToGet() const
Definition: HandleBase.h:72
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
defaultModuleLabel
std::string defaultModuleLabel()
Definition: defaultModuleLabel.h:16
FEDNumbering::MINHCALFEDID
Definition: FEDNumbering.h:47
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
math::XYZVector
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
HcalDetId
Definition: HcalDetId.h:12
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88286
iEvent
int iEvent
Definition: GenABIO.cc:224
SelectedElectronFEDListProducer::regionDimension_
std::pair< double, double > regionDimension_
Definition: SelectedElectronFEDListProducer.h:155
PixelRegion
Definition: SelectedElectronFEDListProducer.h:36
FEDNumbering::MINPreShowerFEDID
Definition: FEDNumbering.h:31
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:49
SelectedElectronFEDListProducer::dRStripRegion_
double dRStripRegion_
Definition: SelectedElectronFEDListProducer.h:119
SiStripRegionCablingRcd
Definition: SiStripDependentRecords.h:23
TrackerGeometry::dets
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
Definition: TrackerGeometry.h:62
l1tstage2_dqm_sourceclient-live_cfg.fedId
fedId
Definition: l1tstage2_dqm_sourceclient-live_cfg.py:89
DetId::Ecal
Definition: DetId.h:27
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
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::ESTransientHandle
Definition: ESTransientHandle.h:41
SelectedElectronFEDListProducer::HBHERecHitTag_
edm::InputTag HBHERecHitTag_
Definition: SelectedElectronFEDListProducer.h:104
callgraph.module
module
Definition: callgraph.py:61
DDAxes::phi
ESDetId::plane
int plane() const
Definition: ESDetId.h:41
EcalPreshower
Definition: EcalSubdetector.h:10
ESDetId::six
int six() const
Definition: ESDetId.h:43
SelectedElectronFEDListProducer::GeometryCalo_
const CaloGeometry * GeometryCalo_
Definition: SelectedElectronFEDListProducer.h:145
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
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:245
FEDRawData::resize
void resize(size_t newsize)
Definition: FEDRawData.cc:28
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
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
FEDNumbering::MINECALFEDID
Definition: FEDNumbering.h:43
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
FEDNumbering::MAXSiStripFEDID
Definition: FEDNumbering.h:30
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:29
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
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
edm::FileInPath::fullPath
std::string fullPath() const
Definition: FileInPath.cc:161
SiStripRegionCabling::regionDimensions
const std::pair< double, double > regionDimensions() const
Definition: SiStripRegionCabling.h:124
SelectedElectronFEDListProducer::maxZPixelRegion_
double maxZPixelRegion_
Definition: SelectedElectronFEDListProducer.h:122
FEDNumbering::MAXPreShowerFEDID
Definition: FEDNumbering.h:32
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
SelectedElectronFEDListProducer::beamSpotPosition_
math::XYZVector beamSpotPosition_
Definition: SelectedElectronFEDListProducer.h:135
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