37 edm::LogInfo(
"SiStripCertificationInfo") <<
"SiStripCertificationInfo::Deleting SiStripCertificationInfo ";
44 edm::LogInfo(
"SiStripCertificationInfo") <<
"SiStripCertificationInfo::Deleting SiStripCertificationInfo ";
58 edm::LogInfo (
"SiStripCertificationInfo") <<
"SiStripCertificationInfo:: Begining of Run";
70 if( eSetup.
find( recordKey ) != 0) {
76 std::vector<int> FedsInIds= sumFED->m_fed_in;
77 for(
unsigned int it = 0; it < FedsInIds.size(); ++it) {
78 int fedID = FedsInIds[it];
79 if(fedID>=siStripFedIdMin && fedID<=siStripFedIdMax) ++
nFEDConnected_;
97 std::string strip_dir =
"";
104 std::string hname =
"CertificationReportMap";
105 std::string htitle =
"SiStrip Certification for Good Detector Fraction";
110 for (std::map<std::string, SubDetMEs>::const_iterator it =
SubDetMEsMap.begin();
113 std::string det = it->first;
128 SubDetMEsMap.insert(std::pair<std::string, SubDetMEs >(tag, local_mes));
135 SubDetMEsMap.insert(std::pair<std::string, SubDetMEs >(tag, local_mes));
142 SubDetMEsMap.insert(std::pair<std::string, SubDetMEs >(tag, local_mes));
149 SubDetMEsMap.insert(std::pair<std::string, SubDetMEs >(tag, local_mes));
156 SubDetMEsMap.insert(std::pair<std::string, SubDetMEs >(tag, local_mes));
163 SubDetMEsMap.insert(std::pair<std::string, SubDetMEs >(tag, local_mes));
177 std::string tracking_dir =
"";
179 if (tracking_dir.size() > 0) {
189 TrackingMEsMap.insert(std::pair<std::string,MonitorElement*>(type,me));
193 TrackingMEsMap.insert(std::pair<std::string,MonitorElement*>(type,me));
197 TrackingMEsMap.insert(std::pair<std::string,MonitorElement*>(type,me));
213 edm::LogInfo(
"SiStripDaqInfo") <<
"SiStripDaqInfo::endLuminosityBlock";
225 edm::LogInfo (
"SiStripCertificationInfo") <<
"SiStripCertificationInfo:: End Run";
237 edm::LogError(
"SiStripCertificationInfo") <<
" SiStripCertificationInfo::fillTrackingCertificationMEs : MEs missing ";
240 std::string tk_dir =
"";
242 if (tk_dir.size() == 0) {
247 std::vector<MonitorElement*> all_mes =
dqmStore_->
getContents(tk_dir+
"/EventInfo/reportSummaryContents");
249 for (std::vector<MonitorElement *>::const_iterator it = all_mes.begin();
250 it!= all_mes.end(); it++) {
256 for (std::map<std::string, MonitorElement*>::const_iterator it =
TrackingMEsMap.begin();
258 std::string
type = it->first;
259 if (name.find(type) != std::string::npos) {
260 it->second->Fill(val);
274 edm::LogError(
"SiStripCertificationInfo") <<
" SiStripCertificationInfo::fillSiStripCertificationMEs : MEs missing ";
278 std::string mdir =
"MechanicalView";
282 uint16_t nDetTot = 0;
283 uint16_t nFaultyTot = 0;
284 uint16_t nSToNTot = 0;
288 for (std::map<std::string, SubDetMEs>::iterator it =
SubDetMEsMap.begin();
291 std::string
name = it->first;
292 std::string
tag = it->second.subdet_tag;
295 std::string bad_module_folder = mechanical_dir+
"/"+it->second.folder_name+
"/"+
"BadModuleList";
298 uint16_t ndet_subdet = 0;
299 uint16_t nfaulty_subdet = 0;
300 int nlayer = it->second.n_layer;
302 for (
int ilayer = 0; ilayer < nlayer; ilayer++) {
303 uint16_t ndet_layer =
detCabling_->connectedNumber(tag, ilayer+1);
304 ndet_subdet += ndet_layer;
306 uint16_t nfaulty_layer = 0;
307 for (std::vector<MonitorElement *>::iterator im = faulty_detMEs.begin(); im != faulty_detMEs.end(); im++) {
309 if ((*im)->getIntValue() == 0)
continue;
310 uint32_t detId = atoi((*im)->getName().c_str());
311 std::pair<std::string,int32_t> det_layer_pair = folder_organizer.
GetSubDetAndLayer(detId,
false);
312 if (
abs(det_layer_pair.second) == ilayer+1) nfaulty_layer++;
315 nfaulty_subdet += nfaulty_layer;
316 float fraction_layer = -1.0;
317 if ( ndet_layer > 0) fraction_layer = 1 - ((nfaulty_layer*1.0)/ndet_layer);
320 if (ybin <= SiStripCertificationSummaryMap->getNbinsY()) {
323 float fraction_subdet = -1.0;
324 if (ndet_subdet > 0) fraction_subdet = 1 - ((nfaulty_subdet*1.0)/ndet_subdet);
326 std::string full_path = mechanical_dir.substr(0, mechanical_dir.find_last_of(
"/"))
327 +
"/EventInfo/reportSummaryContents/SiStrip_SToNFlag_"+name;
334 me->
Fill(fminf(fraction_subdet,ston_flg));
335 }
else me->
Fill(fraction_subdet);
336 nDetTot += ndet_subdet ;
337 nFaultyTot += nfaulty_subdet;
339 float fraction_global = -1.0;
340 if (nDetTot > 0) fraction_global = 1.0 - ((nFaultyTot*1.0)/nDetTot);
341 float ston_frac_global = 1.0;
342 if (nSToNTot > 0) ston_frac_global = sToNTot/nSToNTot;
352 for (std::map<std::string, MonitorElement*>::const_iterator it =
TrackingMEsMap.begin();
365 for (std::map<std::string, SubDetMEs>::iterator it =
SubDetMEsMap.begin();
367 it->second.det_fractionME->Reset();
379 for (std::map<std::string, SubDetMEs>::iterator it =
SubDetMEsMap.begin();
381 it->second.det_fractionME->Reset();
382 it->second.det_fractionME->Fill(-1.0);
399 for (std::map<std::string, MonitorElement*>::const_iterator it =
TrackingMEsMap.begin();
401 it->second->Fill(-1.0);
411 edm::LogError(
"SiStripCertificationInfo") <<
" SiStripCertificationInfo::fillSiStripCertificationMEsAtLumi : MEs missing ";
416 std::string strip_dir =
"";
418 if (strip_dir.size() == 0) strip_dir =
"SiStrip";
420 std::string full_path;
421 float dcs_flag = 1.0;
422 float dqm_flag = 1.0;
423 for (std::map<std::string, SubDetMEs>::iterator it =
SubDetMEsMap.begin();
425 std::string
type = it->first;
426 full_path = strip_dir +
"/EventInfo/DCSContents/SiStrip_" +
type;
429 full_path = strip_dir +
"/EventInfo/reportSummaryContents/SiStrip_" +
type;
432 it->second.det_fractionME->Reset();
433 it->second.det_fractionME->Fill(fminf(dqm_flag,dcs_flag));
437 full_path = strip_dir +
"/EventInfo/reportSummary";
440 full_path = strip_dir +
"/EventInfo/DCSSummary";
const std::string & getName(void) const
get name of ME
MonitorElement * TrackingCertification
void bookTrackingCertificationMEs()
MonitorElement * SiStripCertification
void cd(void)
go to top directory (ie. root)
void fillSiStripCertificationMEsAtLumi()
#define DEFINE_FWK_MODULE(type)
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
void analyze(edm::Event const &, edm::EventSetup const &)
Analyze.
void fillDummySiStripCertification()
void fillDummyTrackingCertification()
bool sistripCertificationBooked_
std::map< std::string, MonitorElement * > TrackingMEsMap
MonitorElement * bookFloat(const char *name)
Book float.
const eventsetup::EventSetupRecord * find(const eventsetup::EventSetupRecordKey &) const
int getNbinsY(void) const
get # of bins in Y-axis
bool trackingCertificationBooked_
void endLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &iSetup)
End Of Luminosity.
std::map< std::string, SubDetMEs > SubDetMEsMap
void fillTrackingCertificationMEs()
double getFloatValue(void) const
SiStripCertificationInfo(const edm::ParameterSet &ps)
Constructor.
Kind kind(void) const
Get the type of the monitor element.
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
std::vector< MonitorElement * > getContents(const std::string &path) const
MonitorElement * det_fractionME
void bookSiStripCertificationMEs()
virtual ~SiStripCertificationInfo()
Destructor.
void endRun(edm::Run const &run, edm::EventSetup const &eSetup)
EndRun.
void beginRun(edm::Run const &run, edm::EventSetup const &eSetup)
Begin Run.
void resetTrackingCertificationMEs()
MonitorElement * SiStripCertificationSummaryMap
void resetSiStripCertificationMEs()
int getNbinsX(void) const
get # of bins in X-axis
std::pair< std::string, int32_t > GetSubDetAndLayer(const uint32_t &detid, bool ring_flag=0)
edm::ESHandle< SiStripDetCabling > detCabling_
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
void fillSiStripCertificationMEs()
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
static bool goToDir(DQMStore *dqm_store, std::string name)
void setCurrentFolder(const std::string &fullpath)
static HCTypeTag findType(char const *iTypeName)
find a type based on the types name, if not found will return default HCTypeTag
const std::string & pwd(void) const
unsigned long long m_cacheID_
static void getTopFolderPath(DQMStore *dqm_store, std::string type, std::string &path)