68 bool isHalfModule =
false;
97 meMinRow_ = theDMBE->book1D(hid,
"Lowest cluster row",200,0.,200.);
101 meMaxRow_ = theDMBE->book1D(hid,
"Highest cluster row",200,0.,200.);
105 meMinCol_ = theDMBE->book1D(hid,
"Lowest cluster column",500,0.,500.);
109 meMaxCol_ = theDMBE->book1D(hid,
"Highest cluster column",500,0.,500.);
113 meX_ = theDMBE->book1D(hid,
"Cluster barycenter X (row #)",200,0.,200.);
117 meY_ = theDMBE->book1D(hid,
"Cluster barycenter Y (column #)",500,0.,500.);
121 meSizeX_ = theDMBE->book1D(hid,
"Cluster x-width (rows)",10,0.,10.);
125 meSizeY_ = theDMBE->book1D(hid,
"Cluster y-width (columns)",15,0.,15.);
143 delete theHistogramId;
147 if(barrel && type==7){
148 hid = src.
label() +
"_Barrel";
149 meSizeYvsEtaBarrel_= theDMBE->book2D(
"sizeYvsEta_" + hid,
"Cluster size along beamline vs. Cluster position #eta",60,-3.,3.,40,0.,40.);
153 if(type==1 && barrel){
155 char sladder[80]; sprintf(sladder,
"Ladder_%02i",DBladder);
156 hid = src.
label() +
"_" + sladder;
157 if(isHalfModule) hid +=
"H";
160 meNClustersLad_ = theDMBE->book1D(
"nclusters_" + hid,
"Number of Clusters",8,0.,8.);
163 meChargeLad_ = theDMBE->book1D(
"charge_" + hid,
"Cluster charge",100,0.,200.);
166 meSizeLad_ = theDMBE->book1D(
"size_" + hid,
"Total cluster size",30,0.,30.);
170 meMinRowLad_ = theDMBE->book1D(
"minrow_" + hid,
"Lowest cluster row",200,0.,200.);
173 meMaxRowLad_ = theDMBE->book1D(
"maxrow_" + hid,
"Highest cluster row",200,0.,200.);
176 meMinColLad_ = theDMBE->book1D(
"mincol_" + hid,
"Lowest cluster column",500,0.,500.);
179 meMaxColLad_ = theDMBE->book1D(
"maxcol_" + hid,
"Highest cluster column",500,0.,500.);
182 meXLad_ = theDMBE->book1D(
"x_" + hid,
"Cluster barycenter X (row #)",200,0.,200.);
185 meYLad_ = theDMBE->book1D(
"y_" + hid,
"Cluster barycenter Y (column #)",500,0.,500.);
188 meSizeXLad_ = theDMBE->book1D(
"sizeX_" + hid,
"Cluster x-width (rows)",10,0.,10.);
191 meSizeYLad_ = theDMBE->book1D(
"sizeY_" + hid,
"Cluster y-width (columns)",15,0.,15.);
208 if(type==2 && barrel){
211 char slayer[80]; sprintf(slayer,
"Layer_%i",DBlayer);
212 hid = src.
label() +
"_" + slayer;
214 meNClustersLay_ = theDMBE->book1D(
"nclusters_" + hid,
"Number of Clusters",8,0.,8.);
217 meChargeLay_ = theDMBE->book1D(
"charge_" + hid,
"Cluster charge",100,0.,200.);
220 meSizeLay_ = theDMBE->book1D(
"size_" + hid,
"Total cluster size",30,0.,30.);
224 meMinRowLay_ = theDMBE->book1D(
"minrow_" + hid,
"Lowest cluster row",200,0.,200.);
227 meMaxRowLay_ = theDMBE->book1D(
"maxrow_" + hid,
"Highest cluster row",200,0.,200.);
230 meMinColLay_ = theDMBE->book1D(
"mincol_" + hid,
"Lowest cluster column",500,0.,500.);
233 meMaxColLay_ = theDMBE->book1D(
"maxcol_" + hid,
"Highest cluster column",500,0.,500.);
236 meXLay_ = theDMBE->book1D(
"x_" + hid,
"Cluster barycenter X (row #)",200,0.,200.);
239 meYLay_ = theDMBE->book1D(
"y_" + hid,
"Cluster barycenter Y (column #)",500,0.,500.);
242 meSizeXLay_ = theDMBE->book1D(
"sizeX_" + hid,
"Cluster x-width (rows)",10,0.,10.);
245 meSizeYLay_ = theDMBE->book1D(
"sizeY_" + hid,
"Cluster y-width (columns)",15,0.,15.);
250 mePixClustersLay_ = theDMBE->book2D(
"hitmap_" + hid,
"Number of Clusters (1bin=four pixels)",nbinx,0.,
float(
ncols_),2*nbiny,0.,
float(2*
nrows_));
260 mePixClustersLay_py_ = theDMBE->book1D(
"hitmap_" + hid+
"_py",
"Number of Clusters (1bin=two rows)",2*nbiny,0.,
float(2*
nrows_));
269 if(type==3 && barrel){
271 char smodule[80]; sprintf(smodule,
"Ring_%i",DBmodule);
272 hid = src.
label() +
"_" + smodule;
274 meNClustersPhi_ = theDMBE->book1D(
"nclusters_" + hid,
"Number of Clusters",8,0.,8.);
277 meChargePhi_ = theDMBE->book1D(
"charge_" + hid,
"Cluster charge",100,0.,200.);
280 meSizePhi_ = theDMBE->book1D(
"size_" + hid,
"Total cluster size",30,0.,30.);
284 meMinRowPhi_ = theDMBE->book1D(
"minrow_" + hid,
"Lowest cluster row",200,0.,200.);
287 meMaxRowPhi_ = theDMBE->book1D(
"maxrow_" + hid,
"Highest cluster row",200,0.,200.);
290 meMinColPhi_ = theDMBE->book1D(
"mincol_" + hid,
"Lowest cluster column",500,0.,500.);
293 meMaxColPhi_ = theDMBE->book1D(
"maxcol_" + hid,
"Highest cluster column",500,0.,500.);
296 meXPhi_ = theDMBE->book1D(
"x_" + hid,
"Cluster barycenter X (row #)",200,0.,200.);
299 meYPhi_ = theDMBE->book1D(
"y_" + hid,
"Cluster barycenter Y (column #)",500,0.,500.);
302 meSizeXPhi_ = theDMBE->book1D(
"sizeX_" + hid,
"Cluster x-width (rows)",10,0.,10.);
305 meSizeYPhi_ = theDMBE->book1D(
"sizeY_" + hid,
"Cluster y-width (columns)",15,0.,15.);
310 mePixClustersPhi_ = theDMBE->book2D(
"hitmap_" + hid,
"Number of Clusters (1bin=four pixels)",nbinx,0.,
float(
ncols_),2*nbiny,0.,
float(2*
nrows_));
320 mePixClustersPhi_py_ = theDMBE->book1D(
"hitmap_" + hid+
"_py",
"Number of Clusters (1bin=two rows)",2*nbiny,0.,
float(2*
nrows_));
330 if(type==4 && endcap){
333 char sblade[80]; sprintf(sblade,
"Blade_%02i",blade);
334 hid = src.
label() +
"_" + sblade;
336 meNClustersBlade_ = theDMBE->book1D(
"nclusters_" + hid,
"Number of Clusters",8,0.,8.);
339 meChargeBlade_ = theDMBE->book1D(
"charge_" + hid,
"Cluster charge",100,0.,200.);
342 meSizeBlade_ = theDMBE->book1D(
"size_" + hid,
"Total cluster size",30,0.,30.);
346 meMinRowBlade_ = theDMBE->book1D(
"minrow_" + hid,
"Lowest cluster row",200,0.,200.);
349 meMaxRowBlade_ = theDMBE->book1D(
"maxrow_" + hid,
"Highest cluster row",200,0.,200.);
352 meMinColBlade_ = theDMBE->book1D(
"mincol_" + hid,
"Lowest cluster column",500,0.,500.);
355 meMaxColBlade_ = theDMBE->book1D(
"maxcol_" + hid,
"Highest cluster column",500,0.,500.);
358 meXBlade_ = theDMBE->book1D(
"x_" + hid,
"Cluster barycenter X (row #)",200,0.,200.);
361 meYBlade_ = theDMBE->book1D(
"y_" + hid,
"Cluster barycenter Y (column #)",500,0.,500.);
364 meSizeXBlade_ = theDMBE->book1D(
"sizeX_" + hid,
"Cluster x-width (rows)",10,0.,10.);
367 meSizeYBlade_ = theDMBE->book1D(
"sizeY_" + hid,
"Cluster y-width (columns)",15,0.,15.);
371 if(type==5 && endcap){
374 char sdisk[80]; sprintf(sdisk,
"Disk_%i",disk);
375 hid = src.
label() +
"_" + sdisk;
377 meNClustersDisk_ = theDMBE->book1D(
"nclusters_" + hid,
"Number of Clusters",8,0.,8.);
380 meChargeDisk_ = theDMBE->book1D(
"charge_" + hid,
"Cluster charge",100,0.,200.);
383 meSizeDisk_ = theDMBE->book1D(
"size_" + hid,
"Total cluster size",30,0.,30.);
387 meMinRowDisk_ = theDMBE->book1D(
"minrow_" + hid,
"Lowest cluster row",200,0.,200.);
390 meMaxRowDisk_ = theDMBE->book1D(
"maxrow_" + hid,
"Highest cluster row",200,0.,200.);
393 meMinColDisk_ = theDMBE->book1D(
"mincol_" + hid,
"Lowest cluster column",500,0.,500.);
396 meMaxColDisk_ = theDMBE->book1D(
"maxcol_" + hid,
"Highest cluster column",500,0.,500.);
399 meXDisk_ = theDMBE->book1D(
"x_" + hid,
"Cluster barycenter X (row #)",200,0.,200.);
402 meYDisk_ = theDMBE->book1D(
"y_" + hid,
"Cluster barycenter Y (column #)",500,0.,500.);
405 meSizeXDisk_ = theDMBE->book1D(
"sizeX_" + hid,
"Cluster x-width (rows)",10,0.,10.);
408 meSizeYDisk_ = theDMBE->book1D(
"sizeY_" + hid,
"Cluster y-width (columns)",15,0.,15.);
413 if(type==6 && endcap){
416 char slab[80]; sprintf(slab,
"Panel_%i_Ring_%i",panel, module);
417 hid = src.
label() +
"_" + slab;
419 meNClustersRing_ = theDMBE->book1D(
"nclusters_" + hid,
"Number of Clusters",8,0.,8.);
422 meChargeRing_ = theDMBE->book1D(
"charge_" + hid,
"Cluster charge",100,0.,200.);
425 meSizeRing_ = theDMBE->book1D(
"size_" + hid,
"Total cluster size",30,0.,30.);
429 meMinRowRing_ = theDMBE->book1D(
"minrow_" + hid,
"Lowest cluster row",200,0.,200.);
432 meMaxRowRing_ = theDMBE->book1D(
"maxrow_" + hid,
"Highest cluster row",200,0.,200.);
435 meMinColRing_ = theDMBE->book1D(
"mincol_" + hid,
"Lowest cluster column",500,0.,500.);
438 meMaxColRing_ = theDMBE->book1D(
"maxcol_" + hid,
"Highest cluster column",500,0.,500.);
441 meXRing_ = theDMBE->book1D(
"x_" + hid,
"Cluster barycenter X (row #)",200,0.,200.);
444 meYRing_ = theDMBE->book1D(
"y_" + hid,
"Cluster barycenter Y (column #)",500,0.,500.);
447 meSizeXRing_ = theDMBE->book1D(
"sizeX_" + hid,
"Cluster x-width (rows)",10,0.,10.);
450 meSizeYRing_ = theDMBE->book1D(
"sizeY_" + hid,
"Cluster y-width (columns)",15,0.,15.);
471 int SiPixelClusterModule::fill(
const edmNew::DetSetVector<SiPixelCluster>&
input,
const TrackerGeometry*
tracker,
bool modon,
bool ladon,
bool layon,
bool phion,
bool bladeon,
bool diskon,
bool ringon,
bool twoD,
bool reducedSet,
bool smileyon) {
477 unsigned int numberOfClusters = 0;
478 unsigned int numberOfFpixClusters = 0;
480 if( isearch != input.
end() ) {
486 for(di = isearch->
begin(); di != isearch->
end(); di++) {
488 if(endcap) numberOfFpixClusters++;
489 float charge = 0.001*(di->charge());
493 int sizeX = di->sizeX();
494 int sizeY = di->sizeY();
495 int minPixelRow = di->minPixelRow();
496 int maxPixelRow = di->maxPixelRow();
497 int minPixelCol = di->minPixelCol();
498 int maxPixelCol = di->maxPixelCol();
518 theDMBE->
cd(
"Pixel/Clusters/OffTrack/");
524 me = theDMBE->
get(
"Pixel/Clusters/OffTrack/position_siPixelClusters_Layer_1");
525 if(me) me->
Fill(clustgp.
z(),clustgp.
phi());
528 me = theDMBE->
get(
"Pixel/Clusters/OffTrack/position_siPixelClusters_Layer_2");
529 if(me) me->
Fill(clustgp.
z(),clustgp.
phi());
532 me = theDMBE->
get(
"Pixel/Clusters/OffTrack/position_siPixelClusters_Layer_3");
533 if(me) me->
Fill(clustgp.
z(),clustgp.
phi());
541 me = theDMBE->
get(
"Pixel/Clusters/OffTrack/position_siPixelClusters_pz_Disk_1");
542 if(me) me->
Fill(clustgp.
x(),clustgp.
y());
545 me = theDMBE->
get(
"Pixel/Clusters/OffTrack/position_siPixelClusters_pz_Disk_2");
546 if(me) me->
Fill(clustgp.
x(),clustgp.
y());
552 me = theDMBE->
get(
"Pixel/Clusters/OffTrack/position_siPixelClusters_mz_Disk_1");
553 if(me) me->
Fill(clustgp.
x(),clustgp.
y());
556 me = theDMBE->
get(
"Pixel/Clusters/OffTrack/position_siPixelClusters_mz_Disk_2");
557 if(me) me->
Fill(clustgp.
x(),clustgp.
y());
562 theDMBE->
cd(currDir);
583 if(barrel && smileyon){
647 if(bladeon && endcap){
662 if(diskon && endcap){
678 if(ringon && endcap){
714 return numberOfFpixClusters;
int plaquetteName() const
plaquetteId (in pannel)
MonitorElement * meMinColLay_
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
T getParameter(std::string const &) const
MonitorElement * meMinRowRing_
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
MonitorElement * meMaxColLad_
MonitorElement * meSizePhi_
MonitorElement * mePixClustersLad_px_
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_
void cd(void)
go to top directory (ie. root)
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.
const_iterator find(id_type i, bool update=true) const
data_type const * const_iterator
MonitorElement * meMinRowBlade_
MonitorElement * meNClustersPhi_
MonitorElement * meChargePhi_
MonitorElement * meMinColPhi_
MonitorElement * meNClustersBlade_
MonitorElement * mePixClustersPhi_py_
void book(const edm::ParameterSet &iConfig, int type=0, bool twoD=true, bool reducedSet=false)
Book histograms.
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
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
~SiPixelClusterModule()
Destructor.
MonitorElement * meMaxRowPhi_
MonitorElement * meMinRowPhi_
MonitorElement * meMinColDisk_
MonitorElement * meMinCol_
MonitorElement * mePixClusters_py_
int fill(const edmNew::DetSetVector< SiPixelCluster > &input, const TrackerGeometry *tracker, 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)
Fill histograms.
MonitorElement * mePixClustersLay_px_
MonitorElement * meNClustersDisk_
MonitorElement * meSizeYRing_
MonitorElement * mePixClustersRing_
MonitorElement * meSizeX_
MonitorElement * meSizeY_
MonitorElement * meMaxRowLay_
MonitorElement * meChargeDisk_
MonitorElement * meMaxColBlade_
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
MonitorElement * mePixClustersPhi_
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
virtual const GeomDet * idToDet(DetId) const
MonitorElement * meChargeBlade_
MonitorElement * mePixClustersLay_py_
MonitorElement * meMinColRing_
MonitorElement * meNClustersLay_
MonitorElement * meMaxColLay_
std::string setHistoId(std::string variable, uint32_t &rawId)
Set Histogram Id.
MonitorElement * meMaxRowDisk_
int ladderName() const
ladder id (index in phi)
MonitorElement * meYRing_
MonitorElement * meNClustersRing_
MonitorElement * meSizeYvsEtaBarrel_
MonitorElement * mePixClustersLad_py_
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
int layerName() const
layer id
MonitorElement * meYDisk_
MonitorElement * meSizeRing_
MonitorElement * mePixClusters_px_
MonitorElement * meSizeXPhi_
MonitorElement * meSizeXRing_
MonitorElement * mePixClusters_
const_iterator end(bool update=true) const
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_
const_iterator begin(bool update=true) const
MonitorElement * meSizeYPhi_
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * mePixClustersPhi_px_
MonitorElement * meXBlade_
MonitorElement * meChargeLay_
tuple size
Write out results.
MonitorElement * meSizeLay_
const std::string & pwd(void) const
MonitorElement * meMaxColDisk_