Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "DQMDcsInfo.h"
00012 #include "DataFormats/Scalers/interface/DcsStatus.h"
00013 #include "DataFormats/Common/interface/Handle.h"
00014 #include "DataFormats/L1GlobalTrigger/interface/L1GtFdlWord.h"
00015 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h"
00016
00017
00018
00019 const static int XBINS=2000;
00020
00021 DQMDcsInfo::DQMDcsInfo(const edm::ParameterSet& ps)
00022 {
00023
00024 parameters_ = ps;
00025
00026 dbe_ = edm::Service<DQMStore>().operator->();
00027
00028 subsystemname_ = parameters_.getUntrackedParameter<std::string>("subSystemFolder", "Info") ;
00029 dcsinfofolder_ = parameters_.getUntrackedParameter<std::string>("dcsInfoFolder", "DcsInfo") ;
00030
00031
00032 for (int i=0;i<25;i++) dcs[i]=true;
00033 }
00034
00035 DQMDcsInfo::~DQMDcsInfo(){
00036 }
00037
00038 void
00039 DQMDcsInfo::beginRun(const edm::Run& r, const edm::EventSetup &c ) {
00040
00041 dbe_->cd();
00042 dbe_->setCurrentFolder(subsystemname_ + "/" + dcsinfofolder_);
00043
00044 DCSbyLS_=dbe_->book1D("DCSbyLS","DCS",25,0.,25.);
00045 DCSbyLS_->setLumiFlag();
00046
00047
00048 for (int i=0;i<25;i++) dcs[i]=true;
00049 }
00050
00051 void DQMDcsInfo::analyze(const edm::Event& e, const edm::EventSetup& c){
00052
00053 makeDcsInfo(e);
00054 makeGtInfo(e);
00055
00056 return;
00057 }
00058
00059 void
00060 DQMDcsInfo::endLuminosityBlock(const edm::LuminosityBlock& l, const edm::EventSetup& c)
00061 {
00062
00063
00064
00065
00066
00067 for (int i=0;i<25;i++)
00068 {
00069 if (dcs[i])
00070 DCSbyLS_->setBinContent(i+1,0.);
00071 else
00072 DCSbyLS_->setBinContent(i+1,1.);
00073
00074 dcs[i]=true;
00075 }
00076
00077 return;
00078 }
00079
00080 void
00081 DQMDcsInfo::makeDcsInfo(const edm::Event& e)
00082 {
00083
00084 edm::Handle<DcsStatusCollection> dcsStatus;
00085 if ( ! e.getByLabel("scalersRawToDigi", dcsStatus) )
00086 {
00087 for (int i=0;i<24;i++) dcs[i]=false;
00088 return;
00089 }
00090
00091 if ( ! dcsStatus.isValid() )
00092 {
00093 edm::LogWarning("DQMDcsInfo") << "scalersRawToDigi not found" ;
00094 for (int i=0;i<24;i++) dcs[i]=false;
00095 return;
00096 }
00097
00098 for (DcsStatusCollection::const_iterator dcsStatusItr = dcsStatus->begin();
00099 dcsStatusItr != dcsStatus->end(); ++dcsStatusItr)
00100 {
00101 if (!dcsStatusItr->ready(DcsStatus::CSCp)) dcs[0]=false;
00102 if (!dcsStatusItr->ready(DcsStatus::CSCm)) dcs[1]=false;
00103 if (!dcsStatusItr->ready(DcsStatus::DT0)) dcs[2]=false;
00104 if (!dcsStatusItr->ready(DcsStatus::DTp)) dcs[3]=false;
00105 if (!dcsStatusItr->ready(DcsStatus::DTm)) dcs[4]=false;
00106 if (!dcsStatusItr->ready(DcsStatus::EBp)) dcs[5]=false;
00107 if (!dcsStatusItr->ready(DcsStatus::EBm)) dcs[6]=false;
00108 if (!dcsStatusItr->ready(DcsStatus::EEp)) dcs[7]=false;
00109 if (!dcsStatusItr->ready(DcsStatus::EEm)) dcs[8]=false;
00110 if (!dcsStatusItr->ready(DcsStatus::ESp)) dcs[9]=false;
00111 if (!dcsStatusItr->ready(DcsStatus::ESm)) dcs[10]=false;
00112 if (!dcsStatusItr->ready(DcsStatus::HBHEa)) dcs[11]=false;
00113 if (!dcsStatusItr->ready(DcsStatus::HBHEb)) dcs[12]=false;
00114 if (!dcsStatusItr->ready(DcsStatus::HBHEc)) dcs[13]=false;
00115 if (!dcsStatusItr->ready(DcsStatus::HF)) dcs[14]=false;
00116 if (!dcsStatusItr->ready(DcsStatus::HO)) dcs[15]=false;
00117 if (!dcsStatusItr->ready(DcsStatus::BPIX)) dcs[16]=false;
00118 if (!dcsStatusItr->ready(DcsStatus::FPIX)) dcs[17]=false;
00119 if (!dcsStatusItr->ready(DcsStatus::RPC)) dcs[18]=false;
00120 if (!dcsStatusItr->ready(DcsStatus::TIBTID)) dcs[19]=false;
00121 if (!dcsStatusItr->ready(DcsStatus::TOB)) dcs[20]=false;
00122 if (!dcsStatusItr->ready(DcsStatus::TECp)) dcs[21]=false;
00123 if (!dcsStatusItr->ready(DcsStatus::TECm)) dcs[22]=false;
00124 if (!dcsStatusItr->ready(DcsStatus::CASTOR)) dcs[23]=false;
00125 }
00126
00127 return ;
00128 }
00129
00130 void
00131 DQMDcsInfo::makeGtInfo(const edm::Event& e)
00132 {
00133
00134 edm::Handle<L1GlobalTriggerReadoutRecord> gtrr_handle;
00135 if ( ! e.getByLabel("gtDigis", gtrr_handle) )
00136 {
00137 dcs[24]=false;
00138 return;
00139 }
00140
00141 if ( ! gtrr_handle.isValid() )
00142 {
00143 edm::LogWarning("DQMDcsInfo") << " gtDigis not found" ;
00144 dcs[24]=false;
00145 return;
00146 }
00147
00148 L1GlobalTriggerReadoutRecord const* gtrr = gtrr_handle.product();
00149 L1GtFdlWord fdlWord ;
00150 if (gtrr)
00151 fdlWord = gtrr->gtFdlWord();
00152 else
00153 {
00154 edm::LogWarning ("DQMDcsInfo") << " phys decl. bit not accessible !!!";
00155 dcs[24]=false;
00156 return;
00157 }
00158
00159 if (fdlWord.physicsDeclared() !=1) dcs[24]=false;
00160
00161 return;
00162 }