CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | 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::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

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...
 
virtual ~SelectedElectronFEDListProducer ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Protected Member Functions

virtual void beginJob ()
 
virtual void endJob ()
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 
- Protected Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

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_
 
SiStripRegionCabling::Cabling cabling_
 
double dEtaPixelRegion_
 
double dPhiPixelRegion_
 
double dRHcalRegion_
 
double dRStripRegion_
 
bool dumpAllEcalFed_
 
bool dumpAllHCALFed_
 
bool dumpAllTrackerFed_
 
bool dumpSelectedEcalFed_
 
bool dumpSelectedHCALFed_
 
bool dumpSelectedSiPixelFed_
 
bool dumpSelectedSiStripFed_
 
std::vector< edm::InputTagelectronTags_
 
std::vector< edm::EDGetTokenT
< TEleColl > > 
electronToken_
 
int ES_fedId_ [2][2][40][40]
 
edm::FileInPath ESLookupTable_
 
uint32_t eventCounter_
 
std::vector< uint32_t > fedList_
 
const CaloGeometrygeometry_
 
const CaloSubdetectorGeometrygeometryES_
 
edm::InputTag HBHERecHitTag_
 
edm::EDGetTokenT
< HBHERecHitCollection
hbheRecHitToken_
 
const HcalElectronicsMaphcalReadoutMap_
 
std::vector< int > isGsfElectronCollection_
 
double maxZPixelRegion_
 
std::string outputLabelModule_
 
std::unique_ptr
< SiPixelFedCablingTree
PixelCabling_
 
std::vector< PixelModulepixelModuleVector_
 
FEDRawDataCollectionRawDataCollection_
 
edm::InputTag rawDataTag_
 
edm::EDGetTokenT
< FEDRawDataCollection
rawDataToken_
 
std::vector< edm::InputTagrecoEcalCandidateTags_
 
std::vector< edm::EDGetTokenT
< trigger::TriggerFilterObjectWithRefs > > 
recoEcalCandidateToken_
 
std::pair< double, double > regionDimension_
 
const SiStripRegionCablingStripRegionCabling_
 
const EcalElectronicsMappingTheMapping_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Detailed Description

template<typename TEle, typename TCand>
class SelectedElectronFEDListProducer< TEle, TCand >

Definition at line 138 of file SelectedElectronFEDListProducer.h.

Member Typedef Documentation

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

Definition at line 154 of file SelectedElectronFEDListProducer.h.

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

Definition at line 153 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 5 of file SelectedElectronFEDListProducer.cc.

References edm::hlt::Exception, edm::ParameterSet::existsAs(), edm::false, edm::ParameterSet::getParameter(), i, j, roll_playback::k, LogDebug, m, submitDQMOfflineCAF::nLines, AlCaHLTBitMon_QueryRunRegistry::string, and funct::true.

