27 " Creating SiStripActionExecutor " <<
"\n" ;
39 " Deleting SiStripActionExecutor " <<
"\n" ;
157 std::ofstream report_file;
159 report_file <<
" Nothing to report!!" << std::endl;
172 std::map<std::string, std::vector<std::string> > layout_map;
176 std::ostringstream shift_summary;
183 shift_summary <<
" Report Summary Content :" << std::endl;
184 shift_summary <<
" =========================" << std::endl;
189 report_path =
"SiStrip/EventInfo/reportSummaryContents/SiStrip_DetFraction_TECB";
190 me = dqm_store->
get(report_path);
193 report_path =
"SiStrip/EventInfo/reportSummaryContents/SiStrip_DetFraction_TECF";
194 me = dqm_store->
get(report_path);
197 report_path =
"SiStrip/EventInfo/reportSummaryContents/SiStrip_DetFraction_TIB";
198 me = dqm_store->
get(report_path);
201 report_path =
"SiStrip/EventInfo/reportSummaryContents/SiStrip_DetFraction_TIDB";
202 me = dqm_store->
get(report_path);
205 report_path =
"SiStrip/EventInfo/reportSummaryContents/SiStrip_DetFraction_TIDF";
206 me = dqm_store->
get(report_path);
209 report_path =
"SiStrip/EventInfo/reportSummaryContents/SiStrip_DetFraction_TOB";
210 me = dqm_store->
get(report_path);
213 shift_summary << std::endl;
216 std::ofstream report_file;
218 report_file << shift_summary.str() << std::endl;
229 str_val <<
" " << name <<
" : ";
233 float fvalue = atof(value.c_str());
234 if (fvalue == -1.0) str_val <<
" Dummy Value "<<std::endl;
235 else str_val << fvalue << std::endl;
242 str_val << std::endl;
243 for (
std::map<
std::string, std::vector< std::string > >::iterator it = layout_map.begin() ; it != layout_map.end(); it++) {
245 if (set_name.find(
"Summary") != std::string::npos)
continue;
248 str_val <<
" " << set_name <<
" : " << std::endl;
249 str_val <<
" ===================================="<< std::endl;
251 str_val << std::setprecision(2);
253 for (std::vector<std::string>::iterator im = it->second.begin();
254 im != it->second.end(); im++) {
256 if (path_name.empty())
continue;
258 std::ostringstream entry_str, mean_str, rms_str;
259 entry_str << std::setprecision(2);
261 mean_str << std::setprecision(2);
263 rms_str << std::setprecision(2);
265 entry_str << std::setw(7) << me->
getEntries();
266 mean_str << std::setw(7) << me->
getMean();
267 rms_str << std::setw(7) << me->
getRMS();
269 "entries",entry_str.str(),
"mean",mean_str.str(),
"rms",rms_str.str());
271 if (me) str_val <<
" "<< me->
getName() <<
" : entries = "<< std::setw(7)
273 <<
" : rms = "<< me->
getRMS()<< std::endl;
275 str_val << std::endl;
288 std::vector<std::string> subdet_folder;
289 subdet_folder.push_back(
"TIB");
290 subdet_folder.push_back(
"TOB");
291 subdet_folder.push_back(
"TEC/MINUS");
292 subdet_folder.push_back(
"TEC/PLUS");
293 subdet_folder.push_back(
"TID/MINUS");
294 subdet_folder.push_back(
"TID/PLUS");
297 int nDetsWithErrorTotal = 0;
298 for (std::vector<std::string>::const_iterator im = subdet_folder.begin(); im != subdet_folder.end(); im++) {
300 if (!dqm_store->
dirExists(dname))
continue;
301 str_val <<
"============"<< std::endl;
302 str_val << (*im) << std::endl;
303 str_val <<
"============"<< std::endl;
304 str_val << std::endl;
306 dqm_store->
cd(dname);
307 std::vector<std::string> module_folders;
309 int nDets = module_folders.size();
312 int nDetsWithError = 0;
313 std::string bad_module_folder = dname +
"/" +
"BadModuleList";
314 if (dqm_store->
dirExists(bad_module_folder)) {
315 std::vector<MonitorElement *> meVec = dqm_store->
getContents(bad_module_folder);
316 for (std::vector<MonitorElement *>::const_iterator it = meVec.begin();
317 it != meVec.end(); it++) {
319 uint16_t
flag = (*it)->getIntValue();
322 str_val << (*it)->getName() <<
" flag : " << (*it)->getIntValue() <<
" " << message << std::endl;
325 str_val <<
"--------------------------------------------------------------------"<< std::endl;
326 str_val <<
" Detectors : Total "<< nDets
327 <<
" with Error " << nDetsWithError<< std::endl;
328 str_val <<
"--------------------------------------------------------------------"<< std::endl;
330 nDetsWithErrorTotal += nDetsWithError;
333 str_val <<
"--------------------------------------------------------------------"<< std::endl;
334 str_val <<
" Total Number of Connected Detectors : " << nDetsTotal << std::endl;
335 str_val <<
" Total Number of Detectors with Error : " << nDetsWithErrorTotal << std::endl;
336 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)
SiStripDetInfoFileReader * detInfoFileReader_
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.
const std::vector< uint32_t > & getAllDetIds() const
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 createInfoFile(std::vector< std::string > map_names, TTree *tkinfo_tree, DQMStore *dqm_store, std::vector< uint32_t > detidList)
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()
void createTkInfoFile(std::vector< std::string > tkhmap_names, TTree *tkinfo_tree, DQMStore *dqm_store)
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