50 : id_(id), ncols_(ncols), nrows_(nrows) {}
67 bool isHalfModule =
false;
89 meSize_ = iBooker.
book1D(hid,
"Total cluster size", 30, 0., 30.);
102 meMinCol_ = iBooker.
book1D(hid,
"Lowest cluster column", 500, 0., 500.);
106 meMaxCol_ = iBooker.
book1D(hid,
"Highest cluster column", 500, 0., 500.);
110 meX_ = iBooker.
book1D(hid,
"Cluster barycenter X (row #)", 200, 0., 200.);
114 meY_ = iBooker.
book1D(hid,
"Cluster barycenter Y (column #)", 500, 0., 500.);
118 meSizeX_ = iBooker.
book1D(hid,
"Cluster x-width (rows)", 10, 0., 10.);
122 meSizeY_ = iBooker.
book1D(hid,
"Cluster y-width (columns)", 15, 0., 15.);
130 hid,
"Number of Clusters (1bin=four pixels)", nbinx, 0.,
float(
ncols_), nbiny, 0.,
float(
nrows_));
136 iBooker.
book1D(hid +
"_px",
"Number of Clusters (1bin=two columns)", nbinx, 0.,
float(
ncols_));
142 delete theHistogramId;
146 if (barrel && type == 7) {
147 hid = src.
label() +
"_Barrel";
149 "sizeYvsEta_" + hid,
"Cluster size along beamline vs. Cluster position #eta", 60, -3., 3., 40, 0., 40.);
153 if (type == 1 && barrel) {
157 sprintf(sladder,
"Ladder_%02i", DBladder);
158 hid = src.
label() +
"_" + sladder;
170 meSizeLad_ = iBooker.
book1D(
"size_" + hid,
"Total cluster size", 30, 0., 30.);
180 meMinColLad_ = iBooker.
book1D(
"mincol_" + hid,
"Lowest cluster column", 500, 0., 500.);
183 meMaxColLad_ = iBooker.
book1D(
"maxcol_" + hid,
"Highest cluster column", 500, 0., 500.);
186 meXLad_ = iBooker.
book1D(
"x_" + hid,
"Cluster barycenter X (row #)", 200, 0., 200.);
189 meYLad_ = iBooker.
book1D(
"y_" + hid,
"Cluster barycenter Y (column #)", 500, 0., 500.);
192 meSizeXLad_ = iBooker.
book1D(
"sizeX_" + hid,
"Cluster x-width (rows)", 10, 0., 10.);
195 meSizeYLad_ = iBooker.
book1D(
"sizeY_" + hid,
"Cluster y-width (columns)", 15, 0., 15.);
200 "Number of Clusters (1bin=four pixels)",
212 iBooker.
book1D(
"hitmap_" + hid +
"_px",
"Number of Clusters (1bin=two columns)", nbinx, 0.,
float(
ncols_));
214 iBooker.
book1D(
"hitmap_" + hid +
"_py",
"Number of Clusters (1bin=two rows)", nbiny, 0.,
float(
nrows_));
221 if (type == 2 && barrel) {
225 sprintf(slayer,
"Layer_%i", DBlayer);
226 hid = src.
label() +
"_" + slayer;
234 meSizeLay_ = iBooker.
book1D(
"size_" + hid,
"Total cluster size", 30, 0., 30.);
244 meMinColLay_ = iBooker.
book1D(
"mincol_" + hid,
"Lowest cluster column", 500, 0., 500.);
247 meMaxColLay_ = iBooker.
book1D(
"maxcol_" + hid,
"Highest cluster column", 500, 0., 500.);
250 meXLay_ = iBooker.
book1D(
"x_" + hid,
"Cluster barycenter X (row #)", 200, 0., 200.);
253 meYLay_ = iBooker.
book1D(
"y_" + hid,
"Cluster barycenter Y (column #)", 500, 0., 500.);
256 meSizeXLay_ = iBooker.
book1D(
"sizeX_" + hid,
"Cluster x-width (rows)", 10, 0., 10.);
259 meSizeYLay_ = iBooker.
book1D(
"sizeY_" + hid,
"Cluster y-width (columns)", 15, 0., 15.);
265 "Number of Clusters (1bin=four pixels)",
274 "Number of Clusters (1bin=four pixels)",
287 iBooker.
book1D(
"hitmap_" + hid +
"_px",
"Number of Clusters (1bin=two columns)", nbinx, 0.,
float(
ncols_));
290 "hitmap_" + hid +
"_py",
"Number of Clusters (1bin=two rows)", 2 * nbiny, 0.,
float(2 *
nrows_));
293 iBooker.
book1D(
"hitmap_" + hid +
"_py",
"Number of Clusters (1bin=two rows)", nbiny, 0.,
float(
nrows_));
300 if (type == 3 && barrel) {
304 sprintf(smodule,
"Ring_%i", DBmodule);
305 hid = src.
label() +
"_" + smodule;
313 meSizePhi_ = iBooker.
book1D(
"size_" + hid,
"Total cluster size", 30, 0., 30.);
323 meMinColPhi_ = iBooker.
book1D(
"mincol_" + hid,
"Lowest cluster column", 500, 0., 500.);
326 meMaxColPhi_ = iBooker.
book1D(
"maxcol_" + hid,
"Highest cluster column", 500, 0., 500.);
329 meXPhi_ = iBooker.
book1D(
"x_" + hid,
"Cluster barycenter X (row #)", 200, 0., 200.);
332 meYPhi_ = iBooker.
book1D(
"y_" + hid,
"Cluster barycenter Y (column #)", 500, 0., 500.);
335 meSizeXPhi_ = iBooker.
book1D(
"sizeX_" + hid,
"Cluster x-width (rows)", 10, 0., 10.);
338 meSizeYPhi_ = iBooker.
book1D(
"sizeY_" + hid,
"Cluster y-width (columns)", 15, 0., 15.);
344 "Number of Clusters (1bin=four pixels)",
353 "Number of Clusters (1bin=four pixels)",
366 iBooker.
book1D(
"hitmap_" + hid +
"_px",
"Number of Clusters (1bin=two columns)", nbinx, 0.,
float(
ncols_));
369 "hitmap_" + hid +
"_py",
"Number of Clusters (1bin=two rows)", 2 * nbiny, 0.,
float(2 *
nrows_));
372 iBooker.
book1D(
"hitmap_" + hid +
"_py",
"Number of Clusters (1bin=two rows)", nbiny, 0.,
float(
nrows_));
380 if (type == 4 && endcap) {
385 sprintf(sblade,
"Blade_%02i", blade);
386 hid = src.
label() +
"_" + sblade;
410 meXBlade_ = iBooker.
book1D(
"x_" + hid,
"Cluster barycenter X (row #)", 200, 0., 200.);
413 meYBlade_ = iBooker.
book1D(
"y_" + hid,
"Cluster barycenter Y (column #)", 500, 0., 500.);
423 if (type == 5 && endcap) {
428 sprintf(sdisk,
"Disk_%i", disk);
429 hid = src.
label() +
"_" + sdisk;
453 meXDisk_ = iBooker.
book1D(
"x_" + hid,
"Cluster barycenter X (row #)", 200, 0., 200.);
456 meYDisk_ = iBooker.
book1D(
"y_" + hid,
"Cluster barycenter Y (column #)", 500, 0., 500.);
462 meSizeYDisk_ = iBooker.
book1D(
"sizeY_" + hid,
"Cluster y-width (columns)", 15, 0., 15.);
467 if (type == 6 && endcap) {
474 sprintf(slab,
"Panel_%i_Ring_%i", panel, module);
475 hid = src.
label() +
"_" + slab;
499 meXRing_ = iBooker.
book1D(
"x_" + hid,
"Cluster barycenter X (row #)", 200, 0., 200.);
502 meYRing_ = iBooker.
book1D(
"y_" + hid,
"Cluster barycenter Y (column #)", 500, 0., 500.);
508 meSizeYRing_ = iBooker.
book1D(
"sizeY_" + hid,
"Cluster y-width (columns)", 15, 0., 15.);
513 "Number of Clusters (1bin=four pixels)",
525 iBooker.
book1D(
"hitmap_" + hid +
"_px",
"Number of Clusters (1bin=two columns)", nbinx, 0.,
float(
ncols_));
527 iBooker.
book1D(
"hitmap_" + hid +
"_py",
"Number of Clusters (1bin=two rows)", nbiny, 0.,
float(
nrows_));
540 int *barrelClusterTotal,
541 int *fpixPClusterTotal,
542 int *fpixMClusterTotal,
543 std::vector<MonitorElement *> &
layers,
544 std::vector<MonitorElement *> &diskspz,
545 std::vector<MonitorElement *> &disksmz,
561 unsigned int numberOfClusters = 0;
562 unsigned int numberOfFpixClusters = 0;
564 if (isearch != input.
end()) {
568 for (di = isearch->
begin(); di != isearch->
end(); di++) {
571 numberOfFpixClusters++;
573 (*barrelClusterTotal)++;
574 float charge = 0.001 * (di->charge());
578 int sizeX = di->sizeX();
579 int sizeY = di->sizeY();
580 int minPixelRow = di->minPixelRow();
581 int maxPixelRow = di->maxPixelRow();
582 int minPixelCol = di->minPixelCol();
583 int maxPixelCol = di->maxPixelCol();
597 if (!(DBlayer > layers.size()) && (layers[DBlayer - 1]))
598 layers[DBlayer - 1]->
Fill(clustgp.
z(), clustgp.
phi());
601 if (clustgp.
z() > 0) {
602 (*fpixPClusterTotal)++;
603 if (!(DBdisk > diskspz.size()) && (diskspz[DBdisk - 1]))
604 diskspz[DBdisk - 1]->
Fill(clustgp.
x(), clustgp.
y());
606 (*fpixMClusterTotal)++;
607 if (!(DBdisk > disksmz.size()) && (disksmz[DBdisk - 1]))
608 disksmz[DBdisk - 1]->
Fill(clustgp.
x(), clustgp.
y());
628 if (barrel && smileyon) {
634 if (ladon && barrel) {
654 if (layon && barrel) {
674 if (phion && barrel) {
694 if (bladeon && endcap) {
708 if (diskon && endcap) {
723 if (ringon && endcap) {
752 if (bladeon && endcap)
754 if (diskon && endcap)
756 if (ringon && endcap)
761 return numberOfFpixClusters;
int plaquetteName() const
plaquetteId (in pannel)
MonitorElement * meMinColLay_
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
MonitorElement * meMinRowRing_
const_iterator end(bool update=false) const
MonitorElement * meMaxColLad_
MonitorElement * meSizePhi_
MonitorElement * meCharge_
MonitorElement * mePixClustersLad_px_
std::vector< LayerSetAndLayers > layers(const SeedingLayerSetsHits &sets)
MonitorElement * meMaxCol_
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
MonitorElement * meMaxColPhi_
MonitorElement * meNClustersLad_
MonitorElement * meYBlade_
int moduleName() const
module id (index in z)
MonitorElement * meMinRowLad_
MonitorElement * meSizeYLay_
MonitorElement * meSizeYLad_
MonitorElement * meSizeXLad_
MonitorElement * meSizeXLay_
MonitorElement * meMinRow_
Geom::Phi< T > phi() const
MonitorElement * meXDisk_
MonitorElement * meMaxRowRing_
MonitorElement * mePixClustersLay_
MonitorElement * meSizeYBlade_
SiPixelClusterModule()
Default constructor.
void book(const edm::ParameterSet &iConfig, const TrackerTopology *pTT, DQMStore::IBooker &iBooker, int type=0, bool twoD=true, bool reducedSet=false, bool isUpgrade=false)
Book histograms.
data_type const * const_iterator
MonitorElement * meMinRowBlade_
MonitorElement * meNClustersPhi_
MonitorElement * meChargePhi_
MonitorElement * meMinColPhi_
MonitorElement * meNClustersBlade_
MonitorElement * mePixClustersPhi_py_
MonitorElement * meMinRowDisk_
const Plane & surface() const
The nominal surface of the GeomDet.
MonitorElement * mePixClustersRing_px_
MonitorElement * meMaxRowLad_
static std::string const input
MonitorElement * meMinRowLay_
MonitorElement * meMinColBlade_
MonitorElement * meXRing_
MonitorElement * meSizeYDisk_
MonitorElement * meSizeDisk_
MonitorElement * meMaxColRing_
MonitorElement * meMinColLad_
int bladeName() const
blade id
MonitorElement * meMaxRowBlade_
MonitorElement * meChargeRing_
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
MonitorElement * mePixClustersLad_
bool isHalfModule() const
full or half module
int fill(const edmNew::DetSetVector< SiPixelCluster > &input, const TrackerTopology *pTT, const TrackerGeometry *tracker, int *barrelClusterTotal, int *fpixPClusterTotal, int *fpixMClusterTotal, std::vector< MonitorElement * > &layers, std::vector< MonitorElement * > &diskspz, std::vector< MonitorElement * > &disksmz, bool modon=true, bool ladon=false, bool layon=false, bool phion=false, bool bladeon=false, bool diskon=false, bool ringon=false, bool twoD=true, bool reducedSet=false, bool smileyon=false, bool isUpgrade=false)
Fill histograms.
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
~SiPixelClusterModule()
Destructor.
MonitorElement * meMaxRowPhi_
MonitorElement * meMinRowPhi_
MonitorElement * meMinColDisk_
MonitorElement * meMinCol_
MonitorElement * mePixClusters_py_
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
MonitorElement * mePixClustersLay_px_
MonitorElement * meNClustersDisk_
MonitorElement * meSizeYRing_
MonitorElement * mePixClustersRing_
MonitorElement * meSizeX_
MonitorElement * meSizeY_
MonitorElement * meMaxRowLay_
MonitorElement * meChargeDisk_
MonitorElement * meMaxColBlade_
MonitorElement * mePixClustersPhi_
const TrackerGeomDet * idToDet(DetId) const override
MonitorElement * meChargeBlade_
MonitorElement * mePixClustersLay_py_
MonitorElement * meMinColRing_
MonitorElement * meNClustersLay_
MonitorElement * meMaxColLay_
std::string setHistoId(std::string variable, uint32_t &rawId)
Set Histogram Id.
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
MonitorElement * meMaxRowDisk_
int ladderName() const
ladder id (index in phi)
MonitorElement * meYRing_
MonitorElement * meNClustersRing_
MonitorElement * meSizeYvsEtaBarrel_
MonitorElement * mePixClustersLad_py_
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
int layerName() const
layer id
T getParameter(std::string const &) const
MonitorElement * meYDisk_
MonitorElement * meSizeRing_
MonitorElement * mePixClusters_px_
const_iterator find(id_type i, bool update=false) const
MonitorElement * meSizeXPhi_
MonitorElement * meSizeXRing_
MonitorElement * mePixClusters_
MonitorElement * meSizeXBlade_
int pannelName() const
pannel id
MonitorElement * meMaxRow_
MonitorElement * meChargeLad_
MonitorElement * meSizeLad_
MonitorElement * meSizeBlade_
MonitorElement * mePixClustersRing_py_
int diskName() const
disk id
MonitorElement * meSizeXDisk_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
MonitorElement * meSizeYPhi_
MonitorElement * mePixClustersPhi_px_
MonitorElement * meXBlade_
MonitorElement * meChargeLay_
tuple size
Write out results.
const_iterator begin(bool update=false) const
MonitorElement * meNClusters_
MonitorElement * meSizeLay_
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * meMaxColDisk_