CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/DQM/SiPixelMonitorCluster/interface/SiPixelClusterModule.h

Go to the documentation of this file.
00001 #ifndef SiPixelMonitorCluster_SiPixelClusterModule_h
00002 #define SiPixelMonitorCluster_SiPixelClusterModule_h
00003 // -*- C++ -*-
00004 //
00005 // Package:    SiPixelMonitorDigi
00006 // Class:      SiPixelClusterModule
00007 // 
00008 /*
00009 
00010  Description: Cluster monitoring elements for a Pixel sensor
00011 
00012  Implementation:
00013      <Notes on implementation>
00014 */
00015 //
00016 // Original Author:  Vincenzo Chiochia & Andrew York
00017 //         Created:  
00018 // $Id: SiPixelClusterModule.h,v 1.16 2010/12/13 14:18:23 merkelp Exp $
00019 //
00020 //
00021 //  Updated by: Lukas Wehrli
00022 //  for pixel offline DQM 
00023 #include "DQMServices/Core/interface/MonitorElement.h"
00024 #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h"
00025 #include "DataFormats/Common/interface/DetSetVectorNew.h"
00026 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00027 #include <boost/cstdint.hpp>
00028 
00029 #include "FWCore/Framework/interface/ESHandle.h"
00030 #include "Geometry/CommonTopologies/interface/PixelTopology.h"
00031 #include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h"
00032 #include "Geometry/CommonDetUnit/interface/GeomDetType.h" 
00033 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h" 
00034 #include "Geometry/TrackerGeometryBuilder/interface/GluedGeomDet.h"
00035 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
00036 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
00037 #include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h"
00038 #include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetType.h"
00039 class SiPixelClusterModule {        
00040 
00041  public:
00042 
00044   SiPixelClusterModule();
00046   SiPixelClusterModule(const uint32_t& id);
00048   SiPixelClusterModule(const uint32_t& id, const int& ncols, const int& nrows);
00050   ~SiPixelClusterModule();
00051 
00052   typedef edmNew::DetSet<SiPixelCluster>::const_iterator    ClusterIterator;
00053 
00055   void book(const edm::ParameterSet& iConfig, int type=0, bool twoD=true, bool reducedSet=false);
00057   int fill(const edmNew::DetSetVector<SiPixelCluster> & input, 
00058             const TrackerGeometry* tracker,
00059             bool modon=true, 
00060             bool ladon=false, 
00061             bool layon=false, 
00062             bool phion=false, 
00063             bool bladeon=false, 
00064             bool diskon=false, 
00065             bool ringon=false, 
00066             bool twoD=true,
00067             bool reducedSet=false,
00068             bool smileyon=false);
00069   
00070  private:
00071 
00072   uint32_t id_;
00073   int ncols_;
00074   int nrows_;
00075   MonitorElement* meNClusters_;
00076   MonitorElement* meY_;
00077   MonitorElement* meX_;
00078   MonitorElement* meCharge_;
00079   MonitorElement* meSize_;
00080   MonitorElement* meSizeX_;
00081   MonitorElement* meSizeY_;
00082   MonitorElement* meMinRow_;
00083   MonitorElement* meMaxRow_;
00084   MonitorElement* meMinCol_;
00085   MonitorElement* meMaxCol_;
00086   MonitorElement* mePixClusters_;
00087   MonitorElement* mePixClusters_px_;
00088   MonitorElement* mePixClusters_py_;
00089   //  MonitorElement* meEdgeHitX_;
00090   //  MonitorElement* meEdgeHitY_;
00091   MonitorElement* meClPosLayer1;
00092   MonitorElement* meClPosLayer2;
00093   MonitorElement* meClPosLayer3;
00094   MonitorElement* meClPosDisk1pz;
00095   MonitorElement* meClPosDisk2pz;
00096   MonitorElement* meClPosDisk1mz;
00097   MonitorElement* meClPosDisk2mz;
00098   
00099   //barrel
00100   MonitorElement* meNClustersLad_;
00101   MonitorElement* meYLad_;
00102   MonitorElement* meXLad_;
00103   MonitorElement* meChargeLad_;
00104   MonitorElement* meSizeLad_;
00105   MonitorElement* meSizeXLad_;
00106   MonitorElement* meSizeYLad_;
00107   MonitorElement* meMinRowLad_;
00108   MonitorElement* meMaxRowLad_;
00109   MonitorElement* meMinColLad_;
00110   MonitorElement* meMaxColLad_;
00111   MonitorElement* mePixClustersLad_;
00112   MonitorElement* mePixClustersLad_px_;
00113   MonitorElement* mePixClustersLad_py_;
00114 
00115   MonitorElement* meSizeYvsEtaBarrel_; 
00116 
00117   MonitorElement* meNClustersLay_;
00118   MonitorElement* meYLay_;
00119   MonitorElement* meXLay_;
00120   MonitorElement* meChargeLay_;
00121   MonitorElement* meSizeLay_;
00122   MonitorElement* meSizeXLay_;
00123   MonitorElement* meSizeYLay_;
00124   MonitorElement* meMinRowLay_;
00125   MonitorElement* meMaxRowLay_;
00126   MonitorElement* meMinColLay_;
00127   MonitorElement* meMaxColLay_;
00128   MonitorElement* mePixClustersLay_;
00129   MonitorElement* mePixClustersLay_px_;
00130   MonitorElement* mePixClustersLay_py_;
00131 
00132   MonitorElement* meNClustersPhi_;
00133   MonitorElement* meYPhi_;
00134   MonitorElement* meXPhi_;
00135   MonitorElement* meChargePhi_;
00136   MonitorElement* meSizePhi_;
00137   MonitorElement* meSizeXPhi_;
00138   MonitorElement* meSizeYPhi_;
00139   MonitorElement* meMinRowPhi_;
00140   MonitorElement* meMaxRowPhi_;
00141   MonitorElement* meMinColPhi_;
00142   MonitorElement* meMaxColPhi_;
00143   MonitorElement* mePixClustersPhi_;
00144   MonitorElement* mePixClustersPhi_px_;
00145   MonitorElement* mePixClustersPhi_py_;
00146 
00147   //forward
00148   MonitorElement* meNClustersBlade_;
00149   MonitorElement* meYBlade_;
00150   MonitorElement* meXBlade_;
00151   MonitorElement* meChargeBlade_;
00152   MonitorElement* meSizeBlade_;
00153   MonitorElement* meSizeXBlade_;
00154   MonitorElement* meSizeYBlade_;
00155   MonitorElement* meMinRowBlade_;
00156   MonitorElement* meMaxRowBlade_;
00157   MonitorElement* meMinColBlade_;
00158   MonitorElement* meMaxColBlade_;
00159 
00160 
00161   MonitorElement* meNClustersDisk_;
00162   MonitorElement* meYDisk_;
00163   MonitorElement* meXDisk_;
00164   MonitorElement* meChargeDisk_;
00165   MonitorElement* meSizeDisk_;
00166   MonitorElement* meSizeXDisk_;
00167   MonitorElement* meSizeYDisk_;
00168   MonitorElement* meMinRowDisk_;
00169   MonitorElement* meMaxRowDisk_;
00170   MonitorElement* meMinColDisk_;
00171   MonitorElement* meMaxColDisk_;
00172 
00173 
00174   MonitorElement* meNClustersRing_;
00175   MonitorElement* meYRing_;
00176   MonitorElement* meXRing_;
00177   MonitorElement* meChargeRing_;
00178   MonitorElement* meSizeRing_;
00179   MonitorElement* meSizeXRing_;
00180   MonitorElement* meSizeYRing_;
00181   MonitorElement* meMinRowRing_;
00182   MonitorElement* meMaxRowRing_;
00183   MonitorElement* meMinColRing_;
00184   MonitorElement* meMaxColRing_;
00185   MonitorElement* mePixClustersRing_;
00186   MonitorElement* mePixClustersRing_px_;
00187   MonitorElement* mePixClustersRing_py_;
00188 
00189 };
00190 #endif