45 hCPU(0), hDigi(0), theTimer(0)
64 produces< edm::DetSetVector<PixelDigi> >();
66 produces< edm::DetSetVector<SiPixelRawDataError> >();
67 produces<DetIdCollection>();
68 produces<DetIdCollection>(
"UserErrorModules");
83 hCPU =
new TH1D (
"hCPU",
"hCPU",100,0.,0.050);
84 hDigi =
new TH1D(
"hDigi",
"hDigi",50,0.,15000.);
91 edm::LogInfo(
"SiPixelRawToDigi") <<
" HERE ** SiPixelRawToDigi destructor!";
97 TFile rootFile(
"analysis.root",
"RECREATE",
"my histograms");
113 const uint32_t dummydetid = 0xffffffff;
124 fedIds = cablingMap->fedIds();
125 cabling_ = cablingMap->cablingTree();
130 fedIds = cablingMap->fedIds();
142 edm::LogError(
"SiPixelQualityNotPresent")<<
" Configured to use SiPixelQuality, but SiPixelQuality not present"<<endl;
153 std::auto_ptr< DetIdCollection > tkerror_detidcollection(
new DetIdCollection());
154 std::auto_ptr< DetIdCollection > usererror_detidcollection(
new DetIdCollection());
162 bool errorsInEvent =
false;
172 typedef std::vector<unsigned int>::const_iterator IF;
173 for (IF aFed =
fedIds.begin(); aFed !=
fedIds.end(); ++aFed) {
178 if(
debug)
LogDebug(
"SiPixelRawToDigi")<<
" PRODUCE DIGI FOR FED: " << fedId << endl;
183 const FEDRawData& fedRawData = buffers->FEDData( fedId );
186 formatter.
interpretRawData( errorsInEvent, fedId, fedRawData, digis, errors);
189 typedef PixelDataFormatter::Digis::iterator
ID;
190 for (ID it = digis.begin(); it != digis.end(); it++) {
191 uint32_t
detid = it->first;
193 detSet.
data.insert(detSet.
data.end(), it->second.begin(), it->second.end());
198 typedef PixelDataFormatter::Errors::iterator IE;
199 for (IE is = errors.begin(); is != errors.end(); is++) {
200 uint32_t errordetid = is->first;
201 if (errordetid==dummydetid) {
202 nodeterrors.insert( nodeterrors.end(), errors[errordetid].begin(), errors[errordetid].end() );
205 errorDetSet.
data.insert(errorDetSet.
data.end(), is->second.begin(), is->second.end());
211 DetId errorDetId(errordetid);
213 for(; itPixelError!=errorDetSet.
end(); ++itPixelError){
218 tkerror_detidcollection->push_back(errordetid);
225 usererror_detidcollection->push_back(errordetid);
237 errorDetSet.
data = nodeterrors;
239 if (errorsInEvent)
LogDebug(
"SiPixelRawToDigi") <<
"Error words were stored in this event";
246 LogDebug(
"SiPixelRawToDigi") <<
" (Words/Digis) this ev: "
253 ev.
put( collection );
255 ev.
put( errorcollection );
256 ev.
put( tkerror_detidcollection );
257 ev.
put( usererror_detidcollection,
"UserErrorModules" );
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
unsigned int nForwardFEDs() const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
static MessageDrop * instance()
bool exists(std::string const ¶meterName) const
checks if a parameter exists
std::vector< int > usererrorlist
const std::set< unsigned int > * modulesToUnpack() const
full set of module ids to unpack
virtual std::string version() const =0
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
PixelUnpackingRegions * regions_
std::vector< unsigned int > fedIds
SiPixelRawToDigi(const edm::ParameterSet &)
ctor
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
unsigned int nBarrelModules() const
edm::EDGetTokenT< FEDRawDataCollection > tFEDRawDataCollection
std::vector< std::string > getParameterNames() const
virtual ~SiPixelRawToDigi()
dtor
edm::ESWatcher< SiPixelFedCablingMapRcd > recordWatcher
void run(const edm::Event &e, const edm::EventSetup &es)
has to be run during each event
unsigned int nModules() const
const LastMeasurement & lastMeasurement()
T const * product() const
std::vector< int > tkerrorlist
bool check(const edm::EventSetup &iSetup)
edm::ParameterSet config_
unsigned int nForwardModules() const
unsigned int nFEDs() const
various informational accessors:
unsigned int nBarrelFEDs() const
bool mayUnpackFED(unsigned int fed_n) const
check whether a FED has to be unpacked
edm::EDCollection< DetId > DetIdCollection
R2DTimerObserver * theTimer
collection_type::const_iterator const_iterator
edm::ESWatcher< SiPixelQualityRcd > qualityWatcher
const SiPixelQuality * badPixelInfo_
const SiPixelFedCabling * cabling_
virtual void produce(edm::Event &, const edm::EventSetup &)
get data, convert to digis attach againe to Event