5  {
6 
7  // input electron collection Tag
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";
12  }
13  else throw cms::Exception("Configuration")<<"[SelectedElectronFEDListProducer] no electron collection are given --> need at least one \n";
14 
15  // Consumes for the electron collection
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;
20  }
21 
22  // input RecoEcalCandidate collection Tag
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";
27  }
28  else throw cms::Exception("Configuration")<<"[SelectedElectronFEDListProducer] no electron reco ecal candidate collection are given --> need at least one \n";
29 
30  // Consumes for the recoEcal candidate collection
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;
34  }
35 
36  // list of gsf collections
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";
41  }
42  else throw cms::Exception("Configuration")<<"[SelectedElectronFEDListProducer] no electron flag are given --> need at least one \n";
43 
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";
46 
47  // take the beam spot Tag
48  if(iConfig.existsAs<edm::InputTag>("beamSpot"))
49  beamSpotTag_ = iConfig.getParameter<edm::InputTag>("beamSpot");
50  else beamSpotTag_ = edm::InputTag("hltOnlineBeamSpot");
51 
52  if(!(beamSpotTag_ == edm::InputTag(""))) beamSpotToken_ = consumes<reco::BeamSpot>(beamSpotTag_);
53 
54  LogDebug("SelectedElectronFEDListProducer")<<" Beam Spot Tag "<<beamSpotTag_<<std::endl;
55 
56  // take the HBHE recHit Tag
57  if(iConfig.existsAs<edm::InputTag>("HBHERecHitTag"))
58  HBHERecHitTag_ = iConfig.getParameter<edm::InputTag>("HBHERecHitTag");
59  else HBHERecHitTag_ = edm::InputTag("hltHbhereco");
60 
61  if(!(HBHERecHitTag_ == edm::InputTag(""))) hbheRecHitToken_ = consumes<HBHERecHitCollection>(HBHERecHitTag_);
62 
63  // raw data collector label
64  if(iConfig.existsAs<edm::InputTag>("rawDataTag"))
65  rawDataTag_ = iConfig.getParameter<edm::InputTag>("rawDataTag");
66  else rawDataTag_ = edm::InputTag("rawDataCollector") ;
67 
68  if(!(rawDataTag_ == edm::InputTag(""))) rawDataToken_ = consumes<FEDRawDataCollection>(rawDataTag_);
69 
70  LogDebug("SelectedElectronFEDListProducer")<<" RawDataInput "<<rawDataTag_<<std::endl;
71 
72 
73  // add a set of selected feds
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);
78  }
79  else addThisSelectedFEDs_.push_back(-1);
80 
81  std::vector<int>::const_iterator AddFed = addThisSelectedFEDs_.begin();
82  for( ; AddFed !=addThisSelectedFEDs_.end() ; ++AddFed)
83  LogDebug("SelectedElectronFEDListProducer")<<" Additional FED: "<<*(AddFed)<<std::endl;
84 
85 
86  // ES look up table path
87  if(iConfig.existsAs<std::string>("ESLookupTable"))
88  ESLookupTable_ = iConfig.getParameter<edm::FileInPath>("ESLookupTable");
89  else ESLookupTable_ = edm::FileInPath("EventFilter/ESDigiToRaw/data/ES_lookup_table.dat");
90 
91  // output model label
92  if(iConfig.existsAs<std::string>("outputLabelModule"))
93  outputLabelModule_ = iConfig.getParameter<std::string>("outputLabelModule");
94  else outputLabelModule_ = "streamElectronRawData" ;
95 
96  LogDebug("SelectedElectronFEDListProducer")<<" Output Label "<<outputLabelModule_<<std::endl;
97 
98  // dR for the strip region
99  if(iConfig.existsAs<double>("dRStripRegion"))
100  dRStripRegion_ = iConfig.getParameter<double>("dRStripRegion");
101  else dRStripRegion_ = 0.5 ;
102 
103  LogDebug("SelectedElectronFEDListProducer")<<" dRStripRegion "<<dRStripRegion_<<std::endl;
104 
105  // dR for the hcal region
106  if(iConfig.existsAs<double>("dRHcalRegion"))
107  dRHcalRegion_ = iConfig.getParameter<double>("dRHcalRegion");
108  else dRHcalRegion_ = 0.5 ;
109 
110  // dPhi, dEta and maxZ for pixel dump
111  if(iConfig.existsAs<double>("dPhiPixelRegion"))
112  dPhiPixelRegion_ = iConfig.getParameter<double>("dPhiPixelRegion");
113  else dPhiPixelRegion_ = 0.5 ;
114 
115  if(iConfig.existsAs<double>("dEtaPixelRegion"))
116  dEtaPixelRegion_ = iConfig.getParameter<double>("dEtaPixelRegion");
117  else dEtaPixelRegion_ = 0.5 ;
118 
119  if(iConfig.existsAs<double>("maxZPixelRegion"))
120  maxZPixelRegion_ = iConfig.getParameter<double>("maxZPixelRegion");
121  else maxZPixelRegion_ = 24. ;
122 
123  LogDebug("SelectedElectronFEDListProducer")<<" dPhiPixelRegion "<<dPhiPixelRegion_<<" dEtaPixelRegion "<<dEtaPixelRegion_<<" MaxZPixelRegion "<<maxZPixelRegion_<<std::endl;
124 
125  // bool
126  if( iConfig.existsAs<bool>("dumpSelectedEcalFed"))
127  dumpSelectedEcalFed_ = iConfig.getParameter< bool >("dumpSelectedEcalFed");
128  else dumpSelectedEcalFed_ = true ;
129 
130  if(iConfig.existsAs<bool>("dumpSelectedSiStripFed"))
131  dumpSelectedSiStripFed_ = iConfig.getParameter<bool>("dumpSelectedSiStripFed");
133 
134  if(iConfig.existsAs<bool>("dumpSelectedSiPixelFed"))
135  dumpSelectedSiPixelFed_ = iConfig.getParameter<bool>("dumpSelectedSiPixelFed");
137 
138  if(iConfig.existsAs<bool>("dumpSelectedHCALFed"))
139  dumpSelectedHCALFed_ = iConfig.getParameter<bool>("dumpSelectedHCALFed");
140  else dumpSelectedHCALFed_ = true ;
141 
142  LogDebug("SelectedElectronFEDListProducer")<<" DumpEcalFedList set to "<<dumpSelectedEcalFed_<<" DumpSelectedSiStripFed "<<dumpSelectedSiStripFed_<<" DumpSelectedSiPixelFed "<<dumpSelectedSiPixelFed_<<std::endl;
143 
144  if(iConfig.existsAs<bool>("dumpAllEcalFed"))
145  dumpAllEcalFed_ = iConfig.getParameter<bool>("dumpAllEcalFed");
146  else dumpAllEcalFed_ = false ;
147 
148  if(iConfig.existsAs<bool>("dumpAllTrackerFed"))
149  dumpAllTrackerFed_ = iConfig.getParameter<bool>("dumpAllTrackerFed");
150  else dumpAllTrackerFed_ = false ;
151 
152  if(iConfig.existsAs<bool>("dumpAllHCALFed"))
153  dumpAllHCALFed_ = iConfig.getParameter<bool>("dumpAllHCALFed");
154  else dumpAllHCALFed_ = false ;
155 
156  LogDebug("SelectedElectronFEDListProducer")<<" DumpAllEcalFed "<<dumpAllEcalFed_<<" DumpAllTrackerFed "<<dumpAllTrackerFed_<<" Dump all HCAL fed "<<dumpAllHCALFed_<<std::endl;
157 
158 
159  // initialize pre-shower fed id --> look up table
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;
161 
162  // read in look-up table
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() ) {
168  ES_file >> nLines;
169  for (int i=0; i<nLines; ++i) {
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;
172  }
173  }
174  else LogDebug("SelectedElectronFEDListProducer")<<" Look up table file can not be found in "<<ESLookupTable_.fullPath().c_str() <<std::endl;
175  ES_file.close();
176 
177  // produce the final collection
178  produces<FEDRawDataCollection>(outputLabelModule_); // produce exit collection
179 
180 }
#define LogDebug(id)
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
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:184
edm::EDGetTokenT< HBHERecHitCollection > hbheRecHitToken_
edm::EDGetTokenT< FEDRawDataCollection > rawDataToken_
int j
Definition: DBlmapReader.cc:9
std::vector< edm::InputTag > recoEcalCandidateTags_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
volatile std::atomic< bool > shutdown_flag false
std::string fullPath() const
Definition: FileInPath.cc:165
std::vector< edm::EDGetTokenT< TEleColl > > electronToken_
template<typename TEle , typename TCand >
SelectedElectronFEDListProducer< TEle, TCand >::~SelectedElectronFEDListProducer ( )
virtual

