128 edm::LogInfo(
"SiStripMonitorDigi") <<
"SiStripMonitorDigi::beginRun: "
129 <<
" Creating MEs for new Cabling ";
133 edm::LogInfo(
"SiStripMonitorDigi") <<
"SiStripMonitorDigi::beginRun: "
134 <<
" Resetting MEs ";
135 for (std::map<uint32_t, ModMEs >::const_iterator idet =
DigiMEs.begin() ; idet!=
DigiMEs.end() ; idet++) {
161 for (
int ibin = 1; ibin<7;ibin++){
186 std::vector<uint32_t> activeDets;
193 for(std::vector<uint32_t>::iterator idets = activeDets.begin(); idets != activeDets.end(); idets++){
194 if(*idets == 0) activeDets.erase(idets);
203 std::vector<uint32_t> tibDetIds;
205 edm::LogInfo(
"SiStripTkDQM|SiStripMonitorDigi")<<
"nr. of activeDets: "<<activeDets.size();
206 for(std::vector<uint32_t>::const_iterator detid_iterator = activeDets.begin(); detid_iterator!=activeDets.end(); detid_iterator++){
208 uint32_t
detid = (*detid_iterator);
224 DigiMEs.insert( std::make_pair(detid, local_modmes));
228 std::pair<std::string,int32_t> det_layer_pair = folder_organizer.
GetSubDetAndLayer(detid);
233 std::map<std::string, LayerMEs>::iterator iLayerME =
LayerMEsMap.find(label);
235 int32_t lnumber = det_layer_pair.second;
236 std::vector<uint32_t> layerDetIds;
237 if (det_layer_pair.first ==
"TIB") {
239 }
else if (det_layer_pair.first ==
"TOB") {
241 }
else if (det_layer_pair.first ==
"TID" && lnumber > 0) {
243 }
else if (det_layer_pair.first ==
"TID" && lnumber < 0) {
245 }
else if (det_layer_pair.first ==
"TEC" && lnumber > 0) {
247 }
else if (det_layer_pair.first ==
"TEC" && lnumber < 0) {
271 std::stringstream ss;
275 const char*
HistoName =
"NumberOfDigisInLastLS";
278 100, 0., 10000.,
"" );
289 std::string
HistoName =
"DataPresentInLastLS";
319 for(std::vector<edm::InputTag>::iterator itDigiProducerList =
digiProducerList.begin();
324 iEvent.
getByLabel((*itDigiProducerList),digi_handle);
329 for (std::map<std::string, SubDetMEs>::iterator iSubdet =
SubDetMEsMap.begin();
331 iSubdet->second.totNDigis = 0;
334 for (
std::map<std::string, std::vector< uint32_t > >::const_iterator iterLayer =
LayerDetMap.begin();
337 std::string layer_label = iterLayer->first;
338 std::vector< uint32_t > layer_dets = iterLayer->second;
339 std::map<std::string, LayerMEs>::iterator iLayerME =
LayerMEsMap.find(layer_label);
344 else local_layermes = iLayerME->second;
345 int largest_adc_layer= 0;
346 int smallest_adc_layer= 99999;
350 std::string subdet_label =
"";
352 for (std::vector< uint32_t >::const_iterator iterDets = layer_dets.begin() ;
353 iterDets != layer_dets.end() ; iterDets++) {
356 uint32_t
detid = (*iterDets);
362 std::map<uint32_t, ModMEs >::iterator
pos =
DigiMEs.find(detid);
363 ModMEs local_modmes = pos->second;
381 if (ndigi_det == 0)
continue;
385 ndigi_layer += ndigi_det;
387 int largest_adc=(digi_detset.
data.begin())->
adc();
388 int smallest_adc=(digi_detset.
data.begin())->
adc();
392 float det_occupancy = 0.0;
395 digiIter!= digi_detset.
data.end(); digiIter++ ){
397 int this_adc = digiIter->adc();
398 if (this_adc > 0.0) det_occupancy++;
400 if(this_adc>largest_adc) largest_adc = this_adc;
401 if(this_adc<smallest_adc) smallest_adc = this_adc;
407 (local_modmes.
DigiADCs)->Fill(static_cast<float>(this_adc));
422 if (nstrips > 0 && det_occupancy > 0 ) {
423 det_occupancy = det_occupancy/nstrips;
432 if (largest_adc > largest_adc_layer) largest_adc_layer = largest_adc;
433 if (smallest_adc < smallest_adc_layer) smallest_adc_layer = smallest_adc;
457 std::map<std::string, SubDetMEs>::iterator iSubdet =
SubDetMEsMap.find(subdet_label);
458 if(iSubdet !=
SubDetMEsMap.end()) iSubdet->second.totNDigis += ndigi_layer;
461 for (std::map<std::string, SubDetMEs>::iterator it =
SubDetMEsMap.begin();
464 if (strcmp(it->first.c_str(),
"TEC__side__1")==0){
466 }
else if (strcmp(it->first.c_str(),
"TEC__side__2")==0){
468 }
else if (strcmp(it->first.c_str(),
"TIB")==0){
470 }
else if (strcmp(it->first.c_str(),
"TID__side__1")==0){
472 }
else if (strcmp(it->first.c_str(),
"TID__side__2")==0){
474 }
else if (strcmp(it->first.c_str(),
"TOB")==0){
490 && apv_phase_collection.
isValid()
494 long long tbx = event_history->absoluteBX();
497 for (std::map<std::string, SubDetMEs>::iterator it =
SubDetMEsMap.begin();
501 std::string subdet = it->first;
502 subdetmes = it->second;
505 long long tbx_corr = tbx;
511 tbx_corr -= the_phase;
530 std::map<uint32_t, ModMEs >::iterator
pos =
DigiMEs.find(idet);
531 ModMEs mod_me = pos->second;
577 me->
Fill(timeinorbit,value);
600 hid = hidmanager.
createHistoId(
"NumberOfDigisPerStrip",
"det",detid);
609 hid = hidmanager.
createHistoId(
"ADCsHottestStrip",
"det",detid);
617 hid = hidmanager.
createHistoId(
"ADCsCoolestStrip",
"det",detid);
633 hid = hidmanager.
createHistoId(
"StripOccupancy",
"det",detid);
647 std::map<std::string, LayerMEs>::iterator iLayerME =
LayerMEsMap.find(label);
697 std::string hid = hidmanager.
createHistoLayer(
"NumberOfDigiProfile",
"layer",label,
"");
703 std::string hid = hidmanager.
createHistoLayer(
"DigiADCProfile",
"layer",label,
"");
726 HistoName =
"TotalNumberOfDigiProfile__" +
label;
742 HistoName =
"Digi_vs_ApvCycle__" +
label;
758 HistoName =
"Digi_vs_ApvCycle_2D__" +
label;
760 double h2ymax = 9999.0;
761 double yfact = Parameters.
getParameter<
double>(
"yfactor");
762 if(label.find(
"TIB") != std::string::npos) h2ymax = (6984.*256.)*yfact;
763 else if (label.find(
"TID") != std::string::npos) h2ymax = (2208.*256.)*yfact;
764 else if (label.find(
"TOB") != std::string::npos) h2ymax = (12906.*256.)*yfact;
765 else if (label.find(
"TEC") != std::string::npos) h2ymax = (7552.*2.*256.)*yfact;
int adc(sample_type sample)
get the ADC sample (12 bits)
LuminosityBlockID id() const
void ResetModuleMEs(uint32_t idet)
void createSubDetMEs(std::string label)
T getParameter(std::string const &) const
bool subdetswitchapvcycleth2on
std::map< std::string, LayerMEs > LayerMEsMap
bool moduleswitchnumdigison
MonitorElement * LayerNumberOfDigisTrend
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
MonitorElement * SubDetTotDigiProf
#define DEFINE_FWK_MODULE(type)
MonitorElement * LayerStripOccupancy
bool layerswitchdigiadcson
MonitorElement * LayerADCsHottestStrip
bool layerswitchnumdigisprofon
bool subdetswitchtotdigiproflson
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
edm::InputTag historyProducer_
void createModuleMEs(ModMEs &mod_single, uint32_t detid)
MonitorElement * LayerADCsHottestStripTrend
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)
std::map< uint32_t, ModMEs > DigiMEs
std::map< std::string, std::string > SubDetPhasePartMap
bool layerswitchdigiadcprofon
MonitorElement * SubDetDigiApvTH2
MonitorElement * StripOccupancy
bool subdetswitchtotdigiprofon
MonitorElement * SubDetDigiApvProf
MonitorElement * SubDetDigiFailures
MonitorElement * LayerNumberOfDigisProfile
virtual void beginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
void tag(MonitorElement *me, unsigned int myTag)
unsigned long long m_cacheID_
bool getStatus(edm::Event const &e, edm::EventSetup const &eSetup)
MonitorElement * NumberOfDigisPerStrip
bool subdetswitchapvcycleprofon
std::string getSubdetid(uint32_t id, bool flag_ring)
MonitorElement * ADCsCoolestStrip
bool moduleswitchadchotteston
std::pair< std::string, std::string > getSubDetFolderAndTag(const uint32_t &detid)
SiStripDCSStatus * dcsStatus_
edm::ESHandle< SiStripDetCabling > SiStripDetCabling_
void getTOBDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tobDetRawIds, uint32_t layer=0, uint32_t bkw_frw=0, uint32_t rod=0) const
MonitorElement * bookMETrend(const char *ParameterSetLabel, const char *HistoName)
MonitorElement * LayerADCsCoolestStripTrend
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
DigiFailureMEs digiFailureMEs
void fill(uint32_t &detid, float value)
MonitorElement * SubDetTotDigiProfLS
void fillME(MonitorElement *ME, float value1)
MonitorElement * LayerDigiADCs
MonitorElement * LayerNumberOfDigis
std::vector< const edm::DetSetVector< SiStripDigi > * > digi_detset_handles
void createLayerMEs(std::string label, int ndet)
void getLayerFolderName(std::stringstream &ss, uint32_t rawdetid, bool ring_flag=0)
virtual void analyze(const edm::Event &, const edm::EventSetup &)
bool layerswitchnumdigison
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Kind kind(void) const
Get the type of the monitor element.
void setDetectorFolder(uint32_t rawdetid=0)
std::map< std::string, SubDetMEs > SubDetMEsMap
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
MonitorElement * ADCsHottestStrip
vector< ParameterSet > Parameters
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
void fillTrend(MonitorElement *me, float value, float timeinorbit)
MonitorElement * LayerDigiADCProfile
bool moduleswitchstripoccupancyon
bool subdetswitchtotdigifailureon
int getDigiSourceIndex(uint32_t id)
SiStripMonitorDigi(const edm::ParameterSet &)
edm::InputTag apvPhaseProducer_
std::map< std::string, std::vector< uint32_t > > LayerDetMap
MonitorElement * NumberOfDigis
std::string createHistoId(std::string description, std::string id_type, uint32_t component_id)
bool moduleswitchadccooleston
LuminosityBlockNumber_t luminosityBlock() const
T const * product() const
void getTECDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tecDetRawIds, uint32_t side=0, uint32_t wheel=0, uint32_t petal_bkw_frw=0, uint32_t petal=0, uint32_t ring=0, uint32_t ster=0) const
std::vector< edm::InputTag > digiProducerList
double getBinContent(int binx) const
get content of bin (1-D)
bool layerswitchadchotteston
MonitorElement * LayerStripOccupancyTrend
bool moduleswitchnumdigispstripon
void getTIBDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tibDetRawIds, uint32_t layer=0, uint32_t bkw_frw=0, uint32_t int_ext=0, uint32_t string=0) const
virtual void endRun(const edm::Run &, const edm::EventSetup &)
MonitorElement * LayerADCsCoolestStrip
std::pair< std::string, int32_t > GetSubDetAndLayer(const uint32_t &detid, bool ring_flag=0)
bool moduleswitchdigiadcson
bool layerswitchstripoccupancyon
virtual void endLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &)
SiStripFolderOrganizer folder_organizer
void getTIDDetectors(const std::vector< uint32_t > &inputDetRawIds, std::vector< uint32_t > &tidDetRawIds, uint32_t side=0, uint32_t wheel=0, uint32_t ring=0, uint32_t ster=0) const
MonitorElement * DigiADCs
void createMEs(const edm::EventSetup &es)
std::string createHistoLayer(std::string description, std::string id_type, std::string path, std::string flag)
collection_type::const_iterator const_iterator
virtual void beginRun(const edm::Run &, const edm::EventSetup &)
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
collection_type::const_iterator const_iterator
void setLayerFolder(uint32_t rawdetid=0, int32_t layer=0, bool ring_flag=0)
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)
MonitorElement * LayerDigiADCsTrend
bool show_mechanical_structure_view
bool layerswitchadccooleston
void setCurrentFolder(const std::string &fullpath)
MonitorElement * bookME1D(const char *ParameterSetLabel, const char *HistoName)