4 template<
typename TEle,
typename TCand>
8 if(iConfig.
existsAs<std::vector<edm::InputTag> >(
"electronTags")){
9 electronTags_ = iConfig.
getParameter<std::vector<edm::InputTag>>(
"electronTags");
10 if(electronTags_.empty())
11 throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] empty electron collection is given --> at least one \n";
13 else throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] no electron collection are given --> need at least one \n";
16 LogDebug(
"SelectedElectronFEDListProducer")<<
" Electron Collections"<<std::endl;
17 for( std::vector<edm::InputTag>::const_iterator itEleTag = electronTags_.begin(); itEleTag != electronTags_.end(); ++itEleTag){
18 electronToken_.push_back(consumes<TEleColl>(*itEleTag));
19 LogDebug(
"SelectedElectronFEDListProducer")<<
" Ele collection: "<<*(itEleTag)<<std::endl;
23 if(iConfig.
existsAs<std::vector<edm::InputTag> >(
"recoEcalCandidateTags")){
24 recoEcalCandidateTags_ = iConfig.
getParameter<std::vector<edm::InputTag>>(
"recoEcalCandidateTags");
25 if(recoEcalCandidateTags_.empty())
26 throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] empty ecal candidate collections collection is given --> at least one \n";
28 else throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] no electron reco ecal candidate collection are given --> need at least one \n";
31 for( std::vector<edm::InputTag>::const_iterator itEcalCandTag = recoEcalCandidateTags_.begin(); itEcalCandTag != recoEcalCandidateTags_.end(); ++itEcalCandTag){
32 recoEcalCandidateToken_.push_back(consumes<trigger::TriggerFilterObjectWithRefs>(*itEcalCandTag));
33 LogDebug(
"SelectedElectronFEDListProducer")<<
" Reco ecal candidate collection: "<<*(itEcalCandTag)<<std::endl;
37 if(iConfig.
existsAs<std::vector<int>>(
"isGsfElectronCollection")){
38 isGsfElectronCollection_ = iConfig.
getParameter<std::vector<int>>(
"isGsfElectronCollection");
39 if(isGsfElectronCollection_.empty())
40 throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] empty electron flag collection --> at least one \n";
42 else throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] no electron flag are given --> need at least one \n";
44 if(isGsfElectronCollection_.size() < electronTags_.size())
45 throw cms::Exception(
"Configuration")<<
"[SelectedElectronFEDListProducer] electron flag < electron collection --> need at equal number to understand which are Gsf and which not \n";
52 if(!(beamSpotTag_ ==
edm::InputTag(
""))) beamSpotToken_ = consumes<reco::BeamSpot>(beamSpotTag_);
54 LogDebug(
"SelectedElectronFEDListProducer")<<
" Beam Spot Tag "<<beamSpotTag_<<std::endl;
61 if(!(HBHERecHitTag_ ==
edm::InputTag(
""))) hbheRecHitToken_ = consumes<HBHERecHitCollection>(HBHERecHitTag_);
68 if(!(rawDataTag_ ==
edm::InputTag(
""))) rawDataToken_ = consumes<FEDRawDataCollection>(rawDataTag_);
70 LogDebug(
"SelectedElectronFEDListProducer")<<
" RawDataInput "<<rawDataTag_<<std::endl;
74 if(iConfig.
existsAs<std::vector<int>>(
"addThisSelectedFEDs")){
75 addThisSelectedFEDs_ = iConfig.
getParameter<std::vector<int>>(
"addThisSelectedFEDs");
76 if(addThisSelectedFEDs_.empty())
77 addThisSelectedFEDs_.push_back(-1);
79 else addThisSelectedFEDs_.push_back(-1);
81 std::vector<int>::const_iterator AddFed = addThisSelectedFEDs_.begin();
82 for( ; AddFed !=addThisSelectedFEDs_.end() ; ++AddFed)
83 LogDebug(
"SelectedElectronFEDListProducer")<<
" Additional FED: "<<*(AddFed)<<std::endl;
89 else ESLookupTable_ =
edm::FileInPath(
"EventFilter/ESDigiToRaw/data/ES_lookup_table.dat");
94 else outputLabelModule_ =
"streamElectronRawData" ;
96 LogDebug(
"SelectedElectronFEDListProducer")<<
" Output Label "<<outputLabelModule_<<std::endl;
99 if(iConfig.
existsAs<
double>(
"dRStripRegion"))
100 dRStripRegion_ = iConfig.
getParameter<
double>(
"dRStripRegion");
101 else dRStripRegion_ = 0.5 ;
103 LogDebug(
"SelectedElectronFEDListProducer")<<
" dRStripRegion "<<dRStripRegion_<<std::endl;
106 if(iConfig.
existsAs<
double>(
"dRHcalRegion"))
107 dRHcalRegion_ = iConfig.
getParameter<
double>(
"dRHcalRegion");
108 else dRHcalRegion_ = 0.5 ;
111 if(iConfig.
existsAs<
double>(
"dPhiPixelRegion"))
112 dPhiPixelRegion_ = iConfig.
getParameter<
double>(
"dPhiPixelRegion");
113 else dPhiPixelRegion_ = 0.5 ;
115 if(iConfig.
existsAs<
double>(
"dEtaPixelRegion"))
116 dEtaPixelRegion_ = iConfig.
getParameter<
double>(
"dEtaPixelRegion");
117 else dEtaPixelRegion_ = 0.5 ;
119 if(iConfig.
existsAs<
double>(
"maxZPixelRegion"))
120 maxZPixelRegion_ = iConfig.
getParameter<
double>(
"maxZPixelRegion");
121 else maxZPixelRegion_ = 24. ;
123 LogDebug(
"SelectedElectronFEDListProducer")<<
" dPhiPixelRegion "<<dPhiPixelRegion_<<
" dEtaPixelRegion "<<dEtaPixelRegion_<<
" MaxZPixelRegion "<<maxZPixelRegion_<<std::endl;
126 if( iConfig.
existsAs<
bool>(
"dumpSelectedEcalFed"))
127 dumpSelectedEcalFed_ = iConfig.
getParameter<
bool >(
"dumpSelectedEcalFed");
128 else dumpSelectedEcalFed_ =
true ;
130 if(iConfig.
existsAs<
bool>(
"dumpSelectedSiStripFed"))
131 dumpSelectedSiStripFed_ = iConfig.
getParameter<
bool>(
"dumpSelectedSiStripFed");
132 else dumpSelectedSiStripFed_ =
true ;
134 if(iConfig.
existsAs<
bool>(
"dumpSelectedSiPixelFed"))
135 dumpSelectedSiPixelFed_ = iConfig.
getParameter<
bool>(
"dumpSelectedSiPixelFed");
136 else dumpSelectedSiPixelFed_ =
true ;
138 if(iConfig.
existsAs<
bool>(
"dumpSelectedHCALFed"))
139 dumpSelectedHCALFed_ = iConfig.
getParameter<
bool>(
"dumpSelectedHCALFed");
140 else dumpSelectedHCALFed_ =
true ;
142 LogDebug(
"SelectedElectronFEDListProducer")<<
" DumpEcalFedList set to "<<dumpSelectedEcalFed_<<
" DumpSelectedSiStripFed "<<dumpSelectedSiStripFed_<<
" DumpSelectedSiPixelFed "<<dumpSelectedSiPixelFed_<<std::endl;
144 if(iConfig.
existsAs<
bool>(
"dumpAllEcalFed"))
145 dumpAllEcalFed_ = iConfig.
getParameter<
bool>(
"dumpAllEcalFed");
146 else dumpAllEcalFed_ =
false ;
148 if(iConfig.
existsAs<
bool>(
"dumpAllTrackerFed"))
149 dumpAllTrackerFed_ = iConfig.
getParameter<
bool>(
"dumpAllTrackerFed");
150 else dumpAllTrackerFed_ =
false ;
152 if(iConfig.
existsAs<
bool>(
"dumpAllHCALFed"))
153 dumpAllHCALFed_ = iConfig.
getParameter<
bool>(
"dumpAllHCALFed");
154 else dumpAllHCALFed_ =
false ;
156 LogDebug(
"SelectedElectronFEDListProducer")<<
" DumpAllEcalFed "<<dumpAllEcalFed_<<
" DumpAllTrackerFed "<<dumpAllTrackerFed_<<
" Dump all HCAL fed "<<dumpAllHCALFed_<<std::endl;
160 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;
163 int nLines, iz, ip, ix, iy, fed, kchip, pace, bundle, fiber, optorx;
164 std::ifstream ES_file;
165 ES_file.open(ESLookupTable_.fullPath().c_str());
166 LogDebug(
"SelectedElectronFEDListProducer")<<
" Look Up table for ES "<<ESLookupTable_.fullPath().c_str()<<std::endl;
167 if( ES_file.is_open() ) {
170 ES_file >> iz >> ip >> ix >> iy >> fed >> kchip >> pace >> bundle >> fiber >> optorx ;
171 ES_fedId_[(3-iz)/2-1][ip-1][ix-1][iy-1] = fed;
174 else LogDebug(
"SelectedElectronFEDListProducer")<<
" Look up table file can not be found in "<<ESLookupTable_.fullPath().c_str() <<std::endl;
178 produces<FEDRawDataCollection>(outputLabelModule_);
182 template<
typename TEle,
typename TCand>
185 if(!electronTags_.empty()) electronTags_.clear() ;
186 if(!recoEcalCandidateTags_.empty()) recoEcalCandidateTags_.clear() ;
187 if(!recoEcalCandidateToken_.empty()) recoEcalCandidateToken_.clear();
188 if(!electronToken_.empty()) electronToken_.clear();
189 if(!fedList_.empty()) fedList_.clear() ;
190 if(!RawDataCollection_)
delete RawDataCollection_ ;
193 template<
typename TEle,
typename TCand>
196 LogDebug(
"SelectedElectronFEDListProducer")<<
" Begin of the Job : event counter set to"<<eventCounter_<<std::endl;
199 template<
typename TEle,
typename TCand>
202 if(!fedList_.empty()) fedList_.clear();
203 if(!RawDataCollection_)
delete RawDataCollection_ ;
208 if(eventCounter_ ==0 ){
213 hcalReadoutMap_ = pSetup->getHcalMapping();
219 TheMapping_ = ecalmapping.
product();
224 geometry_ = caloGeometry.
product();
233 PixelCabling_.reset();
234 PixelCabling_ = pixelCablingMap->cablingTree();
239 if(!pixelModuleVector_.empty()) pixelModuleVector_.clear();
242 std::vector<const GeomDet*>::const_iterator itTracker = trackerGeometry->dets().begin();
243 for( ; itTracker !=trackerGeometry->dets().end() ; ++itTracker){
244 int subdet = (*itTracker)->geographicalId().subdetId();
247 module.
x = (*itTracker)->position().x();
248 module.
y = (*itTracker)->position().y();
249 module.
z = (*itTracker)->position().z();
251 module.
Eta = (*itTracker)->position().eta() ;
252 module.
DetId = (*itTracker)->geographicalId().rawId();
253 const std::vector<sipixelobjects::CablingPathToDetUnit> path2det = PixelCabling_->pathToDetUnit(module.
DetId);
254 module.
Fed = path2det[0].fed;
255 assert(module.
Fed<40);
256 pixelModuleVector_.push_back(module);
258 std::sort(pixelModuleVector_.begin(),pixelModuleVector_.end());
262 StripRegionCabling_ = SiStripCabling.product();
264 cabling_ = StripRegionCabling_->getRegionCabling();
265 regionDimension_ = StripRegionCabling_->regionDimensions();
277 if(!beamSpot.
failedToGet()) beamSpotPosition_ = beamSpot->position();
278 else beamSpotPosition_.SetXYZ(0,0,0);
284 if(!hbheRecHitHandle.
failedToGet()) hcalRecHitCollection = hbheRecHitHandle.
product();
286 double radTodeg = 180. /
Geom::pi();
290 fedList_.push_back(iEcalFed);
292 fedList_.push_back(iESFed);
295 if(dumpAllTrackerFed_){
297 fedList_.push_back(iPixelFed);
299 fedList_.push_back(iStripFed);
304 fedList_.push_back(iHcalFed);
313 std::vector<edm::Ref<TCandColl>> recoEcalCandColl;
316 typename std::vector<edm::EDGetTokenT<TEleColl> >::const_iterator itElectronColl = electronToken_.begin();
317 std::vector<int>::const_iterator itElectronCollFlag = isGsfElectronCollection_.begin();
318 std::vector<edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> >::const_iterator itRecoEcalCandColl = recoEcalCandidateToken_.begin();
321 if( !dumpAllTrackerFed_ || !dumpAllEcalFed_ ){
322 for( ; itRecoEcalCandColl != recoEcalCandidateToken_.end(); ++itRecoEcalCandColl){
324 try { iEvent.
getByToken(*itRecoEcalCandColl,triggerRecoEcalCandidateCollection);
325 if(triggerRecoEcalCandidateCollection.
failedToGet())
continue ;
330 if(recoEcalCandColl.empty()) triggerRecoEcalCandidateCollection->getObjects(
trigger::TriggerPhoton, recoEcalCandColl);
331 if(recoEcalCandColl.empty()) triggerRecoEcalCandidateCollection->getObjects(
trigger::TriggerElectron, recoEcalCandColl);
333 typename std::vector<edm::Ref<TCandColl>>::const_iterator itRecoEcalCand = recoEcalCandColl.begin();
335 for( ; itRecoEcalCand != recoEcalCandColl.end() ; ++itRecoEcalCand){
336 recoEcalCand = (*itRecoEcalCand);
339 for( ; itElectronColl != electronToken_.end() && itElectronCollFlag != isGsfElectronCollection_.end(); ++itElectronColl , ++itElectronCollFlag){
340 try { iEvent.
getByToken(*itElectronColl,electrons);
345 typename TEleColl::const_iterator itEle = electrons->begin();
346 for( ; itEle!=electrons->end() ; ++itEle){
350 if ( scRefRecoEcalCand != scRef ) continue ;
352 const std::vector<std::pair<DetId,float> >& hits = scRef->hitsAndFractions();
354 std::vector<std::pair<DetId,float> >::const_iterator itSChits = hits.begin();
355 if(!dumpAllEcalFed_){
356 for( ; itSChits!=hits.end() ; ++itSChits){
357 if((*itSChits).first.subdetId()==
EcalBarrel){
358 EBDetId idEBRaw ((*itSChits).first);
363 LogDebug(
"SelectedElectronFEDListProducer")<<
" electron hit detID Barrel "<<(*itSChits).first.rawId()<<
" eta "<<double(point.
eta())<<
" phi "<<
double(point.
phi())*radTodeg <<
" FED "<<hitFED<<std::endl;
365 if(dumpSelectedEcalFed_){
366 if(!fedList_.empty()){
367 if(
std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
369 else fedList_.push_back(hitFED);
372 else if((*itSChits).first.subdetId()==
EcalEndcap){
373 EEDetId idEERaw ((*itSChits).first);
378 LogDebug(
"SelectedElectronFEDListProducer")<<
" electron hit detID Endcap "<<(*itSChits).first.rawId()<<
" eta "<<double(point.
eta())<<
" phi "<<
double(point.
phi())*radTodeg <<
" FED "<<hitFED<<std::endl;
379 if(dumpSelectedEcalFed_){
380 if(!fedList_.empty()){
381 if(
std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
383 else fedList_.push_back(hitFED);
388 int hitFED = ES_fedId_[(3-stripX.
zside())/2-1][stripX.
plane()-1][stripX.
six()-1][stripX.
siy()-1];
389 LogDebug(
"SelectedElectronFEDListProducer")<<
" ES hit plane X (deiID) "<<stripX.
rawId()<<
" six "<<stripX.
six()<<
" siy "<<stripX.
siy()<<
" plane "<<stripX.
plane()<<
" FED ID "<<hitFED<<std::endl;
391 if(hitFED < 0)
continue;
392 if(!fedList_.empty()){
393 if(
std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
395 else fedList_.push_back(hitFED);
399 hitFED = ES_fedId_[(3-stripY.
zside())/2-1][stripY.
plane()-1][stripY.
six()-1][stripY.
siy()-1];
400 if(hitFED < FEDNumbering::MINPreShowerFEDID || hitFED > FEDNumbering::MAXPreShowerFEDID)
continue;
401 LogDebug(
"SelectedElectronFEDListProducer")<<
" ES hit plane Y (deiID) "<<stripY.
rawId()<<
" six "<<stripY.
six()<<
" siy "<<stripY.
siy()<<
" plane "<<stripY.
plane()<<
" FED ID "<<hitFED<<std::endl;
402 if(hitFED < 0)
continue;
403 if(!fedList_.empty()){
404 if(
std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
406 else fedList_.push_back(hitFED);
412 if(dumpSelectedHCALFed_) {
414 for( ; itHcalRecHit != hcalRecHitCollection->
end() ; ++itHcalRecHit) {
416 const CaloCellGeometry* cellGeometry = geometry_->getSubdetectorGeometry(recHitId)->getGeometry(recHitId);
417 float dR =
reco::deltaR(scRef->eta(),scRef->phi(),cellGeometry->getPosition().eta(),cellGeometry->getPosition().phi());
418 if(dR <= dRHcalRegion_) {
421 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;
426 if(!fedList_.empty()) {
427 if(
std::find(fedList_.begin(), fedList_.end(), hitFED) == fedList_.end())
428 fedList_.push_back(hitFED);
431 fedList_.push_back(hitFED);
438 if( !dumpAllTrackerFed_ ){
440 if(dumpSelectedSiStripFed_){
443 if(*itElectronCollFlag){
444 eta = electron.gsfTrack()->eta();
445 phi = electron.gsfTrack()->phi();
448 eta = electron.track()->eta();
449 phi = electron.track()->phi();
451 for(uint32_t iCabling = 0; iCabling < cabling_.size(); iCabling++){
453 double dphi=fabs(pos.second-phi);
454 if (dphi>acos(-1)) dphi=2*acos(-1)-dphi;
455 double R =
sqrt(
pow(pos.first-eta,2)+dphi*dphi);
456 if (R-
sqrt(
pow(regionDimension_.first/2,2)+
pow(regionDimension_.second/2,2))>dRStripRegion_)
continue;
466 SiStripRegionCabling::ElementCabling::const_iterator itFedMap = fedVectorMap.begin();
467 for( ; itFedMap!=fedVectorMap.end(); itFedMap++){
468 for (uint32_t op=0; op<(itFedMap->second).
size(); op++){
469 int hitFED = (itFedMap->second)[op].fedId();
471 LogDebug(
"SelectedElectronFEDListProducer")<<
" SiStrip (FedID) "<<hitFED<<std::endl;
472 if(!fedList_.empty()){
473 if(
std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
475 else fedList_.push_back(hitFED);
483 if(dumpSelectedSiPixelFed_){
485 if(*itElectronCollFlag) momentum = electron.gsfTrack()->momentum();
486 else momentum = electron.track()->momentum();
487 PixelRegion region (momentum,dPhiPixelRegion_,dEtaPixelRegion_,maxZPixelRegion_);
492 std::vector<PixelModule>::const_iterator itUp, itDn ;
493 if(lowerBound.Phi >= -
M_PI && upperBound.Phi <=
M_PI ){
494 itDn = std::lower_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),lowerBound);
495 itUp = std::upper_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),upperBound);
496 pixelFedDump(itDn,itUp,region);
499 if(lowerBound.Phi < -
M_PI) lowerBound.Phi = lowerBound.Phi+2*
M_PI;
501 itDn = std::lower_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),lowerBound);
502 itUp = std::upper_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),phi_p);
503 pixelFedDump(itDn,itUp,region);
505 if(upperBound.Phi < -
M_PI) upperBound.Phi = upperBound.Phi-2*
M_PI;
507 itDn = std::lower_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),phi_m);
508 itUp = std::upper_bound(pixelModuleVector_.begin(),pixelModuleVector_.end(),upperBound);
509 pixelFedDump(itDn,itUp,region);
519 for(
unsigned int iFed = 0 ; iFed < addThisSelectedFEDs_.size() ; iFed++){
520 if(addThisSelectedFEDs_.at(iFed) == -1 )
continue ;
521 fedList_.push_back(addThisSelectedFEDs_.at(iFed));
526 std::sort(fedList_.begin(),fedList_.end());
527 std::vector<uint32_t>::const_iterator itfedList = fedList_.begin();
528 for( ; itfedList!=fedList_.end() ; ++itfedList){
529 LogDebug(
"SelectedElectronFEDListProducer")<<
" fed point "<<*itfedList<<
" ";
532 FEDRawData& fedData = RawDataCollection_->FEDData(*itfedList);
538 std::auto_ptr<FEDRawDataCollection> streamFEDRawProduct(RawDataCollection_);
539 iEvent.
put(streamFEDRawProduct,outputLabelModule_);
544 template<
typename TEle,
typename TCand>
546 LogDebug(
"SelectedElectronFEDListProducer")<<
" End of the Job : Counted Events "<<eventCounter_<<std::endl;
549 template<
typename TEle,
typename TCand>
551 std::vector<PixelModule>::const_iterator & itUp,
554 for( ; itDn != itUp ; ++itDn){
555 float zmodule = itDn->z-((itDn->x-beamSpotPosition_.x())*region.
cosphi+(itDn->y-beamSpotPosition_.y())*region.
sinphi)*region.
atantheta;
557 int hitFED = itDn->Fed;
559 LogDebug(
"SelectedElectronFEDListProducer")<<
" electron pixel hit "<<itDn->DetId<<
" hitFED "<<hitFED<<std::endl;
560 if(!fedList_.empty()){
561 if(
std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
563 else fedList_.push_back(hitFED);
T getParameter(std::string const &) const
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
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)
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
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