69 template<
typename TEle,
typename TCand>
73 if(iConfig.
existsAs<std::vector<edm::InputTag> >(
"electronTags")){
74 electronTags_ = iConfig.
getParameter<std::vector<edm::InputTag>>(
"electronTags");
75 if(electronTags_.empty())
76 throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] empty electron collection is given --> at least one \n";
78 else throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] no electron collection are given --> need at least one \n";
81 LogDebug(
"SelectedElectronFEDListProducer")<<
" Electron Collections"<<std::endl;
82 for( std::vector<edm::InputTag>::const_iterator itEleTag = electronTags_.begin(); itEleTag != electronTags_.end(); ++itEleTag){
83 electronToken_.push_back(consumes<TEleColl>(*itEleTag));
84 LogDebug(
"SelectedElectronFEDListProducer")<<
" Ele collection: "<<*(itEleTag)<<std::endl;
88 if(iConfig.
existsAs<std::vector<edm::InputTag> >(
"recoEcalCandidateTags")){
89 recoEcalCandidateTags_ = iConfig.
getParameter<std::vector<edm::InputTag>>(
"recoEcalCandidateTags");
90 if(recoEcalCandidateTags_.empty())
91 throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] empty ecal candidate collections collection is given --> at least one \n";
93 else throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] no electron reco ecal candidate collection are given --> need at least one \n";
96 for( std::vector<edm::InputTag>::const_iterator itEcalCandTag = recoEcalCandidateTags_.begin(); itEcalCandTag != recoEcalCandidateTags_.end(); ++itEcalCandTag){
97 recoEcalCandidateToken_.push_back(consumes<trigger::TriggerFilterObjectWithRefs>(*itEcalCandTag));
98 LogDebug(
"SelectedElectronFEDListProducer")<<
" Reco ecal candidate collection: "<<*(itEcalCandTag)<<std::endl;
102 if(iConfig.
existsAs<std::vector<int>>(
"isGsfElectronCollection")){
103 isGsfElectronCollection_ = iConfig.
getParameter<std::vector<int>>(
"isGsfElectronCollection");
104 if(isGsfElectronCollection_.empty())
105 throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] empty electron flag collection --> at least one \n";
107 else throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] no electron flag are given --> need at least one \n";
109 if(isGsfElectronCollection_.size() != electronTags_.size()
or isGsfElectronCollection_.size() != recoEcalCandidateTags_.size())
110 throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] electron flag , electron collection and reco ecal cand collection must have the same size ! \n";
117 if(!(beamSpotTag_ ==
edm::InputTag(
""))) beamSpotToken_ = consumes<reco::BeamSpot>(beamSpotTag_);
119 LogDebug(
"SelectedElectronFEDListProducer")<<
" Beam Spot Tag "<<beamSpotTag_<<std::endl;
126 if(!(HBHERecHitTag_ ==
edm::InputTag(
""))) hbheRecHitToken_ = consumes<HBHERecHitCollection>(HBHERecHitTag_);
133 if(!(rawDataTag_ ==
edm::InputTag(
""))) rawDataToken_ = consumes<FEDRawDataCollection>(rawDataTag_);
135 LogDebug(
"SelectedElectronFEDListProducer")<<
" RawDataInput "<<rawDataTag_<<std::endl;
139 if(iConfig.
existsAs<std::vector<int>>(
"addThisSelectedFEDs")){
140 addThisSelectedFEDs_ = iConfig.
getParameter<std::vector<int>>(
"addThisSelectedFEDs");
141 if(addThisSelectedFEDs_.empty())
142 addThisSelectedFEDs_.push_back(-1);
144 else addThisSelectedFEDs_.push_back(-1);
146 std::vector<int>::const_iterator AddFed = addThisSelectedFEDs_.begin();
147 for( ; AddFed !=addThisSelectedFEDs_.end() ; ++AddFed)
148 LogDebug(
"SelectedElectronFEDListProducer")<<
" Additional FED: "<<*(AddFed)<<std::endl;
154 else ESLookupTable_ =
edm::FileInPath(
"EventFilter/ESDigiToRaw/data/ES_lookup_table.dat");
159 else outputLabelModule_ =
"streamElectronRawData" ;
161 LogDebug(
"SelectedElectronFEDListProducer")<<
" Output Label "<<outputLabelModule_<<std::endl;
164 if(iConfig.
existsAs<
double>(
"dRStripRegion"))
165 dRStripRegion_ = iConfig.
getParameter<
double>(
"dRStripRegion");
166 else dRStripRegion_ = 0.5 ;
168 LogDebug(
"SelectedElectronFEDListProducer")<<
" dRStripRegion "<<dRStripRegion_<<std::endl;
171 if(iConfig.
existsAs<
double>(
"dRHcalRegion"))
172 dRHcalRegion_ = iConfig.
getParameter<
double>(
"dRHcalRegion");
173 else dRHcalRegion_ = 0.5 ;
176 if(iConfig.
existsAs<
double>(
"dPhiPixelRegion"))
177 dPhiPixelRegion_ = iConfig.
getParameter<
double>(
"dPhiPixelRegion");
178 else dPhiPixelRegion_ = 0.5 ;
180 if(iConfig.
existsAs<
double>(
"dEtaPixelRegion"))
181 dEtaPixelRegion_ = iConfig.
getParameter<
double>(
"dEtaPixelRegion");
182 else dEtaPixelRegion_ = 0.5 ;
184 if(iConfig.
existsAs<
double>(
"maxZPixelRegion"))
185 maxZPixelRegion_ = iConfig.
getParameter<
double>(
"maxZPixelRegion");
186 else maxZPixelRegion_ = 24. ;
188 LogDebug(
"SelectedElectronFEDListProducer")<<
" dPhiPixelRegion "<<dPhiPixelRegion_<<
" dEtaPixelRegion "<<dEtaPixelRegion_<<
" MaxZPixelRegion "<<maxZPixelRegion_<<std::endl;
191 if( iConfig.
existsAs<
bool>(
"dumpSelectedEcalFed"))
192 dumpSelectedEcalFed_ = iConfig.
getParameter<
bool >(
"dumpSelectedEcalFed");
193 else dumpSelectedEcalFed_ =
true ;
195 if(iConfig.
existsAs<
bool>(
"dumpSelectedSiStripFed"))
196 dumpSelectedSiStripFed_ = iConfig.
getParameter<
bool>(
"dumpSelectedSiStripFed");
197 else dumpSelectedSiStripFed_ =
true ;
199 if(iConfig.
existsAs<
bool>(
"dumpSelectedSiPixelFed"))
200 dumpSelectedSiPixelFed_ = iConfig.
getParameter<
bool>(
"dumpSelectedSiPixelFed");
201 else dumpSelectedSiPixelFed_ =
true ;
203 if(iConfig.
existsAs<
bool>(
"dumpSelectedHCALFed"))
204 dumpSelectedHCALFed_ = iConfig.
getParameter<
bool>(
"dumpSelectedHCALFed");
205 else dumpSelectedHCALFed_ =
true ;
207 LogDebug(
"SelectedElectronFEDListProducer")<<
" DumpEcalFedList set to "<<dumpSelectedEcalFed_<<
" DumpSelectedSiStripFed "<<dumpSelectedSiStripFed_<<
" DumpSelectedSiPixelFed "<<dumpSelectedSiPixelFed_<<std::endl;
209 if(iConfig.
existsAs<
bool>(
"dumpAllEcalFed"))
210 dumpAllEcalFed_ = iConfig.
getParameter<
bool>(
"dumpAllEcalFed");
211 else dumpAllEcalFed_ =
false ;
213 if(iConfig.
existsAs<
bool>(
"dumpAllTrackerFed"))
214 dumpAllTrackerFed_ = iConfig.
getParameter<
bool>(
"dumpAllTrackerFed");
215 else dumpAllTrackerFed_ =
false ;
217 if(iConfig.
existsAs<
bool>(
"dumpAllHCALFed"))
218 dumpAllHCALFed_ = iConfig.
getParameter<
bool>(
"dumpAllHCALFed");
219 else dumpAllHCALFed_ =
false ;
221 LogDebug(
"SelectedElectronFEDListProducer")<<
" DumpAllEcalFed "<<dumpAllEcalFed_<<
" DumpAllTrackerFed "<<dumpAllTrackerFed_<<
" Dump all HCAL fed "<<dumpAllHCALFed_<<std::endl;
224 for (
int i=0;
i<2; ++
i)
for (
int j=0; j<2; ++j)
for (
int k=0 ;
k<40; ++
k)
for (
int m=0;
m<40;
m++) ES_fedId_[
i][j][
k][
m] = -1;
227 int nLines, iz, ip, ix, iy, fed, kchip, pace, bundle, fiber, optorx;
228 std::ifstream ES_file;
229 ES_file.open(ESLookupTable_.fullPath().c_str());
230 LogDebug(
"SelectedElectronFEDListProducer")<<
" Look Up table for ES "<<ESLookupTable_.fullPath().c_str()<<std::endl;
231 if( ES_file.is_open() ) {
233 for (
int i=0;
i<nLines; ++
i) {
234 ES_file >> iz >> ip >> ix >> iy >> fed >> kchip >> pace >> bundle >> fiber >> optorx ;
235 ES_fedId_[(3-iz)/2-1][ip-1][ix-1][iy-1] = fed;
238 else LogDebug(
"SelectedElectronFEDListProducer")<<
" Look up table file can not be found in "<<ESLookupTable_.fullPath().c_str() <<std::endl;
242 produces<FEDRawDataCollection>(outputLabelModule_);
246 template<
typename TEle,
typename TCand>
249 if(!electronTags_.empty()) electronTags_.clear() ;
250 if(!recoEcalCandidateTags_.empty()) recoEcalCandidateTags_.clear() ;
251 if(!recoEcalCandidateToken_.empty()) recoEcalCandidateToken_.clear();
252 if(!electronToken_.empty()) electronToken_.clear();
253 if(!fedList_.empty()) fedList_.clear() ;
254 if(!pixelModuleVector_.empty()) pixelModuleVector_.clear();
257 template<
typename TEle,
typename TCand>
259 LogDebug(
"SelectedElectronFEDListProducer")<<
" Begin of the Job "<<std::endl;
263 template<
typename TEle,
typename TCand>
274 EcalMapping_ = ecalmapping.
product();
279 GeometryCalo_ = caloGeometry.
product();
287 PixelCabling_.reset();
293 if(pixelModuleVector_.empty()){
296 std::vector<const GeomDet*>::const_iterator itTracker = trackerGeometry->
dets().begin();
297 for( ; itTracker !=trackerGeometry->
dets().end() ; ++itTracker){
298 int subdet = (*itTracker)->geographicalId().subdetId();
301 module.
x = (*itTracker)->position().x();
302 module.
y = (*itTracker)->position().y();
303 module.
z = (*itTracker)->position().z();
304 module.
Phi = (*itTracker)->position().phi();
305 module.
Eta = (*itTracker)->position().eta();
306 module.
DetId = (*itTracker)->geographicalId().rawId();
307 const std::vector<sipixelobjects::CablingPathToDetUnit> path2det = PixelCabling_->pathToDetUnit(module.
DetId);
308 module.
Fed = path2det[0].fed;
310 pixelModuleVector_.push_back(module);
312 std::sort(pixelModuleVector_.begin(),pixelModuleVector_.end());
317 StripRegionCabling_ = SiStripCablingHandle.product();
320 SiStripCabling = StripRegionCabling_->getRegionCabling();
321 regionDimension_ = StripRegionCabling_->regionDimensions();
332 else beamSpotPosition_.SetXYZ(0,0,0);
338 if(!hbheRecHitHandle.
failedToGet()) hcalRecHitCollection = hbheRecHitHandle.
product();
340 double radTodeg = 180. /
Geom::pi();
344 fedList_.push_back(iEcalFed);
346 fedList_.push_back(iESFed);
349 if(dumpAllTrackerFed_){
351 fedList_.push_back(iPixelFed);
353 fedList_.push_back(iStripFed);
358 fedList_.push_back(iHcalFed);
366 std::vector<edm::Ref<TCandColl>> recoEcalCandColl;
369 typename std::vector<edm::EDGetTokenT<TEleColl> >::const_iterator itElectronColl = electronToken_.begin();
370 std::vector<int>::const_iterator itElectronCollFlag = isGsfElectronCollection_.begin();
371 std::vector<edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> >::const_iterator itRecoEcalCandColl = recoEcalCandidateToken_.begin();
374 if( !dumpAllTrackerFed_ || !dumpAllEcalFed_ ){
377 for( ; itRecoEcalCandColl != recoEcalCandidateToken_.end() and itElectronColl != electronToken_.end() and itElectronCollFlag != isGsfElectronCollection_.end();
378 ++itElectronColl , ++itElectronCollFlag, ++itRecoEcalCandColl){
381 iEvent.
getByToken(*itRecoEcalCandColl,triggerRecoEcalCandidateCollection);
382 if(triggerRecoEcalCandidateCollection.
failedToGet())
continue ;
392 typename std::vector<edm::Ref<TCandColl>>::const_iterator itRecoEcalCand = recoEcalCandColl.begin();
395 for( ; itRecoEcalCand != recoEcalCandColl.end() ; ++itRecoEcalCand){
396 recoEcalCand = (*itRecoEcalCand);
399 typename TEleColl::const_iterator itEle = electrons->begin();
400 for( ; itEle!=electrons->end() ; ++itEle){
404 if ( scRefRecoEcalCand != scRef ) continue ;
406 const std::vector<std::pair<DetId,float> >&
hits = scRef->hitsAndFractions();
408 std::vector<std::pair<DetId,float> >::const_iterator itSChits = hits.begin();
409 if(!dumpAllEcalFed_){
410 for( ; itSChits!=hits.end() ; ++itSChits){
411 if((*itSChits).first.subdetId()==
EcalBarrel){
412 EBDetId idEBRaw ((*itSChits).first);
417 LogDebug(
"SelectedElectronFEDListProducer")<<
" electron hit detID Barrel "<<(*itSChits).first.rawId()<<
" eta "<<double(point.
eta())<<
" phi "<<
double(point.
phi())*radTodeg <<
" FED "<<hitFED<<std::endl;
419 if(dumpSelectedEcalFed_){
420 if(!fedList_.empty()){
421 if(
std::find(fedList_.begin(),fedList_.end(),hitFED) == fedList_.end())
422 fedList_.push_back(hitFED);
424 else fedList_.push_back(hitFED);
427 else if((*itSChits).first.subdetId()==
EcalEndcap){
428 EEDetId idEERaw ((*itSChits).first);
433 LogDebug(
"SelectedElectronFEDListProducer")<<
" electron hit detID Endcap "<<(*itSChits).first.rawId()<<
" eta "<<double(point.
eta())<<
" phi "<<
double(point.
phi())*radTodeg <<
" FED "<<hitFED<<std::endl;
434 if(dumpSelectedEcalFed_){
435 if(!fedList_.empty()){
436 if(
std::find(fedList_.begin(),fedList_.end(),hitFED) == fedList_.end())
437 fedList_.push_back(hitFED);
439 else fedList_.push_back(hitFED);
444 int hitFED = ES_fedId_[(3-stripX.
zside())/2-1][stripX.
plane()-1][stripX.
six()-1][stripX.
siy()-1];
445 LogDebug(
"SelectedElectronFEDListProducer")<<
" ES hit plane X (deiID) "<<stripX.
rawId()<<
" six "<<stripX.
six()<<
" siy "<<stripX.
siy()<<
" plane "<<stripX.
plane()<<
" FED ID "<<hitFED<<std::endl;
447 if(hitFED < 0)
continue;
448 if(!fedList_.empty()){
449 if(
std::find(fedList_.begin(),fedList_.end(),hitFED) == fedList_.end())
450 fedList_.push_back(hitFED);
452 else fedList_.push_back(hitFED);
456 hitFED = ES_fedId_[(3-stripY.
zside())/2-1][stripY.
plane()-1][stripY.
six()-1][stripY.
siy()-1];
457 if(hitFED < FEDNumbering::MINPreShowerFEDID || hitFED > FEDNumbering::MAXPreShowerFEDID)
continue;
458 LogDebug(
"SelectedElectronFEDListProducer")<<
" ES hit plane Y (deiID) "<<stripY.
rawId()<<
" six "<<stripY.
six()<<
" siy "<<stripY.
siy()<<
" plane "<<stripY.
plane()<<
" FED ID "<<hitFED<<std::endl;
459 if(hitFED < 0)
continue;
460 if(!fedList_.empty()){
461 if(
std::find(fedList_.begin(),fedList_.end(),hitFED) == fedList_.end())
462 fedList_.push_back(hitFED);
464 else fedList_.push_back(hitFED);
470 if(dumpSelectedHCALFed_) {
472 for( ; itHcalRecHit != hcalRecHitCollection->
end() ; ++itHcalRecHit) {
474 const CaloCellGeometry* cellGeometry = GeometryCalo_->getSubdetectorGeometry(recHitId)->getGeometry(recHitId);
475 float dR =
reco::deltaR(scRef->eta(),scRef->phi(),cellGeometry->getPosition().eta(),cellGeometry->getPosition().phi());
476 if(dR <= dRHcalRegion_) {
479 LogDebug(
"SelectedElectronFEDListProducer")<<
" matched hcal recHit : HcalDetId "<<recHitId<<
" HcalElectronicsId "<<electronicId<<
" dcc id "<<electronicId.
dccid()<<
" spigot "<<electronicId.
spigot()<<
" fiber channel "<<electronicId.
fiberChanId()<<
" fiber index "<<electronicId.
fiberIndex()<<std::endl;
484 if(!fedList_.empty()) {
485 if(
std::find(fedList_.begin(), fedList_.end(), hitFED) == fedList_.end())
486 fedList_.push_back(hitFED);
489 fedList_.push_back(hitFED);
496 if( !dumpAllTrackerFed_ ){
498 if(dumpSelectedSiStripFed_){
501 if(*itElectronCollFlag){
502 eta = electron.gsfTrack()->eta();
503 phi = electron.gsfTrack()->phi();
506 eta = electron.track()->eta();
507 phi = electron.track()->phi();
509 for(uint32_t iCabling = 0; iCabling < SiStripCabling.size(); iCabling++){
511 double dphi=fabs(pos.second-phi);
512 if (dphi>acos(-1)) dphi=2*acos(-1)-dphi;
513 double R =
sqrt(
pow(pos.first-eta,2)+dphi*dphi);
514 if (R-
sqrt(
pow(regionDimension_.first/2,2)+
pow(regionDimension_.second/2,2))>dRStripRegion_)
continue;
524 SiStripRegionCabling::ElementCabling::const_iterator itFedMap = fedVectorMap.begin();
525 for( ; itFedMap!=fedVectorMap.end(); itFedMap++){
526 for (uint32_t op=0; op<(itFedMap->second).
size(); op++){
527 int hitFED = (itFedMap->second)[op].fedId();
529 LogDebug(
"SelectedElectronFEDListProducer")<<
" SiStrip (FedID) "<<hitFED<<std::endl;
530 if(!fedList_.empty()){
531 if(
std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
533 else fedList_.push_back(hitFED);
540 if(dumpSelectedSiPixelFed_){
542 if(*itElectronCollFlag) momentum = electron.gsfTrack()->momentum();
543 else momentum = electron.track()->momentum();
544 PixelRegion region (momentum,dPhiPixelRegion_,dEtaPixelRegion_,maxZPixelRegion_);
548 std::vector<PixelModule>::const_iterator itUp, itDn ;
549 if(lowerBound.Phi >= -
M_PI && upperBound.Phi <=
M_PI ){
550 itDn = std::lower_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),lowerBound);
551 itUp = std::upper_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),upperBound);
552 pixelFedDump(itDn,itUp,region);
555 if(lowerBound.Phi < -
M_PI) lowerBound.Phi = lowerBound.Phi+2*
M_PI;
557 itDn = std::lower_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),lowerBound);
558 itUp = std::upper_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),phi_p);
559 pixelFedDump(itDn,itUp,region);
561 if(upperBound.Phi < -
M_PI) upperBound.Phi = upperBound.Phi-2*
M_PI;
563 itDn = std::lower_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),phi_m);
564 itUp = std::upper_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),upperBound);
565 pixelFedDump(itDn,itUp,region);
574 for(
unsigned int iFed = 0 ; iFed < addThisSelectedFEDs_.size() ; iFed++){
575 if(addThisSelectedFEDs_.at(iFed) == -1 )
continue ;
576 fedList_.push_back(addThisSelectedFEDs_.at(iFed));
580 auto streamFEDRawProduct = std::make_unique<FEDRawDataCollection>();
581 std::sort(fedList_.begin(),fedList_.end());
582 std::vector<uint32_t>::const_iterator itfedList = fedList_.begin();
583 for( ; itfedList!=fedList_.end() ; ++itfedList){
584 LogDebug(
"SelectedElectronFEDListProducer")<<
" fed point "<<*itfedList<<
" ";
587 FEDRawData& fedData = streamFEDRawProduct->FEDData(*itfedList);
593 iEvent.
put(
std::move(streamFEDRawProduct),outputLabelModule_);
595 if(!fedList_.empty()) fedList_.clear();
600 template<
typename TEle,
typename TCand>
602 LogDebug(
"SelectedElectronFEDListProducer")<<
" End of the Job "<<std::endl;
605 template<
typename TEle,
typename TCand>
607 std::vector<PixelModule>::const_iterator & itUp,
610 for( ; itDn != itUp ; ++itDn){
611 float zmodule = itDn->z-((itDn->x-beamSpotPosition_.x())*region.
cosphi+(itDn->y-beamSpotPosition_.y())*region.
sinphi)*region.
atantheta;
613 int hitFED = itDn->Fed;
615 LogDebug(
"SelectedElectronFEDListProducer")<<
" electron pixel hit "<<itDn->DetId<<
" hitFED "<<hitFED<<std::endl;
616 if(!fedList_.empty()){
617 if(
std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
619 else fedList_.push_back(hitFED);
625 template<
typename TEle,
typename TCand>
628 desc.
add<vector<edm::InputTag>>(
"electronTags",{
edm::InputTag(
"hltEgammaGsfElectrons")});
629 desc.
add<vector<edm::InputTag>>(
"recoEcalCandidateTags",{
edm::InputTag(
"hltL1EG25Ele27WP85GsfTrackIsoFilter")});
634 desc.
add<vector<int>>(
"addThisSelectedFEDs",{812,813});
635 desc.
add<vector<int>>(
"isGsfElectronCollection",{
true});
636 desc.
add<
std::string>(
"outputLabelModule",
"StreamElectronRawFed");
637 desc.
add<
bool>(
"dumpSelectedSiPixelFed",
true);
638 desc.
add<
bool>(
"dumpSelectedSiStripFed",
true);
639 desc.
add<
bool>(
"dumpSelectedEcalFed",
true);
640 desc.
add<
bool>(
"dumpSelectedHCALFed",
true);
641 desc.
add<
double>(
"dPhiPixelRegion",0.3);
642 desc.
add<
double>(
"dEtaPixelRegion",0.3);
643 desc.
add<
double>(
"dRStripRegion",0.3);
644 desc.
add<
double>(
"dRHcalRegion",0.3);
645 desc.
add<
double>(
"maxZPixelRegion",24);
646 desc.
add<
bool>(
"dumpAllTrackerFed",
false);
647 desc.
add<
bool>(
"dumpAllEcalFed",
false);
648 desc.
add<
bool>(
"dumpAllHcalFed",
false);
T getParameter(std::string const &) const
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
std::string defaultModuleLabel()
int fiberIndex() const
get the fiber index. For VME 1-8 (which of eight fibers carried by a spigot), for uTCA fibers are zer...
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
const DetContainer & dets() const
Returm a vector of all GeomDet (including all GeomDetUnits)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
SelectedElectronFEDListProducer(const edm::ParameterSet &)
Producer constructor.
Geom::Phi< T > phi() const
std::vector< HBHERecHit >::const_iterator const_iterator
std::vector< Element > ElementCabling
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
size_t size() const
Lenght of the data buffer in bytes.
virtual void produce(edm::Event &, const edm::EventSetup &)
uint32_t rawId() const
get the raw id
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
void resize(size_t newsize)
std::vector< ElementCabling > WedgeCabling
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
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
int dccid() const
get the (Hcal local) DCC id for VME, crate number for uTCA
std::pair< double, double > Position
Abs< T >::type abs(const T &t)
auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
SelectedElectronFEDListProducer< reco::Electron, reco::RecoEcalCandidate > SelectedElectronFEDListProducerGsf
int fiberChanId() const
get the fiber channel id (which of channels on a fiber)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
int spigot() const
get the spigot (input number on DCC, AMC card number for uTCA)
const_iterator end() const
std::unique_ptr< SiPixelFedCablingTree > cablingTree() const
T const * product() const
XYZVectorD XYZVector
spatial vector with cartesian internal representation
void add(std::string const &label, ParameterSetDescription const &psetDescription)
return(e1-e2)*(e1-e2)+dp *dp
char data[epos_bytes_allocation]
virtual ~SelectedElectronFEDListProducer()
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
const HcalElectronicsMap * getHcalMapping() const
const Point & position() const
position
T const * product() const
std::vector< WedgeCabling > RegionCabling
Readout chain identification for Hcal.
void pixelFedDump(std::vector< PixelModule >::const_iterator &itDn, std::vector< PixelModule >::const_iterator &itUp, const PixelRegion ®ion)
Power< A, B >::type pow(const A &a, const B &b)
*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
const_iterator begin() const
std::vector< RegionCabling > Cabling