#include <DQM/SiStripMonitorCluster/src/SiStripMonitorCluster.cc>
Data Quality Monitoring source of the Silicon Strip Tracker. Produces histograms related to clusters.
Definition at line 30 of file SiStripMonitorCluster.h.
SiStripMonitorCluster::SiStripMonitorCluster | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 48 of file SiStripMonitorCluster.cc.
References applyClusterQuality_, apvPhaseProducer_, clusterProducer_, clustertkhistomapon, conf_, createTrendMEs, dcsStatus_, eventNb, firstEvent, edm::ParameterSet::getParameter(), globalswitchapvcycledbxth2on, historyProducer_, layerswitchcluschargeon, layerswitchclusdigiposon, layerswitchclusnoiseon, layerswitchclusposon, layerswitchclusstonon, layerswitchclusstonVsposon, layerswitchclusterwidthprofon, layerswitchcluswidthon, layerswitchlocaloccupancy, layerswitchncluson, layerswitchnrclusterizedstrip, layerswitchnumclusterprofon, Mod_On_, moduleswitchcluschargeon, moduleswitchclusdigiposon, moduleswitchclusnoiseon, moduleswitchclusposon, moduleswitchclusstonon, moduleswitchclusstonVsposon, moduleswitchcluswidthon, moduleswitchlocaloccupancy, moduleswitchncluson, moduleswitchnrclusterizedstrip, qualityLabel_, sToNLowerLimit_, sToNUpperLimit_, SubDetPhasePartMap, subdetswitchapvcycledbxprof2on, subdetswitchapvcycleprofon, subdetswitchapvcycleth2on, subdetswitchdbxcycleprofon, subdetswitchtotclusprofon, subdetswitchtotclusth1on, topFolderName_, widthLowerLimit_, and widthUpperLimit_.
: dqmStore_(edm::Service<DQMStore>().operator->()), conf_(iConfig), show_mechanical_structure_view(true), show_readout_view(false), show_control_view(false), select_all_detectors(false), reset_each_run(false), m_cacheID_(0) { firstEvent = -1; eventNb = 0; // Detector Partitions SubDetPhasePartMap["TIB"] = "TI"; SubDetPhasePartMap["TID__side__1"] = "TI"; SubDetPhasePartMap["TID__side__2"] = "TI"; SubDetPhasePartMap["TOB"] = "TO"; SubDetPhasePartMap["TEC__side__1"] = "TM"; SubDetPhasePartMap["TEC__side__2"] = "TP"; //get on/off option for every cluster from cfi edm::ParameterSet ParametersnClusters = conf_.getParameter<edm::ParameterSet>("TH1nClusters"); layerswitchncluson = ParametersnClusters.getParameter<bool>("layerswitchon"); moduleswitchncluson = ParametersnClusters.getParameter<bool>("moduleswitchon"); edm::ParameterSet ParametersClusterCharge = conf_.getParameter<edm::ParameterSet>("TH1ClusterCharge"); layerswitchcluschargeon = ParametersClusterCharge.getParameter<bool>("layerswitchon"); moduleswitchcluschargeon = ParametersClusterCharge.getParameter<bool>("moduleswitchon"); edm::ParameterSet ParametersClusterStoN = conf_.getParameter<edm::ParameterSet>("TH1ClusterStoN"); layerswitchclusstonon = ParametersClusterStoN.getParameter<bool>("layerswitchon"); moduleswitchclusstonon = ParametersClusterStoN.getParameter<bool>("moduleswitchon"); edm::ParameterSet ParametersClusterStoNVsPos = conf_.getParameter<edm::ParameterSet>("TH1ClusterStoNVsPos"); layerswitchclusstonVsposon = ParametersClusterStoNVsPos.getParameter<bool>("layerswitchon"); moduleswitchclusstonVsposon = ParametersClusterStoNVsPos.getParameter<bool>("moduleswitchon"); edm::ParameterSet ParametersClusterPos = conf_.getParameter<edm::ParameterSet>("TH1ClusterPos"); layerswitchclusposon = ParametersClusterPos.getParameter<bool>("layerswitchon"); moduleswitchclusposon = ParametersClusterPos.getParameter<bool>("moduleswitchon"); edm::ParameterSet ParametersClusterDigiPos = conf_.getParameter<edm::ParameterSet>("TH1ClusterDigiPos"); layerswitchclusdigiposon = ParametersClusterDigiPos.getParameter<bool>("layerswitchon"); moduleswitchclusdigiposon = ParametersClusterDigiPos.getParameter<bool>("moduleswitchon"); edm::ParameterSet ParametersClusterNoise = conf_.getParameter<edm::ParameterSet>("TH1ClusterNoise"); layerswitchclusnoiseon = ParametersClusterNoise.getParameter<bool>("layerswitchon"); moduleswitchclusnoiseon = ParametersClusterNoise.getParameter<bool>("moduleswitchon"); edm::ParameterSet ParametersClusterWidth = conf_.getParameter<edm::ParameterSet>("TH1ClusterWidth"); layerswitchcluswidthon = ParametersClusterWidth.getParameter<bool>("layerswitchon"); moduleswitchcluswidthon = ParametersClusterWidth.getParameter<bool>("moduleswitchon"); edm::ParameterSet ParametersModuleLocalOccupancy = conf_.getParameter<edm::ParameterSet>("TH1ModuleLocalOccupancy"); layerswitchlocaloccupancy = ParametersModuleLocalOccupancy.getParameter<bool>("layerswitchon"); moduleswitchlocaloccupancy = ParametersModuleLocalOccupancy.getParameter<bool>("moduleswitchon"); edm::ParameterSet ParametersNrOfClusterizedStrips = conf_.getParameter<edm::ParameterSet>("TH1NrOfClusterizedStrips"); layerswitchnrclusterizedstrip = ParametersNrOfClusterizedStrips.getParameter<bool>("layerswitchon"); moduleswitchnrclusterizedstrip = ParametersNrOfClusterizedStrips.getParameter<bool>("moduleswitchon"); edm::ParameterSet ParametersClusterProf = conf_.getParameter<edm::ParameterSet>("TProfNumberOfCluster"); layerswitchnumclusterprofon = ParametersClusterProf.getParameter<bool>("layerswitchon"); edm::ParameterSet ParametersClusterWidthProf = conf_.getParameter<edm::ParameterSet>("TProfClusterWidth"); layerswitchclusterwidthprofon = ParametersClusterWidthProf.getParameter<bool>("layerswitchon"); edm::ParameterSet ParametersTotClusterProf = conf_.getParameter<edm::ParameterSet>("TProfTotalNumberOfClusters"); subdetswitchtotclusprofon = ParametersTotClusterProf.getParameter<bool>("subdetswitchon"); edm::ParameterSet ParametersTotClusterTH1 = conf_.getParameter<edm::ParameterSet>("TH1TotalNumberOfClusters"); subdetswitchtotclusth1on = ParametersTotClusterTH1.getParameter<bool>("subdetswitchon"); edm::ParameterSet ParametersClusterApvProf = conf_.getParameter<edm::ParameterSet>("TProfClustersApvCycle"); subdetswitchapvcycleprofon = ParametersClusterApvProf.getParameter<bool>("subdetswitchon"); edm::ParameterSet ParametersClustersApvTH2 = conf_.getParameter<edm::ParameterSet>("TH2ClustersApvCycle"); subdetswitchapvcycleth2on = ParametersClustersApvTH2.getParameter<bool>("subdetswitchon"); edm::ParameterSet ParametersApvCycleDBxProf2 = conf_.getParameter<edm::ParameterSet>("TProf2ApvCycleVsDBx"); subdetswitchapvcycledbxprof2on = ParametersApvCycleDBxProf2.getParameter<bool>("subdetswitchon"); edm::ParameterSet ParametersDBxCycleProf = conf_.getParameter<edm::ParameterSet>("TProfClustersVsDBxCycle"); subdetswitchdbxcycleprofon = ParametersDBxCycleProf.getParameter<bool>("subdetswitchon"); edm::ParameterSet ParametersApvCycleVsDBxGlobalTH2 = conf_.getParameter<edm::ParameterSet>("TH2ApvCycleVsDBxGlobal"); globalswitchapvcycledbxth2on = ParametersApvCycleVsDBxGlobalTH2.getParameter<bool>("globalswitchon"); clustertkhistomapon = conf_.getParameter<bool>("TkHistoMap_On"); createTrendMEs = conf_.getParameter<bool>("CreateTrendMEs"); Mod_On_ = conf_.getParameter<bool>("Mod_On"); topFolderName_ = conf_.getParameter<std::string>("TopFolderName"); // Poducer name of input StripClusterCollection clusterProducer_ = conf_.getParameter<edm::InputTag>("ClusterProducer"); // SiStrip Quality Label qualityLabel_ = conf_.getParameter<std::string>("StripQualityLabel"); // cluster quality conditions edm::ParameterSet cluster_condition = conf_.getParameter<edm::ParameterSet>("ClusterConditions"); applyClusterQuality_ = cluster_condition.getParameter<bool>("On"); sToNLowerLimit_ = cluster_condition.getParameter<double>("minStoN"); sToNUpperLimit_ = cluster_condition.getParameter<double>("maxStoN"); widthLowerLimit_ = cluster_condition.getParameter<double>("minWidth"); widthUpperLimit_ = cluster_condition.getParameter<double>("maxWidth"); // Event History Producer historyProducer_ = conf_.getParameter<edm::InputTag>("HistoryProducer"); // Apv Phase Producer apvPhaseProducer_ = conf_.getParameter<edm::InputTag>("ApvPhaseProducer"); // Create DCS Status bool checkDCS = conf_.getParameter<bool>("UseDCSFiltering"); if (checkDCS) dcsStatus_ = new SiStripDCSStatus(); else dcsStatus_ = 0; }
SiStripMonitorCluster::~SiStripMonitorCluster | ( | ) |
Definition at line 161 of file SiStripMonitorCluster.cc.
References dcsStatus_.
{ if (dcsStatus_) delete dcsStatus_; }
void SiStripMonitorCluster::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [virtual] |
Implements edm::EDAnalyzer.
Definition at line 298 of file SiStripMonitorCluster.cc.
References applyClusterQuality_, apvPhaseProducer_, edmNew::DetSet< T >::begin(), SiStripMonitorCluster::ClusterProperties::charge, clusterProducer_, clustertkhistomapon, createTrendMEs, dcsStatus_, cond::rpcobgas::detid, edmNew::DetSet< T >::end(), eventNb, edm::HandleBase::failedToGet(), MonitorElement::Fill(), TkHistoMap::fill(), fillLayerMEs(), fillME(), fillModuleMEs(), edm::EventSetup::get(), edm::Event::getByLabel(), SiStripDCSStatus::getStatus(), SiStripFolderOrganizer::getSubDetFolderAndTag(), GlobalApvCycleDBxTH2, globalswitchapvcycledbxth2on, historyProducer_, edm::EventBase::id(), align::invalid, APVCyclePhaseCollection::invalid, edm::HandleBase::isValid(), SiStripMonitorCluster::LayerMEs::LayerClusterWidthProfile, LayerDetMap, SiStripMonitorCluster::LayerMEs::LayerLocalOccupancy, SiStripMonitorCluster::LayerMEs::LayerLocalOccupancyTrend, LayerMEsMap, SiStripMonitorCluster::LayerMEs::LayerNumberOfClusterProfile, layerswitchclusterwidthprofon, layerswitchlocaloccupancy, layerswitchnumclusterprofon, Association::map, Mod_On_, SiStripMonitorCluster::ModMEs::ModuleLocalOccupancy, ModuleMEsMap, moduleswitchlocaloccupancy, moduleswitchncluson, moduleswitchnrclusterizedstrip, APVCyclePhaseCollection::multiphase, SiStripMonitorCluster::ClusterProperties::noise, APVCyclePhaseCollection::nopartition, SiStripMonitorCluster::ModMEs::NrOfClusterizedStrips, NULL, SiStripMonitorCluster::ModMEs::NumberOfClusters, edm::EventBase::orbitNumber(), SiStripMonitorCluster::ClusterProperties::position, qualityLabel_, edm::EventID::run(), runNb, SiStripDetCabling_, edmNew::DetSet< T >::size(), mathSSE::sqrt(), SiStripMonitorCluster::ClusterProperties::start, sToNLowerLimit_, sToNUpperLimit_, SiStripMonitorCluster::SubDetMEs::SubDetApvDBxProf2, SiStripMonitorCluster::SubDetMEs::SubDetClusterApvProf, SiStripMonitorCluster::SubDetMEs::SubDetClusterApvTH2, SiStripMonitorCluster::SubDetMEs::SubDetClusterDBxCycleProf, SubDetMEsMap, SubDetPhasePartMap, subdetswitchapvcycledbxprof2on, subdetswitchapvcycleprofon, subdetswitchapvcycleth2on, subdetswitchdbxcycleprofon, subdetswitchtotclusprofon, subdetswitchtotclusth1on, SiStripMonitorCluster::SubDetMEs::SubDetTotClusterProf, SiStripMonitorCluster::SubDetMEs::SubDetTotClusterTH1, tkmapcluster, SiStripMonitorCluster::SubDetMEs::totNClusters, SiStripMonitorCluster::ClusterProperties::width, widthLowerLimit_, and widthUpperLimit_.
{ // Filter out events if DCS Event if requested if (dcsStatus_ && !dcsStatus_->getStatus(iEvent,iSetup)) return; runNb = iEvent.id().run(); eventNb++; float iOrbitSec = iEvent.orbitNumber()/11223.0; edm::ESHandle<SiStripNoises> noiseHandle; iSetup.get<SiStripNoisesRcd>().get(noiseHandle); edm::ESHandle<SiStripGain> gainHandle; iSetup.get<SiStripGainRcd>().get(gainHandle); edm::ESHandle<SiStripQuality> qualityHandle; iSetup.get<SiStripQualityRcd>().get(qualityLabel_,qualityHandle); iSetup.get<SiStripDetCablingRcd>().get(SiStripDetCabling_); // get collection of DetSetVector of clusters from Event edm::Handle< edmNew::DetSetVector<SiStripCluster> > cluster_detsetvektor; iEvent.getByLabel(clusterProducer_, cluster_detsetvektor); if (!cluster_detsetvektor.isValid()) return; // initialise # of clusters to zero for (std::map<std::string, SubDetMEs>::iterator iSubdet = SubDetMEsMap.begin(); iSubdet != SubDetMEsMap.end(); iSubdet++) { iSubdet->second.totNClusters = 0; } SiStripFolderOrganizer folder_organizer; bool found_layer_me = false; for (std::map<std::string, std::vector< uint32_t > >::const_iterator iterLayer = LayerDetMap.begin(); iterLayer != LayerDetMap.end(); iterLayer++) { std::string layer_label = iterLayer->first; int ncluster_layer = 0; std::map<std::string, LayerMEs>::iterator iLayerME = LayerMEsMap.find(layer_label); //get Layer MEs LayerMEs layer_single; if(iLayerME != LayerMEsMap.end()) { layer_single = iLayerME->second; found_layer_me = true; } bool found_module_me = false; uint16_t iDet = 0; std::string subdet_label = ""; // loop over all modules in the layer for (std::vector< uint32_t >::const_iterator iterDets = iterLayer->second.begin() ; iterDets != iterLayer->second.end() ; iterDets++) { iDet++; // detid and type of ME uint32_t detid = (*iterDets); // Get SubDet label once if (subdet_label.size() == 0) subdet_label = folder_organizer.getSubDetFolderAndTag(detid).second; // DetId and corresponding set of MEs ModMEs mod_single; if (Mod_On_) { std::map<uint32_t, ModMEs >::iterator imodME = ModuleMEsMap.find(detid); if (imodME != ModuleMEsMap.end()) { mod_single = imodME->second; found_module_me = true; } } else found_module_me = false; edmNew::DetSetVector<SiStripCluster>::const_iterator isearch = cluster_detsetvektor->find(detid); // search clusters of detid if(isearch==cluster_detsetvektor->end()){ if(found_module_me && moduleswitchncluson && (mod_single.NumberOfClusters)){ (mod_single.NumberOfClusters)->Fill(0.); // no clusters for this detector module,fill histogram with 0 } if(clustertkhistomapon) tkmapcluster->fill(detid,0.); if (found_layer_me && layerswitchnumclusterprofon) layer_single.LayerNumberOfClusterProfile->Fill(iDet, 0.0); continue; // no clusters for this detid => jump to next step of loop } //cluster_detset is a structure, cluster_detset.data is a std::vector<SiStripCluster>, cluster_detset.id is uint32_t edmNew::DetSet<SiStripCluster> cluster_detset = (*cluster_detsetvektor)[detid]; // the statement above makes sure there exists an element with 'detid' // Filling TkHistoMap with number of clusters for each module if(clustertkhistomapon) { tkmapcluster->fill(detid,static_cast<float>(cluster_detset.size())); } if(moduleswitchncluson && found_module_me && (mod_single.NumberOfClusters != NULL)){ // nr. of clusters per module (mod_single.NumberOfClusters)->Fill(static_cast<float>(cluster_detset.size())); } if (found_layer_me && layerswitchnumclusterprofon) layer_single.LayerNumberOfClusterProfile->Fill(iDet, static_cast<float>(cluster_detset.size())); ncluster_layer += cluster_detset.size(); short total_clusterized_strips = 0; SiStripNoises::Range detNoiseRange = noiseHandle->getRange(detid); SiStripApvGain::Range detGainRange = gainHandle->getRange(detid); SiStripQuality::Range qualityRange = qualityHandle->getRange(detid); for(edmNew::DetSet<SiStripCluster>::const_iterator clusterIter = cluster_detset.begin(); clusterIter!= cluster_detset.end(); clusterIter++){ const std::vector<uint8_t>& ampls = clusterIter->amplitudes(); // cluster position float cluster_position = clusterIter->barycenter(); // start defined as nr. of first strip beloning to the cluster short cluster_start = clusterIter->firstStrip(); // width defined as nr. of strips that belong to cluster short cluster_width = ampls.size(); // add nr of strips of this cluster to total nr. of clusterized strips total_clusterized_strips = total_clusterized_strips + cluster_width; // cluster signal and noise from the amplitudes float cluster_signal = 0.0; float cluster_noise = 0.0; int nrnonzeroamplitudes = 0; float noise2 = 0.0; float noise = 0.0; for(uint iamp=0; iamp<ampls.size(); iamp++){ if(ampls[iamp]>0){ // nonzero amplitude cluster_signal += ampls[iamp]; if(!qualityHandle->IsStripBad(qualityRange, clusterIter->firstStrip()+iamp)){ noise = noiseHandle->getNoise(clusterIter->firstStrip()+iamp,detNoiseRange)/gainHandle->getStripGain(clusterIter->firstStrip()+iamp, detGainRange); } noise2 += noise*noise; nrnonzeroamplitudes++; } } // End loop over cluster amplitude if (nrnonzeroamplitudes > 0) cluster_noise = sqrt(noise2/nrnonzeroamplitudes); if( applyClusterQuality_ && (cluster_signal/cluster_noise < sToNLowerLimit_ || cluster_signal/cluster_noise > sToNUpperLimit_ || cluster_width < widthLowerLimit_ || cluster_width > widthUpperLimit_) ) continue; ClusterProperties cluster_properties; cluster_properties.charge = cluster_signal; cluster_properties.position = cluster_position; cluster_properties.start = cluster_start; cluster_properties.width = cluster_width; cluster_properties.noise = cluster_noise; // Fill Module Level MEs if (found_module_me) fillModuleMEs(mod_single, cluster_properties); // Fill Layer Level MEs if (found_layer_me) { fillLayerMEs(layer_single, cluster_properties, iOrbitSec); if (layerswitchclusterwidthprofon) layer_single.LayerClusterWidthProfile->Fill(iDet, cluster_width); } } // end loop over clusters short total_nr_strips = SiStripDetCabling_->nApvPairs(detid) * 2 * 128; // get correct # of avp pairs float local_occupancy = static_cast<float>(total_clusterized_strips)/static_cast<float>(total_nr_strips); if (found_module_me) { if(moduleswitchnrclusterizedstrip && mod_single.NrOfClusterizedStrips ){ // nr of clusterized strips mod_single.NrOfClusterizedStrips->Fill(static_cast<float>(total_clusterized_strips)); } if(moduleswitchlocaloccupancy && mod_single.ModuleLocalOccupancy ){ // Occupancy mod_single.ModuleLocalOccupancy->Fill(local_occupancy); } } if (layerswitchlocaloccupancy && found_layer_me && layer_single.LayerLocalOccupancy) { fillME(layer_single.LayerLocalOccupancy,local_occupancy); if (createTrendMEs) fillME(layer_single.LayerLocalOccupancyTrend,iOrbitSec,local_occupancy); } } std::map<std::string, SubDetMEs>::iterator iSubdet = SubDetMEsMap.find(subdet_label); if(iSubdet != SubDetMEsMap.end()) iSubdet->second.totNClusters += ncluster_layer; } // EventHistory edm::Handle<EventWithHistory> event_history; iEvent.getByLabel(historyProducer_,event_history); // Phase of APV edm::Handle<APVCyclePhaseCollection> apv_phase_collection; iEvent.getByLabel(apvPhaseProducer_,apv_phase_collection); if (event_history.isValid() && !event_history.failedToGet() && apv_phase_collection.isValid() && !apv_phase_collection.failedToGet()) { long long dbx = event_history->deltaBX(); long long tbx = event_history->absoluteBX(); bool global_histo_filled = false; for (std::map<std::string, SubDetMEs>::iterator it = SubDetMEsMap.begin(); it != SubDetMEsMap.end(); it++) { std::string sdet = it->first; // std::string sdet = sdet_tag.substr(0,sdet_tag.find_first_of("_")); SubDetMEs sdetmes = it->second; int the_phase = APVCyclePhaseCollection::invalid; long long tbx_corr = tbx; if (SubDetPhasePartMap.find(sdet) != SubDetPhasePartMap.end()) the_phase = apv_phase_collection->getPhase(SubDetPhasePartMap[sdet]); if(the_phase==APVCyclePhaseCollection::nopartition || the_phase==APVCyclePhaseCollection::multiphase || the_phase==APVCyclePhaseCollection::invalid) the_phase=30; tbx_corr -= the_phase; long long dbxincycle = event_history->deltaBXinCycle(the_phase); if (globalswitchapvcycledbxth2on && !global_histo_filled) { GlobalApvCycleDBxTH2->Fill(tbx_corr%70,dbx); global_histo_filled = true; } if (subdetswitchtotclusth1on) sdetmes.SubDetTotClusterTH1->Fill(sdetmes.totNClusters); if (subdetswitchtotclusprofon) sdetmes.SubDetTotClusterProf->Fill(iOrbitSec,sdetmes.totNClusters); if (subdetswitchapvcycleprofon) sdetmes.SubDetClusterApvProf->Fill(tbx_corr%70,sdetmes.totNClusters); if (subdetswitchapvcycleth2on) sdetmes.SubDetClusterApvTH2->Fill(tbx_corr%70,sdetmes.totNClusters); if (subdetswitchdbxcycleprofon) sdetmes.SubDetClusterDBxCycleProf->Fill(dbxincycle,sdetmes.totNClusters); if (subdetswitchapvcycledbxprof2on) sdetmes.SubDetApvDBxProf2->Fill(tbx_corr%70,dbx,sdetmes.totNClusters); } } }
void SiStripMonitorCluster::beginRun | ( | const edm::Run & | run, |
const edm::EventSetup & | es | ||
) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 166 of file SiStripMonitorCluster.cc.
References createMEs(), edm::EventSetup::get(), m_cacheID_, ModuleMEsMap, reset_each_run, ResetModuleMEs(), and show_mechanical_structure_view.
{ if (show_mechanical_structure_view) { unsigned long long cacheID = es.get<SiStripDetCablingRcd>().cacheIdentifier(); if (m_cacheID_ != cacheID) { m_cacheID_ = cacheID; edm::LogInfo("SiStripMonitorCluster") <<"SiStripMonitorCluster::beginRun: " << " Creating MEs for new Cabling "; createMEs(es); } } else if (reset_each_run) { edm::LogInfo("SiStripMonitorCluster") <<"SiStripMonitorCluster::beginRun: " << " Resetting MEs "; for (std::map<uint32_t, ModMEs >::const_iterator idet = ModuleMEsMap.begin() ; idet!=ModuleMEsMap.end() ; idet++) { ResetModuleMEs(idet->first); } } }
MonitorElement * SiStripMonitorCluster::bookME1D | ( | const char * | ParameterSetLabel, |
const char * | HistoName | ||
) | [private] |
Definition at line 910 of file SiStripMonitorCluster.cc.
References DQMStore::book1D(), conf_, dqmStore_, and edm::ParameterSet::getParameter().
Referenced by createLayerMEs(), createModuleMEs(), and createSubDetMEs().
{ Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel); return dqmStore_->book1D(HistoName,HistoName, Parameters.getParameter<int32_t>("Nbinx"), Parameters.getParameter<double>("xmin"), Parameters.getParameter<double>("xmax") ); }
MonitorElement * SiStripMonitorCluster::bookMETrend | ( | const char * | ParameterSetLabel, |
const char * | HistoName | ||
) | [private] |
Definition at line 889 of file SiStripMonitorCluster.cc.
References DQMStore::bookProfile(), conf_, MonitorElement::DQM_KIND_TPROFILE, dqmStore_, edm::ParameterSet::getParameter(), and MonitorElement::setAxisTitle().
Referenced by createLayerMEs().
{ Parameters = conf_.getParameter<edm::ParameterSet>(ParameterSetLabel); edm::ParameterSet ParametersTrend = conf_.getParameter<edm::ParameterSet>("Trending"); MonitorElement* me = dqmStore_->bookProfile(HistoName,HistoName, ParametersTrend.getParameter<int32_t>("Nbins"), // 0, ParametersTrend.getParameter<double>("xmin"), ParametersTrend.getParameter<double>("xmax"), // ParametersTrend.getParameter<int32_t>("Nbins"), 100, //that parameter should not be there !? ParametersTrend.getParameter<double>("ymin"), ParametersTrend.getParameter<double>("ymax"), "" ); if(!me) return me; me->setAxisTitle("Event Time in Seconds",1); if (me->kind() == MonitorElement::DQM_KIND_TPROFILE) me->getTH1()->SetBit(TH1::kCanRebin); return me; }
void SiStripMonitorCluster::createLayerMEs | ( | std::string | label, |
int | ndets | ||
) | [private] |
Definition at line 656 of file SiStripMonitorCluster.cc.
References bookME1D(), bookMETrend(), DQMStore::bookProfile(), SiStripHistoId::createHistoLayer(), createTrendMEs, dqmStore_, label, SiStripMonitorCluster::LayerMEs::LayerClusterCharge, SiStripMonitorCluster::LayerMEs::LayerClusterChargeTrend, SiStripMonitorCluster::LayerMEs::LayerClusterNoise, SiStripMonitorCluster::LayerMEs::LayerClusterNoiseTrend, SiStripMonitorCluster::LayerMEs::LayerClusterStoN, SiStripMonitorCluster::LayerMEs::LayerClusterStoNTrend, SiStripMonitorCluster::LayerMEs::LayerClusterWidth, SiStripMonitorCluster::LayerMEs::LayerClusterWidthProfile, SiStripMonitorCluster::LayerMEs::LayerClusterWidthTrend, SiStripMonitorCluster::LayerMEs::LayerLocalOccupancy, SiStripMonitorCluster::LayerMEs::LayerLocalOccupancyTrend, LayerMEsMap, SiStripMonitorCluster::LayerMEs::LayerNumberOfClusterProfile, layerswitchcluschargeon, layerswitchclusnoiseon, layerswitchclusstonon, layerswitchclusterwidthprofon, layerswitchcluswidthon, layerswitchlocaloccupancy, and layerswitchnumclusterprofon.
Referenced by createMEs().
{ SiStripHistoId hidmanager; LayerMEs layerMEs; layerMEs.LayerClusterStoN = 0; layerMEs.LayerClusterStoNTrend = 0; layerMEs.LayerClusterCharge = 0; layerMEs.LayerClusterChargeTrend = 0; layerMEs.LayerClusterNoise = 0; layerMEs.LayerClusterNoiseTrend = 0; layerMEs.LayerClusterWidth = 0; layerMEs.LayerClusterWidthTrend = 0; layerMEs.LayerLocalOccupancy = 0; layerMEs.LayerLocalOccupancyTrend = 0; layerMEs.LayerNumberOfClusterProfile = 0; layerMEs.LayerClusterWidthProfile = 0; //Cluster Width if(layerswitchcluswidthon) { layerMEs.LayerClusterWidth=bookME1D("TH1ClusterWidth", hidmanager.createHistoLayer("Summary_ClusterWidth","layer",label,"").c_str()); if (createTrendMEs) layerMEs.LayerClusterWidthTrend=bookMETrend("TH1ClusterWidth", hidmanager.createHistoLayer("Trend_ClusterWidth","layer",label,"").c_str()); } //Cluster Noise if(layerswitchclusnoiseon) { layerMEs.LayerClusterNoise=bookME1D("TH1ClusterNoise", hidmanager.createHistoLayer("Summary_ClusterNoise","layer",label,"").c_str()); if (createTrendMEs) layerMEs.LayerClusterNoiseTrend=bookMETrend("TH1ClusterNoise", hidmanager.createHistoLayer("Trend_ClusterNoise","layer",label,"").c_str()); } //Cluster Charge if(layerswitchcluschargeon) { layerMEs.LayerClusterCharge=bookME1D("TH1ClusterCharge", hidmanager.createHistoLayer("Summary_ClusterCharge","layer",label,"").c_str()); if (createTrendMEs) layerMEs.LayerClusterChargeTrend=bookMETrend("TH1ClusterCharge", hidmanager.createHistoLayer("Trend_ClusterCharge","layer",label,"").c_str()); } //Cluster StoN if(layerswitchclusstonon) { layerMEs.LayerClusterStoN=bookME1D("TH1ClusterStoN", hidmanager.createHistoLayer("Summary_ClusterSignalOverNoise","layer",label,"").c_str()); if (createTrendMEs) layerMEs.LayerClusterStoNTrend=bookMETrend("TH1ClusterStoN", hidmanager.createHistoLayer("Trend_ClusterSignalOverNoise","layer",label,"").c_str()); } //Cluster Occupancy if(layerswitchlocaloccupancy) { layerMEs.LayerLocalOccupancy=bookME1D("TH1ModuleLocalOccupancy", hidmanager.createHistoLayer("Summary_ClusterLocalOccupancy","layer",label,"").c_str()); if (createTrendMEs) layerMEs.LayerLocalOccupancyTrend=bookMETrend("TH1ModuleLocalOccupancy", hidmanager.createHistoLayer("Trend_ClusterLocalOccupancy","layer",label,"").c_str()); } // # of Cluster Profile if(layerswitchnumclusterprofon) { std::string hid = hidmanager.createHistoLayer("NumberOfClusterProfile","layer",label,""); layerMEs.LayerNumberOfClusterProfile = dqmStore_->bookProfile(hid, hid, ndets, 0.5, ndets+0.5,21, -0.5, 20.5); } // Cluster Width Profile if(layerswitchclusterwidthprofon) { std::string hid = hidmanager.createHistoLayer("ClusterWidthProfile","layer",label,""); layerMEs.LayerClusterWidthProfile = dqmStore_->bookProfile(hid, hid, ndets, 0.5, ndets+0.5, 20, -0.5, 19.5); } LayerMEsMap[label]=layerMEs; }
void SiStripMonitorCluster::createMEs | ( | const edm::EventSetup & | es | ) | [private] |
Definition at line 187 of file SiStripMonitorCluster.cc.
References abs, DQMStore::book2D(), SiStripMonitorCluster::ModMEs::ClusterCharge, SiStripMonitorCluster::ModMEs::ClusterDigiPosition, SiStripMonitorCluster::ModMEs::ClusterNoise, SiStripMonitorCluster::ModMEs::ClusterPosition, SiStripMonitorCluster::ModMEs::ClusterSignalOverNoise, SiStripMonitorCluster::ModMEs::ClusterSignalOverNoiseVsPos, clustertkhistomapon, SiStripMonitorCluster::ModMEs::ClusterWidth, conf_, createLayerMEs(), createModuleMEs(), createSubDetMEs(), cond::rpcobgas::detid, dqmStore_, edm::EventSetup::get(), edm::ParameterSet::getParameter(), SiStripFolderOrganizer::GetSubDetAndLayer(), SiStripFolderOrganizer::getSubDetFolderAndTag(), SiStripHistoId::getSubdetid(), SiStripSubStructure::getTECDetectors(), SiStripSubStructure::getTIBDetectors(), SiStripSubStructure::getTIDDetectors(), SiStripSubStructure::getTOBDetectors(), GlobalApvCycleDBxTH2, globalswitchapvcycledbxth2on, label, LayerDetMap, LayerMEsMap, Mod_On_, SiStripMonitorCluster::ModMEs::ModuleLocalOccupancy, ModuleMEsMap, SiStripMonitorCluster::ModMEs::NrOfClusterizedStrips, SiStripMonitorCluster::ModMEs::NumberOfClusters, reset_each_run, ResetModuleMEs(), MonitorElement::setAxisTitle(), DQMStore::setCurrentFolder(), SiStripFolderOrganizer::setDetectorFolder(), SiStripFolderOrganizer::setLayerFolder(), SiStripFolderOrganizer::setSiStripFolder(), SiStripFolderOrganizer::setSiStripFolderName(), show_mechanical_structure_view, SiStripDetCabling_, SubDetMEsMap, tkmapcluster, and topFolderName_.
Referenced by beginRun().
{ if ( show_mechanical_structure_view ){ // take from eventSetup the SiStripDetCabling object - here will use SiStripDetControl later on es.get<SiStripDetCablingRcd>().get(SiStripDetCabling_); // get list of active detectors from SiStripDetCabling std::vector<uint32_t> activeDets; SiStripDetCabling_->addActiveDetectorsRawIds(activeDets); SiStripSubStructure substructure; SiStripFolderOrganizer folder_organizer; folder_organizer.setSiStripFolderName(topFolderName_); folder_organizer.setSiStripFolder(); // Create TkHistoMap for Cluster if (clustertkhistomapon) { if (topFolderName_ == "SiStrip") tkmapcluster = new TkHistoMap("SiStrip/TkHistoMap","TkHMap_NumberOfCluster",0.,1); else tkmapcluster = new TkHistoMap(topFolderName_+"/TkHistoMap","TkHMap_NumberOfCluster",0.,0); } // loop over detectors and book MEs edm::LogInfo("SiStripTkDQM|SiStripMonitorCluster")<<"nr. of activeDets: "<<activeDets.size(); for(std::vector<uint32_t>::iterator detid_iterator = activeDets.begin(); detid_iterator!=activeDets.end(); detid_iterator++){ uint32_t detid = (*detid_iterator); // remove any eventual zero elements - there should be none, but just in case if(detid == 0) { activeDets.erase(detid_iterator); continue; } if (Mod_On_) { ModMEs mod_single; mod_single.NumberOfClusters = 0; mod_single.ClusterPosition = 0; mod_single.ClusterDigiPosition = 0; mod_single.ClusterWidth = 0; mod_single.ClusterCharge = 0; mod_single.ClusterNoise = 0; mod_single.ClusterSignalOverNoise = 0; mod_single.ClusterSignalOverNoiseVsPos = 0; mod_single.ModuleLocalOccupancy = 0; mod_single.NrOfClusterizedStrips = 0; // set appropriate folder using SiStripFolderOrganizer folder_organizer.setDetectorFolder(detid); // pass the detid to this method if (reset_each_run) ResetModuleMEs(detid); createModuleMEs(mod_single, detid); // append to ModuleMEsMap ModuleMEsMap.insert( std::make_pair(detid, mod_single)); } // Create Layer Level MEs if they are not created already std::pair<std::string,int32_t> det_layer_pair = folder_organizer.GetSubDetAndLayer(detid); SiStripHistoId hidmanager; std::string label = hidmanager.getSubdetid(detid,false); std::map<std::string, LayerMEs>::iterator iLayerME = LayerMEsMap.find(label); if(iLayerME==LayerMEsMap.end()) { // get detids for the layer int32_t lnumber = det_layer_pair.second; std::vector<uint32_t> layerDetIds; if (det_layer_pair.first == "TIB") { substructure.getTIBDetectors(activeDets,layerDetIds,lnumber,0,0,0); } else if (det_layer_pair.first == "TOB") { substructure.getTOBDetectors(activeDets,layerDetIds,lnumber,0,0); } else if (det_layer_pair.first == "TID" && lnumber > 0) { substructure.getTIDDetectors(activeDets,layerDetIds,2,abs(lnumber),0,0); } else if (det_layer_pair.first == "TID" && lnumber < 0) { substructure.getTIDDetectors(activeDets,layerDetIds,1,abs(lnumber),0,0); } else if (det_layer_pair.first == "TEC" && lnumber > 0) { substructure.getTECDetectors(activeDets,layerDetIds,2,abs(lnumber),0,0,0,0); } else if (det_layer_pair.first == "TEC" && lnumber < 0) { substructure.getTECDetectors(activeDets,layerDetIds,1,abs(lnumber),0,0,0,0); } LayerDetMap[label] = layerDetIds; // book Layer MEs folder_organizer.setLayerFolder(detid,det_layer_pair.second); createLayerMEs(label, layerDetIds.size()); } // book sub-detector plots std::pair<std::string,std::string> sdet_pair = folder_organizer.getSubDetFolderAndTag(detid); if (SubDetMEsMap.find(sdet_pair.second) == SubDetMEsMap.end()){ dqmStore_->setCurrentFolder(sdet_pair.first); createSubDetMEs(sdet_pair.second); } }//end of loop over detectors // Create Global Histogram if (globalswitchapvcycledbxth2on) { dqmStore_->setCurrentFolder(topFolderName_+"/MechanicalView/"); edm::ParameterSet GlobalTH2Parameters = conf_.getParameter<edm::ParameterSet>("TH2ApvCycleVsDBxGlobal"); std::string HistoName = "DeltaBx_vs_ApvCycle"; GlobalApvCycleDBxTH2 = dqmStore_->book2D(HistoName,HistoName, GlobalTH2Parameters.getParameter<int32_t>("Nbinsx"), GlobalTH2Parameters.getParameter<double>("xmin"), GlobalTH2Parameters.getParameter<double>("xmax"), GlobalTH2Parameters.getParameter<int32_t>("Nbinsy"), GlobalTH2Parameters.getParameter<double>("ymin"), GlobalTH2Parameters.getParameter<double>("ymax")); GlobalApvCycleDBxTH2->setAxisTitle("APV Cycle (Corrected Absolute Bx % 70)",1); GlobalApvCycleDBxTH2->setAxisTitle("Delta Bunch Crossing Cycle",2); } }//end of if }//end of method
void SiStripMonitorCluster::createModuleMEs | ( | ModMEs & | mod_single, |
uint32_t | detid | ||
) | [private] |
Definition at line 556 of file SiStripMonitorCluster.cc.
References DQMStore::book1D(), bookME1D(), DQMStore::bookProfile(), SiStripMonitorCluster::ModMEs::ClusterCharge, SiStripMonitorCluster::ModMEs::ClusterDigiPosition, SiStripMonitorCluster::ModMEs::ClusterNoise, SiStripMonitorCluster::ModMEs::ClusterPosition, SiStripMonitorCluster::ModMEs::ClusterSignalOverNoise, SiStripMonitorCluster::ModMEs::ClusterSignalOverNoiseVsPos, SiStripMonitorCluster::ModMEs::ClusterWidth, conf_, SiStripHistoId::createHistoId(), dqmStore_, edm::ParameterSet::getParameter(), MonitorElement::getTH1(), SiStripMonitorCluster::ModMEs::ModuleLocalOccupancy, moduleswitchcluschargeon, moduleswitchclusdigiposon, moduleswitchclusnoiseon, moduleswitchclusposon, moduleswitchclusstonon, moduleswitchclusstonVsposon, moduleswitchcluswidthon, moduleswitchlocaloccupancy, moduleswitchncluson, moduleswitchnrclusterizedstrip, SiStripMonitorCluster::ModMEs::NrOfClusterizedStrips, SiStripMonitorCluster::ModMEs::NumberOfClusters, MonitorElement::setAxisTitle(), SiStripDetCabling_, and DQMStore::tag().
Referenced by createMEs().
{ // use SistripHistoId for producing histogram id (and title) SiStripHistoId hidmanager; std::string hid; //nr. of clusters per module if(moduleswitchncluson) { hid = hidmanager.createHistoId("NumberOfClusters","det",detid); mod_single.NumberOfClusters = bookME1D("TH1nClusters", hid.c_str()); dqmStore_->tag(mod_single.NumberOfClusters, detid); mod_single.NumberOfClusters->setAxisTitle("number of clusters in one detector module"); mod_single.NumberOfClusters->getTH1()->StatOverflows(kTRUE); // over/underflows in Mean calculation } //ClusterPosition if(moduleswitchclusposon) { short total_nr_strips = SiStripDetCabling_->nApvPairs(detid) * 2 * 128; // get correct # of avp pairs hid = hidmanager.createHistoId("ClusterPosition","det",detid); mod_single.ClusterPosition = dqmStore_->book1D(hid, hid, total_nr_strips, 0.5, total_nr_strips+0.5); dqmStore_->tag(mod_single.ClusterPosition, detid); mod_single.ClusterPosition->setAxisTitle("cluster position [strip number +0.5]"); } //ClusterDigiPosition if(moduleswitchclusdigiposon) { short total_nr_strips = SiStripDetCabling_->nApvPairs(detid) * 2 * 128; // get correct # of avp pairs hid = hidmanager.createHistoId("ClusterDigiPosition","det",detid); mod_single.ClusterDigiPosition = dqmStore_->book1D(hid, hid, total_nr_strips, 0.5, total_nr_strips+0.5); dqmStore_->tag(mod_single.ClusterDigiPosition, detid); mod_single.ClusterDigiPosition->setAxisTitle("digi in cluster position [strip number +0.5]"); } //ClusterWidth if(moduleswitchcluswidthon) { hid = hidmanager.createHistoId("ClusterWidth","det",detid); mod_single.ClusterWidth = bookME1D("TH1ClusterWidth", hid.c_str()); dqmStore_->tag(mod_single.ClusterWidth, detid); mod_single.ClusterWidth->setAxisTitle("cluster width [nr strips]"); } //ClusterCharge if(moduleswitchcluschargeon) { hid = hidmanager.createHistoId("ClusterCharge","det",detid); mod_single.ClusterCharge = bookME1D("TH1ClusterCharge", hid.c_str()); dqmStore_->tag(mod_single.ClusterCharge, detid); mod_single.ClusterCharge->setAxisTitle("cluster charge [ADC]"); } //ClusterNoise if(moduleswitchclusnoiseon) { hid = hidmanager.createHistoId("ClusterNoise","det",detid); mod_single.ClusterNoise = bookME1D("TH1ClusterNoise", hid.c_str()); dqmStore_->tag(mod_single.ClusterNoise, detid); mod_single.ClusterNoise->setAxisTitle("cluster noise"); } //ClusterSignalOverNoise if(moduleswitchclusstonon) { hid = hidmanager.createHistoId("ClusterSignalOverNoise","det",detid); mod_single.ClusterSignalOverNoise = bookME1D("TH1ClusterStoN", hid.c_str()); dqmStore_->tag(mod_single.ClusterSignalOverNoise, detid); mod_single.ClusterSignalOverNoise->setAxisTitle("ratio of signal to noise for each cluster"); } //ClusterSignalOverNoiseVsPos if(moduleswitchclusstonVsposon) { hid = hidmanager.createHistoId("ClusterSignalOverNoiseVsPos","det",detid); Parameters = conf_.getParameter<edm::ParameterSet>("TH1ClusterStoNVsPos"); mod_single.ClusterSignalOverNoiseVsPos= dqmStore_->bookProfile(hid.c_str(),hid.c_str(), Parameters.getParameter<int32_t>("Nbinx"), Parameters.getParameter<double>("xmin"), Parameters.getParameter<double>("xmax"), Parameters.getParameter<int32_t>("Nbiny"), Parameters.getParameter<double>("ymin"), Parameters.getParameter<double>("ymax") ); dqmStore_->tag(mod_single.ClusterSignalOverNoiseVsPos, detid); mod_single.ClusterSignalOverNoiseVsPos->setAxisTitle("pos"); } //ModuleLocalOccupancy if (moduleswitchlocaloccupancy) { hid = hidmanager.createHistoId("ClusterLocalOccupancy","det",detid); mod_single.ModuleLocalOccupancy = bookME1D("TH1ModuleLocalOccupancy", hid.c_str()); dqmStore_->tag(mod_single.ModuleLocalOccupancy, detid); mod_single.ModuleLocalOccupancy->setAxisTitle("module local occupancy [% of clusterized strips]"); } //NrOfClusterizedStrips if (moduleswitchnrclusterizedstrip) { hid = hidmanager.createHistoId("NrOfClusterizedStrips","det",detid); mod_single.NrOfClusterizedStrips = bookME1D("TH1NrOfClusterizedStrips", hid.c_str()); dqmStore_->tag(mod_single.NrOfClusterizedStrips, detid); mod_single.NrOfClusterizedStrips->setAxisTitle("number of clusterized strips"); } }
void SiStripMonitorCluster::createSubDetMEs | ( | std::string | label | ) | [private] |
Definition at line 722 of file SiStripMonitorCluster.cc.
References DQMStore::book2D(), bookME1D(), DQMStore::bookProfile(), DQMStore::bookProfile2D(), conf_, MonitorElement::DQM_KIND_TPROFILE, dqmStore_, edm::ParameterSet::getParameter(), MonitorElement::getTH1(), MonitorElement::kind(), label, MonitorElement::setAxisTitle(), SiStripMonitorCluster::SubDetMEs::SubDetApvDBxProf2, SiStripMonitorCluster::SubDetMEs::SubDetClusterApvProf, SiStripMonitorCluster::SubDetMEs::SubDetClusterApvTH2, SiStripMonitorCluster::SubDetMEs::SubDetClusterDBxCycleProf, SubDetMEsMap, subdetswitchapvcycledbxprof2on, subdetswitchapvcycleprofon, subdetswitchapvcycleth2on, subdetswitchdbxcycleprofon, subdetswitchtotclusprofon, subdetswitchtotclusth1on, SiStripMonitorCluster::SubDetMEs::SubDetTotClusterProf, SiStripMonitorCluster::SubDetMEs::SubDetTotClusterTH1, and SiStripMonitorCluster::SubDetMEs::totNClusters.
Referenced by createMEs().
{ SubDetMEs subdetMEs; subdetMEs.totNClusters = 0; subdetMEs.SubDetTotClusterTH1 = 0; subdetMEs.SubDetTotClusterProf = 0; subdetMEs.SubDetClusterApvProf = 0; subdetMEs.SubDetClusterApvTH2 = 0; subdetMEs.SubDetClusterDBxCycleProf = 0; subdetMEs.SubDetApvDBxProf2 = 0; std::string HistoName; // Total Number of Cluster - 1D if (subdetswitchtotclusth1on){ HistoName = "TotalNumberOfCluster__" + label; subdetMEs.SubDetTotClusterTH1 = bookME1D("TH1TotalNumberOfClusters",HistoName.c_str()); subdetMEs.SubDetTotClusterTH1->setAxisTitle("Total number of clusters in subdetector"); subdetMEs.SubDetTotClusterTH1->getTH1()->StatOverflows(kTRUE); // over/underflows in Mean calculation } // Total Number of Cluster vs Time - Profile if (subdetswitchtotclusprofon){ edm::ParameterSet Parameters = conf_.getParameter<edm::ParameterSet>("TProfTotalNumberOfClusters"); HistoName = "TotalNumberOfClusterProfile__" + label; subdetMEs.SubDetTotClusterProf = dqmStore_->bookProfile(HistoName,HistoName, Parameters.getParameter<int32_t>("Nbins"), Parameters.getParameter<double>("xmin"), Parameters.getParameter<double>("xmax"), 100, //that parameter should not be there !? Parameters.getParameter<double>("ymin"), Parameters.getParameter<double>("ymax"), "" ); subdetMEs.SubDetTotClusterProf->setAxisTitle("Event Time (Seconds)",1); if (subdetMEs.SubDetTotClusterProf->kind() == MonitorElement::DQM_KIND_TPROFILE) subdetMEs.SubDetTotClusterProf->getTH1()->SetBit(TH1::kCanRebin); } // Total Number of Cluster vs APV cycle - Profile if(subdetswitchapvcycleprofon){ edm::ParameterSet Parameters = conf_.getParameter<edm::ParameterSet>("TProfClustersApvCycle"); HistoName = "Cluster_vs_ApvCycle__" + label; subdetMEs.SubDetClusterApvProf=dqmStore_->bookProfile(HistoName,HistoName, Parameters.getParameter<int32_t>("Nbins"), Parameters.getParameter<double>("xmin"), Parameters.getParameter<double>("xmax"), 200, //that parameter should not be there !? Parameters.getParameter<double>("ymin"), Parameters.getParameter<double>("ymax"), "" ); subdetMEs.SubDetClusterApvProf->setAxisTitle("Apv Cycle (Corrected Absolute Bx % 70)",1); } // Total Number of Clusters vs ApvCycle - 2D if(subdetswitchapvcycleth2on){ edm::ParameterSet Parameters = conf_.getParameter<edm::ParameterSet>("TH2ClustersApvCycle"); HistoName = "Cluster_vs_ApvCycle_2D__" + label; // Adjusting the scale for 2D histogram double h2ymax = 9999.0; double yfact = Parameters.getParameter<double>("yfactor"); if(label.find("TIB") != std::string::npos) h2ymax = (6984.*256.)*yfact; else if (label.find("TID") != std::string::npos) h2ymax = (2208.*256.)*yfact; else if (label.find("TOB") != std::string::npos) h2ymax = (12906.*256.)*yfact; else if (label.find("TEC") != std::string::npos) h2ymax = (7552.*2.*256.)*yfact; subdetMEs.SubDetClusterApvTH2=dqmStore_->book2D(HistoName,HistoName, Parameters.getParameter<int32_t>("Nbinsx"), Parameters.getParameter<double>("xmin"), Parameters.getParameter<double>("xmax"), Parameters.getParameter<int32_t>("Nbinsy"), Parameters.getParameter<double>("ymin"), h2ymax); subdetMEs.SubDetClusterApvTH2->setAxisTitle("Apv Cycle (Corrected Absolute Bx % 70))",1); subdetMEs.SubDetClusterApvTH2->setAxisTitle("Total # of Clusters",2); } // Total Number of Cluster vs DeltaBxCycle - Profile if(subdetswitchdbxcycleprofon){ edm::ParameterSet Parameters = conf_.getParameter<edm::ParameterSet>("TProfClustersVsDBxCycle"); HistoName = "Cluster_vs_DeltaBxCycle__" + label; subdetMEs.SubDetClusterDBxCycleProf = dqmStore_->bookProfile(HistoName,HistoName, Parameters.getParameter<int32_t>("Nbins"), Parameters.getParameter<double>("xmin"), Parameters.getParameter<double>("xmax"), 200, //that parameter should not be there !? Parameters.getParameter<double>("ymin"), Parameters.getParameter<double>("ymax"), "" ); subdetMEs.SubDetClusterDBxCycleProf->setAxisTitle("Delta Bunch Crossing Cycle",1); } // DeltaBx vs ApvCycle - 2DProfile if(subdetswitchapvcycledbxprof2on){ edm::ParameterSet Parameters = conf_.getParameter<edm::ParameterSet>("TProf2ApvCycleVsDBx"); HistoName = "DeltaBx_vs_ApvCycle__" + label; subdetMEs.SubDetApvDBxProf2 = dqmStore_->bookProfile2D(HistoName,HistoName, Parameters.getParameter<int32_t>("Nbinsx"), Parameters.getParameter<double>("xmin"), Parameters.getParameter<double>("xmax"), Parameters.getParameter<int32_t>("Nbinsy"), Parameters.getParameter<double>("ymin"), Parameters.getParameter<double>("ymax"), Parameters.getParameter<double>("zmin"), Parameters.getParameter<double>("zmax"), "" ); subdetMEs.SubDetApvDBxProf2->setAxisTitle("APV Cycle (Corrected Absolute Bx % 70)",1); subdetMEs.SubDetApvDBxProf2->setAxisTitle("Delta Bunch Crossing Cycle",2); } SubDetMEsMap[label]=subdetMEs; }
void SiStripMonitorCluster::endJob | ( | void | ) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 528 of file SiStripMonitorCluster.cc.
References conf_, dqmStore_, edm::ParameterSet::getParameter(), ExpressReco_HICollisions_FallBack::outputFileName, and DQMStore::save().
{ bool outputMEsInRootFile = conf_.getParameter<bool>("OutputMEsInRootFile"); std::string outputFileName = conf_.getParameter<std::string>("OutputFileName"); // save histos in a file if(outputMEsInRootFile) dqmStore_->save(outputFileName); }
void SiStripMonitorCluster::fillLayerMEs | ( | LayerMEs & | layerMEs, |
ClusterProperties & | cluster, | ||
float | timeinorbit | ||
) | [private] |
Definition at line 866 of file SiStripMonitorCluster.cc.
References SiStripMonitorCluster::ClusterProperties::charge, createTrendMEs, fillME(), SiStripMonitorCluster::LayerMEs::LayerClusterCharge, SiStripMonitorCluster::LayerMEs::LayerClusterChargeTrend, SiStripMonitorCluster::LayerMEs::LayerClusterNoise, SiStripMonitorCluster::LayerMEs::LayerClusterNoiseTrend, SiStripMonitorCluster::LayerMEs::LayerClusterStoN, SiStripMonitorCluster::LayerMEs::LayerClusterStoNTrend, SiStripMonitorCluster::LayerMEs::LayerClusterWidth, SiStripMonitorCluster::LayerMEs::LayerClusterWidthTrend, layerswitchcluschargeon, layerswitchclusnoiseon, layerswitchclusstonon, layerswitchcluswidthon, SiStripMonitorCluster::ClusterProperties::noise, and SiStripMonitorCluster::ClusterProperties::width.
Referenced by analyze().
{ if(layerswitchclusstonon) { fillME(layerMEs.LayerClusterStoN ,cluster.charge/cluster.noise); if (createTrendMEs) fillME(layerMEs.LayerClusterStoNTrend,timeinorbit,cluster.charge/cluster.noise); } if(layerswitchcluschargeon) { fillME(layerMEs.LayerClusterCharge,cluster.charge); if (createTrendMEs) fillME(layerMEs.LayerClusterChargeTrend,timeinorbit,cluster.charge); } if(layerswitchclusnoiseon) { fillME(layerMEs.LayerClusterNoise ,cluster.noise); if (createTrendMEs) fillME(layerMEs.LayerClusterNoiseTrend,timeinorbit,cluster.noise); } if(layerswitchcluswidthon) { fillME(layerMEs.LayerClusterWidth ,cluster.width); if (createTrendMEs) fillME(layerMEs.LayerClusterWidthTrend,timeinorbit,cluster.width); } }
void SiStripMonitorCluster::fillME | ( | MonitorElement * | ME, |
float | value1 | ||
) | [inline, private] |
Definition at line 100 of file SiStripMonitorCluster.h.
References MonitorElement::Fill().
Referenced by analyze(), and fillLayerMEs().
{if (ME!=0)ME->Fill(value1);}
void SiStripMonitorCluster::fillME | ( | MonitorElement * | ME, |
float | value1, | ||
float | value2 | ||
) | [inline, private] |
Definition at line 101 of file SiStripMonitorCluster.h.
References MonitorElement::Fill().
{if (ME!=0)ME->Fill(value1,value2);}
void SiStripMonitorCluster::fillME | ( | MonitorElement * | ME, |
float | value1, | ||
float | value2, | ||
float | value3 | ||
) | [inline, private] |
Definition at line 102 of file SiStripMonitorCluster.h.
References MonitorElement::Fill().
{if (ME!=0)ME->Fill(value1,value2,value3);}
void SiStripMonitorCluster::fillME | ( | MonitorElement * | ME, |
float | value1, | ||
float | value2, | ||
float | value3, | ||
float | value4 | ||
) | [inline, private] |
Definition at line 103 of file SiStripMonitorCluster.h.
References MonitorElement::Fill().
{if (ME!=0)ME->Fill(value1,value2,value3,value4);}
void SiStripMonitorCluster::fillModuleMEs | ( | ModMEs & | mod_mes, |
ClusterProperties & | cluster | ||
) | [private] |
Definition at line 831 of file SiStripMonitorCluster.cc.
References SiStripMonitorCluster::ClusterProperties::charge, SiStripMonitorCluster::ModMEs::ClusterCharge, SiStripMonitorCluster::ModMEs::ClusterDigiPosition, SiStripMonitorCluster::ModMEs::ClusterNoise, SiStripMonitorCluster::ModMEs::ClusterPosition, SiStripMonitorCluster::ModMEs::ClusterSignalOverNoise, SiStripMonitorCluster::ModMEs::ClusterSignalOverNoiseVsPos, SiStripMonitorCluster::ModMEs::ClusterWidth, moduleswitchcluschargeon, moduleswitchclusdigiposon, moduleswitchclusnoiseon, moduleswitchclusposon, moduleswitchclusstonon, moduleswitchclusstonVsposon, moduleswitchcluswidthon, SiStripMonitorCluster::ClusterProperties::noise, SiStripMonitorCluster::ClusterProperties::position, SiStripMonitorCluster::ClusterProperties::start, and SiStripMonitorCluster::ClusterProperties::width.
Referenced by analyze().
{ if(moduleswitchclusposon && (mod_mes.ClusterPosition)) // position of cluster (mod_mes.ClusterPosition)->Fill(cluster.position); // position of digis in cluster if(moduleswitchclusdigiposon && (mod_mes.ClusterDigiPosition)) { for(int ipos=cluster.start+1; ipos<=cluster.start+cluster.width; ipos++){ (mod_mes.ClusterDigiPosition)->Fill(ipos); } } if(moduleswitchcluswidthon && (mod_mes.ClusterWidth)) // width of cluster (mod_mes.ClusterWidth)->Fill(static_cast<float>(cluster.width)); if(moduleswitchclusstonon && (mod_mes.ClusterSignalOverNoise)) {// SignalToNoise if (cluster.noise > 0) (mod_mes.ClusterSignalOverNoise)->Fill(cluster.charge/cluster.noise); } if(moduleswitchclusstonVsposon && (mod_mes.ClusterSignalOverNoiseVsPos)) {// SignalToNoise if (cluster.noise > 0) (mod_mes.ClusterSignalOverNoiseVsPos)->Fill(cluster.position,cluster.charge/cluster.noise); } if(moduleswitchclusnoiseon && (mod_mes.ClusterNoise)) // Noise (mod_mes.ClusterNoise)->Fill(cluster.noise); if(moduleswitchcluschargeon && (mod_mes.ClusterCharge)) // charge of cluster (mod_mes.ClusterCharge)->Fill(cluster.charge); }
void SiStripMonitorCluster::ResetModuleMEs | ( | uint32_t | idet | ) | [private] |
Definition at line 538 of file SiStripMonitorCluster.cc.
References SiStripMonitorCluster::ModMEs::ClusterCharge, SiStripMonitorCluster::ModMEs::ClusterDigiPosition, SiStripMonitorCluster::ModMEs::ClusterNoise, SiStripMonitorCluster::ModMEs::ClusterPosition, SiStripMonitorCluster::ModMEs::ClusterSignalOverNoise, SiStripMonitorCluster::ModMEs::ClusterSignalOverNoiseVsPos, SiStripMonitorCluster::ModMEs::ClusterWidth, SiStripMonitorCluster::ModMEs::ModuleLocalOccupancy, ModuleMEsMap, moduleswitchcluschargeon, moduleswitchclusdigiposon, moduleswitchclusnoiseon, moduleswitchclusposon, moduleswitchclusstonon, moduleswitchclusstonVsposon, moduleswitchcluswidthon, moduleswitchlocaloccupancy, moduleswitchncluson, moduleswitchnrclusterizedstrip, SiStripMonitorCluster::ModMEs::NrOfClusterizedStrips, SiStripMonitorCluster::ModMEs::NumberOfClusters, pos, and MonitorElement::Reset().
Referenced by beginRun(), and createMEs().
{ std::map<uint32_t, ModMEs >::iterator pos = ModuleMEsMap.find(idet); ModMEs mod_me = pos->second; if (moduleswitchncluson) mod_me.NumberOfClusters->Reset(); if (moduleswitchclusposon) mod_me.ClusterPosition->Reset(); if (moduleswitchclusdigiposon) mod_me.ClusterDigiPosition->Reset(); if (moduleswitchclusstonVsposon) mod_me.ClusterSignalOverNoiseVsPos->Reset(); if (moduleswitchcluswidthon) mod_me.ClusterWidth->Reset(); if (moduleswitchcluschargeon) mod_me.ClusterCharge->Reset(); if (moduleswitchclusnoiseon) mod_me.ClusterNoise->Reset(); if (moduleswitchclusstonon) mod_me.ClusterSignalOverNoise->Reset(); if (moduleswitchlocaloccupancy) mod_me.ModuleLocalOccupancy->Reset(); if (moduleswitchnrclusterizedstrip) mod_me.NrOfClusterizedStrips->Reset(); }
bool SiStripMonitorCluster::applyClusterQuality_ [private] |
Definition at line 174 of file SiStripMonitorCluster.h.
Referenced by analyze(), and SiStripMonitorCluster().
Definition at line 172 of file SiStripMonitorCluster.h.
Referenced by analyze(), and SiStripMonitorCluster().
Definition at line 170 of file SiStripMonitorCluster.h.
Referenced by analyze(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::clustertkhistomapon [private] |
Definition at line 162 of file SiStripMonitorCluster.h.
Referenced by analyze(), createMEs(), and SiStripMonitorCluster().
Definition at line 109 of file SiStripMonitorCluster.h.
Referenced by bookME1D(), bookMETrend(), createMEs(), createModuleMEs(), createSubDetMEs(), endJob(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::createTrendMEs [private] |
Definition at line 163 of file SiStripMonitorCluster.h.
Referenced by analyze(), createLayerMEs(), fillLayerMEs(), and SiStripMonitorCluster().
Definition at line 180 of file SiStripMonitorCluster.h.
Referenced by analyze(), SiStripMonitorCluster(), and ~SiStripMonitorCluster().
DQMStore* SiStripMonitorCluster::dqmStore_ [private] |
Definition at line 108 of file SiStripMonitorCluster.h.
Referenced by bookME1D(), bookMETrend(), createLayerMEs(), createMEs(), createModuleMEs(), createSubDetMEs(), and endJob().
int SiStripMonitorCluster::eventNb [private] |
Definition at line 128 of file SiStripMonitorCluster.h.
Referenced by analyze(), and SiStripMonitorCluster().
int SiStripMonitorCluster::firstEvent [private] |
Definition at line 129 of file SiStripMonitorCluster.h.
Referenced by SiStripMonitorCluster().
Definition at line 87 of file SiStripMonitorCluster.h.
Referenced by analyze(), and createMEs().
bool SiStripMonitorCluster::globalswitchapvcycledbxth2on [private] |
Definition at line 160 of file SiStripMonitorCluster.h.
Referenced by analyze(), createMEs(), and SiStripMonitorCluster().
Definition at line 171 of file SiStripMonitorCluster.h.
Referenced by analyze(), and SiStripMonitorCluster().
std::map<std::string, std::vector< uint32_t > > SiStripMonitorCluster::LayerDetMap [private] |
Definition at line 112 of file SiStripMonitorCluster.h.
Referenced by analyze(), and createMEs().
std::map<std::string, LayerMEs> SiStripMonitorCluster::LayerMEsMap [private] |
Definition at line 111 of file SiStripMonitorCluster.h.
Referenced by analyze(), createLayerMEs(), and createMEs().
bool SiStripMonitorCluster::layerswitchcluschargeon [private] |
Definition at line 132 of file SiStripMonitorCluster.h.
Referenced by createLayerMEs(), fillLayerMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::layerswitchclusdigiposon [private] |
Definition at line 136 of file SiStripMonitorCluster.h.
Referenced by SiStripMonitorCluster().
bool SiStripMonitorCluster::layerswitchclusnoiseon [private] |
Definition at line 137 of file SiStripMonitorCluster.h.
Referenced by createLayerMEs(), fillLayerMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::layerswitchclusposon [private] |
Definition at line 135 of file SiStripMonitorCluster.h.
Referenced by SiStripMonitorCluster().
bool SiStripMonitorCluster::layerswitchclusstonon [private] |
Definition at line 133 of file SiStripMonitorCluster.h.
Referenced by createLayerMEs(), fillLayerMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::layerswitchclusstonVsposon [private] |
Definition at line 134 of file SiStripMonitorCluster.h.
Referenced by SiStripMonitorCluster().
bool SiStripMonitorCluster::layerswitchclusterwidthprofon [private] |
Definition at line 142 of file SiStripMonitorCluster.h.
Referenced by analyze(), createLayerMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::layerswitchcluswidthon [private] |
Definition at line 138 of file SiStripMonitorCluster.h.
Referenced by createLayerMEs(), fillLayerMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::layerswitchlocaloccupancy [private] |
Definition at line 139 of file SiStripMonitorCluster.h.
Referenced by analyze(), createLayerMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::layerswitchncluson [private] |
Definition at line 131 of file SiStripMonitorCluster.h.
Referenced by SiStripMonitorCluster().
bool SiStripMonitorCluster::layerswitchnrclusterizedstrip [private] |
Definition at line 140 of file SiStripMonitorCluster.h.
Referenced by SiStripMonitorCluster().
bool SiStripMonitorCluster::layerswitchnumclusterprofon [private] |
Definition at line 141 of file SiStripMonitorCluster.h.
Referenced by analyze(), createLayerMEs(), and SiStripMonitorCluster().
unsigned long long SiStripMonitorCluster::m_cacheID_ [private] |
Definition at line 118 of file SiStripMonitorCluster.h.
Referenced by beginRun().
bool SiStripMonitorCluster::Mod_On_ [private] |
Definition at line 165 of file SiStripMonitorCluster.h.
Referenced by analyze(), createMEs(), and SiStripMonitorCluster().
std::map<uint32_t, ModMEs> SiStripMonitorCluster::ModuleMEsMap [private] |
Definition at line 110 of file SiStripMonitorCluster.h.
Referenced by analyze(), beginRun(), createMEs(), and ResetModuleMEs().
std::vector<uint32_t> SiStripMonitorCluster::ModulesToBeExcluded_ [private] |
Definition at line 121 of file SiStripMonitorCluster.h.
bool SiStripMonitorCluster::moduleswitchcluschargeon [private] |
Definition at line 145 of file SiStripMonitorCluster.h.
Referenced by createModuleMEs(), fillModuleMEs(), ResetModuleMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::moduleswitchclusdigiposon [private] |
Definition at line 149 of file SiStripMonitorCluster.h.
Referenced by createModuleMEs(), fillModuleMEs(), ResetModuleMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::moduleswitchclusnoiseon [private] |
Definition at line 150 of file SiStripMonitorCluster.h.
Referenced by createModuleMEs(), fillModuleMEs(), ResetModuleMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::moduleswitchclusposon [private] |
Definition at line 148 of file SiStripMonitorCluster.h.
Referenced by createModuleMEs(), fillModuleMEs(), ResetModuleMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::moduleswitchclusstonon [private] |
Definition at line 146 of file SiStripMonitorCluster.h.
Referenced by createModuleMEs(), fillModuleMEs(), ResetModuleMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::moduleswitchclusstonVsposon [private] |
Definition at line 147 of file SiStripMonitorCluster.h.
Referenced by createModuleMEs(), fillModuleMEs(), ResetModuleMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::moduleswitchcluswidthon [private] |
Definition at line 151 of file SiStripMonitorCluster.h.
Referenced by createModuleMEs(), fillModuleMEs(), ResetModuleMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::moduleswitchlocaloccupancy [private] |
Definition at line 152 of file SiStripMonitorCluster.h.
Referenced by analyze(), createModuleMEs(), ResetModuleMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::moduleswitchncluson [private] |
Definition at line 144 of file SiStripMonitorCluster.h.
Referenced by analyze(), createModuleMEs(), ResetModuleMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::moduleswitchnrclusterizedstrip [private] |
Definition at line 153 of file SiStripMonitorCluster.h.
Referenced by analyze(), createModuleMEs(), ResetModuleMEs(), and SiStripMonitorCluster().
Definition at line 123 of file SiStripMonitorCluster.h.
std::string SiStripMonitorCluster::qualityLabel_ [private] |
Definition at line 168 of file SiStripMonitorCluster.h.
Referenced by analyze(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::reset_each_run [private] |
Definition at line 117 of file SiStripMonitorCluster.h.
Referenced by beginRun(), and createMEs().
int SiStripMonitorCluster::runNb [private] |
Definition at line 128 of file SiStripMonitorCluster.h.
Referenced by analyze().
bool SiStripMonitorCluster::select_all_detectors [private] |
Definition at line 117 of file SiStripMonitorCluster.h.
bool SiStripMonitorCluster::show_control_view [private] |
Definition at line 117 of file SiStripMonitorCluster.h.
bool SiStripMonitorCluster::show_mechanical_structure_view [private] |
Definition at line 117 of file SiStripMonitorCluster.h.
Referenced by beginRun(), and createMEs().
bool SiStripMonitorCluster::show_readout_view [private] |
Definition at line 117 of file SiStripMonitorCluster.h.
Definition at line 120 of file SiStripMonitorCluster.h.
Referenced by analyze(), createMEs(), and createModuleMEs().
double SiStripMonitorCluster::sToNLowerLimit_ [private] |
Definition at line 175 of file SiStripMonitorCluster.h.
Referenced by analyze(), and SiStripMonitorCluster().
double SiStripMonitorCluster::sToNUpperLimit_ [private] |
Definition at line 176 of file SiStripMonitorCluster.h.
Referenced by analyze(), and SiStripMonitorCluster().
std::map<std::string, SubDetMEs> SiStripMonitorCluster::SubDetMEsMap [private] |
Definition at line 113 of file SiStripMonitorCluster.h.
Referenced by analyze(), createMEs(), and createSubDetMEs().
std::map<std::string, std::string> SiStripMonitorCluster::SubDetPhasePartMap [private] |
Definition at line 114 of file SiStripMonitorCluster.h.
Referenced by analyze(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::subdetswitchapvcycledbxprof2on [private] |
Definition at line 157 of file SiStripMonitorCluster.h.
Referenced by analyze(), createSubDetMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::subdetswitchapvcycleprofon [private] |
Definition at line 155 of file SiStripMonitorCluster.h.
Referenced by analyze(), createSubDetMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::subdetswitchapvcycleth2on [private] |
Definition at line 156 of file SiStripMonitorCluster.h.
Referenced by analyze(), createSubDetMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::subdetswitchdbxcycleprofon [private] |
Definition at line 158 of file SiStripMonitorCluster.h.
Referenced by analyze(), createSubDetMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::subdetswitchtotclusprofon [private] |
Definition at line 154 of file SiStripMonitorCluster.h.
Referenced by analyze(), createSubDetMEs(), and SiStripMonitorCluster().
bool SiStripMonitorCluster::subdetswitchtotclusth1on [private] |
Definition at line 159 of file SiStripMonitorCluster.h.
Referenced by analyze(), createSubDetMEs(), and SiStripMonitorCluster().
TkHistoMap* SiStripMonitorCluster::tkmapcluster [private] |
Definition at line 126 of file SiStripMonitorCluster.h.
Referenced by analyze(), and createMEs().
std::string SiStripMonitorCluster::topFolderName_ [private] |
Definition at line 167 of file SiStripMonitorCluster.h.
Referenced by createMEs(), and SiStripMonitorCluster().
double SiStripMonitorCluster::widthLowerLimit_ [private] |
Definition at line 177 of file SiStripMonitorCluster.h.
Referenced by analyze(), and SiStripMonitorCluster().
double SiStripMonitorCluster::widthUpperLimit_ [private] |
Definition at line 178 of file SiStripMonitorCluster.h.
Referenced by analyze(), and SiStripMonitorCluster().