Go to the documentation of this file.00001 #ifndef RPCMonitorDigi_h
00002 #define RPCMonitorDigi_h
00003
00004 #include "FWCore/Framework/interface/Frameworkfwd.h"
00005 #include "FWCore/Framework/interface/EDAnalyzer.h"
00006 #include "FWCore/Framework/interface/ESHandle.h"
00007 #include "FWCore/Framework/interface/Event.h"
00008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00009 #include "FWCore/ServiceRegistry/interface/Service.h"
00010
00011 #include "DQMServices/Core/interface/DQMStore.h"
00012 #include "DQMServices/Core/interface/MonitorElement.h"
00013
00014 #include "DataFormats/Common/interface/Handle.h"
00015
00016 #include "Geometry/RPCGeometry/interface/RPCGeometry.h"
00017
00018 #include<string>
00019 #include<map>
00020
00021 class RPCDetId;
00022
00023 class RPCMonitorDigi : public edm::EDAnalyzer {
00024 public:
00025 explicit RPCMonitorDigi( const edm::ParameterSet&);
00026 ~RPCMonitorDigi();
00027
00028 virtual void analyze( const edm::Event&, const edm::EventSetup& );
00029
00030 virtual void beginJob();
00031 virtual void endJob(void);
00032 void beginRun(const edm::Run& r, const edm::EventSetup& c);
00033
00035 std::map<std::string, MonitorElement*> bookDetUnitME(RPCDetId& , const edm::EventSetup&);
00036
00038 std::map<std::string, MonitorElement*> bookRegionRing(int region, int ring);
00039
00040
00041 private:
00042 void makeDcsInfo(const edm::Event& ) ;
00043 int stripsInRoll(RPCDetId & ,const edm::EventSetup& );
00044 int counter;
00046 DQMStore * dbe;
00047 bool dcs_;
00048
00049 MonitorElement * NumberOfDigis_for_Barrel;
00050 MonitorElement * NumberOfDigis_for_EndcapPositive;
00051 MonitorElement * NumberOfDigis_for_EndcapNegative;
00052
00053 MonitorElement * NumberOfClusters_for_Barrel;
00054 MonitorElement * NumberOfClusters_for_EndcapPositive;
00055 MonitorElement * NumberOfClusters_for_EndcapNegative;
00056
00057 MonitorElement * ClusterSize_for_Barrel;
00058 MonitorElement * ClusterSize_for_EndcapPositive;
00059 MonitorElement * ClusterSize_for_EndcapNegative;
00060
00061 MonitorElement * ClusterSize_for_BarrelandEndcaps;
00062 MonitorElement * BarrelNumberOfDigis;
00063 MonitorElement * BarrelOccupancy;
00064 MonitorElement * EndcapPositiveOccupancy;
00065 MonitorElement * EndcapNegativeOccupancy;
00066 MonitorElement * RPCEvents;
00067
00068 MonitorElement * SameBxDigisMeBarrel_;
00069 MonitorElement * SameBxDigisMeEndcapPositive_;
00070 MonitorElement * SameBxDigisMeEndcapNegative_ ;
00071
00072 std::map<uint32_t, std::map<std::string, MonitorElement*> > meCollection;
00073 std::map<std::pair<int,int>, std::map<std::string, MonitorElement*> > meWheelDisk;
00074
00075 std::string RPCDataLabel;
00076 std::string digiLabel;
00077
00078 bool mergeRuns_;
00079 std::string muonNoise_;
00080 std::string globalFolder_;
00081
00082 std::string nameInLog;
00083 bool saveRootFile;
00084
00085 std::string RootFileName;
00086 bool dqmshifter;
00087 bool dqmexpert;
00088 bool dqmsuperexpert;
00089 std::string GlobalHistogramsFolder;
00090
00091 edm::ESHandle<RPCGeometry> rpcGeo;
00092
00093
00094 edm::InputTag RPCRecHitLabel_;
00095 edm::InputTag RPCDigiLabel_;
00096
00097 };
00098
00099 #endif