Definition at line 183 of file SelectedElectronFEDListProducer.cc.

183  {
184 
185  if(!electronTags_.empty()) electronTags_.clear() ;
186  if(!recoEcalCandidateTags_.empty()) recoEcalCandidateTags_.clear() ;
188  if(!electronToken_.empty()) electronToken_.clear();
189  if(!fedList_.empty()) fedList_.clear() ;
191 }
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

Reimplemented from edm::EDProducer.

Definition at line 194 of file SelectedElectronFEDListProducer.cc.

References LogDebug.

194  {
195  eventCounter_ = 0 ;
196  LogDebug("SelectedElectronFEDListProducer")<<" Begin of the Job : event counter set to"<<eventCounter_<<std::endl;
197 }
#define LogDebug(id)
template<typename TEle , typename TCand >
void SelectedElectronFEDListProducer< TEle, TCand >::endJob ( void  )
protectedvirtual

Reimplemented from edm::EDProducer.

Definition at line 545 of file SelectedElectronFEDListProducer.cc.

References LogDebug.

545  {
546  LogDebug("SelectedElectronFEDListProducer")<<" End of the Job : Counted Events "<<eventCounter_<<std::endl;
547 }
#define LogDebug(id)
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 550 of file SelectedElectronFEDListProducer.cc.

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

552  {
553 
554  for( ; itDn != itUp ; ++itDn){
555  float zmodule = itDn->z-((itDn->x-beamSpotPosition_.x())*region.cosphi+(itDn->y-beamSpotPosition_.y())*region.sinphi)*region.atantheta;
556  if ( std::abs(zmodule) > region.maxZ ) continue;
557  int hitFED = itDn->Fed;
558  if(hitFED < FEDNumbering::MINSiPixelFEDID || hitFED > FEDNumbering::MAXSiPixelFEDID) continue;
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);
562  }
563  else fedList_.push_back(hitFED);
564  }
565 
566  return ;
567 }
#define LogDebug(id)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
return((rh^lh)&mask)
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 
)
protectedvirtual

Implements edm::EDProducer.

Definition at line 200 of file SelectedElectronFEDListProducer.cc.

