26 " Creating SiStripActionExecutor " <<
"\n" ;
37 " Deleting SiStripActionExecutor " <<
"\n" ;
145 std::ofstream report_file;
147 report_file <<
" Nothing to report!!" << std::endl;
160 std::map<std::string, std::vector<std::string> > layout_map;
164 std::ostringstream shift_summary;
171 shift_summary <<
" Report Summary Content :" << std::endl;
172 shift_summary <<
" =========================" << std::endl;
177 report_path =
"SiStrip/EventInfo/reportSummaryContents/SiStrip_DetFraction_TECB";
178 me = dqm_store->
get(report_path);
181 report_path =
"SiStrip/EventInfo/reportSummaryContents/SiStrip_DetFraction_TECF";
182 me = dqm_store->
get(report_path);
185 report_path =
"SiStrip/EventInfo/reportSummaryContents/SiStrip_DetFraction_TIB";
186 me = dqm_store->
get(report_path);
189 report_path =
"SiStrip/EventInfo/reportSummaryContents/SiStrip_DetFraction_TIDB";
190 me = dqm_store->
get(report_path);
193 report_path =
"SiStrip/EventInfo/reportSummaryContents/SiStrip_DetFraction_TIDF";
194 me = dqm_store->
get(report_path);
197 report_path =
"SiStrip/EventInfo/reportSummaryContents/SiStrip_DetFraction_TOB";
198 me = dqm_store->
get(report_path);
201 shift_summary << std::endl;
204 std::ofstream report_file;
206 report_file << shift_summary.str() << std::endl;
217 str_val <<
" " << name <<
" : ";
221 float fvalue = atof(value.c_str());
222 if (fvalue == -1.0) str_val <<
" Dummy Value "<<std::endl;
223 else str_val << fvalue << std::endl;
230 str_val << std::endl;
231 for (std::map<
std::string, std::vector< std::string > >::iterator it = layout_map.begin() ; it != layout_map.end(); it++) {
233 if (set_name.find(
"Summary") != std::string::npos)
continue;
236 str_val <<
" " << set_name <<
" : " << std::endl;
237 str_val <<
" ===================================="<< std::endl;
239 str_val << std::setprecision(2);
240 str_val << setiosflags(std::ios::fixed);
241 for (std::vector<std::string>::iterator im = it->second.begin();
242 im != it->second.end(); im++) {
244 if (path_name.size() == 0)
continue;
246 std::ostringstream entry_str, mean_str, rms_str;
247 entry_str << std::setprecision(2);
248 entry_str << setiosflags(std::ios::fixed);
249 mean_str << std::setprecision(2);
250 mean_str << setiosflags(std::ios::fixed);
251 rms_str << std::setprecision(2);
252 rms_str << setiosflags(std::ios::fixed);
253 entry_str << std::setw(7) << me->
getEntries();
254 mean_str << std::setw(7) << me->
getMean();
255 rms_str << std::setw(7) << me->
getRMS();
257 "entries",entry_str.str(),
"mean",mean_str.str(),
"rms",rms_str.str());
259 if (me) str_val <<
" "<< me->
getName() <<
" : entries = "<< std::setw(7)
261 <<
" : rms = "<< me->
getRMS()<< std::endl;
263 str_val << std::endl;
276 std::vector<std::string> subdet_folder;
277 subdet_folder.push_back(
"TIB");
278 subdet_folder.push_back(
"TOB");
279 subdet_folder.push_back(
"TEC/MINUS");
280 subdet_folder.push_back(
"TEC/PLUS");
281 subdet_folder.push_back(
"TID/MINUS");
282 subdet_folder.push_back(
"TID/PLUS");
285 int nDetsWithErrorTotal = 0;
286 for (std::vector<std::string>::const_iterator im = subdet_folder.begin(); im != subdet_folder.end(); im++) {
288 if (!dqm_store->
dirExists(dname))
continue;
289 str_val <<
"============"<< std::endl;
290 str_val << (*im) << std::endl;
291 str_val <<
"============"<< std::endl;
292 str_val << std::endl;
294 dqm_store->
cd(dname);
295 std::vector<std::string> module_folders;
297 int nDets = module_folders.size();
300 int nDetsWithError = 0;
301 std::string bad_module_folder = dname +
"/" +
"BadModuleList";
302 if (dqm_store->
dirExists(bad_module_folder)) {
303 std::vector<MonitorElement *> meVec = dqm_store->
getContents(bad_module_folder);
304 for (std::vector<MonitorElement *>::const_iterator it = meVec.begin();
305 it != meVec.end(); it++) {
307 uint16_t flag = (*it)->getIntValue();
310 str_val << (*it)->getName() <<
" flag : " << (*it)->getIntValue() <<
" " << message << std::endl;
313 str_val <<
"--------------------------------------------------------------------"<< std::endl;
314 str_val <<
" Detectors : Total "<< nDets
315 <<
" with Error " << nDetsWithError<< std::endl;
316 str_val <<
"--------------------------------------------------------------------"<< std::endl;
318 nDetsWithErrorTotal += nDetsWithError;
321 str_val <<
"--------------------------------------------------------------------"<< std::endl;
322 str_val <<
" Total Number of Connected Detectors : " << nDetsTotal << std::endl;
323 str_val <<
" Total Number of Detectors with Error : " << nDetsWithErrorTotal << std::endl;
324 str_val <<
"--------------------------------------------------------------------"<< std::endl;
void fillStatus(DQMStore *dqm_store, const edm::ESHandle< SiStripDetCabling > &cabling, const edm::EventSetup &eSetup)
T getUntrackedParameter(std::string const &, T const &) const
const std::string & getName(void) const
get name of ME
void createChildElement(std::string tag, std::string name)
void createOfflineTkMap(const edm::ParameterSet &tkmapPset, DQMStore *dqm_store, std::string &map_type, const edm::EventSetup &eSetup)
void createTkMap(const edm::ParameterSet &tkmapPset, DQMStore *dqm_store, std::string &map_type, const edm::EventSetup &eSetup)
void bookStatus(DQMStore *dqm_store)
static void getMEValue(MonitorElement *me, std::string &val)
void getDocument(std::string configFile, bool UseDB=false)
Methor that parses the xml file configFile.
void cd(void)
go to top directory (ie. root)
void createSummary(DQMStore *dqm_store)
SiStripActionExecutor(edm::ParameterSet const &ps)
void fillStatus(DQMStore *dqm_store, const edm::ESHandle< SiStripDetCabling > &fedcabling, const edm::EventSetup &eSetup)
bool readTkMapConfiguration(const edm::EventSetup &eSetup)
void createStatus(DQMStore *dqm_store)
double getEntries(void) const
get # of entries
double getMean(int axis=1) const
get mean value of histogram along x, y or z axis (axis=1, 2, 3 respectively)
static void getBadModuleStatus(uint16_t flag, std::string &message)
void createDummyShiftReport()
SiStripSummaryCreator * summaryCreator_
void createElement(std::string tag)
bool readConfiguration(std::string &file_path)
bool init(std::string main)
Write XML file.
void createSummary(DQMStore *dqm_store)
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
std::vector< MonitorElement * > getContents(const std::string &path) const
void createShiftReport(DQMStore *dqm_store)
SiStripConfigWriter * configWriter_
bool dirExists(const std::string &path) const
true if directory exists
SiStripTrackerMapCreator * tkMapCreator_
void fillStatusAtLumi(DQMStore *dqm_store)
void fillStatusAtLumi(DQMStore *dqm_store)
void printShiftHistoParameters(DQMStore *dqm_store, std::map< std::string, std::vector< std::string > > &layout_map, std::ostringstream &str_val)
virtual ~SiStripActionExecutor()
double getRMS(int axis=1) const
get RMS of histogram along x, y or z axis (axis=1, 2, 3 respectively)
void createForOffline(const edm::ParameterSet &tkmapPset, DQMStore *dqm_store, std::string &htype, const edm::EventSetup &eSetup)
void write(std::string fname)
void createSummaryOffline(DQMStore *dqm_store)
bool getAllLayouts(std::map< std::string, std::vector< std::string > > &me_names)
void printReportSummary(MonitorElement *me, std::ostringstream &str_val, std::string name)
SiStripQualityChecker * qualityChecker_
static void getModuleFolderList(DQMStore *dqm_store, std::vector< std::string > &m_ids)
void printFaultyModuleList(DQMStore *dqm_store, std::ostringstream &str_val)
static bool goToDir(DQMStore *dqm_store, std::string name)
void create(const edm::ParameterSet &tkmapPset, DQMStore *dqm_store, std::string &htype, const edm::EventSetup &eSetup)
const std::string & pwd(void) const