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

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

Definition at line 90 of file SelectedElectronFEDListProducer.h.

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

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

Producer constructor.

Definition at line 70 of file SelectedElectronFEDListProducer.cc.

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.

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 }
#define LogDebug(id)
T getParameter(std::string const &) const
std::vector< edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > > recoEcalCandidateToken_
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:160
edm::EDGetTokenT< HBHERecHitCollection > hbheRecHitToken_
edm::EDGetTokenT< FEDRawDataCollection > rawDataToken_
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
std::vector< edm::InputTag > recoEcalCandidateTags_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
std::string fullPath() const
Definition: FileInPath.cc:163
std::vector< edm::EDGetTokenT< TEleColl > > electronToken_
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 }
std::vector< edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > > recoEcalCandidateToken_
std::vector< edm::InputTag > recoEcalCandidateTags_
std::vector< edm::EDGetTokenT< TEleColl > > electronToken_

Member Function Documentation

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

Definition at line 302 of file SelectedElectronFEDListProducer.cc.

References LogDebug.

302  {
303  LogDebug("SelectedElectronFEDListProducer") << " Begin of the Job " << std::endl;
304 }
#define LogDebug(id)
template<typename TEle , typename TCand >
void SelectedElectronFEDListProducer< TEle, TCand >::endJob ( void  )
protectedvirtual

Definition at line 688 of file SelectedElectronFEDListProducer.cc.

References LogDebug.

Referenced by o2olib.O2ORunMgr::executeJob().

688  {
689  LogDebug("SelectedElectronFEDListProducer") << " End of the Job " << std::endl;
690 }
#define LogDebug(id)
template<typename TEle , typename TCand >
void SelectedElectronFEDListProducer< TEle, TCand >::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 718 of file SelectedElectronFEDListProducer.cc.

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

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 }
std::string defaultModuleLabel()
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
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.

References funct::abs(), PixelRegion::atantheta, PixelRegion::cosphi, spr::find(), LogDebug, FEDNumbering::MAXSiPixelFEDID, PixelRegion::maxZ, and PixelRegion::sinphi.

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 }
#define LogDebug(id)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
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.

References SiStripRegionCabling::ALLLAYERS, SiStripRegionCabling::ALLSUBDETS, pwdgSkimBPark_cfi::beamSpot, edm::SortedCollection< T, SORT >::begin(), SiPixelFedCablingMap::cablingTree(), FEDRawData::data(), data, HcalElectronicsId::dccid(), reco::deltaR(), PixelRegion::dEta, PixelModule::DetId, TrackerGeometry::dets(), PixelRegion::dPhi, HGC3DClusterGenMatchSelector_cfi::dR, DetId::Ecal, EcalBarrel, EcalEndcap, EcalPreshower, metsig::electron, pwdgSkimBPark_cfi::electrons, edm::SortedCollection< T, SORT >::end(), PixelModule::Eta, PVValHelper::eta, PV3DBase< T, PVType, FrameType >::eta(), edm::HandleBase::failedToGet(), PixelModule::Fed, FEDRawDataCollection::FEDData(), l1tstage2_dqm_sourceclient-live_cfg::fedId, HcalElectronicsId::fiberChanId(), HcalElectronicsId::fiberIndex(), spr::find(), edm::EventSetup::get(), edm::Event::getByToken(), HcalDbService::getHcalMapping(), trigger::TriggerRefsCollections::getObjects(), CaloGeometry::getSubdetectorGeometry(), hfClusterShapes_cfi::hits, LogDebug, M_PI, FEDNumbering::MAXECALFEDID, FEDNumbering::MAXHCALFEDID, FEDNumbering::MAXPreShowerFEDID, FEDNumbering::MAXSiPixelFEDID, FEDNumbering::MAXSiStripFEDID, FEDNumbering::MINECALFEDID, FEDNumbering::MINHCALFEDID, FEDNumbering::MINPreShowerFEDID, FEDNumbering::MINSiPixelFEDID, FEDNumbering::MINSiStripFEDID, eostools::move(), PV3DBase< T, PVType, FrameType >::phi(), PixelModule::Phi, Geom::pi(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, ESDetId::plane(), point, reco::BeamSpot::position(), funct::pow(), edm::Handle< T >::product(), edm::ESHandle< T >::product(), edm::Event::put(), dttmaxenums::R, DetId::rawId(), HLT_2018_cff::region, FEDRawData::resize(), ESDetId::six(), ESDetId::siy(), FEDRawData::size(), findQualityFiles::size, HcalElectronicsId::spigot(), mathSSE::sqrt(), trigger::TriggerCluster, trigger::TriggerElectron, trigger::TriggerPhoton, PixelRegion::vector, PixelModule::x, PixelModule::y, PixelModule::z, and ESDetId::zside().

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

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 
332  edm::ESHandle<TrackerGeometry> trackerGeometry;
333  iSetup.get<TrackerDigiGeometryRecord>().get(trackerGeometry);
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);
487  GlobalPoint point = GeometryCalo_->getPosition(idEERaw);
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 }
#define LogDebug(id)
size
Write out results.
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:34
const std::pair< double, double > regionDimensions() const
int GetFED(double eta, double phi) const
std::vector< edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > > recoEcalCandidateToken_
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:131
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
std::vector< T >::const_iterator const_iterator
const CaloSubdetectorGeometry * GeometryES_
int six() const
Definition: ESDetId.h:43
constexpr int dccid() const
get the (Hcal local) DCC id for VME, crate number for uTCA
std::vector< Element > ElementCabling
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:45
edm::EDGetTokenT< HBHERecHitCollection > hbheRecHitToken_
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
std::unique_ptr< SiPixelFedCablingTree > PixelCabling_
edm::EDGetTokenT< FEDRawDataCollection > rawDataToken_
int siy() const
Definition: ESDetId.h:45
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
void resize(size_t newsize)
Definition: FEDRawData.cc:28
T sqrt(T t)
Definition: SSEVec.h:19
GlobalPoint getPosition(const DetId &id) const
Get the position of a given detector id.
Definition: CaloGeometry.cc:50
constexpr int spigot() const
get the spigot (input number on DCC, AMC card number for uTCA)
std::vector< RegionCabling > Cabling
const Cabling & getRegionCabling() const
int zside() const
Definition: ESDetId.h:39
#define M_PI
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
const_iterator end() const
bool failedToGet() const
Definition: HandleBase.h:72
Definition: DetId.h:17
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...
std::unique_ptr< SiPixelFedCablingTree > cablingTree() const
const Position position(const uint32_t) const
T const * product() const
Definition: Handle.h:69
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
const EcalElectronicsMapping * EcalMapping_
std::pair< double, double > Position
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
std::vector< WedgeCabling > RegionCabling
T eta() const
Definition: PV3DBase.h:73
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
T get() const
Definition: EventSetup.h:73
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:24
int plane() const
Definition: ESDetId.h:41
const HcalElectronicsMap * getHcalMapping() const
const SiStripRegionCabling * StripRegionCabling_
const Point & position() const
position
Definition: BeamSpot.h:59
constexpr int fiberChanId() const
get the fiber channel id (which of channels on a fiber)
std::vector< ElementCabling > WedgeCabling
constexpr double pi()
Definition: Pi.h:31
T const * product() const
Definition: ESHandle.h:86
Definition: vlib.h:198
Readout chain identification for Hcal.
void pixelFedDump(std::vector< PixelModule >::const_iterator &itDn, std::vector< PixelModule >::const_iterator &itUp, const PixelRegion &region)
std::vector< edm::EDGetTokenT< TEleColl > > electronToken_
const DetId lookup(HcalElectronicsId fId) const
lookup the logical detid associated with the given electronics id
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
def move(src, dest)
Definition: eostools.py:511
*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
const_iterator begin() const

