7 template<
typename TEle,
typename TCand>
11 if(iConfig.
existsAs<std::vector<edm::InputTag> >(
"electronTags")){
12 electronTags_ = iConfig.
getParameter<std::vector<edm::InputTag>>(
"electronTags");
13 if(electronTags_.empty())
14 throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] empty electron collection is given --> at least one \n";
16 else throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] no electron collection are given --> need at least one \n";
19 LogDebug(
"SelectedElectronFEDListProducer")<<
" Electron Collections"<<std::endl;
20 for( std::vector<edm::InputTag>::const_iterator itEleTag = electronTags_.begin(); itEleTag != electronTags_.end(); ++itEleTag){
21 electronToken_.push_back(consumes<TEleColl>(*itEleTag));
22 LogDebug(
"SelectedElectronFEDListProducer")<<
" Ele collection: "<<*(itEleTag)<<std::endl;
26 if(iConfig.
existsAs<std::vector<edm::InputTag> >(
"recoEcalCandidateTags")){
27 recoEcalCandidateTags_ = iConfig.
getParameter<std::vector<edm::InputTag>>(
"recoEcalCandidateTags");
28 if(recoEcalCandidateTags_.empty())
29 throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] empty ecal candidate collections collection is given --> at least one \n";
31 else throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] no electron reco ecal candidate collection are given --> need at least one \n";
34 for( std::vector<edm::InputTag>::const_iterator itEcalCandTag = recoEcalCandidateTags_.begin(); itEcalCandTag != recoEcalCandidateTags_.end(); ++itEcalCandTag){
35 recoEcalCandidateToken_.push_back(consumes<trigger::TriggerFilterObjectWithRefs>(*itEcalCandTag));
36 LogDebug(
"SelectedElectronFEDListProducer")<<
" Reco ecal candidate collection: "<<*(itEcalCandTag)<<std::endl;
40 if(iConfig.
existsAs<std::vector<int>>(
"isGsfElectronCollection")){
41 isGsfElectronCollection_ = iConfig.
getParameter<std::vector<int>>(
"isGsfElectronCollection");
42 if(isGsfElectronCollection_.empty())
43 throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] empty electron flag collection --> at least one \n";
45 else throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] no electron flag are given --> need at least one \n";
47 if(isGsfElectronCollection_.size() < electronTags_.size())
48 throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] electron flag < electron collection --> need at equal number to understand which are Gsf and which not \n";
55 if(!(beamSpotTag_ ==
edm::InputTag(
""))) beamSpotToken_ = consumes<reco::BeamSpot>(beamSpotTag_);
57 LogDebug(
"SelectedElectronFEDListProducer")<<
" Beam Spot Tag "<<beamSpotTag_<<std::endl;
64 if(!(HBHERecHitTag_ ==
edm::InputTag(
""))) hbheRecHitToken_ = consumes<HBHERecHitCollection>(HBHERecHitTag_);
71 if(!(rawDataTag_ ==
edm::InputTag(
""))) rawDataToken_ = consumes<FEDRawDataCollection>(rawDataTag_);
73 LogDebug(
"SelectedElectronFEDListProducer")<<
" RawDataInput "<<rawDataTag_<<std::endl;
77 if(iConfig.
existsAs<std::vector<int>>(
"addThisSelectedFEDs")){
78 addThisSelectedFEDs_ = iConfig.
getParameter<std::vector<int>>(
"addThisSelectedFEDs");
79 if(addThisSelectedFEDs_.empty())
80 addThisSelectedFEDs_.push_back(-1);
82 else addThisSelectedFEDs_.push_back(-1);
84 std::vector<int>::const_iterator AddFed = addThisSelectedFEDs_.begin();
85 for( ; AddFed !=addThisSelectedFEDs_.end() ; ++AddFed)
86 LogDebug(
"SelectedElectronFEDListProducer")<<
" Additional FED: "<<*(AddFed)<<std::endl;
92 else ESLookupTable_ =
edm::FileInPath(
"EventFilter/ESDigiToRaw/data/ES_lookup_table.dat");
97 else outputLabelModule_ =
"streamElectronRawData" ;
99 LogDebug(
"SelectedElectronFEDListProducer")<<
" Output Label "<<outputLabelModule_<<std::endl;
102 if(iConfig.
existsAs<
double>(
"dRStripRegion"))
103 dRStripRegion_ = iConfig.
getParameter<
double>(
"dRStripRegion");
104 else dRStripRegion_ = 0.5 ;
106 LogDebug(
"SelectedElectronFEDListProducer")<<
" dRStripRegion "<<dRStripRegion_<<std::endl;
109 if(iConfig.
existsAs<
double>(
"dRHcalRegion"))
110 dRHcalRegion_ = iConfig.
getParameter<
double>(
"dRHcalRegion");
111 else dRHcalRegion_ = 0.5 ;
114 if(iConfig.
existsAs<
double>(
"dPhiPixelRegion"))
115 dPhiPixelRegion_ = iConfig.
getParameter<
double>(
"dPhiPixelRegion");
116 else dPhiPixelRegion_ = 0.5 ;
118 if(iConfig.
existsAs<
double>(
"dEtaPixelRegion"))
119 dEtaPixelRegion_ = iConfig.
getParameter<
double>(
"dEtaPixelRegion");
120 else dEtaPixelRegion_ = 0.5 ;
122 if(iConfig.
existsAs<
double>(
"maxZPixelRegion"))
123 maxZPixelRegion_ = iConfig.
getParameter<
double>(
"maxZPixelRegion");
124 else maxZPixelRegion_ = 24. ;
126 LogDebug(
"SelectedElectronFEDListProducer")<<
" dPhiPixelRegion "<<dPhiPixelRegion_<<
" dEtaPixelRegion "<<dEtaPixelRegion_<<
" MaxZPixelRegion "<<maxZPixelRegion_<<std::endl;
129 if( iConfig.
existsAs<
bool>(
"dumpSelectedEcalFed"))
130 dumpSelectedEcalFed_ = iConfig.
getParameter<
bool >(
"dumpSelectedEcalFed");
131 else dumpSelectedEcalFed_ =
true ;
133 if(iConfig.
existsAs<
bool>(
"dumpSelectedSiStripFed"))
134 dumpSelectedSiStripFed_ = iConfig.
getParameter<
bool>(
"dumpSelectedSiStripFed");
135 else dumpSelectedSiStripFed_ =
true ;
137 if(iConfig.
existsAs<
bool>(
"dumpSelectedSiPixelFed"))
138 dumpSelectedSiPixelFed_ = iConfig.
getParameter<
bool>(
"dumpSelectedSiPixelFed");
139 else dumpSelectedSiPixelFed_ =
true ;
141 if(iConfig.
existsAs<
bool>(
"dumpSelectedHCALFed"))
142 dumpSelectedHCALFed_ = iConfig.
getParameter<
bool>(
"dumpSelectedHCALFed");
143 else dumpSelectedHCALFed_ =
true ;
145 LogDebug(
"SelectedElectronFEDListProducer")<<
" DumpEcalFedList set to "<<dumpSelectedEcalFed_<<
" DumpSelectedSiStripFed "<<dumpSelectedSiStripFed_<<
" DumpSelectedSiPixelFed "<<dumpSelectedSiPixelFed_<<std::endl;
147 if(iConfig.
existsAs<
bool>(
"dumpAllEcalFed"))
148 dumpAllEcalFed_ = iConfig.
getParameter<
bool>(
"dumpAllEcalFed");
149 else dumpAllEcalFed_ =
false ;
151 if(iConfig.
existsAs<
bool>(
"dumpAllTrackerFed"))
152 dumpAllTrackerFed_ = iConfig.
getParameter<
bool>(
"dumpAllTrackerFed");
153 else dumpAllTrackerFed_ =
false ;
155 if(iConfig.
existsAs<
bool>(
"dumpAllHCALFed"))
156 dumpAllHCALFed_ = iConfig.
getParameter<
bool>(
"dumpAllHCALFed");
157 else dumpAllHCALFed_ =
false ;
159 LogDebug(
"SelectedElectronFEDListProducer")<<
" DumpAllEcalFed "<<dumpAllEcalFed_<<
" DumpAllTrackerFed "<<dumpAllTrackerFed_<<
" Dump all HCAL fed "<<dumpAllHCALFed_<<std::endl;
163 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;
166 int nLines, iz, ip, ix, iy, fed, kchip, pace, bundle, fiber, optorx;
167 std::ifstream ES_file;
168 ES_file.open(ESLookupTable_.fullPath().c_str());
169 LogDebug(
"SelectedElectronFEDListProducer")<<
" Look Up table for ES "<<ESLookupTable_.fullPath().c_str()<<std::endl;
170 if( ES_file.is_open() ) {
173 ES_file >> iz >> ip >> ix >> iy >> fed >> kchip >> pace >> bundle >> fiber >> optorx ;
174 ES_fedId_[(3-iz)/2-1][ip-1][ix-1][iy-1] = fed;
177 else LogDebug(
"SelectedElectronFEDListProducer")<<
" Look up table file can not be found in "<<ESLookupTable_.fullPath().c_str() <<std::endl;
181 produces<FEDRawDataCollection>(outputLabelModule_);
185 template<
typename TEle,
typename TCand>
188 if(!electronTags_.empty()) electronTags_.clear() ;
189 if(!recoEcalCandidateTags_.empty()) recoEcalCandidateTags_.clear() ;
190 if(!recoEcalCandidateToken_.empty()) recoEcalCandidateToken_.clear();
191 if(!electronToken_.empty()) electronToken_.clear();
192 if(!fedList_.empty()) fedList_.clear() ;
193 if(!RawDataCollection_)
delete RawDataCollection_ ;
196 template<
typename TEle,
typename TCand>
199 LogDebug(
"SelectedElectronFEDListProducer")<<
" Begin of the Job : event counter set to"<<eventCounter_<<std::endl;
202 template<
typename TEle,
typename TCand>
205 if(!fedList_.empty()) fedList_.clear();
206 if(!RawDataCollection_)
delete RawDataCollection_ ;
211 if(eventCounter_ ==0 ){
216 hcalReadoutMap_ = pSetup->getHcalMapping();
222 TheMapping_ = ecalmapping.
product();
227 geometry_ = caloGeometry.
product();
236 PixelCabling_.reset();
237 PixelCabling_ = pixelCablingMap->cablingTree();
242 if(!pixelModuleVector_.empty()) pixelModuleVector_.clear();
245 std::vector<const GeomDet*>::const_iterator itTracker = trackerGeometry->dets().begin();
246 for( ; itTracker !=trackerGeometry->dets().end() ; ++itTracker){
247 int subdet = (*itTracker)->geographicalId().subdetId();
250 module.
x = (*itTracker)->position().x();
251 module.
y = (*itTracker)->position().y();
252 module.
z = (*itTracker)->position().z();
254 module.
Eta = (*itTracker)->position().eta() ;
255 module.
DetId = (*itTracker)->geographicalId().rawId();
256 const std::vector<sipixelobjects::CablingPathToDetUnit> path2det = PixelCabling_->pathToDetUnit(module.
DetId);
257 module.
Fed = path2det[0].fed;
259 pixelModuleVector_.push_back(module);
261 std::sort(pixelModuleVector_.begin(),pixelModuleVector_.end());
265 StripRegionCabling_ = SiStripCabling.product();
267 cabling_ = StripRegionCabling_->getRegionCabling();
268 regionDimension_ = StripRegionCabling_->regionDimensions();
280 if(!beamSpot.
failedToGet()) beamSpotPosition_ = beamSpot->position();
281 else beamSpotPosition_.SetXYZ(0,0,0);
287 if(!hbheRecHitHandle.
failedToGet()) hcalRecHitCollection = hbheRecHitHandle.
product();
289 double radTodeg = 180. /
Geom::pi();
293 fedList_.push_back(iEcalFed);
295 fedList_.push_back(iESFed);
298 if(dumpAllTrackerFed_){
300 fedList_.push_back(iPixelFed);
302 fedList_.push_back(iStripFed);
307 fedList_.push_back(iHcalFed);
316 std::vector<edm::Ref<TCandColl>> recoEcalCandColl;
319 typename std::vector<edm::EDGetTokenT<TEleColl> >::const_iterator itElectronColl = electronToken_.begin();
320 std::vector<int>::const_iterator itElectronCollFlag = isGsfElectronCollection_.begin();
321 std::vector<edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> >::const_iterator itRecoEcalCandColl = recoEcalCandidateToken_.begin();
324 if( !dumpAllTrackerFed_ || !dumpAllEcalFed_ ){
325 for( ; itRecoEcalCandColl != recoEcalCandidateToken_.end(); ++itRecoEcalCandColl){
327 try { iEvent.
getByToken(*itRecoEcalCandColl,triggerRecoEcalCandidateCollection);
328 if(triggerRecoEcalCandidateCollection.
failedToGet())
continue ;
333 if(recoEcalCandColl.empty()) triggerRecoEcalCandidateCollection->getObjects(
trigger::TriggerPhoton, recoEcalCandColl);
334 if(recoEcalCandColl.empty()) triggerRecoEcalCandidateCollection->getObjects(
trigger::TriggerElectron, recoEcalCandColl);
336 typename std::vector<edm::Ref<TCandColl>>::const_iterator itRecoEcalCand = recoEcalCandColl.begin();
338 for( ; itRecoEcalCand != recoEcalCandColl.end() ; ++itRecoEcalCand){
339 recoEcalCand = (*itRecoEcalCand);
342 for( ; itElectronColl != electronToken_.end() && itElectronCollFlag != isGsfElectronCollection_.end(); ++itElectronColl , ++itElectronCollFlag){
343 try { iEvent.
getByToken(*itElectronColl,electrons);
348 typename TEleColl::const_iterator itEle = electrons->begin();
349 for( ; itEle!=electrons->end() ; ++itEle){
353 if ( scRefRecoEcalCand != scRef ) continue ;
355 const std::vector<std::pair<DetId,float> >& hits = scRef->hitsAndFractions();
357 std::vector<std::pair<DetId,float> >::const_iterator itSChits = hits.begin();
358 if(!dumpAllEcalFed_){
359 for( ; itSChits!=hits.end() ; ++itSChits){
360 if((*itSChits).first.subdetId()==
EcalBarrel){
361 EBDetId idEBRaw ((*itSChits).first);
366 LogDebug(
"SelectedElectronFEDListProducer")<<
" electron hit detID Barrel "<<(*itSChits).first.rawId()<<
" eta "<<double(point.
eta())<<
" phi "<<
double(point.
phi())*radTodeg <<
" FED "<<hitFED<<std::endl;
368 if(dumpSelectedEcalFed_){
369 if(!fedList_.empty()){
370 if(
std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
372 else fedList_.push_back(hitFED);
375 else if((*itSChits).first.subdetId()==
EcalEndcap){
376 EEDetId idEERaw ((*itSChits).first);
381 LogDebug(
"SelectedElectronFEDListProducer")<<
" electron hit detID Endcap "<<(*itSChits).first.rawId()<<
" eta "<<double(point.
eta())<<
" phi "<<
double(point.
phi())*radTodeg <<
" FED "<<hitFED<<std::endl;
382 if(dumpSelectedEcalFed_){
383 if(!fedList_.empty()){
384 if(
std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
386 else fedList_.push_back(hitFED);
391 int hitFED = ES_fedId_[(3-stripX.
zside())/2-1][stripX.
plane()-1][stripX.
six()-1][stripX.
siy()-1];
392 LogDebug(
"SelectedElectronFEDListProducer")<<
" ES hit plane X (deiID) "<<stripX.
rawId()<<
" six "<<stripX.
six()<<
" siy "<<stripX.
siy()<<
" plane "<<stripX.
plane()<<
" FED ID "<<hitFED<<std::endl;
394 if(hitFED < 0)
continue;
395 if(!fedList_.empty()){
396 if(
std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
398 else fedList_.push_back(hitFED);
402 hitFED = ES_fedId_[(3-stripY.
zside())/2-1][stripY.
plane()-1][stripY.
six()-1][stripY.
siy()-1];
403 if(hitFED < FEDNumbering::MINPreShowerFEDID || hitFED > FEDNumbering::MAXPreShowerFEDID)
continue;
404 LogDebug(
"SelectedElectronFEDListProducer")<<
" ES hit plane Y (deiID) "<<stripY.
rawId()<<
" six "<<stripY.
six()<<
" siy "<<stripY.
siy()<<
" plane "<<stripY.
plane()<<
" FED ID "<<hitFED<<std::endl;
405 if(hitFED < 0)
continue;
406 if(!fedList_.empty()){
407 if(
std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
409 else fedList_.push_back(hitFED);
415 if(dumpSelectedHCALFed_) {
417 for( ; itHcalRecHit != hcalRecHitCollection->
end() ; ++itHcalRecHit) {
419 const CaloCellGeometry* cellGeometry = geometry_->getSubdetectorGeometry(recHitId)->getGeometry(recHitId);
420 float dR =
reco::deltaR(scRef->eta(),scRef->phi(),cellGeometry->getPosition().eta(),cellGeometry->getPosition().phi());
421 if(dR <= dRHcalRegion_) {
424 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;
429 if(!fedList_.empty()) {
430 if(
std::find(fedList_.begin(), fedList_.end(), hitFED) == fedList_.end())
431 fedList_.push_back(hitFED);
434 fedList_.push_back(hitFED);
441 if( !dumpAllTrackerFed_ ){
443 if(dumpSelectedSiStripFed_){
446 if(*itElectronCollFlag){
447 eta = electron.gsfTrack()->eta();
448 phi = electron.gsfTrack()->phi();
451 eta = electron.track()->eta();
452 phi = electron.track()->phi();
454 for(uint32_t iCabling = 0; iCabling < cabling_.size(); iCabling++){
456 double dphi=fabs(pos.second-phi);
457 if (dphi>acos(-1)) dphi=2*acos(-1)-dphi;
458 double R =
sqrt(
pow(pos.first-eta,2)+dphi*dphi);
459 if (R-
sqrt(
pow(regionDimension_.first/2,2)+
pow(regionDimension_.second/2,2))>dRStripRegion_)
continue;
469 SiStripRegionCabling::ElementCabling::const_iterator itFedMap = fedVectorMap.begin();
470 for( ; itFedMap!=fedVectorMap.end(); itFedMap++){
471 for (uint32_t op=0; op<(itFedMap->second).
size(); op++){
472 int hitFED = (itFedMap->second)[op].
fedId();
474 LogDebug(
"SelectedElectronFEDListProducer")<<
" SiStrip (FedID) "<<hitFED<<std::endl;
475 if(!fedList_.empty()){
476 if(
std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
478 else fedList_.push_back(hitFED);
486 if(dumpSelectedSiPixelFed_){
488 if(*itElectronCollFlag) momentum = electron.gsfTrack()->momentum();
489 else momentum = electron.track()->momentum();
490 PixelRegion region (momentum,dPhiPixelRegion_,dEtaPixelRegion_,maxZPixelRegion_);
495 std::vector<PixelModule>::const_iterator itUp, itDn ;
496 if(lowerBound.Phi >= -
M_PI && upperBound.Phi <=
M_PI ){
497 itDn = std::lower_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),lowerBound);
498 itUp = std::upper_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),upperBound);
499 pixelFedDump(itDn,itUp,region);
502 if(lowerBound.Phi < -
M_PI) lowerBound.Phi = lowerBound.Phi+2*
M_PI;
504 itDn = std::lower_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),lowerBound);
505 itUp = std::upper_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),phi_p);
506 pixelFedDump(itDn,itUp,region);
508 if(upperBound.Phi < -
M_PI) upperBound.Phi = upperBound.Phi-2*
M_PI;
510 itDn = std::lower_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),phi_m);
511 itUp = std::upper_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),upperBound);
512 pixelFedDump(itDn,itUp,region);
522 for(
unsigned int iFed = 0 ; iFed < addThisSelectedFEDs_.size() ; iFed++){
523 if(addThisSelectedFEDs_.at(iFed) == -1 )
continue ;
524 fedList_.push_back(addThisSelectedFEDs_.at(iFed));
529 std::sort(fedList_.begin(),fedList_.end());
530 std::vector<uint32_t>::const_iterator itfedList = fedList_.begin();
531 for( ; itfedList!=fedList_.end() ; ++itfedList){
532 LogDebug(
"SelectedElectronFEDListProducer")<<
" fed point "<<*itfedList<<
" ";
535 FEDRawData& fedData = RawDataCollection_->FEDData(*itfedList);
541 std::auto_ptr<FEDRawDataCollection> streamFEDRawProduct(RawDataCollection_);
542 iEvent.
put(streamFEDRawProduct,outputLabelModule_);
547 template<
typename TEle,
typename TCand>
549 LogDebug(
"SelectedElectronFEDListProducer")<<
" End of the Job : Counted Events "<<eventCounter_<<std::endl;
552 template<
typename TEle,
typename TCand>
554 std::vector<PixelModule>::const_iterator & itUp,
557 for( ; itDn != itUp ; ++itDn){
558 float zmodule = itDn->z-((itDn->x-beamSpotPosition_.x())*region.
cosphi+(itDn->y-beamSpotPosition_.y())*region.
sinphi)*region.
atantheta;
560 int hitFED = itDn->Fed;
562 LogDebug(
"SelectedElectronFEDListProducer")<<
" electron pixel hit "<<itDn->DetId<<
" hitFED "<<hitFED<<std::endl;
563 if(!fedList_.empty()){
564 if(
std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
566 else fedList_.push_back(hitFED);
572 template<
typename TEle,
typename TCand>
575 desc.
add<vector<edm::InputTag>>(
"electronTags",{
edm::InputTag(
"hltEgammaGsfElectrons")});
576 desc.
add<vector<edm::InputTag>>(
"recoEcalCandidateTags",{
edm::InputTag(
"hltL1EG25Ele27WP85GsfTrackIsoFilter")});
581 desc.
add<vector<int>>(
"addThisSelectedFEDs",{812,813});
582 desc.
add<vector<int>>(
"isGsfElectronCollection",{
true});
583 desc.
add<
std::string>(
"outputLabelModule",
"StreamElectronRawFed");
584 desc.
add<
bool>(
"dumpSelectedSiPixelFed",
true);
585 desc.
add<
bool>(
"dumpSelectedSiStripFed",
true);
586 desc.
add<
bool>(
"dumpSelectedEcalFed",
true);
587 desc.
add<
bool>(
"dumpSelectedHCALFed",
true);
588 desc.
add<
double>(
"dPhiPixelRegion",0.3);
589 desc.
add<
double>(
"dEtaPixelRegion",0.3);
590 desc.
add<
double>(
"dRStripRegion",0.3);
591 desc.
add<
double>(
"dRHcalRegion",0.3);
592 desc.
add<
double>(
"maxZPixelRegion",24);
593 desc.
add<
bool>(
"dumpAllTrackerFed",
false);
594 desc.
add<
bool>(
"dumpAllEcalFed",
false);
595 desc.
add<
bool>(
"dumpAllHcalFed",
false);
T getParameter(std::string const &) const
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...
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
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
double deltaR(const T1 &t1, const T2 &t2)
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
void resize(size_t newsize)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
std::vector< ElementCabling > WedgeCabling
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)
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
T const * product() const
XYZVectorD XYZVector
spatial vector with cartesian internal representation
T const * product() const
void add(std::string const &label, ParameterSetDescription const &psetDescription)
char data[epos_bytes_allocation]
virtual ~SelectedElectronFEDListProducer()
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
volatile std::atomic< bool > shutdown_flag false
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)
tuple size
Write out results.
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