References SiStripRegionCabling::ALLLAYERS, SiStripRegionCabling::ALLSUBDETS, SiPixelRawToDigiRegional_cfi::beamSpot, edm::SortedCollection< T, SORT >::begin(), FEDRawData::data(), data, HcalElectronicsId::dccid(), reco::deltaR(), PixelRegion::dEta, PixelModule::DetId, PixelRegion::dPhi, PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, DetId::Ecal, EcalBarrel, EcalEndcap, EcalPreshower, metsig::electron, HI_PhotonSkim_cff::electrons, edm::SortedCollection< T, SORT >::end(), PV3DBase< T, PVType, FrameType >::eta(), PixelModule::Eta, eta(), cppFunctionSkipper::exception, edm::HandleBase::failedToGet(), PixelModule::Fed, HcalElectronicsId::fiberChanId(), HcalElectronicsId::fiberIndex(), spr::find(), edm::EventSetup::get(), edm::Event::getByToken(), LogDebug, M_PI, FEDNumbering::MAXECALFEDID, FEDNumbering::MAXHCALFEDID, FEDNumbering::MAXPreShowerFEDID, FEDNumbering::MAXSiPixelFEDID, FEDNumbering::MAXSiStripFEDID, FEDNumbering::MINECALFEDID, FEDNumbering::MINHCALFEDID, FEDNumbering::MINPreShowerFEDID, FEDNumbering::MINSiPixelFEDID, FEDNumbering::MINSiStripFEDID, python.rootplot.argparse::module, normalizedPhi(), NULL, phi, PV3DBase< T, PVType, FrameType >::phi(), PixelModule::Phi, Geom::pi(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, ESDetId::plane(), point, funct::pow(), edm::Handle< T >::product(), edm::ESHandle< class >::product(), edm::Event::put(), dttmaxenums::R, lumiPlot::rawdata, DetId::rawId(), FEDRawData::resize(), ESDetId::six(), ESDetId::siy(), FEDRawData::size(), findQualityFiles::size, python.multivaluedict::sort(), 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().

200  {
201 
202  if(!fedList_.empty()) fedList_.clear();
204 
205  // Build FED strip map --> just one time
206  // Retrieve FED ids from cabling map and iterate through
207 
208  if(eventCounter_ ==0 ){
209 
210  // get the hcal electronics map
212  iSetup.get<HcalDbRecord>().get(pSetup);
213  hcalReadoutMap_ = pSetup->getHcalMapping();
214 
215 
216  // get the ecal electronics map
218  iSetup.get<EcalMappingRcd >().get(ecalmapping);
219  TheMapping_ = ecalmapping.product();
220 
221  // get the calo geometry
222  edm::ESHandle<CaloGeometry> caloGeometry;
223  iSetup.get<CaloGeometryRecord>().get(caloGeometry);
224  geometry_ = caloGeometry.product();
225 
226  //ES geometry
227  geometryES_ = caloGeometry->getSubdetectorGeometry(DetId::Ecal,EcalPreshower);
228 
229  // pixel tracker cabling map
231  iSetup.get<SiPixelFedCablingMapRcd>().get(pixelCablingMap);
232 
233  PixelCabling_.reset();
234  PixelCabling_ = pixelCablingMap->cablingTree();
235 
236  edm::ESHandle<TrackerGeometry> trackerGeometry;
237  iSetup.get<TrackerDigiGeometryRecord>().get( trackerGeometry );
238 
239  if(!pixelModuleVector_.empty()) pixelModuleVector_.clear();
240 
241  // build the tracker pixel module map
242  std::vector<const GeomDet*>::const_iterator itTracker = trackerGeometry->dets().begin();
243  for( ; itTracker !=trackerGeometry->dets().end() ; ++itTracker){
244  int subdet = (*itTracker)->geographicalId().subdetId();
245  if(! (subdet == PixelSubdetector::PixelBarrel || subdet == PixelSubdetector::PixelEndcap) ) continue;
247  module.x = (*itTracker)->position().x();
248  module.y = (*itTracker)->position().y();
249  module.z = (*itTracker)->position().z();
250  module.Phi = normalizedPhi((*itTracker)->position().phi()) ;
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);
257  }
259 
260  edm::ESHandle<SiStripRegionCabling> SiStripCabling ;
261  iSetup.get<SiStripRegionCablingRcd>().get(SiStripCabling);
262  StripRegionCabling_ = SiStripCabling.product();
263 
266  }
267 
268  // event by event analysis
269 
270  // Get event raw data
272  if(!(rawDataTag_ == edm::InputTag(""))) iEvent.getByToken(rawDataToken_,rawdata);
273 
274  // take the beam spot position
276  if(!(beamSpotTag_ == edm::InputTag(""))) iEvent.getByToken(beamSpotToken_, beamSpot);
277  if(!beamSpot.failedToGet()) beamSpotPosition_ = beamSpot->position();
278  else beamSpotPosition_.SetXYZ(0,0,0);
279 
280  // take the calo tower collection
281  edm::Handle<HBHERecHitCollection> hbheRecHitHandle;
282  if(!(HBHERecHitTag_ == edm::InputTag(""))) iEvent.getByToken(hbheRecHitToken_,hbheRecHitHandle);
283  const HBHERecHitCollection* hcalRecHitCollection = NULL;
284  if(!hbheRecHitHandle.failedToGet()) hcalRecHitCollection = hbheRecHitHandle.product();
285 
286  double radTodeg = 180. / Geom::pi();
287 
288  if(dumpAllEcalFed_){
289  for(uint32_t iEcalFed = FEDNumbering::MINECALFEDID ; iEcalFed <= FEDNumbering::MAXECALFEDID ; iEcalFed++)
290  fedList_.push_back(iEcalFed);
291  for(uint32_t iESFed = FEDNumbering::MINPreShowerFEDID ; iESFed <= FEDNumbering::MAXPreShowerFEDID ; iESFed++)
292  fedList_.push_back(iESFed);
293  }
294 
295  if(dumpAllTrackerFed_){
296  for(uint32_t iPixelFed = FEDNumbering::MINSiPixelFEDID; iPixelFed <= FEDNumbering::MAXSiPixelFEDID ; iPixelFed++)
297  fedList_.push_back(iPixelFed);
298  for(uint32_t iStripFed = FEDNumbering::MINSiStripFEDID; iStripFed <= FEDNumbering::MAXSiStripFEDID ; iStripFed++)
299  fedList_.push_back(iStripFed);
300  }
301 
302  if(dumpAllHCALFed_){
303  for(uint32_t iHcalFed = FEDNumbering::MINHCALFEDID ; iHcalFed <= FEDNumbering::MAXHCALFEDID; iHcalFed++)
304  fedList_.push_back(iHcalFed);
305  }
306 
307 
308  // loop on the input electron collection vector
309  TEle electron ;
310  edm::Ref<TCandColl> recoEcalCand ;
312  edm::Handle<trigger::TriggerFilterObjectWithRefs> triggerRecoEcalCandidateCollection;
313  std::vector<edm::Ref<TCandColl>> recoEcalCandColl;
314 
315  // iterator to electron and ecal candidate collections
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();
319 
320  // if you want to dump just FED related to the triggering electron/s
322  for( ; itRecoEcalCandColl != recoEcalCandidateToken_.end(); ++itRecoEcalCandColl){
323 
324  try { iEvent.getByToken(*itRecoEcalCandColl,triggerRecoEcalCandidateCollection);
325  if(triggerRecoEcalCandidateCollection.failedToGet()) continue ;
326  }
327  catch (cms::Exception &exception){ continue; }
328 
329  triggerRecoEcalCandidateCollection->getObjects(trigger::TriggerCluster, recoEcalCandColl);
330  if(recoEcalCandColl.empty()) triggerRecoEcalCandidateCollection->getObjects(trigger::TriggerPhoton, recoEcalCandColl);
331  if(recoEcalCandColl.empty()) triggerRecoEcalCandidateCollection->getObjects(trigger::TriggerElectron, recoEcalCandColl);
332 
333  typename std::vector<edm::Ref<TCandColl>>::const_iterator itRecoEcalCand = recoEcalCandColl.begin(); // loop on recoEcalCandidate objects
334 
335  for( ; itRecoEcalCand != recoEcalCandColl.end() ; ++itRecoEcalCand){
336  recoEcalCand = (*itRecoEcalCand);
337  reco::SuperClusterRef scRefRecoEcalCand = recoEcalCand->superCluster(); // take the supercluster in order to match with electron objects
338 
339  for( ; itElectronColl != electronToken_.end() && itElectronCollFlag != isGsfElectronCollection_.end(); ++itElectronColl , ++itElectronCollFlag){ // loop on electron collections
340  try { iEvent.getByToken(*itElectronColl,electrons);
341  if(electrons.failedToGet()) continue ;
342  }
343  catch (cms::Exception &exception){ continue; }
344 
345  typename TEleColl::const_iterator itEle = electrons->begin();
346  for( ; itEle!=electrons->end() ; ++itEle){ // loop on all the electrons inside a collection
347  // get electron supercluster and the associated hit -> detID
348  electron = (*itEle);
349  reco::SuperClusterRef scRef = electron.superCluster();
350  if ( scRefRecoEcalCand != scRef ) continue ; // mathching
351 
352  const std::vector<std::pair<DetId,float> >& hits = scRef->hitsAndFractions();
353  // start in dump the ecal FED associated to the electron
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){ // barrel part
358  EBDetId idEBRaw ((*itSChits).first);
360  int hitFED = FEDNumbering::MINECALFEDID + TheMapping_->GetFED(double(point.eta()),double(point.phi())*radTodeg);
361  if( hitFED < FEDNumbering::MINECALFEDID || hitFED > FEDNumbering::MAXECALFEDID ) continue;
362 
363  LogDebug("SelectedElectronFEDListProducer")<<" electron hit detID Barrel "<<(*itSChits).first.rawId()<<" eta "<<double(point.eta())<<" phi "<< double(point.phi())*radTodeg <<" FED "<<hitFED<<std::endl;
364 
366  if(!fedList_.empty()){
367  if(std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED); // in order not to duplicate info
368  }
369  else fedList_.push_back(hitFED);
370  }
371  }
372  else if((*itSChits).first.subdetId()== EcalEndcap){ // endcap one
373  EEDetId idEERaw ((*itSChits).first);
374  GlobalPoint point = geometry_->getPosition(idEERaw);
375  int hitFED = FEDNumbering::MINECALFEDID + TheMapping_->GetFED(double(point.eta()),double(point.phi())*radTodeg);
376  if( hitFED < FEDNumbering::MINECALFEDID || hitFED > FEDNumbering::MAXECALFEDID ) continue;
377 
378  LogDebug("SelectedElectronFEDListProducer")<<" electron hit detID Endcap "<<(*itSChits).first.rawId()<<" eta "<<double(point.eta())<<" phi "<<double(point.phi())*radTodeg <<" FED "<<hitFED<<std::endl;
380  if(!fedList_.empty()){
381  if(std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
382  }
383  else fedList_.push_back(hitFED);
384 
385  // preshower hit for each ecal endcap hit
386  DetId tmpX = (dynamic_cast<const EcalPreshowerGeometry*>(geometryES_))->getClosestCellInPlane(point,1);
387  ESDetId stripX = (tmpX == DetId(0)) ? ESDetId(0) : ESDetId(tmpX);
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;
390  if(hitFED < FEDNumbering::MINPreShowerFEDID || hitFED > FEDNumbering::MAXPreShowerFEDID) continue;
391  if(hitFED < 0) continue;
392  if(!fedList_.empty()){
393  if(std::find(fedList_.begin(),fedList_.end(),hitFED)==fedList_.end()) fedList_.push_back(hitFED);
394  }
395  else fedList_.push_back(hitFED);
396 
397  DetId tmpY = (dynamic_cast<const EcalPreshowerGeometry*>(geometryES_))->getClosestCellInPlane(point,2);
398  ESDetId stripY = (tmpY == DetId(0)) ? ESDetId(0) : ESDetId(tmpY);
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);
405  }
406  else fedList_.push_back(hitFED);
407  }
408  } // end endcap
409  } // end loop on SC hit
410 
411  // check HCAL behind each hit
413  HBHERecHitCollection::const_iterator itHcalRecHit = hcalRecHitCollection->begin();
414  for( ; itHcalRecHit != hcalRecHitCollection->end() ; ++itHcalRecHit) {
415  HcalDetId recHitId(itHcalRecHit->id());
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_) {
419  const HcalElectronicsId electronicId = hcalReadoutMap_->lookup(recHitId);
420  int hitFED = electronicId.dccid() + FEDNumbering::MINHCALFEDID;
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;
422  if(hitFED < FEDNumbering::MINHCALFEDID || hitFED > FEDNumbering::MAXHCALFEDID)
423  continue; //first eighteen feds are for HBHE
424  if(hitFED < 0)
425  continue;
426  if(!fedList_.empty()) {
427  if(std::find(fedList_.begin(), fedList_.end(), hitFED) == fedList_.end())
428  fedList_.push_back(hitFED);
429  }
430  else
431  fedList_.push_back(hitFED);
432  }
433  }
434  } // End Hcal
435  }// End Ecal
436 
437  // get the electron track
438  if( !dumpAllTrackerFed_ ){
439  //loop on the region
441  double eta ;
442  double phi ;
443  if(*itElectronCollFlag){
444  eta = electron.gsfTrack()->eta();
445  phi = electron.gsfTrack()->phi();
446  }
447  else{
448  eta = electron.track()->eta();
449  phi = electron.track()->phi();
450  }
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;
457  //get vector of subdets within region
458  const SiStripRegionCabling::RegionCabling regSubdets = cabling_[iCabling];
459  //cycle on subdets
460  for (uint32_t idet=0; idet<SiStripRegionCabling::ALLSUBDETS; idet++){ //cicle between 1 and 4
461  //get vector of layers whin subdet of region
462  const SiStripRegionCabling::WedgeCabling regSubdetLayers = regSubdets[idet]; // at most 10 layers
463  for (uint32_t ilayer=0; ilayer<SiStripRegionCabling::ALLLAYERS; ilayer++){
464  //get map of vectors of feds withing the layer of subdet of region
465  const SiStripRegionCabling::ElementCabling fedVectorMap = regSubdetLayers[ilayer]; // vector of the fed
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();
470  if(hitFED < FEDNumbering::MINSiStripFEDID || hitFED > FEDNumbering::MAXSiStripFEDID) continue;
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);
474  }
475  else fedList_.push_back(hitFED);
476  }
477  }
478  }
479  }
480  }
481  } // end si strip
482 
484  math::XYZVector momentum;
485  if(*itElectronCollFlag) momentum = electron.gsfTrack()->momentum();
486  else momentum = electron.track()->momentum();
488 
489  PixelModule lowerBound (normalizedPhi(region.vector.phi())-region.dPhi, region.vector.eta()-region.dEta);
490  PixelModule upperBound (normalizedPhi(region.vector.phi())+region.dPhi, region.vector.eta()+region.dEta);
491 
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);
497  }
498  else{
499  if(lowerBound.Phi < -M_PI) lowerBound.Phi = lowerBound.Phi+2*M_PI;
500  PixelModule phi_p(M_PI,region.vector.eta()-region.dEta);
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);
504 
505  if(upperBound.Phi < -M_PI) upperBound.Phi = upperBound.Phi-2*M_PI;
506  PixelModule phi_m(-M_PI,region.vector.eta()-region.dEta);
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);
510  }
511  }
512  }// end tracker analysis
513  }// end loop on the electron candidate
514  } // end loop on the electron collection collection
515  } // end loop on the recoEcal candidate
516  } // end loop on the recoEcal candidate collection
517  }
518  // add a set of chosen FED
519  for( unsigned int iFed = 0 ; iFed < addThisSelectedFEDs_.size() ; iFed++){
520  if(addThisSelectedFEDs_.at(iFed) == -1 ) continue ;
521  fedList_.push_back(addThisSelectedFEDs_.at(iFed));
522  }
523 
524  // make the final raw data collection
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<<" ";
530  const FEDRawData& data = rawdata->FEDData(*itfedList);
531  if(data.size()>0){
532  FEDRawData& fedData = RawDataCollection_->FEDData(*itfedList);
533  fedData.resize(data.size());
534  memcpy(fedData.data(),data.data(),data.size());
535  }
536  }
537 
538  std::auto_ptr<FEDRawDataCollection> streamFEDRawProduct(RawDataCollection_);
539  iEvent.put(streamFEDRawProduct,outputLabelModule_);
540  eventCounter_ ++ ;
541 }
#define LogDebug(id)
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
Definition: CaloGeometry.cc:43
const std::pair< double, double > regionDimensions() const
int GetFED(double eta, double phi) const
std::vector< edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > > recoEcalCandidateToken_
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 getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:446
const CaloSubdetectorGeometry * geometryES_
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
std::vector< HBHERecHit >::const_iterator const_iterator
#define NULL
Definition: scimark2.h:8
std::vector< Element > ElementCabling
int six() const
Definition: ESDetId.h:48
double deltaR(const T1 &t1, const T2 &t2)
Definition: deltaR.h:48
T eta() const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
virtual const CaloCellGeometry * getGeometry(const DetId &id) const
Get the cell geometry of a given detector id. Should return false if not found.
edm::EDGetTokenT< HBHERecHitCollection > hbheRecHitToken_
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
std::unique_ptr< SiPixelFedCablingTree > PixelCabling_
edm::EDGetTokenT< FEDRawDataCollection > rawDataToken_
int siy() const
Definition: ESDetId.h:50
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
void resize(size_t newsize)
Definition: FEDRawData.cc:32
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:113
std::vector< ElementCabling > WedgeCabling
T sqrt(T t)
Definition: SSEVec.h:48
int dccid() const
get the (Hcal local) DCC id for VME, crate number for uTCA
std::pair< double, double > Position
const GlobalPoint & getPosition(const DetId &id) const
Get the position of a given detector id.
Definition: CaloGeometry.cc:68
int fiberChanId() const
get the fiber channel id (which of channels on a fiber)
const Cabling & getRegionCabling() const
int zside() const
Definition: ESDetId.h:44
#define M_PI
int spigot() const
get the spigot (input number on DCC, AMC card number for uTCA)
const_iterator end() const
bool failedToGet() const
Definition: HandleBase.h:80
Definition: DetId.h:18
const Position position(const uint32_t) const
T const * product() const
Definition: Handle.h:81
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:86
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
T eta() const
Definition: PV3DBase.h:76
const EcalElectronicsMapping * TheMapping_
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
double pi()
Definition: Pi.h:31
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:28
int plane() const
Definition: ESDetId.h:46
const SiStripRegionCabling * StripRegionCabling_
dictionary rawdata
Definition: lumiPlot.py:393
double normalizedPhi(double phi)
Definition: normalizedPhi.cc:5
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 &region)
std::vector< edm::EDGetTokenT< TEleColl > > electronToken_
tuple size
Write out results.
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:40
*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
Definition: DDAxes.h:10

