|
|
Go to the documentation of this file.
50 pixelFlag_(config_.getParameter<
bool>(
"PixelPlotFillingFlag")),
51 clsFlag_(config_.getParameter<
bool>(
"StandAloneClusteriserFlag")),
52 geomType_(config_.getParameter<
std::
string>(
"GeometryType")),
53 otDigiSrc_(config_.getParameter<
edm::
InputTag>(
"OuterTrackerDigiSource")),
54 itPixelDigiSrc_(config_.getParameter<
edm::
InputTag>(
"InnerPixelDigiSource")),
56 itPixelDigiToken_(consumes<
edm::DetSetVector<
PixelDigi>>(itPixelDigiSrc_)),
59 edm::LogInfo(
"Phase2TrackerMonitorDigi") <<
">>> Construct Phase2TrackerMonitorDigi ";
68 edm::LogInfo(
"Phase2TrackerMonitorDigi") <<
">>> Destroy Phase2TrackerMonitorDigi ";
92 if (theTkDigiGeomWatcher.
check(iSetup)) {
104 unsigned int rawid = DSViter->id;
105 edm::LogInfo(
"Phase2TrackerMonitorDigi") <<
" Det Id = " << rawid;
111 const DetId detId(rawid);
114 std::map<std::string, DigiMEs>::iterator
pos =
layerMEs.find(
key);
128 if (nRows * nColumns == 0)
138 std::vector<Ph2DigiCluster> digiClusters;
140 int col = di->column();
160 if (row_last == -1 ||
abs(row - row_last) != 1 ||
col != col_last) {
166 digiClusters.push_back(dClus);
168 int pos = digiClusters.back().position + row + 1;
169 int width = digiClusters.back().width + 1;
172 digiClusters.back().position =
pos;
173 digiClusters.back().width += 1;
175 edm::LogInfo(
"Phase2TrackerMonitorDigi") <<
" row " << row <<
" col " <<
col <<
" row_last " << row_last
176 <<
" col_last " << col_last <<
" width " << digiClusters.back().width;
186 float occupancy = 1.0;
187 if (nRows * nColumns > 0)
188 occupancy = nDigi * 1.0 / (nRows * nColumns);
205 DigiMEs& local_mes = ilayer.second;
219 unsigned int rawid = DSViter->id;
221 edm::LogInfo(
"Phase2TrackerMonitorDigi") <<
" Det Id = " << rawid;
226 std::map<std::string, DigiMEs>::iterator
pos =
layerMEs.find(
key);
241 if (nRows * nColumns == 0)
248 std::vector<Ph2DigiCluster> digiClusters;
250 int col = di->column();
252 const DetId detId(rawid);
263 if (di->overThreshold())
272 if (row_last == -1 ||
abs(row - row_last) != 1 ||
col != col_last) {
278 digiClusters.push_back(dClus);
280 int pos = digiClusters.back().position + row + 1;
281 int width = digiClusters.back().width + 1;
284 digiClusters.back().position =
pos;
285 digiClusters.back().width += 1;
289 edm::LogInfo(
"Phase2TrackerMonitorDigi") <<
" row " << row <<
" col " <<
col <<
" row_last " << row_last
290 <<
" col_last " << col_last <<
" width " << digiClusters.back().width;
303 float occupancy = 1.0;
304 if (nRows * nColumns > 0)
305 occupancy = nDigi * 1.0 / (nRows * nColumns);
329 DigiMEs& local_mes = ilayer.second;
347 if (theTkDigiGeomWatcher.check(iSetup)) {
349 unsigned int detId_raw = det_u->geographicalId().rawId();
373 if (
Parameters.getParameter<
bool>(
"switch") && ParametersOcc.getParameter<
bool>(
"switch"))
382 ParametersOcc.getParameter<
double>(
"xmin"),
383 ParametersOcc.getParameter<
double>(
"xmax"));
400 if (
Parameters.getParameter<
bool>(
"switch") && ParametersOcc.getParameter<
bool>(
"switch"))
409 ParametersOcc.getParameter<
double>(
"xmin"),
410 ParametersOcc.getParameter<
double>(
"xmax"));
427 std::map<std::string, DigiMEs>::iterator
pos =
layerMEs.find(
key);
434 bool isPStypeModForTEDD_1 =
436 bool isPStypeModForTEDD_2 =
440 (
pixelFlag_ || (layer < 4 || (layer > 6 && (isPStypeModForTEDD_1 || isPStypeModForTEDD_2)))) ?
true :
false;
444 edm::LogInfo(
"Phase2TrackerMonitorDigi") <<
" Booking Histograms in : " <<
key;
467 HistoName <<
"TotalNumberOfDigisPerLayer";
479 HistoName <<
"NumberOfHitDetectorsPerLayer";
552 if (
Parameters.getParameter<
bool>(
"switch") && EtaParameters.getParameter<
bool>(
"switch"))
555 EtaParameters.getParameter<int32_t>(
"Nbins"),
556 EtaParameters.getParameter<
double>(
"xmin"),
557 EtaParameters.getParameter<
double>(
"xmax"),
598 if (isPStypeModForTEDD_1 || isPStypeModForTEDD_2) {
600 HistoName <<
"FractionOfOverThresholdDigis";
605 HistoName <<
"FractionOfOverThresholdDigisVaEta";
606 if (
Parameters.getParameter<
bool>(
"switch") && EtaParameters.getParameter<
bool>(
"switch"))
609 EtaParameters.getParameter<int32_t>(
"Nbins"),
610 EtaParameters.getParameter<
double>(
"xmin"),
611 EtaParameters.getParameter<
double>(
"xmax"),
636 if (
Parameters.getParameter<
bool>(
"switch") && EtaParameters.getParameter<
bool>(
"switch"))
639 EtaParameters.getParameter<int32_t>(
"Nbins"),
640 EtaParameters.getParameter<
double>(
"xmin"),
641 EtaParameters.getParameter<
double>(
"xmax"),
720 int nclus = digi_clusters.size();
723 for (
auto& iclus : digi_clusters) {
const TrackerGeomDet * idToDet(DetId) const override
bool check(const edm::EventSetup &iSetup)
T const * product() const
MonitorElement * PositionOfDigisS
const edm::EDGetTokenT< edm::DetSetVector< Phase2TrackerDigi > > otDigiToken_
edm::ParameterSet config_
MonitorElement * RZOccupancyMap
iterator end()
Return the off-the-end iterator.
MonitorElement * TotalNumberOfDigisPerLayer
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
int getITPixelLayerNumber(const DetId &id) const
int getOTLayerNumber(const DetId &id) const
MonitorElement * ChargeXYMap
MonitorElement * bookProfile2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, double lowZ, double highZ, char const *option="s", FUNC onbooking=NOOP())
constexpr Detector det() const
get the detector field from this detid
virtual void setCurrentFolder(std::string const &fullpath)
iterator begin()
Return an iterator to the first DetSet.
MonitorElement * EtaOccupancyProfS
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
virtual const Topology & topology() const
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
void fillOTDigiHistos(const edm::Handle< edm::DetSetVector< Phase2TrackerDigi >> handle)
MonitorElement * XYOccupancyMap
Log< level::Info, false > LogInfo
MonitorElement * FractionOfOvTBitsVsEta
unsigned int tidRing(const DetId &id) const
unsigned int tidWheel(const DetId &id) const
MonitorElement * NumberOfClustersPerDet
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
constexpr int adc(sample_type sample)
get the ADC sample (12 bits)
MonitorElement * XYPositionMap
const Plane & surface() const
The nominal surface of the GeomDet.
unsigned int nHitDetsPerLayer
unsigned int nDigiPerLayer
#define DEFINE_FWK_MODULE(type)
const DetContainer & detUnits() const override
Returm a vector of all GeomDet.
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
MonitorElement * NumberOfDigisPerDet
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
virtual int ncolumns() const =0
const TrackerTopology * tTopo_
MonitorElement * ChargeOfDigis
MonitorElement * ClusterWidth
MonitorElement * ClusterPositionS
void fillITPixelDigiHistos(const edm::Handle< edm::DetSetVector< PixelDigi >> handle)
Phase2TrackerMonitorDigi(const edm::ParameterSet &)
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
MonitorElement * PositionOfDigisP
collection_type::const_iterator const_iterator
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
std::string getHistoId(uint32_t det_id, bool flag)
std::map< std::string, DigiMEs > layerMEs
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
void bookLayerHistos(DQMStore::IBooker &ibooker, unsigned int det_id)
void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &iRun, edm::EventSetup const &iSetup) override
const edm::EDGetTokenT< edm::DetSetVector< PixelDigi > > itPixelDigiToken_
MonitorElement * DigiOccupancyS
void fillDigiClusters(DigiMEs &mes, std::vector< Ph2DigiCluster > &digi_clusters)
~Phase2TrackerMonitorDigi() override
std::string getITHistoId(uint32_t det_id, const TrackerTopology *tTopo)
void dqmBeginRun(const edm::Run &iRun, const edm::EventSetup &iSetup) override
MonitorElement * FractionOfOvTBits
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
MonitorElement * DigiOccupancyP
MonitorElement * ChargeOfDigisVsWidth
MonitorElement * EtaOccupancyProfP
T getParameter(std::string const &) const
const TrackerGeometry * tkGeom_
MonitorElement * NumberOfHitDetectorsPerLayer
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
Abs< T >::type abs(const T &t)
virtual int nrows() const =0
MonitorElement * ClusterPositionP
vector< ParameterSet > Parameters
std::string getOTHistoId(uint32_t det_id, const TrackerTopology *tTopo)
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
MonitorElement * RZPositionMap
collection_type::const_iterator const_iterator