Histogram definitions such as TH1(), TH2(), TNtuple(), TTree().... 
are supposed to be placed in this function. 
   74   if (gTools->getNumberOfLayers() == 0) {
 
   75     B2FATAL(
"Missing geometry for VXD, check steering file.");
 
   77   if (gTools->getNumberOfPXDLayers() == 0) {
 
   78     B2WARNING(
"Missing geometry for PXD, PXD-DQM is skipped.");
 
   83   TDirectory* oldDir = gDirectory;
 
   90   int nPXDSensors = gTools->getNumberOfPXDSensors();
 
   91   int nPXDChips = gTools->getTotalPXDChips();
 
   94   m_hitMapCounts = 
new TH1D(
"DQM_PXD_PixelHitmapCounts", 
"PXD Integrated number of fired pixels per sensor",
 
   95                             nPXDSensors, 0, nPXDSensors);
 
   99   m_hitMapFilterCounts = 
new TH1D(
"DQM_PXD_PixelHitmapFilterCounts", 
"PXD Integrated number of filtered pixels per sensor",
 
  100                                   nPXDSensors, 0, nPXDSensors);
 
  104   m_hitMapClCounts = 
new TH1D(
"DQM_PXD_ClusterHitmapCounts", 
"PXD Integrated number of clusters per sensor",
 
  105                               nPXDSensors, 0, nPXDSensors);
 
  109   m_hitMapClFilterCounts = 
new TH1D(
"DQM_PXD_ClusterHitmapFilterCounts", 
"PXD Integrated number of filtered clusters per sensor",
 
  110                                     nPXDSensors, 0, nPXDSensors);
 
  115   m_hitMapCountsChip = 
new TH1D(
"DQM_PXD_PixelHitmapCountsChip", 
"PXD Integrated number of fired pixels per chip",
 
  116                                 nPXDChips, 0, nPXDChips);
 
  119   m_hitMapClCountsChip = 
new TH1D(
"DQM_PXD_ClusterHitmapCountsChip", 
"PXD Integrated number of clusters per chip",
 
  120                                   nPXDChips, 0, nPXDChips);
 
  123   for (
int i = 0; i < nPXDChips; i++) {
 
  124     VxdID id = gTools->getChipIDFromPXDIndex(i);
 
  126     int iLadder = 
id.getLadderNumber();
 
  127     int iSensor = 
id.getSensorNumber();
 
  128     int iChip = gTools->getPXDChipNumber(
id);
 
  129     int IsU = gTools->isPXDSideU(
id);
 
  130     TString AxisTicks = Form(
"%i_%i_%i_u%iDCD", iLayer, iLadder, iSensor, iChip);
 
  132       AxisTicks = Form(
"%i_%i_%i_v%iSWB", iLayer, iLadder, iSensor, iChip);
 
  137   for (
int i = 0; i < nPXDSensors; i++) {
 
  138     VxdID id = gTools->getSensorIDFromPXDIndex(i);
 
  140     int iLadder = 
id.getLadderNumber();
 
  141     int iSensor = 
id.getSensorNumber();
 
  142     TString AxisTicks = Form(
"%i_%i_%i", iLayer, iLadder, iSensor);
 
  167   m_seed.resize(nPXDSensors);
 
  168   for (
int i = 0; i < nPXDSensors; i++) {
 
  169     VxdID id = gTools->getSensorIDFromPXDIndex(i);
 
  171     int iLadder = 
id.getLadderNumber();
 
  172     int iSensor = 
id.getSensorNumber();
 
  173     VxdID sensorID(iLayer, iLadder, iSensor);
 
  175     string sensorDescr = str(format(
"%1%_%2%_%3%") % iLayer % iLadder % iSensor);
 
  181     string name = str(format(
"DQM_PXD_%1%_Fired") % sensorDescr);
 
  182     string title = str(format(
"PXD Sensor %1% Fired pixels") % sensorDescr);
 
  183     m_fired[i] = 
new TH1D(name.c_str(), title.c_str(), 50, 0, 50);
 
  184     m_fired[i]->GetXaxis()->SetTitle(
"# of fired pixels");
 
  185     m_fired[i]->GetYaxis()->SetTitle(
"counts");
 
  189     name = str(format(
"DQM_PXD_%1%_GoodFired") % sensorDescr);
 
  190     title = str(format(
"PXD Sensor %1% Good Fired pixels") % sensorDescr);
 
  191     m_goodfired[i] = 
new TH1D(name.c_str(), title.c_str(), 50, 0, 50);
 
  192     m_goodfired[i]->GetXaxis()->SetTitle(
"# of fired pixels");
 
  197     name = str(format(
"DQM_PXD_%1%_Clusters") % sensorDescr);
 
  198     title = str(format(
"PXD Sensor %1% Number of clusters") % sensorDescr);
 
  199     m_clusters[i] = 
new TH1D(name.c_str(), title.c_str(), 20, 0, 20);
 
  200     m_clusters[i]->GetXaxis()->SetTitle(
"# of clusters");
 
  201     m_clusters[i]->GetYaxis()->SetTitle(
"counts");
 
  205     name = str(format(
"DQM_PXD_%1%_GoodClusters") % sensorDescr);
 
  206     title = str(format(
"PXD Sensor %1% Number of good clusters") % sensorDescr);
 
  207     m_goodclusters[i] = 
new TH1D(name.c_str(), title.c_str(), 20, 0, 20);
 
  213     name = str(format(
"DQM_PXD_%1%_StartRow") % sensorDescr);
 
  214     title = str(format(
"PXD Sensor %1% Start row distribution") % sensorDescr);
 
  216     m_startRow[i] = 
new TH1D(name.c_str(), title.c_str(), nVPixels / 4, 0.0, nVPixels);
 
  217     m_startRow[i]->GetXaxis()->SetTitle(
"start row [pitch units]");
 
  222     name = str(format(
"DQM_PXD_%1%_AverageSeedByStartRow") % sensorDescr);
 
  223     title = str(format(
"PXD Sensor %1% Average seed charge by distance from the start row") % sensorDescr);
 
  224     m_chargStartRow[i] = 
new TH1D(name.c_str(), title.c_str(), nVPixels / 4, 0.0, nVPixels);
 
  225     m_chargStartRow[i]->GetXaxis()->SetTitle(
"distance from the start row [pitch units]");
 
  227     name = str(format(
"DQM_PXD_%1%_SeedCountsByStartRow") % sensorDescr);
 
  228     title = str(format(
"PXD Sensor %1% Seed charge count by distance from the start row") % sensorDescr);
 
  229     m_startRowCount[i] = 
new TH1D(name.c_str(), title.c_str(), nVPixels / 4, 0.0, nVPixels);
 
  230     m_startRowCount[i]->GetXaxis()->SetTitle(
"distance from the start row [pitch units]");
 
  235     name = str(format(
"DQM_PXD_%1%_ClusterCharge") % sensorDescr);
 
  236     title = str(format(
"PXD Sensor %1% Cluster Charge") % sensorDescr);
 
  237     m_clusterCharge[i] = 
new TH1D(name.c_str(), title.c_str(), 256, 0, 256);
 
  243     name = str(format(
"DQM_PXD_%1%_ClusterEnergy") % sensorDescr);
 
  244     title = str(format(
"PXD Sensor %1% Cluster Energy") % sensorDescr);
 
  245     m_clusterEnergy[i] = 
new TH1D(name.c_str(), title.c_str(), 100, 0, 50);
 
  251     name = str(format(
"DQM_PXD_%1%_PixelSignal") % sensorDescr);
 
  252     title = str(format(
"PXD Sensor %1% Pixel Signal") % sensorDescr);
 
  253     m_pixelSignal[i] = 
new TH1D(name.c_str(), title.c_str(), 256, 0, 256);
 
  254     m_pixelSignal[i]->GetXaxis()->SetTitle(
"signal of pixels [ADU]");
 
  259     name = str(format(
"DQM_PXD_%1%_ClusterSizeU") % sensorDescr);
 
  260     title = str(format(
"PXD Sensor %1% Cluster Size U") % sensorDescr);
 
  261     m_clusterSizeU[i] = 
new TH1D(name.c_str(), title.c_str(), 10, 0, 10);
 
  267     name = str(format(
"DQM_PXD_%1%_ClusterSizeV") % sensorDescr);
 
  268     title = str(format(
"PXD Sensor %1% Cluster Size V") % sensorDescr);
 
  269     m_clusterSizeV[i] = 
new TH1D(name.c_str(), title.c_str(), 10, 0, 10);
 
  275     name = str(format(
"DQM_PXD_%1%_ClusterSizeUV") % sensorDescr);
 
  276     title = str(format(
"PXD Sensor %1% Cluster Size U+V") % sensorDescr);
 
  285     name = str(format(
"PXD_%1%_PixelHitmapU") % sensorDescr);
 
  286     title = str(format(
"PXD Sensor %1% Pixel Hitmap in U") % sensorDescr);
 
  287     m_hitMapU[i] = 
new TH1D(name.c_str(), title.c_str(), nUPixels, 0, nUPixels);
 
  288     m_hitMapU[i]->GetXaxis()->SetTitle(
"u position [pitch units]");
 
  289     m_hitMapU[i]->GetYaxis()->SetTitle(
"hits");
 
  291     name = str(format(
"PXD_%1%_PixelHitmapV") % sensorDescr);
 
  292     title = str(format(
"PXD Sensor %1% Pixel Hitmap in V") % sensorDescr);
 
  293     m_hitMapV[i] = 
new TH1D(name.c_str(), title.c_str(), nVPixels, 0, nVPixels);
 
  294     m_hitMapV[i]->GetXaxis()->SetTitle(
"v position [pitch units]");
 
  295     m_hitMapV[i]->GetYaxis()->SetTitle(
"hits");
 
  297     name = str(format(
"PXD_%1%_PixelHitmap") % sensorDescr);
 
  298     title = str(format(
"PXD Sensor %1% Pixel Hitmap") % sensorDescr);
 
  299     m_hitMap[i] = 
new TH2D(name.c_str(), title.c_str(), nUPixels, 0, nUPixels, nVPixels, 0, nVPixels);
 
  300     m_hitMap[i]->GetXaxis()->SetTitle(
"u position [pitch units]");
 
  301     m_hitMap[i]->GetYaxis()->SetTitle(
"v position [pitch units]");
 
  302     m_hitMap[i]->GetZaxis()->SetTitle(
"hits");
 
  308     name = str(format(
"PXD_%1%_HitmapClstU") % sensorDescr);
 
  309     title = str(format(
"PXD Sensor %1% Hitmap Clusters in U") % sensorDescr);
 
  310     m_hitMapUCl[i] = 
new TH1D(name.c_str(), title.c_str(), nUPixels, 0, nUPixels);
 
  311     m_hitMapUCl[i]->GetXaxis()->SetTitle(
"u position [pitch units]");
 
  314     name = str(format(
"PXD_%1%_HitmapClstV") % sensorDescr);
 
  315     title = str(format(
"PXD Sensor %1% Hitmap Clusters in V") % sensorDescr);
 
  316     m_hitMapVCl[i] = 
new TH1D(name.c_str(), title.c_str(), nVPixels, 0, nVPixels);
 
  317     m_hitMapVCl[i]->GetXaxis()->SetTitle(
"v position [pitch units]");
 
  320     name = str(format(
"PXD_%1%_HitmapClst") % sensorDescr);
 
  321     title = str(format(
"PXD Sensor %1% Hitmap Clusters") % sensorDescr);
 
  322     m_hitMapCl[i] = 
new TH2D(name.c_str(), title.c_str(), nUPixels, 0, nUPixels, nVPixels, 0, nVPixels);
 
  323     m_hitMapCl[i]->GetXaxis()->SetTitle(
"u position [pitch units]");
 
  324     m_hitMapCl[i]->GetYaxis()->SetTitle(
"v position [pitch units]");
 
  330     name = str(format(
"PXD_%1%_Seed") % sensorDescr);
 
  331     title = str(format(
"PXD Sensor %1% Seed charge") % sensorDescr);
 
  332     m_seed[i] = 
new TH1D(name.c_str(), title.c_str(), 256, 0, 256);
 
  333     m_seed[i]->GetXaxis()->SetTitle(
"seed charge of clusters [ADU]");
 
  334     m_seed[i]->GetYaxis()->SetTitle(
"count");
 
std::vector< TH1D * > m_goodfired
Filtered fired pixels per event.
TH1D * m_hitMapClFilterCounts
Hitmaps of filtered Clusters.
std::vector< TH1D * > m_hitMapUCl
Hitmaps clusters for u.
std::vector< TH2D * > m_hitMapCl
Hitmaps clusters.
std::vector< TH1D * > m_fired
Fired pixels per event.
std::vector< TH1D * > m_clusterSizeUV
Cluster size.
std::vector< TH2D * > m_hitMap
Hitmaps pixels.
std::vector< TH1D * > m_clusterEnergy
Deposited energy of clusters.
std::vector< TH1D * > m_hitMapVCl
Hitmaps clusters for v.
std::vector< TH1D * > m_chargStartRow
Cluster seed charge by distance from the start row.
std::vector< TH1D * > m_startRow
Start row distribution.
TH1D * m_hitMapFilterCounts
Hitmaps of filtered Digits.
std::vector< TH1D * > m_hitMapU
Hitmaps pixels for u.
std::vector< TH1D * > m_pixelSignal
Charge of pixels.
std::vector< TH1D * > m_clusterSizeV
v cluster size
TH1D * m_hitMapCounts
Hitmaps of Digits.
TH1D * m_hitMapCountsChip
Hitmaps of digits on chips.
TH1D * m_hitMapClCounts
Hitmaps of Clusters.
std::string m_histogramDirectoryName
Name of the histogram directory in ROOT file.
std::vector< TH1D * > m_startRowCount
counter for Cluster seed charge by distance from the start row
std::vector< TH1D * > m_hitMapV
Hitmaps pixels for v.
std::vector< TH1D * > m_goodclusters
filtered Clusters per event
std::vector< TH1D * > m_clusterSizeU
u cluster size
std::vector< TH1D * > m_clusters
Clusters per event.
std::vector< TH1D * > m_seed
Seed.
TH1D * m_hitMapClCountsChip
Hitmaps of clusters on chips.
std::vector< TH1D * > m_clusterCharge
Charge of clusters.
Specific implementation of SensorInfo for PXD Sensors which provides additional pixel specific inform...
static GeoCache & getInstance()
Return a reference to the singleton instance.
const GeoTools * getGeoTools()
Return a raw pointer to a GeoTools object.
static const SensorInfoBase & get(Belle2::VxdID id)
Return a reference to the SensorInfo of a given SensorID.
int getVCells() const
Return number of pixel/strips in v direction.
int getUCells() const
Return number of pixel/strips in u direction.
Class to uniquely identify a any structure of the PXD and SVD.
baseType getLayerNumber() const
Get the layer id.