00001 #ifndef BxTiming_H
00002 #define BxTiming_H
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include <memory>
00012 #include <string>
00013 #include "FWCore/ServiceRegistry/interface/Service.h"
00014 #include "FWCore/Framework/interface/Frameworkfwd.h"
00015 #include "FWCore/Framework/interface/EDAnalyzer.h"
00016 #include "FWCore/Framework/interface/Event.h"
00017 #include "FWCore/Framework/interface/MakerMacros.h"
00018 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00019 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00020
00021 #include "DQMServices/Core/interface/DQMStore.h"
00022 #include "DQMServices/Core/interface/MonitorElement.h"
00023
00024
00025 class BxTiming : public edm::EDAnalyzer {
00026
00027 public:
00028
00029 explicit BxTiming(const edm::ParameterSet&);
00030 ~BxTiming();
00031
00032 protected:
00033
00034 virtual void beginJob(const edm::EventSetup&) ;
00035 virtual void analyze(const edm::Event&, const edm::EventSetup&);
00036 virtual void endJob() ;
00037
00038 private:
00039
00040
00041 edm::InputTag fedSource_;
00042 edm::InputTag gtSource_;
00043
00044
00045 int verbose_;
00046 int verbose() {return verbose_;}
00047
00054 int calcBxDiff(int bx1, int bx2);
00055
00056
00057 int nEvt_;
00058
00059
00060 std::string histFile_;
00061
00062
00063 std::string histFolder_;
00064
00065
00066 DQMStore* dbe;
00067
00068
00069 bool runInFF_;
00070
00071
00072 static const int norb_ = 3564;
00073 static const int half_norb_ = norb_ / 2;
00074
00075 static const int nbig_ = 10000;
00076 static const int nttype_ = 6;
00077
00078 std::vector<int> listGtBits_;
00079
00080 enum nsys {NSYS=9};
00081 enum syslist {ETP=0, HTP, GCT, CTP, CTF, DTP, DTF, RPC, GLT};
00082 std::pair<int,int> fedRange_[NSYS];
00083 int nfed_;
00084 int fedRef_;
00085
00086
00087 static const int nspr_=3;
00088 int nBxDiff[1500][nspr_];
00089 int nBxOccy[1500][nspr_];
00090
00092 MonitorElement* hBxDiffAllFed;
00093 MonitorElement* hBxDiffSysFed[NSYS];
00094 MonitorElement* hBxOccyAllFed;
00095 MonitorElement**hBxOccyOneFed;
00096
00097 MonitorElement* hBxDiffAllFedSpread[nspr_];
00098 MonitorElement* hBxOccyAllFedSpread[nspr_];
00099
00100 MonitorElement* hBxOccyGtTrigType[nttype_];
00101 MonitorElement**hBxOccyTrigBit[NSYS];
00102
00103 };
00104
00105 #endif