Member Data Documentation

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

Definition at line 107 of file SelectedElectronFEDListProducer.h.

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

Definition at line 135 of file SelectedElectronFEDListProducer.h.

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

Definition at line 101 of file SelectedElectronFEDListProducer.h.

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

Definition at line 129 of file SelectedElectronFEDListProducer.h.

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

Definition at line 121 of file SelectedElectronFEDListProducer.h.

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

Definition at line 120 of file SelectedElectronFEDListProducer.h.

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

Definition at line 123 of file SelectedElectronFEDListProducer.h.

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

Definition at line 119 of file SelectedElectronFEDListProducer.h.

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

Definition at line 115 of file SelectedElectronFEDListProducer.h.

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

Definition at line 117 of file SelectedElectronFEDListProducer.h.

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

Definition at line 116 of file SelectedElectronFEDListProducer.h.

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

Definition at line 111 of file SelectedElectronFEDListProducer.h.

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

Definition at line 114 of file SelectedElectronFEDListProducer.h.

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

Definition at line 113 of file SelectedElectronFEDListProducer.h.

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

Definition at line 112 of file SelectedElectronFEDListProducer.h.

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

Definition at line 144 of file SelectedElectronFEDListProducer.h.

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

Definition at line 100 of file SelectedElectronFEDListProducer.h.

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

Definition at line 132 of file SelectedElectronFEDListProducer.h.

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

Definition at line 138 of file SelectedElectronFEDListProducer.h.

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

Definition at line 109 of file SelectedElectronFEDListProducer.h.

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

Definition at line 141 of file SelectedElectronFEDListProducer.h.

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

Definition at line 145 of file SelectedElectronFEDListProducer.h.

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

Definition at line 146 of file SelectedElectronFEDListProducer.h.

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

Definition at line 104 of file SelectedElectronFEDListProducer.h.

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

Definition at line 130 of file SelectedElectronFEDListProducer.h.

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

Definition at line 148 of file SelectedElectronFEDListProducer.h.

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

Definition at line 106 of file SelectedElectronFEDListProducer.h.

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

Definition at line 122 of file SelectedElectronFEDListProducer.h.

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

Definition at line 125 of file SelectedElectronFEDListProducer.h.

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

Definition at line 151 of file SelectedElectronFEDListProducer.h.

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

Definition at line 152 of file SelectedElectronFEDListProducer.h.

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

Definition at line 102 of file SelectedElectronFEDListProducer.h.

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

Definition at line 128 of file SelectedElectronFEDListProducer.h.

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

Definition at line 99 of file SelectedElectronFEDListProducer.h.

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

Definition at line 131 of file SelectedElectronFEDListProducer.h.

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

Definition at line 155 of file SelectedElectronFEDListProducer.h.

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

Definition at line 147 of file SelectedElectronFEDListProducer.h.