|
 |
#include <SiPixelStatusProducer.h>
|
| SiPixelStatusProducer (const edm::ParameterSet &) |
|
| ~SiPixelStatusProducer () override |
|
| EDProducer ()=default |
|
SerialTaskQueue * | globalLuminosityBlocksQueue () final |
|
SerialTaskQueue * | globalRunsQueue () final |
|
bool | hasAbilityToProduceInBeginLumis () const final |
|
bool | hasAbilityToProduceInBeginRuns () const final |
|
bool | hasAbilityToProduceInEndLumis () const final |
|
bool | hasAbilityToProduceInEndRuns () const final |
|
bool | wantsGlobalLuminosityBlocks () const final |
|
bool | wantsGlobalRuns () const final |
|
| EDProducerBase () |
|
ModuleDescription const & | moduleDescription () const |
|
bool | wantsStreamLuminosityBlocks () const |
|
bool | wantsStreamRuns () const |
|
| ~EDProducerBase () override |
|
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
|
std::vector< edm::ProductResolverIndex > const & | indiciesForPutProducts (BranchType iBranchType) const |
|
| ProducerBase () |
|
std::vector< edm::ProductResolverIndex > const & | putTokenIndexToProductResolverIndex () const |
|
std::vector< bool > const & | recordProvenanceList () const |
|
void | registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &) |
|
std::function< void(BranchDescription const &)> | registrationCallback () const |
| used by the fwk to register list of products More...
|
|
void | resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel) |
|
TypeLabelList const & | typeLabelList () const |
| used by the fwk to register the list of products of this module More...
|
|
| ~ProducerBase () noexcept(false) override |
|
std::vector< ConsumesInfo > | consumesInfo () const |
|
void | convertCurrentProcessAlias (std::string const &processName) |
| Convert "@currentProcess" in InputTag process names to the actual current process name. More...
|
|
| EDConsumerBase () |
|
| EDConsumerBase (EDConsumerBase &&)=default |
|
| EDConsumerBase (EDConsumerBase const &)=delete |
|
ESProxyIndex const * | esGetTokenIndices (edm::Transition iTrans) const |
|
ProductResolverIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
|
void | itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
void | itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
|
std::vector< ProductResolverIndexAndSkipBit > const & | itemsToGetFrom (BranchType iType) const |
|
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
|
void | modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
|
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
|
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
|
ProductResolverIndexAndSkipBit | uncheckedIndexFrom (EDGetToken) const |
|
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
|
void | updateLookup (eventsetup::ESRecordsToProxyIndices const &) |
|
virtual | ~EDConsumerBase () noexcept(false) |
|
|
void | accumulate (edm::Event const &, const edm::EventSetup &) final |
|
void | beginLuminosityBlock (edm::LuminosityBlock const &lumiSeg, const edm::EventSetup &) final |
|
void | endLuminosityBlock (edm::LuminosityBlock const &lumiSeg, const edm::EventSetup &) final |
|
void | endLuminosityBlockProduce (edm::LuminosityBlock &lumiSeg, const edm::EventSetup &) final |
|
virtual int | indexROC (int irow, int icol, int nROCcolumns) final |
|
virtual void | onlineRocColRow (const DetId &detId, int offlineRow, int offlineCol, int &roc, int &row, int &col) final |
|
|
int | beginLumi_ |
|
int | beginRun_ |
|
SiPixelCoordinates | coord_ |
|
int | countLumi_ |
|
int | endLumi_ |
|
int | endRun_ |
|
const SiPixelFedCablingMap * | fCablingMap_ = nullptr |
|
SiPixelDetectorStatus | fDet |
|
std::map< int, std::vector< PixelFEDChannel > > | FEDerror25_ |
|
std::unordered_map< uint32_t, unsigned int > | fFedIds |
|
edm::InputTag | fPixelClusterLabel_ |
|
std::map< int, std::map< int, int > > | fRocIds |
|
std::map< int, std::pair< int, int > > | fSensorLayout |
|
std::map< int, std::pair< int, int > > | fSensors |
|
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > | fSiPixelClusterToken_ |
|
unsigned long int | ftotalevents |
|
int | resetNLumi_ |
|
edm::ESGetToken< SiPixelFedCablingMap, SiPixelFedCablingMapRcd > | siPixelFedCablingMapToken_ |
|
edm::ESWatcher< SiPixelFedCablingMapRcd > | siPixelFedCablingMapWatcher_ |
|
std::vector< edm::EDGetTokenT< PixelFEDChannelCollection > > | theBadPixelFEDChannelsTokens_ |
|
edm::ESWatcher< TrackerDigiGeometryRecord > | trackerDIGIGeoWatcher_ |
|
const TrackerGeometry * | trackerGeometry_ = nullptr |
|
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > | trackerGeometryToken_ |
|
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > | trackerTopologyToken_ |
|
edm::ESWatcher< TrackerTopologyRcd > | trackerTopoWatcher_ |
|
|
typedef EDProducerBase | ModuleType |
|
using | ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > > |
|
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
|
typedef ProductLabels | Labels |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces () |
| declare what type of product will make and with which optional label More...
|
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces () |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces () |
|
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<BranchType B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<Transition B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
ProducesCollector | producesCollector () |
|
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (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 ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes () |
|
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> |
auto | esConsumes (ESInputTag const &tag) |
|
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
|
class: SiPixelStatusProducer.h package: CalibTracker/SiPixelQuality
Definition at line 34 of file SiPixelStatusProducer.h.
◆ SiPixelStatusProducer()
Definition at line 46 of file SiPixelStatusProducer.cc.
48 esConsumes<TrackerGeometry, TrackerDigiGeometryRecord, edm::Transition::BeginLuminosityBlock>()),
49 trackerTopologyToken_(esConsumes<TrackerTopology, TrackerTopologyRcd, edm::Transition::BeginLuminosityBlock>()),
51 esConsumes<SiPixelFedCablingMap, SiPixelFedCablingMapRcd, edm::Transition::BeginLuminosityBlock>()) {
55 std::vector<edm::InputTag> badPixelFEDChannelCollectionLabels_ =
57 .getParameter<std::vector<edm::InputTag>>(
"badPixelFEDChannelCollections");
58 for (
auto&
t : badPixelFEDChannelCollectionLabels_)
63 .getUntrackedParameter<edm::InputTag>(
"pixelClusterLabel");
66 .getUntrackedParameter<int>(
"resetEveryNLumi", 1);
74 produces<SiPixelDetectorStatus, edm::Transition::EndLuminosityBlock>(
"siPixelStatus");
References beginLumi_, countLumi_, endLumi_, endRun_, fPixelClusterLabel_, fSiPixelClusterToken_, ftotalevents, edm::ParameterSet::getParameter(), resetNLumi_, OrderedSet::t, and theBadPixelFEDChannelsTokens_.
◆ ~SiPixelStatusProducer()
SiPixelStatusProducer::~SiPixelStatusProducer |
( |
| ) |
|
|
override |
◆ accumulate()
Definition at line 154 of file SiPixelStatusProducer.cc.
157 edm::LogInfo(
"SiPixelStatusProducer") <<
"start cluster analyzer " << endl;
166 <<
" edmNew::DetSetVector<SiPixelCluster> " <<
fPixelClusterLabel_ <<
" does not exist!" << endl;
173 for (
const auto&
clusters : *hClusterColl) {
176 int rowsperroc =
fSensors[detid].first;
177 int colsperroc =
fSensors[detid].second;
182 std::map<int, int> fRocIds_detid;
184 fRocIds_detid =
fRocIds[detid];
187 const vector<SiPixelCluster::Pixel>& pixvector = clu.pixels();
188 for (
unsigned int i = 0;
i < pixvector.size(); ++
i) {
189 int mr0 = pixvector[
i].x;
190 int mc0 = pixvector[
i].y;
192 int irow = mr0 / rowsperroc;
193 int icol = mc0 / colsperroc;
196 if (fRocIds_detid.find(
key) != fRocIds_detid.end()) {
211 <<
" edmNew::DetSetVector<SiPixelCluster> " <<
fPixelClusterLabel_ <<
" is NOT Valid!" << endl;
221 if (!
iEvent.getByToken(tk, pixelFEDChannelCollectionHandle)) {
223 <<
" PixelFEDChannelCollection with index " << tk.index() <<
" does NOT exist!" << std::endl;
226 iEvent.getByToken(tk, pixelFEDChannelCollectionHandle);
228 if (!pixelFEDChannelCollectionHandle.
isValid()) {
230 <<
" PixelFEDChannelCollection with index " << tk.index() <<
" is NOT valid!" << endl;
234 std::map<int, std::vector<PixelFEDChannel>> tmpFEDerror25;
235 for (
const auto& disabledChannels : *pixelFEDChannelCollectionHandle) {
237 for (
const auto& ch : disabledChannels) {
238 DetId detId = disabledChannels.detId();
239 int detid = detId.
rawId();
245 tmpFEDerror25[detid].push_back(ch);
253 if (!tmpFEDerror25.empty() && !
FEDerror25_.empty()) {
255 std::map<int, std::vector<PixelFEDChannel>>::iterator itFEDerror25;
257 int detid = itFEDerror25->first;
258 if (tmpFEDerror25.find(detid) != tmpFEDerror25.end()) {
259 std::vector<PixelFEDChannel> chs = itFEDerror25->second;
260 std::vector<PixelFEDChannel> chs_tmp = tmpFEDerror25[detid];
262 std::vector<PixelFEDChannel> chs_common;
263 for (
unsigned int ich = 0; ich < chs.size(); ich++) {
266 for (
unsigned int ich_tmp = 0; ich_tmp < chs_tmp.size(); ich_tmp++) {
269 chs_common.push_back(ch);
275 if (chs_common.empty())
References bsc_activity_cfg::clusters, fDet, PixelFEDChannel::fed, FEDerror25_, SiPixelDetectorStatus::fillDIGI(), fPixelClusterLabel_, fRocIds, fSensorLayout, fSensors, fSiPixelClusterToken_, ftotalevents, mps_fire::i, iEvent, indexROC(), edm::HandleBase::isValid(), crabWrapper::key, PixelFEDChannel::link, DetId::rawId(), PixelMapPlotter::roc, and theBadPixelFEDChannelsTokens_.
◆ beginLuminosityBlock()
Definition at line 81 of file SiPixelStatusProducer.cc.
82 edm::LogInfo(
"SiPixelStatusProducer") <<
"beginlumi setup " << endl;
108 const PixelGeomDetUnit* pgdu = dynamic_cast<const PixelGeomDetUnit*>((*it));
111 DetId detId = (*it)->geographicalId();
112 int detid = detId.
rawId();
121 int nrocs = nROCrows * nROCcolumns;
125 fSensors[detid] = std::make_pair(rowsperroc, colsperroc);
126 fSensorLayout[detid] = std::make_pair(nROCrows, nROCcolumns);
128 std::map<int, int> rocIdMap;
129 for (
int irow = 0; irow < nROCrows; irow++) {
130 for (
int icol = 0; icol < nROCcolumns; icol++) {
131 int dummyOfflineRow = (rowsperroc / 2 - 1) + irow * rowsperroc;
132 int dummeOfflineColumn = (colsperroc / 2 - 1) + icol * colsperroc;
136 int roc(-1), rocR(-1), rocC(-1);
References SiPixelDetectorStatus::addModule(), beginLumi_, beginRun_, edm::ESWatcher< T >::check(), PixelTopology::colsperroc(), coord_, countLumi_, SiPixelFedCablingMap::det2fedMap(), TrackerGeometry::dets(), fCablingMap_, fDet, FEDerror25_, fFedIds, fRocIds, fSensorLayout, fSensors, ftotalevents, edm::EventSetup::getData(), indexROC(), SiPixelCoordinates::init(), crabWrapper::key, edm::LuminosityBlockBase::luminosityBlock(), PixelTopology::ncolumns(), DeadROCCounter::nrocs, PixelTopology::nrows(), onlineRocColRow(), DetId::rawId(), resetNLumi_, PixelMapPlotter::roc, PixelTopology::rowsperroc(), edm::LuminosityBlockBase::run(), siPixelFedCablingMapToken_, siPixelFedCablingMapWatcher_, PixelGeomDetUnit::specificTopology(), trackerDIGIGeoWatcher_, trackerGeometry_, trackerGeometryToken_, trackerTopologyToken_, trackerTopoWatcher_, and relativeConstraints::value.
◆ endLuminosityBlock()
◆ endLuminosityBlockProduce()
Definition at line 302 of file SiPixelStatusProducer.cc.
303 edm::LogInfo(
"SiPixelStatusProducer") <<
"endlumi producer " << endl;
316 std::map<int, std::vector<PixelFEDChannel>>::iterator itFEDerror25;
318 int detid = itFEDerror25->first;
319 std::vector<PixelFEDChannel> chs = itFEDerror25->second;
320 for (
unsigned int ich = 0; ich < chs.size(); ich++) {
331 auto result = std::make_unique<SiPixelDetectorStatus>();
336 edm::LogInfo(
"SiPixelStatusProducer") <<
"new lumi-based data stored for run " <<
beginRun_ <<
" lumi from "
References beginLumi_, beginRun_, countLumi_, endLumi_, endRun_, fDet, FEDerror25_, SiPixelDetectorStatus::fillFEDerror25(), ftotalevents, edm::LuminosityBlockBase::luminosityBlock(), eostools::move(), edm::LuminosityBlock::put(), SiPixelDetectorStatus::resetDetectorStatus(), resetNLumi_, mps_fire::result, edm::LuminosityBlockBase::run(), SiPixelDetectorStatus::setLSRange(), SiPixelDetectorStatus::setNevents(), SiPixelDetectorStatus::setRunRange(), and AlCaHLTBitMon_QueryRunRegistry::string.
◆ fillDescriptions()
◆ indexROC()
int SiPixelStatusProducer::indexROC |
( |
int |
irow, |
|
|
int |
icol, |
|
|
int |
nROCcolumns |
|
) |
| |
|
finalprivatevirtual |
◆ onlineRocColRow()
void SiPixelStatusProducer::onlineRocColRow |
( |
const DetId & |
detId, |
|
|
int |
offlineRow, |
|
|
int |
offlineCol, |
|
|
int & |
roc, |
|
|
int & |
row, |
|
|
int & |
col |
|
) |
| |
|
finalprivatevirtual |
Definition at line 347 of file SiPixelStatusProducer.cc.
367 col = locpixel.rocCol();
368 row = locpixel.rocRow();
References cuy::col, coord_, sipixelobjects::ElectronicIndex::dcol, sipixelobjects::LocalPixel::DcolPxid::dcol, hgcalTestNeighbor_cfi::detector, fCablingMap_, l1tstage2_dqm_sourceclient-live_cfg::fedId, fFedIds, SiPixelCoordinates::half(), sipixelobjects::PixelROC::idInDetUnit(), sipixelobjects::ElectronicIndex::link, PixelSubdetector::PixelBarrel, sipixelobjects::ElectronicIndex::pxid, sipixelobjects::LocalPixel::DcolPxid::pxid, DetId::rawId(), sipixelobjects::ElectronicIndex::roc, PixelMapPlotter::roc, sipixelobjects::LocalPixel::rocCol(), sipixelobjects::LocalPixel::rocRow(), SiPixelCoordinates::side(), and DetId::subdetId().
Referenced by beginLuminosityBlock().
◆ beginLumi_
int SiPixelStatusProducer::beginLumi_ |
|
private |
◆ beginRun_
int SiPixelStatusProducer::beginRun_ |
|
private |
◆ coord_
◆ countLumi_
int SiPixelStatusProducer::countLumi_ |
|
private |
◆ endLumi_
int SiPixelStatusProducer::endLumi_ |
|
private |
◆ endRun_
int SiPixelStatusProducer::endRun_ |
|
private |
◆ fCablingMap_
◆ fDet
◆ FEDerror25_
std::map<int, std::vector<PixelFEDChannel> > SiPixelStatusProducer::FEDerror25_ |
|
private |
◆ fFedIds
std::unordered_map<uint32_t, unsigned int> SiPixelStatusProducer::fFedIds |
|
private |
◆ fPixelClusterLabel_
◆ fRocIds
std::map<int, std::map<int, int> > SiPixelStatusProducer::fRocIds |
|
private |
◆ fSensorLayout
std::map<int, std::pair<int, int> > SiPixelStatusProducer::fSensorLayout |
|
private |
◆ fSensors
std::map<int, std::pair<int, int> > SiPixelStatusProducer::fSensors |
|
private |
◆ fSiPixelClusterToken_
◆ ftotalevents
unsigned long int SiPixelStatusProducer::ftotalevents |
|
private |
◆ resetNLumi_
int SiPixelStatusProducer::resetNLumi_ |
|
private |
◆ siPixelFedCablingMapToken_
◆ siPixelFedCablingMapWatcher_
◆ theBadPixelFEDChannelsTokens_
◆ trackerDIGIGeoWatcher_
◆ trackerGeometry_
◆ trackerGeometryToken_
◆ trackerTopologyToken_
◆ trackerTopoWatcher_
bool check(const edm::EventSetup &iSetup)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void resetDetectorStatus()
SiPixelDetectorStatus fDet
edm::ESWatcher< SiPixelFedCablingMapRcd > siPixelFedCablingMapWatcher_
std::vector< edm::EDGetTokenT< PixelFEDChannelCollection > > theBadPixelFEDChannelsTokens_
virtual int colsperroc() const =0
unsigned long int ftotalevents
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > fSiPixelClusterToken_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > trackerGeometryToken_
void setLSRange(int ls0, int ls1)
std::map< int, std::pair< int, int > > fSensorLayout
std::map< int, std::pair< int, int > > fSensors
identify pixel inside single ROC
edm::ESWatcher< TrackerTopologyRcd > trackerTopoWatcher_
const SiPixelFedCablingMap * fCablingMap_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyToken_
void addModule(int detid, int nrocs)
void init(const TrackerTopology *, const TrackerGeometry *, const SiPixelFedCablingMap *)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
LuminosityBlockNumber_t luminosityBlock() const
void fillDIGI(int detid, int roc)
edm::ESGetToken< SiPixelFedCablingMap, SiPixelFedCablingMapRcd > siPixelFedCablingMapToken_
const TrackerGeometry * trackerGeometry_
virtual int ncolumns() const =0
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
void fillFEDerror25(int detid, PixelFEDChannel ch)
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
virtual void onlineRocColRow(const DetId &detId, int offlineRow, int offlineCol, int &roc, int &row, int &col) final
std::unordered_map< uint32_t, unsigned int > det2fedMap() const final
double collumn and pixel ID in double collumn representation
void setNevents(unsigned long int N)
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
std::unordered_map< uint32_t, unsigned int > fFedIds
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
virtual int rowsperroc() const =0
void put(std::unique_ptr< PROD > product)
Put a new product.
bool getData(T &iHolder) const
SiPixelCoordinates coord_
T getParameter(std::string const &) const
constexpr uint32_t rawId() const
get the raw id
edm::InputTag fPixelClusterLabel_
virtual int indexROC(int irow, int icol, int nROCcolumns) final
std::map< int, std::vector< PixelFEDChannel > > FEDerror25_
edm::ESWatcher< TrackerDigiGeometryRecord > trackerDIGIGeoWatcher_
void setRunRange(int run0, int run1)
virtual int nrows() const =0
std::map< int, std::map< int, int > > fRocIds
unsigned int idInDetUnit() const
id of this ROC in DetUnit etermined by token path