Member Data Documentation

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

Definition at line 171 of file SelectedElectronFEDListProducer.h.

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

Definition at line 202 of file SelectedElectronFEDListProducer.h.

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

Definition at line 167 of file SelectedElectronFEDListProducer.h.

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

Definition at line 195 of file SelectedElectronFEDListProducer.h.

template<typename TEle , typename TCand >
SiStripRegionCabling::Cabling SelectedElectronFEDListProducer< TEle, TCand >::cabling_
private

Definition at line 223 of file SelectedElectronFEDListProducer.h.

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

Definition at line 187 of file SelectedElectronFEDListProducer.h.

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

Definition at line 186 of file SelectedElectronFEDListProducer.h.

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

Definition at line 189 of file SelectedElectronFEDListProducer.h.

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

Definition at line 185 of file SelectedElectronFEDListProducer.h.

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

Definition at line 181 of file SelectedElectronFEDListProducer.h.

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

Definition at line 183 of file SelectedElectronFEDListProducer.h.

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

Definition at line 182 of file SelectedElectronFEDListProducer.h.

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

Definition at line 177 of file SelectedElectronFEDListProducer.h.

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

Definition at line 180 of file SelectedElectronFEDListProducer.h.

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

Definition at line 179 of file SelectedElectronFEDListProducer.h.

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

