33 #define CP(level) if (level >= verbose_) 50 : hltResName_(parameters.getUntrackedParameter<
string>(
"hltTrgResults",
52 pixelName_(parameters.getUntrackedParameter<
string>(
"pixelRecHits",
55 parameters.getUntrackedParameter<
string>(
"clusterVertices",
"")),
56 ZVCut_(parameters.getUntrackedParameter<double>(
"ZVertexCut", 10)),
58 parameters.getUntrackedParameter<double>(
"ZVertexEtaRegion", 2)),
60 parameters.getUntrackedParameter<double>(
"ZVertexVtxRegion", 2)),
61 dPhiVc_(parameters.getUntrackedParameter<double>(
"dPhiVertexCut", 0.08)),
62 dZVc_(parameters.getUntrackedParameter<double>(
"dZVertexCut", 0.25)),
63 sigEtaCut_(parameters.getUntrackedParameter<double>(
"signalEtaCut", 0.1)),
64 sigPhiCut_(parameters.getUntrackedParameter<double>(
"signalPhiCut", 1.5)),
66 parameters.getUntrackedParameter<double>(
"backgroundEtaCut", 0.1)),
68 parameters.getUntrackedParameter<double>(
"backgroundPhiCut", 3.0)),
69 verbose_(parameters.getUntrackedParameter<
int>(
"verbose", 3)),
71 parameters.getUntrackedParameter<
int>(
"pixLayerCombinations", 12)),
73 parameters.getUntrackedParameter<
int>(
"clusLayerCombinations", 12)),
74 useRecHitQ_(parameters.getUntrackedParameter<
bool>(
"useRecHitQualityWord",
77 parameters.getUntrackedParameter<
bool>(
"usePixelQualityWord",
true)),
87 if (parameters.
exists(
"hltTrgNames"))
91 if (parameters.
exists(
"hltProcNames"))
101 "Value for pixLayerCombinations must be one of 12,13, or 23. " 102 "Got %d, set value to 12",
128 bool isHltCfgChanged =
false;
131 if (
i > 0) teststr +=
", ";
145 print(3, Form(
"Could not obtain HLT config for process name(s) %s",
164 Form(
"Checking trigger name %s for %s", n2.c_str(), n1.c_str()));
169 print(0, Form(
"Added trigger %d with name %s for bit %d",
176 CP(2)
print(2, Form(
"Could not find trigger bit for %s", n1.c_str()));
182 print(3, Form(
"Size of trigger bits not equal used names: %d %d",
185 print(3, Form(
"Size of decision bits not equal names: %d %d",
237 const double x1 = -0.5;
238 const double x2 = Nx - 0.5;
240 "h2TriCorr",
"Trigger bit x vs y (y&&!x,x&&y)", Nx, x1, x2, Nx, x1, x2);
246 if (h) h->SetStats(
false);
251 const double x1 = -0.5;
252 const double x2 = 149.5;
253 book1D(iBooker,
hNhitsL1_,
"hNhitsLayer1",
"number of hits on layer 1;#hits;#", Nx,
256 book1D(iBooker,
hNhitsL2_,
"hNhitsLayer2",
"number of hits on layer 2;#hits;#", Nx,
259 book1D(iBooker,
hNhitsL3_,
"hNhitsLayer3",
"number of hits on layer 3;#hits;#", Nx,
265 const double x1 = -0.5;
266 const double x2 = 14.5;
267 book1D(iBooker,
hNhitsL1z_,
"hNhitsLayer1Zoom",
"number of hits on layer 1;#hits;#",
271 "number of hits on layer 2;#hits;#", Nx, x1, x2);
274 "number of hits on layer 3;#hits;#", Nx, x1, x2);
279 const double x1 = -3;
280 const double x2 = +3;
282 "Hits on layer 1;detector #eta;#", Nx, x1, x2);
285 "Hits on layer 2;detector #eta;#", Nx, x1, x2);
288 "Hits on layer 3;detector #eta;#", Nx, x1, x2);
293 const double x1 = -3.2;
294 const double x2 = +3.2;
307 const double x1 = -25;
308 const double x2 = +25;
311 "z vertex from tracklets12;vz [cm];#", Nx, x1, x2);
314 "z vertex from tracklets13;vz [cm];#", Nx, x1, x2);
317 "z vertex from tracklets23;vz [cm];#", Nx, x1, x2);
323 const double x1 = -3;
324 const double x2 = +3;
326 const double y1 = -
ZVCut_;
327 const double y2 = +
ZVCut_;
330 "raw #eta vs z vertex from tracklets12;#eta;vz [cm]", Nx, x1, x2,
331 Ny, y1, y2,
false,
false);
334 "raw #eta vs z vertex from tracklets13;#eta;vz [cm]", Nx, x1, x2,
335 Ny, y1, y2,
false,
false);
338 "raw #eta vs z vertex from tracklets23;#eta;vz [cm]", Nx, x1, x2,
339 Ny, y1, y2,
false,
false);
344 const double x1 = -3;
345 const double x2 = +3;
347 const double y1 = -3.2;
348 const double y2 = +3.2;
351 "tracklet12 raw #Delta#eta vs #Delta#phi;#Delta#eta;#Delta#phi",
352 Nx, x1, x2, Ny, y1, y2,
false,
false);
355 "tracklet13 raw #Delta#eta vs #Delta#phi;#Delta#eta;#Delta#phi",
356 Nx, x1, x2, Ny, y1, y2,
false,
false);
359 "tracklet12 raw #Delta#eta vs #Delta#phi;#Delta#eta;#Delta#phi",
360 Nx, x1, x2, Ny, y1, y2,
false,
false);
365 const double x1 = -3;
366 const double x2 = +3;
369 "tracklet12 raw dN/#Delta#eta;#Delta#eta;dN/#Delta#eta", Nx, x1,
373 "tracklet13 raw dN/#Delta#eta;#Delta#eta;dN/#Delta#eta", Nx, x1,
377 "tracklet23 raw dN/#Delta#eta;#Delta#eta;dN/#Delta#eta", Nx, x1,
383 const double x1 = -3.2;
384 const double x2 = +3.2;
387 "tracklet12 raw dN/#Delta#phi;#Delta#phi;dN/#Delta#phi", Nx, x1,
391 "tracklet13 raw dN/#Delta#phi;#Delta#phi;dN/#Delta#phi", Nx, x1,
395 "tracklet23 raw dN/#Delta#phi;#Delta#phi;dN/#Delta#phi", Nx, x1,
400 const int Nx = xa->GetNbins();
401 const double x1 = xa->GetBinLowEdge(1);
402 const double x2 = xa->GetBinLowEdge(Nx + 1);
405 "raw dN/d#eta for tracklets12;#eta;dN/d#eta", Nx, x1, x2,
false,
false);
408 "(1-#beta) dN/d#eta for tracklets12;#eta;dN/d#eta", Nx, x1, x2,
false,
412 "dN/d#eta for tracklets12;#eta;dN/d#eta", Nx, x1, x2,
false,
false);
414 "Events per vtx-#eta bin from tracklets12;#eta;#", 1,
419 const int Nx = xa->GetNbins();
420 const double x1 = xa->GetBinLowEdge(1);
421 const double x2 = xa->GetBinLowEdge(Nx + 1);
424 "raw dN/d#eta for tracklets13;#eta;dN/d#eta", Nx, x1, x2,
false,
false);
427 "(1-#beta) dN/d#eta for tracklets13;#eta;dN/d#eta", Nx, x1, x2,
false,
431 "dN/d#eta for tracklets13;#eta;dN/d#eta", Nx, x1, x2,
false,
false);
433 "Events per vtx-#eta bin from tracklets13;#eta;#", 1,
438 const int Nx = xa->GetNbins();
439 const double x1 = xa->GetBinLowEdge(1);
440 const double x2 = xa->GetBinLowEdge(Nx + 1);
443 "raw dN/d#eta for tracklets23;#eta;dN/d#eta", Nx, x1, x2,
false,
false);
446 "(1-#beta) dN/d#eta for tracklets23;#eta;dN/d#eta", Nx, x1, x2,
false,
450 "dN/d#eta for tracklets23;#eta;dN/d#eta", Nx, x1, x2,
false,
false);
452 "Events per vtx-#eta bin from tracklets23;#eta;#", 1,
458 const double x1 = -25;
459 const double x2 = +25;
462 "z vertex from clusters12;vz [cm];#", Nx, x1, x2);
467 const double x1 = -3;
468 const double x2 = +3;
470 const double y1 = -0.5;
471 const double y2 = 24.5;
474 "cluster #eta vs local y size on layer 1;#eta;size", Nx, x1, x2,
475 Ny, y1, y2,
false,
false);
478 "cluster #eta vs local y size on layer 2;#eta;size", Nx, x1, x2,
479 Ny, y1, y2,
false,
false);
482 "cluster #eta vs local y size on layer 3;#eta;size", Nx, x1, x2,
483 Ny, y1, y2,
false,
false);
488 const double x1 = -3;
489 const double x2 = +3;
492 const double y2 = 2500;
495 "cluster #eta vs adc on layer 1;#eta;adc", Nx, x1, x2, Ny, y1,
499 "cluster #eta vs adc on layer 2;#eta;adc", Nx, x1, x2, Ny, y1,
503 "cluster #eta vs adc on layer 3;#eta;adc", Nx, x1, x2, Ny, y1,
518 "QcdLowPtDQM::analyze -- Could not obtain pointer to " 519 "TrackerGeometry. Return.");
531 std::vector<MonitorElement *> &mes,
533 int nx,
double x1,
double x2,
bool sumw2,
bool sbox) {
542 if (sumw2) h1->Sumw2();
549 std::vector<MonitorElement *> &mes,
551 int nx,
double x1,
double x2,
int ny,
double y1,
552 double y2,
bool sumw2,
bool sbox) {
560 if (sumw2) h1->Sumw2();
568 double x2,
bool sumw2,
bool sbox) {
576 if (sumw2) h1->Sumw2();
584 double x2,
int ny,
double y1,
double y2,
bool sumw2,
592 nx, x1, x2, ny, y1, y2);
593 if (sumw2) h1->Sumw2();
600 const std::vector<TH3F *> &NsigTracklets,
601 const std::vector<TH3F *> &NbkgTracklets,
602 const std::vector<TH1F *> &NEvsPerEta,
603 std::vector<MonitorElement *> &hdNdEtaRawTrkl,
604 std::vector<MonitorElement *> &hdNdEtaSubTrkl,
605 std::vector<MonitorElement *> &hdNdEtaTrklets) {
608 if (!AlphaTracklets)
return;
610 const int netabins = AlphaTracklets->GetNbinsX();
611 const int nhitbins = AlphaTracklets->GetNbinsY();
612 const int nvzbins = AlphaTracklets->GetNbinsZ();
618 for (
size_t i = 0;
i < hdNdEtaRawTrkl.size(); ++
i) {
627 TH3F *hsig = NsigTracklets.at(
i);
628 TH3F *hbkg = NbkgTracklets.at(
i);
629 TH1F *hepa = NEvsPerEta.at(
i);
631 for (
int etabin = 1; etabin <= netabins; ++etabin) {
632 const double etaval = AlphaTracklets->GetXaxis()->GetBinCenter(etabin);
633 const double etawidth = AlphaTracklets->GetXaxis()->GetBinWidth(etabin);
634 const int zvetabin = hepa->GetXaxis()->FindFixBin(etaval);
635 const double events = hepa->GetBinContent(zvetabin);
636 if (!events)
continue;
646 double dndetaraw = 0;
647 double dndetasub = 0;
649 double dndetarawerr = 0;
650 double dndetasuberr = 0;
651 double dndetaerr = 0;
652 for (
int hitbin = 1; hitbin <= nhitbins; ++hitbin) {
653 for (
int vzbin = 1; vzbin <= nvzbins; ++vzbin) {
654 int gbin = AlphaTracklets->GetBin(etabin, hitbin, vzbin);
655 const double nsig = hsig->GetBinContent(gbin);
657 const double nbkg = hbkg->GetBinContent(gbin);
658 const double nsub = nsig - nbkg;
660 CP(2)
print(2, Form(
"Got negative contributions: %d %d %d %f",
661 etabin, hitbin, vzbin, nsub));
665 const double alpha = AlphaTracklets->GetBinContent(gbin);
666 dndeta += alpha * nsub;
667 double nsig2 = nsig * nsig;
668 double nsub2 = nsub * nsub;
669 double alpha2 = alpha *
alpha;
670 dndetarawerr += nsig2;
671 dndetasuberr += nsub2;
672 dndetaerr += alpha2 * nsub2;
676 double norm = etawidth *
events;
677 double enorm = etawidth * norm;
681 dndetarawerr /= enorm;
682 dndetasuberr /= enorm;
684 double dndetarawsigma2 = (dndetaraw * dndetaraw - dndetarawerr) / events;
685 double dndetasubsigma2 = (dndetasub * dndetasub - dndetasuberr) / events;
686 double dndetasigma2 = (dndeta * dndeta - dndetaerr) / events;
697 std::shared_ptr<qlpd::Cache>
700 return std::shared_ptr<qlpd::Cache>();
739 for (
size_t i = 0;
i < hs.size(); ++
i) {
741 hs.at(
i)->Fill(val, w);
749 for (
size_t i = 0;
i < mes.size(); ++
i) {
751 mes.at(
i)->Fill(val, w);
759 for (
size_t i = 0;
i < hs.size(); ++
i) {
761 hs.at(
i)->Fill(valx, valy, w);
766 double valy,
double w) {
769 for (
size_t i = 0;
i < mes.size(); ++
i) {
771 mes.at(
i)->Fill(valx, valy, w);
778 for (
size_t i = 0;
i < hs.size(); ++
i) {
780 hs.at(
i)->AddBinContent(gbin, w);
793 if (tbit < triggerResultsHLT->
size()) {
799 print(2, Form(
"Problem slot %i for bit %i for %s",
int(
i),
int(tbit),
824 CP(2)
print(2, Form(
"Can not obtain pixel hit collection with name %s",
839 if (!
hit->isValid())
continue;
842 if (
hit->isOnEdge() ||
hit->hasBadPixels())
continue;
853 vector<SiPixelCluster::Pixel> pixels(
hit->cluster()->pixels());
854 bool pixelOnEdge =
false;
855 for (std::vector<SiPixelCluster::Pixel>::const_iterator
pixel =
858 int pixelX =
pixel->x;
859 int pixelY =
pixel->y;
866 if (pixelOnEdge)
continue;
871 hit->localPosition().
z());
873 double adc =
hit->cluster()->charge() / 135.;
874 double sizex =
hit->cluster()->sizeX();
875 double sizey =
hit->cluster()->sizeY();
877 Pixel pix(gpos, adc, sizex, sizey);
885 }
else if (layer == 2) {
914 "Can not obtain pixel vertex from cluster collection " 921 if (!vertices || vertices->empty())
return;
922 reco::VertexCollection::const_iterator vertex = vertices->begin();
925 std::vector<Pixel> allp(
bpix1_);
930 if (vz <= -999)
return;
942 const double vz,
const std::vector<Pixel> &pix,
943 std::vector<MonitorElement *> &hClusterYSize,
944 std::vector<MonitorElement *> &hClusterADC) {
947 for (
size_t i = 0;
i < pix.size(); ++
i) {
982 const std::vector<Pixel> &pix1,
983 const std::vector<Pixel> &pix2,
984 const Vertex &trackletV) {
992 std::vector<Tracklet> tmptrkls;
993 tmptrkls.reserve(pix1.size() * pix2.size());
994 for (
size_t i = 0;
i < pix1.size(); ++
i) {
996 pix1.at(
i).z() - trackletV.
z());
998 for (
size_t j = 0; j < pix2.size(); ++j) {
999 const GlobalPoint tmp2(pix2.at(j).x(), pix2.at(j).y(),
1000 pix2.at(j).z() - trackletV.
z());
1005 tmptrkls.push_back(tracklet);
1013 vector<bool> secused(pix2.size(),
false);
1014 for (
size_t k = 0;
k < tmptrkls.size(); ++
k) {
1016 size_t p2ind = tl.
i2();
1017 if (secused.at(p2ind))
continue;
1018 secused[p2ind] =
true;
1019 tracklets.push_back(tl);
1020 if (tracklets.size() == pix2.size())
1026 const std::vector<Tracklet> &tracklets,
const std::vector<Pixel> &pixels,
1027 const Vertex &trackletV,
const TH3F *AlphaTracklets,
1028 std::vector<TH3F *> &NsigTracklets, std::vector<TH3F *> &NbkgTracklets,
1029 std::vector<TH1F *> &eventpereta, std::vector<MonitorElement *> &detaphi,
1030 std::vector<MonitorElement *> &deta, std::vector<MonitorElement *> &dphi,
1031 std::vector<MonitorElement *> &etavsvtx) {
1034 if (!AlphaTracklets)
return;
1036 if (tracklets.empty())
return;
1039 for (
size_t i = 0;
i < eventpereta.size(); ++
i) {
1041 TH1 *
h = eventpereta.at(
i);
1042 h->AddBinContent(1, 1);
1044 h->AddBinContent(0, 1);
1046 h->AddBinContent(2, 1);
1050 const TAxis *xa = AlphaTracklets->GetXaxis();
1051 int ybin = AlphaTracklets->GetYaxis()->FindFixBin(pixels.size());
1052 int zbin = AlphaTracklets->GetZaxis()->FindFixBin(trackletV.
z());
1053 int tbin = AlphaTracklets->GetBin(0,ybin,zbin);
1054 for(
size_t k=0;
k<tracklets.size(); ++
k) {
1056 fill2D(detaphi, tl.deta(), tl.dphi());
1059 int ebin = xa->FindFixBin(tl.eta());
1060 int gbin = ebin + tbin;
1061 fill2D(etavsvtx, tl.eta(), trackletV.
z());
1067 fill3D(NsigTracklets, gbin);
1069 fill3D(NbkgTracklets, gbin);
1077 printf(
"QcdLowPtDQM: %s\n", msg);
1078 }
else if (level == 1) {
1079 LogWarning(
"QcdLowPtDQM") << msg << std::endl;
1080 }
else if (level == 2) {
1081 LogError(
"QcdLowPtDQM") << msg << std::endl;
1082 }
else if (level == 3) {
1083 LogError(
"QcdLowPtDQM") << msg << std::endl;
1107 std::vector<Pixel> &pix2,
1114 vector<double> zvCands;
1115 zvCands.reserve(pix1.size() * pix2.size());
1118 for (
size_t i = 0;
i < pix1.size(); ++
i) {
1120 const double r12 =
p1.x() *
p1.x() +
p1.y() *
p1.y();
1121 for (
size_t j = 0; j < pix2.size(); ++j) {
1124 const double r22 =
p2.x() *
p2.x() +
p2.y() *
p2.y();
1126 p1.z() - (
p2.z() -
p1.z()) / (TMath::Sqrt(r22 / r12) - 1);
1127 if (TMath::IsNaN(vz))
continue;
1129 zvCands.push_back(vz);
1134 sort(zvCands.begin(), zvCands.end());
1141 for (
size_t i = 0;
i < zvCands.size(); ++
i) {
1142 double z1 = zvCands.at(
i);
1146 for (
size_t j =
i; j < zvCands.size(); ++j) {
1147 double z2 = zvCands.at(j);
1157 double_t
s2 = mean * mean - mean2;
1159 if ((ncl < mcl) || (ncl == mcl && s2 > ms2))
continue;
1167 vtx.
set(mcl, mzv, ms2);
1173 double chi_max = 1
e+9;
1174 double z_best = -999;
1177 for (
double z0 = -15.9; z0 <= 15.95; z0 += 0.1) {
1180 for (
size_t i = 0;
i < pix.size(); ++
i) {
1186 if (chitest <= 1.) {
1192 if (nhits <= 0)
continue;
1194 if (nhits < nhits_max)
continue;
1196 if ((nhits > nhits_max) || (chi < chi_max)) {
1212 const int nEtaBin = 12;
1213 const int nHitBin = 14;
1214 const int nVzBin = 10;
1216 double HitBins[nHitBin + 1] = {0, 5, 10, 15, 20, 25, 30, 35,
1217 40, 50, 60, 80, 100, 200, 700};
1220 for (
int i = 0;
i <= nEtaBin;
i++)
1221 EtaBins[
i] = (
double)
i * 6.0 / (double)nEtaBin - 3.0;
1222 double VzBins[nVzBin + 1];
1223 for (
int i = 0;
i <= nVzBin;
i++)
1224 VzBins[
i] = (
double)
i * 20.0 / (double)nVzBin - 10.0;
1227 "hAlphaTracklets12",
"Alpha for tracklets12;#eta;#hits;vz [cm]",
1228 nEtaBin, EtaBins, nHitBin, HitBins, nVzBin, VzBins);
2466 const int nEtaBin = 12;
2467 const int nHitBin = 14;
2468 const int nVzBin = 10;
2470 double HitBins[nHitBin + 1] = {0, 5, 10, 15, 20, 25, 30, 35,
2471 40, 50, 60, 80, 100, 200, 700};
2474 for (
int i = 0;
i <= nEtaBin;
i++)
2475 EtaBins[
i] = (
double)
i * 6.0 / (double)nEtaBin - 3.0;
2476 double VzBins[nVzBin + 1];
2477 for (
int i = 0;
i <= nVzBin;
i++)
2478 VzBins[
i] = (
double)
i * 20.0 / (double)nVzBin - 10.0;
2481 "hAlphaTracklets13",
"Alpha for tracklets13;#eta;#hits;vz [cm]",
2482 nEtaBin, EtaBins, nHitBin, HitBins, nVzBin, VzBins);
3496 const int nEtaBin = 12;
3497 const int nHitBin = 14;
3498 const int nVzBin = 10;
3500 double HitBins[nHitBin + 1] = {0, 5, 10, 15, 20, 25, 30, 35,
3501 40, 50, 60, 80, 100, 200, 700};
3504 for (
int i = 0;
i <= nEtaBin;
i++)
3505 EtaBins[
i] = (
double)
i * 6.0 / (double)nEtaBin - 3.0;
3506 double VzBins[nVzBin + 1];
3507 for (
int i = 0;
i <= nVzBin;
i++)
3508 VzBins[
i] = (
double)
i * 20.0 / (double)nVzBin - 10.0;
3511 "hAlphaTracklets23",
"Alpha for tracklets23;#eta;#hits;vz [cm]",
3512 nEtaBin, EtaBins, nHitBin, HitBins, nVzBin, VzBins);
unsigned int size() const
number of trigger paths in trigger table
double vertexZFromClusters(const std::vector< Pixel > &pix) const
T getUntrackedParameter(std::string const &, T const &) const
std::vector< std::string > hltProcNames_
std::vector< MonitorElement * > hdNdPhiHitsL2_
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
void setBinContent(int binx, double content)
set content of bin (1-D)
QcdLowPtDQM(const edm::ParameterSet ¶meters)
Point3DBase< Scalar, LocalTag > LocalPoint
std::vector< Tracklet > btracklets23_
std::vector< MonitorElement * > hNhitsL3_
const std::string & triggerName(unsigned int triggerIndex) const
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
std::vector< MonitorElement * > hTrkRawDetaDphi13_
HLTConfigProvider hltConfig_
std::vector< TH3F * > NbkgTracklets12_
virtual bool isItEdgePixelInX(int ixbin) const =0
std::vector< MonitorElement * > hdNdEtaRawTrkl13_
std::vector< MonitorElement * > hdNdEtaRawTrkl23_
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
void trackletVertexUnbinned(const edm::Event &iEvent, int which=12)
bool accept() const
Has at least one path accepted the event?
std::shared_ptr< qlpd::Cache > globalBeginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &) const override
std::vector< bool > hltTrgDeci_
bool exists(std::string const ¶meterName) const
checks if a parameter exists
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
std::vector< MonitorElement * > hRawTrkEtaVtxZ12_
std::vector< Vertex > VertexCollection
collection of Vertex objects
std::vector< TH3F * > NsigTracklets12_
virtual bool isItEdgePixelInY(int iybin) const =0
std::vector< TH1F * > hEvtCountsPerEta12_
std::vector< MonitorElement * > hNhitsL2z_
std::vector< TH3F * > NsigTracklets23_
std::vector< MonitorElement * > hTrkRawDeta23_
std::vector< MonitorElement * > hdNdEtaHitsL1_
std::vector< MonitorElement * > hdNdEtaSubTrkl23_
std::vector< MonitorElement * > hClusterADC1_
void operator()(TH3F *&h)
std::vector< TH3F * > NsigTracklets13_
std::vector< MonitorElement * > hRawTrkEtaVtxZ23_
std::vector< MonitorElement * > hClusterYSize2_
MonitorElement * repSummary_
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
std::vector< MonitorElement * > hTrkVtxZ12_
std::vector< MonitorElement * > hTrkVtxZ13_
std::vector< TH3F * > NbkgTracklets13_
std::vector< Tracklet > btracklets12_
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
std::vector< MonitorElement * > hTrkRawDeta12_
std::vector< MonitorElement * > hdNdEtaHitsL2_
std::vector< MonitorElement * > hdNdEtaSubTrkl13_
void fill3D(std::vector< TH3F * > &hs, int gbin, double w=1.)
void getProduct(const std::string name, edm::Handle< TYPE > &prod, const edm::Event &event) const
MonitorElement * repSumMap_
std::vector< MonitorElement * > hClusterVertexZ_
void setCurrentFolder(std::string const &fullpath)
std::vector< std::string > hltTrgUsedNames_
std::vector< MonitorElement * > hNhitsL1_
std::vector< MonitorElement * > hTrkRawDphi23_
data_type const * data(size_t cell) const
MonitorElement * book1D(Args &&...args)
void globalEndLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &iSetup) override
std::vector< Pixel > bpix3_
std::vector< MonitorElement * > hNhitsL1z_
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
std::vector< MonitorElement * > hTrkRawDphi12_
std::vector< MonitorElement * > hClusterYSize3_
constexpr int adc(sample_type sample)
get the ADC sample (12 bits)
void Reset()
reset ME (ie. contents, errors, etc)
void fillHltBits(const edm::Event &iEvent)
void fillPixelClusterInfos(const edm::Event &iEvent, int which=12)
std::vector< MonitorElement * > hdNdEtaTrklets23_
void fill2D(std::vector< TH2F * > &hs, double valx, double valy, double w=1.)
std::vector< MonitorElement * > hTrkRawDetaDphi12_
unsigned int pxbLayer(const DetId &id) const
void fillTracklets(const edm::Event &iEvent, int which=12)
std::vector< MonitorElement * > hClusterADC3_
void set(int n, double z, double zs)
bool getProductSafe(const std::string name, edm::Handle< TYPE > &prod, const edm::Event &event) const
void create2D(std::vector< TH2F * > &mes, const std::string &name, const std::string &title, int nx, double x1, double x2, int ny, double y1, double y2, bool sumw2=true, bool sbox=true)
bool compareTracklets(const QcdLowPtDQM::Tracklet &a, const QcdLowPtDQM::Tracklet &b)
void print(int level, const char *msg)
std::string clusterVtxName_
std::vector< MonitorElement * > hdNdEtaTrklets13_
T const * product() const
MonitorElement * book2D(Args &&...args)
std::vector< MonitorElement * > hTrkRawDetaDphi23_
std::vector< MonitorElement * > hdNdPhiHitsL1_
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
std::vector< MonitorElement * > hdNdEtaTrklets12_
std::vector< MonitorElement * > hRawTrkEtaVtxZ13_
MonitorElement * h2TrigCorr_
std::vector< MonitorElement * > hNhitsL3z_
std::vector< MonitorElement * > hdNdEtaRawTrkl12_
std::vector< MonitorElement * > hClusterADC2_
void endRun(const edm::Run &r, const edm::EventSetup &iSetup) override
std::vector< std::vector< double > > tmp
std::vector< MonitorElement * > hdNdEtaHitsL3_
std::vector< MonitorElement * > hClusterYSize1_
void yieldAlphaHistogram(int which=12)
void book1D(DQMStore::IBooker &, std::vector< MonitorElement * > &mes, const std::string &name, const std::string &title, int nx, double x1, double x2, bool sumw2=true, bool sbox=true)
const TrackerGeometry * tgeo_
std::vector< Pixel > bpix2_
void filldNdeta(const TH3F *AlphaTracklets, const std::vector< TH3F * > &NsigTracklets, const std::vector< TH3F * > &NbkgTracklets, const std::vector< TH1F * > &NEvsPerEta, std::vector< MonitorElement * > &hdNdEtaRawTrkl, std::vector< MonitorElement * > &hdNdEtaSubTrkl, std::vector< MonitorElement * > &hdNdEtaTrklets)
const TrackerGeomDet * idToDet(DetId) const override
void create1D(std::vector< TH1F * > &mes, const std::string &name, const std::string &title, int nx, double x1, double x2, bool sumw2=true, bool sbox=true)
std::string hltUsedResName_
std::vector< Pixel > bpix1_
std::vector< TH1F * > hEvtCountsPerEta23_
MonitorElement * bookFloat(Args &&...args)
std::vector< MonitorElement * > hTrkRawDeta13_
std::vector< MonitorElement * > hdNdPhiHitsL3_
void fill1D(std::vector< TH1F * > &hs, double val, double w=1.)
std::vector< std::string > hltTrgNames_
std::vector< MonitorElement * > hTrkRawDphi13_
std::vector< TH1F * > hEvtCountsPerEta13_
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
T const * product() const
std::vector< Tracklet > btracklets13_
std::vector< MonitorElement * > hdNdEtaSubTrkl12_
void book2D(DQMStore::IBooker &, std::vector< MonitorElement * > &mes, const std::string &name, const std::string &title, int nx, double x1, double x2, int ny, double y1, double y2, bool sumw2=true, bool sbox=true)
std::vector< TH3F * > NbkgTracklets23_
std::vector< MonitorElement * > hNhitsL2_
std::vector< int > hltTrgBits_
std::vector< MonitorElement * > hTrkVtxZ23_
void reallyPrint(int level, const char *msg)
void fillPixels(const edm::Event &iEvent, const edm::EventSetup &iSetup)