38 edm::LogInfo(
"SiStripDaqInfo") <<
"SiStripDaqInfo::Deleting SiStripDaqInfo ";
46 edm::LogInfo(
"SiStripDaqInfo") <<
"SiStripDaqInfo::Deleting SiStripDaqInfo ";
74 std::vector<std::string> det_type;
75 det_type.push_back(
"TIB");
76 det_type.push_back(
"TOB");
77 det_type.push_back(
"TIDF");
78 det_type.push_back(
"TIDB");
79 det_type.push_back(
"TECF");
80 det_type.push_back(
"TECB");
82 for ( std::vector<std::string>::iterator it = det_type.begin(); it != det_type.end(); it++) {
87 me_name =
"SiStrip_" + det;
103 it->second.DaqFractionME->Reset();
104 it->second.DaqFractionME->Fill(-1.0);
114 edm::LogInfo (
"SiStripDaqInfo") <<
"SiStripDaqInfo:: Begining of Run";
128 edm::LogInfo (
"SiStripDaqInfo") <<
" SiStripDaqInfo::No FEDs Connected!!!";
132 float nFEDConnected = 0.0;
139 runInfoRec->get(sumFED);
142 std::vector<int> FedsInIds= sumFED->
m_fed_in;
143 for(
unsigned int it = 0; it < FedsInIds.size(); ++it) {
144 int fedID = FedsInIds[it];
146 if(fedID>=siStripFedIdMin && fedID<=siStripFedIdMax) ++nFEDConnected;
149 <<
" Connected FEDs " << nFEDConnected;
150 if (nFEDConnected > 0) {
168 edm::LogInfo(
"SiStripDaqInfo") <<
"SiStripDaqInfo::endLuminosityBlock";
174 edm::LogInfo (
"SiStripDaqInfo") <<
"SiStripDaqInfo::EndRun";
189 for(std::vector<unsigned short>::const_iterator ifed = feds.begin(); ifed != feds.end(); ifed++){
191 for (
auto iconn = fedChannels.begin(); iconn < fedChannels.end(); iconn++){
192 if (!iconn->isConnected())
continue;
193 uint32_t detId = iconn->detId();
194 if (detId == 0 || detId == 0xFFFFFFFF)
continue;
219 std::map<std::string, SubDetMEs>::iterator iPos =
SubDetMEsMap.find(name);
221 iPos->second.ConnectedFeds = 0;
229 std::vector<unsigned short> subdetIds = it->second;
230 std::map<std::string, SubDetMEs>::iterator iPos =
SubDetMEsMap.find(name);
232 iPos->second.ConnectedFeds = 0;
233 for (std::vector<unsigned short>::iterator iv = subdetIds.begin();
234 iv != subdetIds.end(); iv++) {
235 bool fedid_found =
false;
236 for(
unsigned int it = 0; it < fed_ids.size(); ++it) {
237 unsigned short fedID = fed_ids[it];
238 if(fedID < siStripFedIdMin || fedID > siStripFedIdMax)
continue;
239 if ((*iv) == fedID) {
241 iPos->second.ConnectedFeds++;
247 int nFedsConnected = iPos->second.ConnectedFeds;
248 int nFedSubDet = subdetIds.size();
249 if (nFedSubDet > 0) {
250 iPos->second.DaqFractionME->Reset();
251 iPos->second.DaqFractionME->Fill(nFedsConnected*1.0/nFedSubDet);
269 for (std::vector<FedChannelConnection>::const_iterator iconn = fedChannels.begin();
270 iconn < fedChannels.end(); iconn++){
271 if (!iconn->isConnected())
continue;
272 uint32_t detId = iconn->detId();
273 if (detId == 0 || detId == 0xFFFFFFFF)
continue;
281 subdet_folder = mechanical_dir + subdet_folder.substr(subdet_folder.find(mdir)+mdir.size());
283 bad_module_folder = subdet_folder +
"/" +
"BadModuleList";
286 std::ostringstream detid_str;
288 std::string full_path = bad_module_folder +
"/" + detid_str.str();
static void setBadModuleFlag(std::string &hname, uint16_t &flg)
std::optional< T > tryToGet() const
int64_t getIntValue() const
void getSubDetFolder(const uint32_t &detid, const TrackerTopology *tTopo, std::string &folder_name)
void readFedIds(const edm::ESHandle< SiStripFedCabling > &fedcabling, edm::EventSetup const &iSetup)
void beginRun(edm::Run const &run, edm::EventSetup const &eSetup) override
Begin Run.
#define DEFINE_FWK_MODULE(type)
MonitorElement * bookInt(char_string const &name)
Book int.
void findExcludedModule(unsigned short fed_id, const TrackerTopology *tTopo)
MonitorElement * bookFloat(char_string const &name)
Book float.
void endLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &iSetup) override
End Of Luminosity.
edm::ESHandle< SiStripFedCabling > fedCabling_
void beginJob() override
BeginJob.
bool dirExists(std::string const &path) const
true if directory exists
std::vector< int > m_fed_in
FedsConstIterRange fedIds() const
MonitorElement * get(std::string const &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
const std::string subdet_tag("SubDet")
void analyze(edm::Event const &, edm::EventSetup const &) override
Analyze.
SiStripDaqInfo(const edm::ParameterSet &ps)
Constructor.
void endRun(edm::Run const &run, edm::EventSetup const &eSetup) override
EndRun.
void Reset()
reset ME (ie. contents, errors, etc)
std::map< std::string, SubDetMEs > SubDetMEsMap
std::string const & pwd() const
~SiStripDaqInfo() override
Destructor.
std::map< std::string, std::vector< unsigned short > > subDetFedMap
void setCurrentFolder(std::string const &fullpath)
void cd()
go to top directory (ie. root)
MonitorElement * DaqFractionME
void readSubdetFedFractions(std::vector< int > &fed_ids, edm::EventSetup const &iSetup)
ConnsConstIterRange fedConnections(uint16_t fed_id) const
static void getSubDetectorTag(uint32_t det_id, std::string &subdet_tag, const TrackerTopology *tTopo)
MonitorElement * DaqFraction_
unsigned long long m_cacheID_
static bool goToDir(DQMStore *dqm_store, std::string name)
T const * product() const
static void getTopFolderPath(DQMStore *dqm_store, std::string top_dir, std::string &path)