Definition at line 178 of file SelectedElectronFEDListProducer.h.

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

Definition at line 166 of file SelectedElectronFEDListProducer.h.

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

Definition at line 198 of file SelectedElectronFEDListProducer.h.

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

Definition at line 205 of file SelectedElectronFEDListProducer.h.

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

Definition at line 175 of file SelectedElectronFEDListProducer.h.

template<typename TEle , typename TCand >
uint32_t SelectedElectronFEDListProducer< TEle, TCand >::eventCounter_
private

Definition at line 201 of file SelectedElectronFEDListProducer.h.

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

Definition at line 208 of file SelectedElectronFEDListProducer.h.

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

Definition at line 214 of file SelectedElectronFEDListProducer.h.

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

Definition at line 215 of file SelectedElectronFEDListProducer.h.

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

Definition at line 173 of file SelectedElectronFEDListProducer.h.

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

Definition at line 196 of file SelectedElectronFEDListProducer.h.

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

Definition at line 227 of file SelectedElectronFEDListProducer.h.

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

Definition at line 170 of file SelectedElectronFEDListProducer.h.

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

Definition at line 188 of file SelectedElectronFEDListProducer.h.

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

Definition at line 191 of file SelectedElectronFEDListProducer.h.

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

Definition at line 218 of file SelectedElectronFEDListProducer.h.

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

Definition at line 219 of file SelectedElectronFEDListProducer.h.

template<typename TEle , typename TCand >
FEDRawDataCollection* SelectedElectronFEDListProducer< TEle, TCand >::RawDataCollection_
private

Definition at line 211 of file SelectedElectronFEDListProducer.h.

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

Definition at line 168 of file SelectedElectronFEDListProducer.h.

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

Definition at line 194 of file SelectedElectronFEDListProducer.h.

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

Definition at line 165 of file SelectedElectronFEDListProducer.h.

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

Definition at line 197 of file SelectedElectronFEDListProducer.h.

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

Definition at line 224 of file SelectedElectronFEDListProducer.h.

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

Definition at line 222 of file SelectedElectronFEDListProducer.h.

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

Definition at line 213 of file SelectedElectronFEDListProducer.h.