#include <DTRunConditionVarClient.h>
Public Member Functions | |
DTRunConditionVarClient (const edm::ParameterSet &ps) | |
Constructor. | |
virtual | ~DTRunConditionVarClient () |
Destructor. | |
Protected Member Functions | |
void | analyze (const edm::Event &e, const edm::EventSetup &c) |
void | beginJob () |
void | beginLuminosityBlock (edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &context) |
DQM Client Diagnostic. | |
void | beginRun (const edm::Run &run, const edm::EventSetup &setup) |
void | bookWheelHistos (std::string histoType, std::string subfolder, int wh, int nbins, float min, float max, bool isVDCorr=false) |
book the report summary | |
void | endJob () |
void | endLuminosityBlock (edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &c) |
void | endRun (edm::Run const &run, edm::EventSetup const &c) |
void | percDevVDrift (DTChamberId indexCh, float meanVD, float sigmaVD, float &devVD, float &errdevVD) |
float | varQuality (float var, float maxGood, float minBad) |
Private Member Functions | |
MonitorElement * | getChamberHistos (const DTChamberId &, std::string) |
Private Attributes | |
std::map< std::string, MonitorElement * > | allwheelHistos |
MonitorElement * | glbT0Summary |
MonitorElement * | glbVDriftSummary |
float | maxGoodT0 |
float | maxGoodT0Sigma |
float | maxGoodVDriftDev |
float | maxGoodVDriftSigma |
float | maxRangeT0 |
float | maxRangeVDrift |
float | minBadT0 |
float | minBadT0Sigma |
float | minBadVDriftDev |
float | minBadVDriftSigma |
float | minRangeT0 |
float | minRangeVDrift |
edm::ESHandle< DTMtime > | mTime |
const DTMtime * | mTimeMap_ |
int | nevents |
std::map< std::string, MonitorElement * > | summaryHistos |
DQMStore * | theDbe |
std::map< int, std::map < std::string, MonitorElement * > > | wheelHistos |
DTRunConditionVarClient::DTRunConditionVarClient | ( | const edm::ParameterSet & | ps | ) |
Constructor.
Definition at line 33 of file DTRunConditionVarClient.cc.
References edm::ParameterSet::getUntrackedParameter(), and cmsCodeRules::cppFunctionSkipper::operator.
{ LogVerbatim ("DTDQM|DTMonitorClient|DTRunConditionVarClient") << "DTRunConditionVarClient: Constructor called"; minRangeVDrift = pSet.getUntrackedParameter<double>("minRangeVDrift"); maxRangeVDrift = pSet.getUntrackedParameter<double>("maxRangeVDrift"); minRangeT0 = pSet.getUntrackedParameter<double>("minRangeT0"); maxRangeT0 = pSet.getUntrackedParameter<double>("maxRangeT0"); maxGoodVDriftDev = pSet.getUntrackedParameter<double>("maxGoodVDriftDev"); minBadVDriftDev = pSet.getUntrackedParameter<double>("minBadVDriftDev"); maxGoodT0 = pSet.getUntrackedParameter<double>("maxGoodT0"); minBadT0 = pSet.getUntrackedParameter<double>("minBadT0"); maxGoodVDriftSigma = pSet.getUntrackedParameter<double>("maxGoodVDriftSigma"); minBadVDriftSigma = pSet.getUntrackedParameter<double>("minBadVDriftSigma"); maxGoodT0Sigma = pSet.getUntrackedParameter<double>("maxGoodT0Sigma"); minBadT0Sigma = pSet.getUntrackedParameter<double>("minBadT0Sigma"); theDbe = Service<DQMStore>().operator->(); }
DTRunConditionVarClient::~DTRunConditionVarClient | ( | ) | [virtual] |
Destructor.
Definition at line 59 of file DTRunConditionVarClient.cc.
{ LogVerbatim ("DTDQM|DTMonitorClient|DTRunConditionVarClient") << "DTRunConditionVarClient: Destructor called"; }
void DTRunConditionVarClient::analyze | ( | const edm::Event & | e, |
const edm::EventSetup & | c | ||
) | [protected, virtual] |
Implements edm::EDAnalyzer.
Definition at line 123 of file DTRunConditionVarClient.cc.
References nevents.
{ nevents++; LogVerbatim ("DTDQM|DTMonitorClient|DTRunConditionVarClient") << "[DTRunConditionVarClient]: " << nevents << " events"; return; }
void DTRunConditionVarClient::beginJob | ( | void | ) | [protected, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 65 of file DTRunConditionVarClient.cc.
References nevents.
{ LogVerbatim ("DTDQM|DTMonitorClient|DTRunConditionVarClient") << "DTRunConditionVarClient: BeginJob"; nevents = 0; theDbe -> setCurrentFolder("DT/02-Segments"); glbVDriftSummary = theDbe->book2D("VDriftGlbSummary", "# of MBs with good mean and good sigma of vDrift",12,1,13,5,-2,3); glbT0Summary = theDbe->book2D("T0GlbSummary", "# of MBs with good mean and good sigma of t0",12,1,13,5,-2,3); theDbe -> setCurrentFolder("DT/02-Segments/02-MeanVDrift"); summaryHistos["MeanVDriftGlbSummary"] = theDbe -> book2D("MeanVDriftGlbSummary","mean VDrift average per sector",12,1.,13.,5,-2.,3.); allwheelHistos["allMeanVDrift"] = theDbe -> book1D("VDriftMeanAllWheels","mean VDrift for all chambers",60,0.0048,0.006); theDbe -> setCurrentFolder("DT/02-Segments/02-SigmaVDrift"); summaryHistos["SigmaVDriftGlbSummary"] = theDbe -> book2D("SigmaVDriftGlbSummary","# of Chambers with good sigma VDrift",12,1.,13.,5,-2.,3.); allwheelHistos["allSigmaVDrift"] = theDbe -> book1D("VDriftSigmaAllWheels","sigma VDrift for all chambers",30,0.,0.0006); theDbe -> setCurrentFolder("DT/02-Segments/03-MeanT0"); summaryHistos["MeanT0GlbSummary"] = theDbe -> book2D("MeanT0GlbSummary","mean T0 average per sector",12,1.,13.,5,-2.,3.); allwheelHistos["allMeanT0"] = theDbe -> book1D("T0MeanAllWheels","mean T0 for all chambers",100,-25.,25.); theDbe -> setCurrentFolder("DT/02-Segments/03-SigmaT0"); summaryHistos["SigmaT0GlbSummary"] = theDbe -> book2D("SigmaT0GlbSummary","# of Chambers with good sigma T0",12,1.,13.,5,-2.,3.); allwheelHistos["allSigmaT0"] = theDbe -> book1D("T0SigmaAllWheels","sigma T0 for alla chambers",50,0,25); for(int wh=-2; wh<=2; wh++) { bookWheelHistos("MeanVDrift","02-MeanVDrift",wh,60,0.0048,0.006,true); bookWheelHistos("SigmaVDrift","02-SigmaVDrift",wh,30,0.,0.0006); bookWheelHistos("MeanT0","03-MeanT0",wh,100,-25.,25.); bookWheelHistos("SigmaT0","03-SigmaT0",wh,50,0,25); } return; }
void DTRunConditionVarClient::beginLuminosityBlock | ( | edm::LuminosityBlock const & | lumiSeg, |
edm::EventSetup const & | context | ||
) | [protected, virtual] |
DQM Client Diagnostic.
Reimplemented from edm::EDAnalyzer.
Definition at line 107 of file DTRunConditionVarClient.cc.
{ LogVerbatim ("DTDQM|DTMonitorClient|DTRunConditionVarClient") << "[DTRunConditionVarClient]: Begin of LS transition"; return; }
void DTRunConditionVarClient::beginRun | ( | const edm::Run & | run, |
const edm::EventSetup & | setup | ||
) | [protected, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 115 of file DTRunConditionVarClient.cc.
{ LogVerbatim ("DTDQM|DTMonitorClient|DTRunConditionVarClient") << "DTRunConditionVarClient: beginRun"; return; }
void DTRunConditionVarClient::bookWheelHistos | ( | std::string | histoType, |
std::string | subfolder, | ||
int | wh, | ||
int | nbins, | ||
float | min, | ||
float | max, | ||
bool | isVDCorr = false |
||
) | [protected] |
book the report summary
void DTRunConditionVarClient::endJob | ( | void | ) | [protected, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 262 of file DTRunConditionVarClient.cc.
{ LogVerbatim ("DTDQM|DTMonitorClient|DTRunConditionVarClient") << "DTRunConditionVarClient: endJob"; return; }
void DTRunConditionVarClient::endLuminosityBlock | ( | edm::LuminosityBlock const & | lumiSeg, |
edm::EventSetup const & | c | ||
) | [protected, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 132 of file DTRunConditionVarClient.cc.
{ LogVerbatim ("DTDQM|DTMonitorClient|DTRunConditionVarClient") << "DTRunConditionVarClient: endluminosityBlock"; }
void DTRunConditionVarClient::endRun | ( | edm::Run const & | run, |
edm::EventSetup const & | c | ||
) | [protected, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 139 of file DTRunConditionVarClient.cc.
References DTChamberId, HcalObjRepresent::Fill(), edm::EventSetup::get(), MonitorElement::getMean(), MonitorElement::getRMS(), edm::max(), edm::min(), testRegression::stat, and CommonMethods::weight().
{ LogVerbatim ("DTDQM|DTMonitorClient|DTRunConditionVarClient") << "DTRunConditionVarClient: endRun"; // Get the map of vdrift from the setup context.get<DTMtimeRcd>().get(mTime); mTimeMap_ = &*mTime; for(int wheel=-2;wheel<=2;wheel++){ for(int sec=1; sec<=14; sec++) { for(int stat=1; stat<=4; stat++) { if( (sec == 13 || sec == 14) && stat != 4 ) continue; // Get the ME produced by DTRunConditionVar Source MonitorElement* VDriftME = getChamberHistos(DTChamberId(wheel,stat,sec),"VDrift_FromSegm"); MonitorElement* T0ME = getChamberHistos(DTChamberId(wheel,stat,sec),"T0_FromSegm"); // Get the means per chamber float vDriftMean = VDriftME->getMean(); float t0Mean = T0ME->getMean(); // Get the sigma per chamber float vDriftSigma = VDriftME->getRMS(); float t0Sigma = T0ME->getRMS(); allwheelHistos["allMeanVDrift"] -> Fill(vDriftMean); allwheelHistos["allMeanT0"] -> Fill(t0Mean); allwheelHistos["allSigmaVDrift"] -> Fill(vDriftSigma); allwheelHistos["allSigmaT0"] -> Fill(t0Sigma); (wheelHistos[wheel])["MeanVDrift"] -> Fill(vDriftMean); (wheelHistos[wheel])["MeanT0"] -> Fill(t0Mean); (wheelHistos[wheel])["SigmaVDrift"] -> Fill(vDriftSigma); (wheelHistos[wheel])["SigmaT0"] -> Fill(t0Sigma); // DTChamberId indexCh(wheel,stat,sec); float vDriftDev(0.), errvDriftDev(0.); percDevVDrift(indexCh, vDriftMean, vDriftSigma, vDriftDev, errvDriftDev); int sec_ = sec; if( sec == 13 || sec == 14 ) sec_ = ( sec == 13 ) ? 4 : 10; float fillvDriftDev = max(min(vDriftDev,maxRangeVDrift),minRangeVDrift); float fillT0Mean = max(min(t0Mean,maxRangeT0),minRangeT0); float vDriftDevQ = varQuality(fabs(vDriftDev),maxGoodVDriftDev,minBadVDriftDev); float t0MeanQ = varQuality(fabs(t0Mean),maxGoodT0,minBadT0); float vDriftSigmQ = varQuality(vDriftSigma,maxGoodVDriftSigma,minBadVDriftSigma); float t0SigmQ = varQuality(t0Sigma,maxGoodT0Sigma,minBadT0Sigma); if( sec == 13 || sec == 14 ) { float binVDriftDev = (wheelHistos[wheel])["MeanVDriftSummary"]->getBinContent(sec_,stat); binVDriftDev = (fabs(binVDriftDev) > fabs(fillvDriftDev)) ? binVDriftDev : fillvDriftDev; (wheelHistos[wheel])["MeanVDriftSummary"] -> setBinContent(sec_,stat,binVDriftDev); float binT0MeanVal = (wheelHistos[wheel])["MeanT0Summary"] -> getBinContent(sec_,stat); binT0MeanVal = (fabs(binT0MeanVal) > fabs(fillT0Mean)) ? binT0MeanVal : fillT0Mean; (wheelHistos[wheel])["MeanT0Summary"] -> setBinContent(sec_,stat,binT0MeanVal); float binVDriftSigmVal = (wheelHistos[wheel])["SigmaVDriftSummary"] -> getBinContent(sec_,stat); binVDriftSigmVal = (binVDriftSigmVal > 0. && binVDriftSigmVal < vDriftSigmQ) ? binVDriftSigmVal : vDriftSigmQ; (wheelHistos[wheel])["SigmaVDriftSummary"] -> setBinContent(sec_,stat,binVDriftSigmVal); float binT0SigmVal = (wheelHistos[wheel])["SigmaT0Summary"] -> getBinContent(sec_,stat); binT0SigmVal = (binT0SigmVal > 0. && binT0SigmVal < t0SigmQ) ? binT0SigmVal : t0SigmQ; (wheelHistos[wheel])["SigmaT0Summary"] -> setBinContent(sec_,stat,binT0SigmVal); } else { (wheelHistos[wheel])["MeanVDriftSummary"] -> setBinContent(sec_,stat,fillvDriftDev); (wheelHistos[wheel])["MeanT0Summary"] -> setBinContent(sec_,stat,fillT0Mean); (wheelHistos[wheel])["SigmaVDriftSummary"] -> setBinContent(sec_,stat,vDriftSigmQ); (wheelHistos[wheel])["SigmaT0Summary"] -> setBinContent(sec_,stat,t0SigmQ); } double weight = 1/4.; if(( sec_ == 4 || sec_ == 10) && stat == 4) weight = 1/8.; if( vDriftDevQ > 0.85 && vDriftSigmQ > 0.85 ) { glbVDriftSummary -> Fill(sec_,wheel,weight); summaryHistos["MeanVDriftGlbSummary"] -> Fill(sec_,wheel,weight); summaryHistos["SigmaVDriftGlbSummary"] -> Fill(sec_,wheel,weight); } else { if( vDriftDevQ > 0.85 && vDriftSigmQ < 0.85 ) { summaryHistos["MeanVDriftGlbSummary"] -> Fill(sec_,wheel,weight); } if( vDriftDevQ < 0.85 && vDriftSigmQ > 0.85 ) { summaryHistos["SigmaVDriftGlbSummary"] -> Fill(sec_,wheel,weight); } } if( t0MeanQ > 0.85 && t0SigmQ > 0.85 ) { glbT0Summary -> Fill(sec_,wheel,weight); summaryHistos["MeanT0GlbSummary"] -> Fill(sec_,wheel,weight); summaryHistos["SigmaT0GlbSummary"] -> Fill(sec_,wheel,weight); } else { if( t0MeanQ > 0.85 && t0SigmQ < 0.85 ) { summaryHistos["MeanT0GlbSummary"] -> Fill(sec_,wheel,weight); } if( t0MeanQ < 0.85 && t0SigmQ > 0.85 ) { summaryHistos["SigmaT0GlbSummary"] -> Fill(sec_,wheel,weight); } } }// end loop on stations }// end loop on sectors }//end loop on wheels return; }
MonitorElement * DTRunConditionVarClient::getChamberHistos | ( | const DTChamberId & | , |
std::string | |||
) | [private] |
Definition at line 340 of file DTRunConditionVarClient.cc.
References LogTrace, DTChamberId::sector(), relativeConstraints::station, DTChamberId::station(), and DTChamberId::wheel().
{ int wh = dtCh.wheel(); int sc = dtCh.sector(); int st = dtCh.station(); stringstream wheel; wheel << wh; stringstream station; station << st; stringstream sector; sector << sc; string folder = "DT/02-Segments/Wheel" + wheel.str() + "/Sector" + sector.str() + "/Station" + station.str(); string histoTag = "_W" + wheel.str() + "_Sec" + sector.str() + "_St" + station.str(); string MEpath = folder + "/" + histoType + histoTag; theDbe->setCurrentFolder(folder); LogTrace ("DTDQM|DTMonitorModule|DTRunConditionVar") << "[DTRunConditionVar]: getting ME from " << folder << endl; MonitorElement* ME = theDbe -> get(MEpath); return ME; }
void DTRunConditionVarClient::percDevVDrift | ( | DTChamberId | indexCh, |
float | meanVD, | ||
float | sigmaVD, | ||
float & | devVD, | ||
float & | errdevVD | ||
) | [protected] |
Definition at line 279 of file DTRunConditionVarClient.cc.
References DTVelocityUnits::cm_per_ns, and Exception.
{ DTSuperLayerId indexSLPhi1(indexCh,1); DTSuperLayerId indexSLPhi2(indexCh,3); float vDriftPhi1(0.), vDriftPhi2(0.); float ResPhi1(0.), ResPhi2(0.); int status1 = mTimeMap_->get(indexSLPhi1,vDriftPhi1,ResPhi1,DTVelocityUnits::cm_per_ns); int status2 = mTimeMap_->get(indexSLPhi2,vDriftPhi2,ResPhi2,DTVelocityUnits::cm_per_ns); if(status1 != 0 || status2 != 0) { DTSuperLayerId sl = (status1 != 0) ? indexSLPhi1 : indexSLPhi2; throw cms::Exception("DTRunConditionVarClient") << "Could not find vDrift entry in DB for" << sl << endl; } float vDriftMed = (vDriftPhi1 + vDriftPhi2) / 2.; devVD = (meanVD - vDriftMed) / vDriftMed; devVD = devVD < 1. ? devVD : 1.; errdevVD = sigmaVD/vDriftMed; return; }
float DTRunConditionVarClient::varQuality | ( | float | var, |
float | maxGood, | ||
float | minBad | ||
) | [protected] |
Definition at line 269 of file DTRunConditionVarClient.cc.
{ float qual(0); if( var <= maxGood ) {qual = 1.;} else if( var > maxGood && var < minBad ) {qual = 0.9;} else if( var >= minBad ) {qual = 0.1;} return qual; }
std::map<std::string, MonitorElement *> DTRunConditionVarClient::allwheelHistos [private] |
Definition at line 107 of file DTRunConditionVarClient.h.
Definition at line 103 of file DTRunConditionVarClient.h.
Definition at line 102 of file DTRunConditionVarClient.h.
float DTRunConditionVarClient::maxGoodT0 [private] |
Definition at line 89 of file DTRunConditionVarClient.h.
float DTRunConditionVarClient::maxGoodT0Sigma [private] |
Definition at line 94 of file DTRunConditionVarClient.h.
float DTRunConditionVarClient::maxGoodVDriftDev [private] |
Definition at line 87 of file DTRunConditionVarClient.h.
float DTRunConditionVarClient::maxGoodVDriftSigma [private] |
Definition at line 92 of file DTRunConditionVarClient.h.
float DTRunConditionVarClient::maxRangeT0 [private] |
Definition at line 85 of file DTRunConditionVarClient.h.
float DTRunConditionVarClient::maxRangeVDrift [private] |
Definition at line 83 of file DTRunConditionVarClient.h.
float DTRunConditionVarClient::minBadT0 [private] |
Definition at line 90 of file DTRunConditionVarClient.h.
float DTRunConditionVarClient::minBadT0Sigma [private] |
Definition at line 95 of file DTRunConditionVarClient.h.
float DTRunConditionVarClient::minBadVDriftDev [private] |
Definition at line 88 of file DTRunConditionVarClient.h.
float DTRunConditionVarClient::minBadVDriftSigma [private] |
Definition at line 93 of file DTRunConditionVarClient.h.
float DTRunConditionVarClient::minRangeT0 [private] |
Definition at line 84 of file DTRunConditionVarClient.h.
float DTRunConditionVarClient::minRangeVDrift [private] |
Definition at line 82 of file DTRunConditionVarClient.h.
edm::ESHandle<DTMtime> DTRunConditionVarClient::mTime [private] |
Definition at line 97 of file DTRunConditionVarClient.h.
const DTMtime* DTRunConditionVarClient::mTimeMap_ [private] |
Definition at line 98 of file DTRunConditionVarClient.h.
int DTRunConditionVarClient::nevents [private] |
Definition at line 80 of file DTRunConditionVarClient.h.
std::map<std::string, MonitorElement *> DTRunConditionVarClient::summaryHistos [private] |
Definition at line 106 of file DTRunConditionVarClient.h.
DQMStore* DTRunConditionVarClient::theDbe [private] |
Definition at line 100 of file DTRunConditionVarClient.h.
std::map<int, std::map<std::string, MonitorElement*> > DTRunConditionVarClient::wheelHistos [private] |
Definition at line 105 of file DTRunConditionVarClient.h.