|
|
Go to the documentation of this file.
35 LogVerbatim(
"DTDQM|DTMonitorClient|DTRunConditionVarClient") <<
"DTRunConditionVarClient: Constructor called";
58 LogVerbatim(
"DTDQM|DTMonitorClient|DTRunConditionVarClient") <<
"DTRunConditionVarClient: Destructor called";
62 LogTrace(
"DTDQM|DTMonitorClient|DTResolutionAnalysisTest") <<
"[DTRunConditionVarClient]: BeginRun";
73 LogVerbatim(
"DTDQM|DTMonitorClient|DTRunConditionVarClient") <<
"DTRunConditionVarClient: end job";
78 ibooker.
book2D(
"VDriftGlbSummary",
"# of MBs with good mean and good sigma of vDrift", 12, 1, 13, 5, -2, 3);
79 glbT0Summary = ibooker.
book2D(
"T0GlbSummary",
"# of MBs with good mean and good sigma of t0", 12, 1, 13, 5, -2, 3);
84 ibooker.
book2D(
"MeanVDriftGlbSummary",
"mean VDrift average per sector", 12, 1., 13., 5, -2., 3.);
86 ibooker.
book1D(
"VDriftMeanAllWheels",
"mean VDrift for all chambers", 60, 0.0048, 0.006);
91 ibooker.
book2D(
"SigmaVDriftGlbSummary",
"# of Chambers with good sigma VDrift", 12, 1., 13., 5, -2., 3.);
93 ibooker.
book1D(
"VDriftSigmaAllWheels",
"sigma VDrift for all chambers", 30, 0., 0.0006);
98 ibooker.
book2D(
"MeanT0GlbSummary",
"mean T0 average per sector", 12, 1., 13., 5, -2., 3.);
99 allwheelHistos[
"allMeanT0"] = ibooker.
book1D(
"T0MeanAllWheels",
"mean T0 for all chambers", 100, -25., 25.);
104 ibooker.
book2D(
"SigmaT0GlbSummary",
"# of Chambers with good sigma T0", 12, 1., 13., 5, -2., 3.);
105 allwheelHistos[
"allSigmaT0"] = ibooker.
book1D(
"T0SigmaAllWheels",
"sigma T0 for all chambers", 50, 0, 25);
107 for (
int wh = -2; wh <= 2; wh++) {
108 bookWheelHistos(ibooker,
"MeanVDrift",
"02-MeanVDrift", wh, 60, 0.0048, 0.006,
true);
109 bookWheelHistos(ibooker,
"SigmaVDrift",
"02-SigmaVDrift", wh, 30, 0., 0.0006);
110 bookWheelHistos(ibooker,
"MeanT0",
"03-MeanT0", wh, 100, -25., 25.,
false,
true);
111 bookWheelHistos(ibooker,
"SigmaT0",
"03-SigmaT0", wh, 50, 0, 25,
false,
true);
124 if (!VDriftME || !T0ME) {
125 edm::LogWarning(
"DTRunConditionVarClient") <<
"ME not available" << std::endl;
130 float vDriftMean = VDriftME->
getMean();
132 float t0Mean = T0ME->
getMean();
135 float vDriftSigma = VDriftME->
getRMS();
136 float t0Sigma = T0ME->
getRMS();
156 float vDriftDev(0.), errvDriftDev(0.);
157 percDevVDrift(indexCh, vDriftMean, vDriftSigma, vDriftDev, errvDriftDev);
160 if (
sec == 13 ||
sec == 14)
161 sec_ = (
sec == 13) ? 4 : 10;
172 if (
sec == 13 ||
sec == 14) {
174 binVDriftDev = (fabs(binVDriftDev) > fabs(fillvDriftDev)) ? binVDriftDev : fillvDriftDev;
178 binT0MeanVal = (fabs(binT0MeanVal) > fabs(fillT0Mean)) ? binT0MeanVal : fillT0Mean;
182 binVDriftSigmVal = (binVDriftSigmVal > 0. && binVDriftSigmVal < vDriftSigmQ) ? binVDriftSigmVal : vDriftSigmQ;
186 binT0SigmVal = (binT0SigmVal > 0. && binT0SigmVal < t0SigmQ) ? binT0SigmVal : t0SigmQ;
197 if ((sec_ == 4 || sec_ == 10) &&
stat == 4)
200 if (vDriftDevQ > 0.85 && vDriftSigmQ > 0.85) {
206 if (vDriftDevQ > 0.85 && vDriftSigmQ < 0.85) {
209 if (vDriftDevQ < 0.85 && vDriftSigmQ > 0.85) {
214 if (t0MeanQ > 0.85 && t0SigmQ > 0.85) {
219 if (t0MeanQ > 0.85 && t0SigmQ < 0.85) {
222 if (t0MeanQ < 0.85 && t0SigmQ > 0.85) {
236 if (
var <= maxGood) {
238 }
else if (
var > maxGood &&
var < minBad) {
240 }
else if (
var >= minBad) {
248 DTChamberId indexCh,
float meanVD,
float sigmaVD,
float& devVD,
float& errdevVD) {
252 float vDriftPhi1(0.), vDriftPhi2(0.);
253 float ResPhi1(0.), ResPhi2(0.);
257 if (status1 != 0 || status2 != 0) {
259 throw cms::Exception(
"DTRunConditionVarClient") <<
"Could not find vDrift entry in DB for" << sl << endl;
262 float vDriftMed = (vDriftPhi1 + vDriftPhi2) / 2.;
264 devVD = (meanVD - vDriftMed) / vDriftMed;
265 devVD = devVD < 1. ? devVD : 1.;
267 errdevVD = sigmaVD / vDriftMed;
284 string folder =
"DT/02-Segments/" + subfolder;
293 for (
int st = 1; st <= 4; st++) {
312 histoLabel =
"Summary of corrections to VDrift DB values";
321 me->setBinLabel(1,
"MB1", 2);
322 me->setBinLabel(2,
"MB2", 2);
323 me->setBinLabel(3,
"MB3", 2);
324 me->setBinLabel(4,
"MB4", 2);
325 me->setAxisTitle(
"Sector", 1);
335 int wh = dtCh.
wheel();
345 string folder =
"DT/02-Segments/Wheel" +
wheel.str() +
"/Sector" + sector.str() +
"/Station" +
station.str();
351 LogTrace(
"DTDQM|DTMonitorModule|DTRunConditionVar") <<
"[DTRunConditionVar]: getting ME from " <<
folder << endl;
std::map< std::string, MonitorElement * > allwheelHistos
float varQuality(float var, float maxGood, float minBad)
virtual void setCurrentFolder(std::string const &fullpath)
MonitorElement * glbVDriftSummary
T getUntrackedParameter(std::string const &, T const &) const
void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override
std::map< std::string, MonitorElement * > summaryHistos
Log< level::Warning, false > LogWarning
std::map< int, std::map< int, std::map< std::string, MonitorElement * > > > wheelRingHistos
void percDevVDrift(DTChamberId indexCh, float meanVD, float sigmaVD, float &devVD, float &errdevVD)
MonitorElement * getChamberHistos(DQMStore::IGetter &, const DTChamberId &, std::string)
const DTMtime * mTimeMap_
virtual double getRMS(int axis=1) const
get RMS of histogram along x, y or z axis (axis=1, 2, 3 respectively)
virtual void setAxisRange(double xmin, double xmax, int axis=1)
set x-, y- or z-axis range (axis=1, 2, 3 respectively)
virtual double getEntries() const
get # of entries
DTRunConditionVarClient(const edm::ParameterSet &ps)
Constructor.
dqm::harvesting::MonitorElement ME
void bookWheelHistos(DQMStore::IBooker &, std::string histoType, std::string subfolder, int wh, int nbins, float min, float max, bool isVDCorr=false, bool makeRings=false)
book the report summary
void beginRun(const edm::Run &r, const edm::EventSetup &c) override
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * glbT0Summary
Log< level::Info, true > LogVerbatim
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
edm::ESGetToken< DTMtime, DTMtimeRcd > mTimeMapToken_
std::map< int, std::map< std::string, MonitorElement * > > wheelHistos
virtual MonitorElement * get(std::string const &fullpath) const
virtual double getMean(int axis=1) const
get mean value of histogram along x, y or z axis (axis=1, 2, 3 respectively)
~DTRunConditionVarClient() override
Destructor.
int get(int wheelId, int stationId, int sectorId, int slId, float &mTime, float &mTrms, DTTimeUnits::type unit) const
int wheel() const
Return the wheel number.
int station() const
Return the station number.
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
void dqmEndLuminosityBlock(DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &) override
DQM Client Diagnostic.