55 localTime = localtime(¤tTime);
56 int year = localTime->tm_year + 1900;
64 if (year >= 70 && year <= 137)
68 edm::LogError(
"BadTimeStamp") <<
"year reported is " << year <<
" !!" << std::endl;
73 "%4d-%02d-%02d %02d:%02d:%02d",
77 (ptm->tm_hour + CEST) % 24,
81 #ifdef STRIP_TRAILING_BLANKS_IN_TIMEZONE 82 unsigned int b = strlen(ts);
83 while (ts[--b] ==
' ') {
95 : dxBin_(ps.getParameter<
int>(
"dxBin")),
96 dxMin_(ps.getParameter<double>(
"dxMin")),
97 dxMax_(ps.getParameter<double>(
"dxMax")),
99 vxBin_(ps.getParameter<
int>(
"vxBin")),
100 vxMin_(ps.getParameter<double>(
"vxMin")),
101 vxMax_(ps.getParameter<double>(
"vxMax")),
103 phiBin_(ps.getParameter<
int>(
"phiBin")),
104 phiMin_(ps.getParameter<double>(
"phiMin")),
105 phiMax_(ps.getParameter<double>(
"phiMax")),
107 dzBin_(ps.getParameter<
int>(
"dzBin")),
108 dzMin_(ps.getParameter<double>(
"dzMin")),
109 dzMax_(ps.getParameter<double>(
"dzMax")),
116 StartAverage_(
false),
212 edm::LogInfo(
"BeamMonitor") <<
"TimeOffset = " << eventTime << std::endl;
213 TDatime
da(eventTime);
218 auto daTime = da.Convert(kTRUE);
225 h_nTrk_lumi = iBooker.
book1D(
"nTrk_lumi",
"Num. of selected tracks vs lumi (Fit)", 20, 0.5, 20.5);
230 h_nVtx_lumi = iBooker.
book1D(
"nVtx_lumi",
"Num. of selected Vtx vs lumi (Fit)", 20, 0.5, 20.5);
234 h_nVtx_lumi_all = iBooker.
book1D(
"nVtx_lumi_all",
"Num. of selected Vtx vs lumi (Fit) all", 20, 0.5, 20.5);
252 TDatime* da =
new TDatime();
253 gStyle->SetTimeOffset(da->Convert(kTRUE));
257 string coord[nvar_] = {
"x",
"y",
"z",
"sigmaX",
"sigmaY",
"sigmaZ"};
258 string label[nvar_] = {
259 "x_{0} (cm)",
"y_{0} (cm)",
"z_{0} (cm)",
"#sigma_{X_{0}} (cm)",
"#sigma_{Y_{0}} (cm)",
"#sigma_{Z_{0}} (cm)"};
261 hs.reserve(kNumHists);
262 for (
int i = 0;
i < 4;
i++) {
264 for (
int ic = 0; ic < nvar_; ++ic) {
265 TString histName(coord[ic]);
270 bool createHisto =
true;
273 histName +=
"0_time";
274 xtitle =
"Time [UTC]";
276 histTitle +=
" coordinate of beam spot vs time (Fit)";
278 histTitle = histTitle.Insert(5,
" ") +
" of beam spot vs time (Fit)";
283 histName.Insert(0,
"PV");
285 histTitle.Insert(0,
"Avg. ");
286 histTitle +=
" position of primary vtx vs lumi";
287 xtitle =
"Lumisection";
288 ytitle.insert(0,
"PV");
289 ytitle +=
" #pm #sigma_{PV";
298 histName.Insert(0,
"PV");
300 histTitle.Insert(0,
"Avg. ");
301 histTitle +=
" position of primary vtx vs time";
302 xtitle =
"Time [UTC]";
303 ytitle.insert(0,
"PV");
304 ytitle +=
" #pm #sigma_{PV";
311 histName +=
"0_lumi";
312 xtitle =
"Lumisection";
314 histTitle +=
" coordinate of beam spot vs lumi (Fit)";
316 histTitle = histTitle.Insert(5,
" ") +
" of beam spot vs lumi (Fit)";
320 edm::LogInfo(
"BeamMonitor") <<
"hitsName = " << histName <<
"; histTitle = " << histTitle << std::endl;
321 auto tmpHs = iBooker.
book1D(histName, histTitle, 40, 0.5, 40.5);
323 tmpHs->setAxisTitle(xtitle, 1);
324 tmpHs->setAxisTitle(ytitle, 2);
325 tmpHs->getTH1()->SetOption(
"E1");
326 if (histName.Contains(
"time")) {
329 tmpHs->setAxisTimeDisplay(1);
330 tmpHs->setAxisTimeFormat(
"%H:%M:%S", 1);
331 tmpHs->getTH1()->GetXaxis()->SetTimeOffset(daTime);
335 tmpHs = iBooker.
book1D(histName, histTitle, 40, 0.5, 40.5);
337 tmpHs->getTH1()->SetCanExtend(TH1::kAllAxes);
338 tmpHs->setAxisTitle(xtitle, 1);
339 tmpHs->setAxisTitle(ytitle, 2);
340 tmpHs->getTH1()->SetOption(
"E1");
341 if (histName.Contains(
"time")) {
344 tmpHs->setAxisTimeDisplay(1);
345 tmpHs->setAxisTimeFormat(
"%H:%M:%S", 1);
346 tmpHs->getTH1()->GetXaxis()->SetTimeOffset(daTime);
351 assert(
hs.size() == kNumHists);
352 assert(0 == strcmp(
hs[k_sigmaY0_time]->getTH1()->GetName(),
"sigmaY0_time"));
353 assert(0 == strcmp(
hs[k_PVz_lumi_all]->getTH1()->GetName(),
"PVz_lumi_all"));
370 h_x0 = iBooker.
book1D(
"BeamMonitorFeedBack_x0",
"x coordinate of beam spot (Fit)", 100, -0.01, 0.01);
374 h_y0 = iBooker.
book1D(
"BeamMonitorFeedBack_y0",
"y coordinate of beam spot (Fit)", 100, -0.01, 0.01);
382 h_sigmaX0 = iBooker.
book1D(
"BeamMonitorFeedBack_sigmaX0",
"sigma x0 of beam spot (Fit)", 100, 0, 0.05);
386 h_sigmaY0 = iBooker.
book1D(
"BeamMonitorFeedBack_sigmaY0",
"sigma y0 of beam spot (Fit)", 100, 0, 0.05);
390 h_sigmaZ0 = iBooker.
book1D(
"BeamMonitorFeedBack_sigmaZ0",
"sigma z0 of beam spot (Fit)", 100, 0, 10);
395 h_trkPt = iBooker.
book1D(
"trkPt",
"p_{T} of all reco'd tracks (no selection)", 200, 0., 50.);
401 cutFlowTable = iBooker.
book1D(
"cutFlowTable",
"Cut flow table of track selection", 9, 0, 9);
404 fitResults = iBooker.
book2D(
"fitResults",
"Results of previous good beam fit", 2, 0, 2, 8, 0, 8);
421 h_nVtx = iBooker.
book1D(
"vtxNbr",
"Reconstructed Vertices(non-fake) in all Event", 60, -0.5, 59.5);
425 h_nVtx_st = iBooker.
book1D(
"vtxNbr_SelectedTriggers",
"Reconstructed Vertices(non-fake) in Events", 60, -0.5, 59.5);
429 h_PVx[0] = iBooker.
book1D(
"PVX",
"x coordinate of Primary Vtx", 50, -0.01, 0.01);
433 h_PVy[0] = iBooker.
book1D(
"PVY",
"y coordinate of Primary Vtx", 50, -0.01, 0.01);
440 h_PVx[1] = iBooker.
book1D(
"PVXFit",
"x coordinate of Primary Vtx (Last Fit)", 50, -0.01, 0.01);
444 h_PVy[1] = iBooker.
book1D(
"PVYFit",
"y coordinate of Primary Vtx (Last Fit)", 50, -0.01, 0.01);
460 pvResults = iBooker.
book2D(
"pvResults",
"Results of fitting Primary Vertices", 2, 0, 2, 6, 0, 6);
484 sprintf(histo,
"x0_status");
487 sprintf(histo,
"y0_status");
490 sprintf(histo,
"z0_status");
519 const std::time_t ftmptime = fbegintimestamp >> 32;
563 map<int, std::time_t>::iterator itbstime =
mapBeginBSTime.begin();
564 map<int, std::time_t>::iterator itpvtime =
mapBeginPVTime.begin();
634 edm::LogInfo(
"BeamMonitor") <<
" beginLuminosityBlock:: Begin of Lumi: " << nthlumi << endl;
641 edm::LogInfo(
"BeamMonitor") <<
"analyze:: Spilt event from previous lumi section!" << std::endl;
645 edm::LogInfo(
"BeamMonitor") <<
"analyze:: Spilt event from next lumi section!!!" << std::endl;
655 refBS = *recoBeamSpotHandle;
660 auto tmphisto =
static_cast<TH1F*
>(
theBeamFitter->getCutFlow());
662 tmphisto->GetNbinsX(), tmphisto->GetXaxis()->GetXmin(), tmphisto->GetXaxis()->GetXmax());
665 for (
int n = 0;
n < tmphisto->GetNbinsX();
n++)
675 for (reco::TrackCollection::const_iterator
track = tracks->begin();
track != tracks->end(); ++
track) {
682 bool JetTrigPass =
false;
685 for (
unsigned int i = 0;
i < triggerResults->
size();
i++) {
696 size_t found = trigName.find(string_search);
698 if (found != string::npos) {
700 if (triggerResults->
accept(thisTrigger_))
714 for (reco::VertexCollection::const_iterator
pv = PVCollection->begin();
pv != PVCollection->end(); ++
pv) {
716 if (
pv->isFake() ||
pv->tracksSize() == 0)
756 map<int, std::vector<float> >::iterator itpvx =
mapPVx.begin();
757 map<int, std::vector<float> >::iterator itpvy =
mapPVy.begin();
758 map<int, std::vector<float> >::iterator itpvz =
mapPVz.begin();
760 map<int, std::vector<int> >::iterator itbspvinfo =
mapNPV.begin();
777 edm::LogInfo(
"BeamMonitor") <<
"endLuminosityBlock:: Lumi of the last event before endLuminosityBlock: " << nthlumi
783 const std::time_t fendtime = fendtimestamp >> 32;
796 int currentlumi = nextlumi;
797 edm::LogInfo(
"BeamMonitor") <<
"FitAndFill:: Lumi of the current fit: " << currentlumi << endl;
798 lastlumi = currentlumi;
807 size_t SizeToRemovePV = rmLSPVi->second;
808 for (std::map<int, std::size_t>::iterator rmLSPVe =
mapLSPVStoreSize.end(); ++rmLSPVi != rmLSPVe;)
809 rmLSPVi->second -= SizeToRemovePV;
817 edm::LogInfo(
"BeamMonitor") <<
"FitAndFill:: Size of thePVvector After removing the PVs = " 821 bool resetHistoFlag_ =
false;
827 resetHistoFlag_ =
true;
831 int countEvtLastNLS_ = 0;
834 std::map<int, std::vector<int> >::iterator mnpv =
mapNPV.begin();
835 std::map<int, std::vector<float> >::iterator mpv2 =
mapPVy.begin();
836 std::map<int, std::vector<float> >::iterator mpv3 =
mapPVz.begin();
839 ++mpv1, ++mpv2, ++mpv3, ++mnpv) {
840 std::vector<float>::iterator mpvs2 = (mpv2->second).
begin();
841 std::vector<float>::iterator mpvs3 = (mpv3->second).
begin();
842 for (std::vector<float>::iterator mpvs1 = (mpv1->second).begin(); mpvs1 != (mpv1->second).
end();
843 ++mpvs1, ++mpvs2, ++mpvs3) {
844 if (resetHistoFlag_) {
852 for (std::vector<int>::iterator mnpvs = (mnpv->second).begin(); mnpvs != (mnpv->second).
end(); ++mnpvs) {
853 if ((*mnpvs > 0) && (resetHistoFlag_))
856 countTotPV_ += (*mnpvs);
857 if ((*mnpvs) > MaxPVs)
863 char tmpTitlePV[100];
867 std::vector<float> DipPVInfo_;
870 if (countTotPV_ != 0) {
871 DipPVInfo_.push_back((
float)countEvtLastNLS_);
876 DipPVInfo_.push_back((
float)MaxPVs);
877 DipPVInfo_.push_back((
float)countTotPV_);
880 for (
size_t i = 0;
i < 7;
i++) {
882 DipPVInfo_.push_back(0.);
884 DipPVInfo_.push_back((
float)countEvtLastNLS_);
889 countEvtLastNLS_ = 0;
893 const int countLS_bs =
hs[k_x0_lumi]->getTH1()->GetEntries();
894 const int countLS_pv =
hs[k_PVx_lumi]->getTH1()->GetEntries();
895 edm::LogInfo(
"BeamMonitor") <<
"FitAndFill:: countLS_bs = " << countLS_bs <<
" ; countLS_pv = " << countLS_pv
897 int LSgap_bs = currentlumi /
fitNLumi_ - countLS_bs;
898 int LSgap_pv = currentlumi /
fitPVNLumi_ - countLS_pv;
903 edm::LogInfo(
"BeamMonitor") <<
"FitAndFill:: LSgap_bs = " << LSgap_bs <<
" ; LSgap_pv = " << LSgap_pv << std::endl;
905 for (
int ig = 0; ig < LSgap_bs; ig++) {
909 hs[k_sigmaX0_lumi]->ShiftFillLast(0., 0.,
fitNLumi_);
910 hs[k_sigmaY0_lumi]->ShiftFillLast(0., 0.,
fitNLumi_);
911 hs[k_sigmaZ0_lumi]->ShiftFillLast(0., 0.,
fitNLumi_);
914 for (
int ig = 0; ig < LSgap_pv; ig++) {
920 for (
int i = 1;
i < (currentlumi - previousLS);
939 bool doPVFit =
false;
961 std::unique_ptr<TF1> fgaus{
new TF1(
"fgaus",
"gaus")};
963 fgaus->SetLineColor(4);
965 mean = fgaus->GetParameter(1);
966 width = fgaus->GetParameter(2);
967 meanErr = fgaus->GetParError(1);
968 widthErr = fgaus->GetParError(2);
971 hs[k_PVx_lumi_all]->setBinContent(currentlumi, mean);
972 hs[k_PVx_lumi_all]->setBinError(currentlumi, width);
975 edm::LogInfo(
"BeamMonitor") <<
"FitAndFill:: Event time outside current range of time histograms!" 978 hs[k_PVx_time]->setBinContent(nthBin, mean);
979 hs[k_PVx_time]->setBinError(nthBin, width);
983 hs[k_PVx_time_all]->setBinContent(jthBin, mean);
984 hs[k_PVx_time_all]->setBinError(jthBin, width);
995 tmphisto->GetNbinsX(), tmphisto->GetXaxis()->GetXmin(), tmphisto->GetXaxis()->GetXmax());
1002 mean = fgaus->GetParameter(1);
1003 width = fgaus->GetParameter(2);
1004 meanErr = fgaus->GetParError(1);
1005 widthErr = fgaus->GetParError(2);
1007 hs[k_PVy_lumi_all]->setBinContent(currentlumi, mean);
1008 hs[k_PVy_lumi_all]->setBinError(currentlumi, width);
1010 hs[k_PVy_time]->setBinContent(nthBin, mean);
1011 hs[k_PVy_time]->setBinError(nthBin, width);
1014 hs[k_PVy_time_all]->setBinContent(jthBin, mean);
1015 hs[k_PVy_time_all]->setBinError(jthBin, width);
1025 tmphisto->GetNbinsX(), tmphisto->GetXaxis()->GetXmin(), tmphisto->GetXaxis()->GetXmax());
1033 mean = fgaus->GetParameter(1);
1034 width = fgaus->GetParameter(2);
1035 meanErr = fgaus->GetParError(1);
1036 widthErr = fgaus->GetParError(2);
1038 hs[k_PVz_lumi_all]->setBinContent(currentlumi, mean);
1039 hs[k_PVz_lumi_all]->setBinError(currentlumi, width);
1041 hs[k_PVz_time]->setBinContent(nthBin, mean);
1042 hs[k_PVz_time]->setBinError(nthBin, width);
1045 hs[k_PVz_time_all]->setBinContent(jthBin, mean);
1046 hs[k_PVz_time_all]->setBinError(jthBin, width);
1056 tmphisto->GetNbinsX(), tmphisto->GetXaxis()->GetXmin(), tmphisto->GetXaxis()->GetXmax());
1071 vector<BSTrkParameters> theBSvector1 =
theBeamFitter->getBSvector();
1073 size_t PreviousRecords = 0;
1076 size_t SizeToRemove = 0;
1077 std::map<int, std::size_t>::iterator rmls =
mapLSBSTrkSize.begin();
1078 SizeToRemove = rmls->second;
1080 edm::LogInfo(
"BeamMonitor") <<
" The size to remove is = " << SizeToRemove << endl;
1081 int changedAfterThis = 0;
1083 ++rmLS, ++changedAfterThis) {
1084 if (changedAfterThis > 0) {
1085 (rmLS->second) = (rmLS->second) - SizeToRemove;
1087 PreviousRecords = (rmLS->second);
1096 std::pair<int, int> checkfitLS =
theBeamFitter->getFitLSRange();
1097 std::pair<time_t, time_t> checkfitTime =
theBeamFitter->getRefTime();
1103 vector<BSTrkParameters> theBSvector =
theBeamFitter->getBSvector();
1107 edm::LogInfo(
"BeamMonitor") <<
"FitAndFill:: Size of theBSViector.size() After =" << theBSvector.size() << endl;
1109 bool countFitting =
false;
1110 if (theBSvector.size() >= PreviousRecords && theBSvector.size() >=
min_Ntrks_) {
1111 countFitting =
true;
1117 const TH1F& cutFlowToSubtract =
mapLSCF.begin()->second;
1119 std::map<int, TH1F>::iterator cf =
mapLSCF.begin();
1121 for (; cf !=
mapLSCF.end(); ++cf) {
1122 cf->second.Add(&cutFlowToSubtract, -1);
1143 unsigned int itrk = 0;
1144 for (vector<BSTrkParameters>::const_iterator BSTrk = theBSvector.begin(); BSTrk != theBSvector.end();
1148 double vx = BSTrk->vx();
1149 double vy = BSTrk->vy();
1150 double z0 = BSTrk->z0();
1182 <<
"; address = " << &
refBStime[0] << std::endl;
1184 <<
"; address = " << &
refBStime[1] << std::endl;
1193 edm::LogInfo(
"BeamMonitor") <<
"FitAndFill:: [BeamFitter] Do BeamSpot Fit for LS = " << fitLS.first <<
" to " 1194 << fitLS.second << std::endl;
1204 edm::LogInfo(
"BeamMonitor") <<
"\n RESULTS OF DEFAULT FIT:" << endl;
1206 edm::LogInfo(
"BeamMonitor") <<
"[BeamFitter] fitting done \n" << endl;
1214 hs[k_x0_lumi_all]->setBinContent(currentlumi, bs.
x0());
1215 hs[k_x0_lumi_all]->setBinError(currentlumi, bs.
x0Error());
1216 hs[k_y0_lumi_all]->setBinContent(currentlumi, bs.
y0());
1217 hs[k_y0_lumi_all]->setBinError(currentlumi, bs.
y0Error());
1218 hs[k_z0_lumi_all]->setBinContent(currentlumi, bs.
z0());
1219 hs[k_z0_lumi_all]->setBinError(currentlumi, bs.
z0Error());
1220 hs[k_sigmaX0_lumi_all]->setBinContent(currentlumi, bs.
BeamWidthX());
1222 hs[k_sigmaY0_lumi_all]->setBinContent(currentlumi, bs.
BeamWidthY());
1224 hs[k_sigmaZ0_lumi_all]->setBinContent(currentlumi, bs.
sigmaZ());
1225 hs[k_sigmaZ0_lumi_all]->setBinError(currentlumi, bs.
sigmaZ0Error());
1229 hs[k_x0_time]->setBinContent(nthBin, bs.
x0());
1230 hs[k_y0_time]->setBinContent(nthBin, bs.
y0());
1231 hs[k_z0_time]->setBinContent(nthBin, bs.
z0());
1232 hs[k_sigmaX0_time]->setBinContent(nthBin, bs.
BeamWidthX());
1233 hs[k_sigmaY0_time]->setBinContent(nthBin, bs.
BeamWidthY());
1234 hs[k_sigmaZ0_time]->setBinContent(nthBin, bs.
sigmaZ());
1235 hs[k_x0_time]->setBinError(nthBin, bs.
x0Error());
1236 hs[k_y0_time]->setBinError(nthBin, bs.
y0Error());
1237 hs[k_z0_time]->setBinError(nthBin, bs.
z0Error());
1245 hs[k_x0_time_all]->setBinContent(jthBin, bs.
x0());
1246 hs[k_y0_time_all]->setBinContent(jthBin, bs.
y0());
1247 hs[k_z0_time_all]->setBinContent(jthBin, bs.
z0());
1248 hs[k_sigmaX0_time_all]->setBinContent(jthBin, bs.
BeamWidthX());
1249 hs[k_sigmaY0_time_all]->setBinContent(jthBin, bs.
BeamWidthY());
1250 hs[k_sigmaZ0_time_all]->setBinContent(jthBin, bs.
sigmaZ());
1251 hs[k_x0_time_all]->setBinError(jthBin, bs.
x0Error());
1252 hs[k_y0_time_all]->setBinError(jthBin, bs.
y0Error());
1253 hs[k_z0_time_all]->setBinError(jthBin, bs.
z0Error());
1262 if (bs.
type() > 0) {
1270 double alpha = std::atan2(bs.
y0(), bs.
x0());
1271 std::unique_ptr<TF1>
f1{
new TF1(
"f1",
"[0]*sin(x-[1])", -3.14, 3.14)};
1272 f1->SetParameters(amp, alpha);
1273 f1->SetParLimits(0, amp - 0.1, amp + 0.1);
1274 f1->SetParLimits(1, alpha - 0.577, alpha + 0.577);
1275 f1->SetLineColor(4);
1280 std::unique_ptr<TF1> fgaus{
new TF1(
"fgaus",
"gaus")};
1281 fgaus->SetParameters(mean, width);
1282 fgaus->SetLineColor(4);
1287 std::pair<int, int> LSRange =
theBeamFitter->getFitLSRange();
1289 sprintf(tmpTitle,
"%s %i %s %i",
"Fitted Beam Spot (cm) of LS: ", LSRange.first,
" to ", LSRange.second);
1297 if (bs.
type() > 0) {
1311 if (bs.
type() > 0) {
1333 edm::LogInfo(
"BeamMonitor") <<
"FitAndFill:: [BeamMonitor] Beam fit fails!!! \n" << endl;
1334 edm::LogInfo(
"BeamMonitor") <<
"FitAndFill:: [BeamMonitor] Output beam spot for DIP \n" << endl;
1353 edm::LogInfo(
"BeamMonitor") <<
"FitAndFill:: [BeamMonitor] No fitting \n" << endl;
1354 edm::LogInfo(
"BeamMonitor") <<
"FitAndFill:: [BeamMonitor] Output fake beam spot for DIP \n" << endl;
1389 edm::LogInfo(
"BeamMonitor") <<
"FitAndFill:: The flag is ON for running average Beam Spot fit" << endl;
1403 <<
" RestartingFitting:: Restart Beami everything to a fresh start !!! because Gap is > 10 LS" << endl;
1440 edm::LogInfo(
"BeamMonitor") <<
"dqmEndRun:: Clearing all the Maps " << endl;
1457 char offsetTime[64];
1459 TDatime
da(offsetTime);
1462 double valErr = h->GetBinError(
lastNZbin);
1464 h->GetXaxis()->SetTimeOffset(da.Convert(kTRUE));
1466 h->SetBinContent(bin, val);
1467 h->SetBinError(bin, valErr);
1470 h->GetXaxis()->SetTimeOffset(da.Convert(kTRUE));
1477 bool scroll_ =
false;
1480 edm::LogInfo(
"BeamMonitor") <<
"testScroll:: Reset Time Offset" << std::endl;
1483 if (
hs[k_x0_time]->getBinContent(
bin) > 0) {
1490 edm::LogInfo(
"BeamMonitor") <<
"testScroll:: Time difference too large since last readout" << std::endl;
1494 edm::LogInfo(
"BeamMonitor") <<
"testScroll:: Offset to last record" << std::endl;
LuminosityBlockID id() const
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX)
T getParameter(std::string const &) const
BeamMonitor(const edm::ParameterSet &)
edm::EDGetTokenT< edm::TriggerResults > hltSrc_
double z0() const
z coordinate
std::unique_ptr< BeamFitter > theBeamFitter
T getUntrackedParameter(std::string const &, T const &) const
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
unsigned int minNrVertices_
double sigmaZ0Error() const
error on sigma z
MonitorElement * reportSummary
void bookHistograms(DQMStore::IBooker &i, const edm::Run &r, const edm::EventSetup &c) override
MonitorElement * bookFloat(TString const &name)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * cutFlowTable
double dydzError() const
error on dydz
MonitorElement * h_PVz[2]
bool testScroll(std::time_t &, std::time_t &)
virtual void setOption(const char *option)
std::map< int, std::vector< float > > mapPVx
void analyze(const edm::Event &e, const edm::EventSetup &c) override
void setCurrentFolder(std::string const &fullpath)
bool accept() const
Has at least one path accepted the event?
edm::EDGetTokenT< reco::VertexCollection > pvSrc_
std::vector< Track > TrackCollection
collection of Tracks
edm::TimeValue_t ftimestamp
edm::LuminosityBlockNumber_t luminosityBlock() const
std::vector< MonitorElement * > hs
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c) override
Timestamp const & beginTime() const
MonitorElement * h_sigmaZ0
MonitorElement * h_nTrk_lumi
std::map< int, std::size_t > mapLSBSTrkSize
MonitorElement * fitResults
std::vector< std::string > jetTrigger_
MonitorElement * h_sigmaY0
std::map< int, std::vector< float > > mapPVz
std::map< int, std::time_t > mapBeginPVTime
std::map< int, std::vector< int > > mapNPV
LuminosityBlockNumber_t luminosityBlock() const
virtual void Reset()
reset ME (ie. contents, errors, etc)
DQM_DEPRECATED void ShiftFillLast(double y, double ye=0., int32_t xscale=1)
std::map< int, std::time_t > mapBeginBSTime
double dydz() const
dydz slope
#define DEFINE_FWK_MODULE(type)
double dxdzError() const
error on dxdz
unsigned int triggerIndex(std::string const &name) const
edm::EDGetTokenT< reco::TrackCollection > tracksLabel_
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
unsigned int size() const
Get number of paths stored.
Timestamp const & endTime() const
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, char const *option="s")
void formatFitTime(char *, const std::time_t &)
MonitorElement * pvResults
MonitorElement * h_nVtx_lumi
double BeamWidthX() const
beam width X
double BeamWidthYError() const
error on beam width Y, assume error in X = Y
static std::string const triggerResults
virtual 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)
double BeamWidthXError() const
error on beam width X, assume error in X = Y
double z0Error() const
error on z
unsigned long long TimeValue_t
virtual TProfile * getTProfile()
double dxdz() const
dxdz slope
std::map< int, TH1F > mapLSCF
double x0Error() const
error on x
double y0Error() const
error on y
MonitorElement * h_nVtx_lumi_all
static const char *const trigNames[]
void update()
Mark the object updated.
void FitAndFill(const edm::LuminosityBlock &lumiSeg, int &, int &, int &)
Float_t summaryContent_[3]
MonitorElement * h_sigmaX0
virtual double getMean(int axis=1) const
get mean value of histogram along x, y or z axis (axis=1, 2, 3 respectively)
edm::EDGetTokenT< reco::BeamSpot > bsSrc_
MonitorElement * h_nVtx_st
T const * product() const
MonitorElement * h_PVy[2]
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
std::string const & triggerName(unsigned int index) const
virtual double getMeanError(int axis=1) const
MonitorElement * reportSummaryContents[3]
double sigmaZ() const
sigma z
virtual double getRMS(int axis=1) const
get RMS of histogram along x, y or z axis (axis=1, 2, 3 respectively)
double BeamWidthY() const
beam width Y
LuminosityBlockNumber_t luminosityBlock() const
MonitorElement * h_trk_z0
std::map< int, int > mapBeginBSLS
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &context) override
Timestamp const & beginTime() const
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
virtual double getRMSError(int axis=1) const
get RMS uncertainty of histogram along x, y or z axis(axis=1,2,3 respectively)
double y0() const
y coordinate
alpha
zGenParticlesMatch = cms.InputTag(""),
void dqmEndRun(const edm::Run &r, const edm::EventSetup &c) override
MonitorElement * h_PVx[2]
std::map< int, int > mapBeginPVLS
TimeValue_t value() const
std::map< int, std::vector< float > > mapPVy
MonitorElement * h_d0_phi0
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
void scrollTH1(TH1 *, std::time_t)
BeamType type() const
return beam type
MonitorElement * reportSummaryMap
double x0() const
x coordinate
std::map< int, size_t > mapLSPVStoreSize
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)