32 #define CP(level) if (level >= verbose_)
43 return (TMath::Abs(a.
deta()) < TMath::Abs(b.
deta()));
50 hltResName_(parameters.getUntrackedParameter<
string>(
"hltTrgResults",
"TriggerResults")),
51 pixelName_(parameters.getUntrackedParameter<
string>(
"pixelRecHits",
"siPixelRecHits")),
52 clusterVtxName_(parameters.getUntrackedParameter<
string>(
"clusterVertices",
"")),
53 ZVCut_(parameters.getUntrackedParameter<double>(
"ZVertexCut", 10)),
54 ZVEtaRegion_(parameters.getUntrackedParameter<double>(
"ZVertexEtaRegion", 2)),
55 ZVVtxRegion_(parameters.getUntrackedParameter<double>(
"ZVertexVtxRegion", 2)),
56 dPhiVc_(parameters.getUntrackedParameter<double>(
"dPhiVertexCut", 0.08)),
57 dZVc_(parameters.getUntrackedParameter<double>(
"dZVertexCut", 0.25)),
58 sigEtaCut_(parameters.getUntrackedParameter<double>(
"signalEtaCut", 0.1)),
59 sigPhiCut_(parameters.getUntrackedParameter<double>(
"signalPhiCut", 1.5)),
60 bkgEtaCut_(parameters.getUntrackedParameter<double>(
"backgroundEtaCut", 0.1)),
61 bkgPhiCut_(parameters.getUntrackedParameter<double>(
"backgroundPhiCut", 3.0)),
62 verbose_(parameters.getUntrackedParameter<int>(
"verbose", 3)),
63 pixLayers_(parameters.getUntrackedParameter<int>(
"pixLayerCombinations", 12)),
64 clusLayers_(parameters.getUntrackedParameter<int>(
"clusLayerCombinations", 12)),
65 useRecHitQ_(parameters.getUntrackedParameter<bool>(
"useRecHitQualityWord",
false)),
66 usePixelQ_(parameters.getUntrackedParameter<bool>(
"usePixelQualityWord",
true)),
67 AlphaTracklets12_(nullptr),
68 AlphaTracklets13_(nullptr),
69 AlphaTracklets23_(nullptr),
73 h2TrigCorr_(nullptr) {
76 if (parameters.
exists(
"hltTrgNames"))
79 if (parameters.
exists(
"hltProcNames"))
88 Form(
"Value for pixLayerCombinations must be one of 12,13, or 23. "
89 "Got %d, set value to 12",
115 bool isHltCfgChanged =
false;
133 print(3, Form(
"Could not obtain HLT config for process name(s) %s", teststr.c_str()));
150 print(0, Form(
"Checking trigger name %s for %s", n2.c_str(), n1.c_str()));
155 print(0, Form(
"Added trigger %d with name %s for bit %d",
int(
hltTrgBits_.size() - 1), n1.c_str(), int(
j)));
161 CP(2)
print(2, Form(
"Could not find trigger bit for %s", n1.c_str()));
209 repSumMap_ = iBooker.
book2D(
"reportSummaryMap",
"reportSummaryMap", 1, 0, 1, 1, 0, 1);
216 const double x1 = -0.5;
217 const double x2 = Nx - 0.5;
218 h2TrigCorr_ = iBooker.
book2D(
"h2TriCorr",
"Trigger bit x vs y (y&&!x,x&&y)", Nx, x1, x2, Nx, x1, x2);
230 const double x1 = -0.5;
231 const double x2 = 149.5;
232 book1D(iBooker,
hNhitsL1_,
"hNhitsLayer1",
"number of hits on layer 1;#hits;#", Nx, x1, x2);
234 book1D(iBooker,
hNhitsL2_,
"hNhitsLayer2",
"number of hits on layer 2;#hits;#", Nx, x1, x2);
236 book1D(iBooker,
hNhitsL3_,
"hNhitsLayer3",
"number of hits on layer 3;#hits;#", Nx, x1, x2);
241 const double x1 = -0.5;
242 const double x2 = 14.5;
243 book1D(iBooker,
hNhitsL1z_,
"hNhitsLayer1Zoom",
"number of hits on layer 1;#hits;#", Nx, x1, x2);
245 book1D(iBooker,
hNhitsL2z_,
"hNhitsLayer2Zoom",
"number of hits on layer 2;#hits;#", Nx, x1, x2);
247 book1D(iBooker,
hNhitsL3z_,
"hNhitsLayer3Zoom",
"number of hits on layer 3;#hits;#", Nx, x1, x2);
252 const double x1 = -3;
253 const double x2 = +3;
254 book1D(iBooker,
hdNdEtaHitsL1_,
"hdNdEtaHitsLayer1",
"Hits on layer 1;detector #eta;#", Nx, x1, x2);
256 book1D(iBooker,
hdNdEtaHitsL2_,
"hdNdEtaHitsLayer2",
"Hits on layer 2;detector #eta;#", Nx, x1, x2);
258 book1D(iBooker,
hdNdEtaHitsL3_,
"hdNdEtaHitsLayer3",
"Hits on layer 3;detector #eta;#", Nx, x1, x2);
263 const double x1 = -3.2;
264 const double x2 = +3.2;
274 const double x1 = -25;
275 const double x2 = +25;
277 book1D(iBooker,
hTrkVtxZ12_,
"hTrackletVtxZ12",
"z vertex from tracklets12;vz [cm];#", Nx, x1, x2);
279 book1D(iBooker,
hTrkVtxZ13_,
"hTrackletVtxZ13",
"z vertex from tracklets13;vz [cm];#", Nx, x1, x2);
281 book1D(iBooker,
hTrkVtxZ23_,
"hTrackletVtxZ23",
"z vertex from tracklets23;vz [cm];#", Nx, x1, x2);
287 const double x1 = -3;
288 const double x2 = +3;
290 const double y1 = -
ZVCut_;
291 const double y2 = +
ZVCut_;
296 "raw #eta vs z vertex from tracklets12;#eta;vz [cm]",
309 "raw #eta vs z vertex from tracklets13;#eta;vz [cm]",
322 "raw #eta vs z vertex from tracklets23;#eta;vz [cm]",
335 const double x1 = -3;
336 const double x2 = +3;
338 const double y1 = -3.2;
339 const double y2 = +3.2;
343 "hTracklet12RawDetaDphi",
344 "tracklet12 raw #Delta#eta vs #Delta#phi;#Delta#eta;#Delta#phi",
356 "hTracklet13RawDetaDphi",
357 "tracklet13 raw #Delta#eta vs #Delta#phi;#Delta#eta;#Delta#phi",
369 "hTracklet23RawDetaDphi",
370 "tracklet12 raw #Delta#eta vs #Delta#phi;#Delta#eta;#Delta#phi",
383 const double x1 = -3;
384 const double x2 = +3;
388 "hTracklet12RawDeta",
389 "tracklet12 raw dN/#Delta#eta;#Delta#eta;dN/#Delta#eta",
398 "hTracklet13RawDeta",
399 "tracklet13 raw dN/#Delta#eta;#Delta#eta;dN/#Delta#eta",
408 "hTracklet23RawDeta",
409 "tracklet23 raw dN/#Delta#eta;#Delta#eta;dN/#Delta#eta",
419 const double x1 = -3.2;
420 const double x2 = +3.2;
424 "hTracklet12RawDphi",
425 "tracklet12 raw dN/#Delta#phi;#Delta#phi;dN/#Delta#phi",
434 "hTracklet13RawDphi",
435 "tracklet13 raw dN/#Delta#phi;#Delta#phi;dN/#Delta#phi",
444 "hTracklet23RawDphi",
445 "tracklet23 raw dN/#Delta#phi;#Delta#phi;dN/#Delta#phi",
454 const int Nx = xa->GetNbins();
455 const double x1 = xa->GetBinLowEdge(1);
456 const double x2 = xa->GetBinLowEdge(Nx + 1);
460 "hdNdEtaRawTracklets12",
461 "raw dN/d#eta for tracklets12;#eta;dN/d#eta",
470 "hdNdEtaSubTracklets12",
471 "(1-#beta) dN/d#eta for tracklets12;#eta;dN/d#eta",
480 "hdNdEtaTracklets12",
481 "dN/d#eta for tracklets12;#eta;dN/d#eta",
488 "hEventCountsPerEta12_",
489 "Events per vtx-#eta bin from tracklets12;#eta;#",
498 const int Nx = xa->GetNbins();
499 const double x1 = xa->GetBinLowEdge(1);
500 const double x2 = xa->GetBinLowEdge(Nx + 1);
504 "hdNdEtaRawTracklets13",
505 "raw dN/d#eta for tracklets13;#eta;dN/d#eta",
514 "hdNdEtaSubTracklets13",
515 "(1-#beta) dN/d#eta for tracklets13;#eta;dN/d#eta",
524 "hdNdEtaTracklets13",
525 "dN/d#eta for tracklets13;#eta;dN/d#eta",
532 "hEventCountsPerEta13",
533 "Events per vtx-#eta bin from tracklets13;#eta;#",
542 const int Nx = xa->GetNbins();
543 const double x1 = xa->GetBinLowEdge(1);
544 const double x2 = xa->GetBinLowEdge(Nx + 1);
548 "hdNdEtaRawTracklets23",
549 "raw dN/d#eta for tracklets23;#eta;dN/d#eta",
558 "hdNdEtaSubTracklets23",
559 "(1-#beta) dN/d#eta for tracklets23;#eta;dN/d#eta",
568 "hdNdEtaTracklets23",
569 "dN/d#eta for tracklets23;#eta;dN/d#eta",
576 "hEventCountsPerEta23",
577 "Events per vtx-#eta bin from tracklets23;#eta;#",
587 const double x1 = -25;
588 const double x2 = +25;
595 const double x1 = -3;
596 const double x2 = +3;
598 const double y1 = -0.5;
599 const double y2 = 24.5;
604 "cluster #eta vs local y size on layer 1;#eta;size",
617 "cluster #eta vs local y size on layer 2;#eta;size",
630 "cluster #eta vs local y size on layer 3;#eta;size",
643 const double x1 = -3;
644 const double x2 = +3;
647 const double y2 = 2500;
652 "cluster #eta vs adc on layer 1;#eta;adc",
665 "cluster #eta vs adc on layer 2;#eta;adc",
678 "cluster #eta vs adc on layer 3;#eta;adc",
698 "QcdLowPtDQM::analyze -- Could not obtain pointer to "
699 "TrackerGeometry. Return.");
711 std::vector<MonitorElement *> &mes,
736 std::vector<MonitorElement *> &mes,
818 const std::vector<TH3F *> &NsigTracklets,
819 const std::vector<TH3F *> &NbkgTracklets,
820 const std::vector<TH1F *> &NEvsPerEta,
821 std::vector<MonitorElement *> &hdNdEtaRawTrkl,
822 std::vector<MonitorElement *> &hdNdEtaSubTrkl,
823 std::vector<MonitorElement *> &hdNdEtaTrklets) {
829 const int netabins = AlphaTracklets->GetNbinsX();
830 const int nhitbins = AlphaTracklets->GetNbinsY();
831 const int nvzbins = AlphaTracklets->GetNbinsZ();
837 for (
size_t i = 0;
i < hdNdEtaRawTrkl.size(); ++
i) {
846 TH3F *hsig = NsigTracklets.at(
i);
847 TH3F *hbkg = NbkgTracklets.at(
i);
848 TH1F *hepa = NEvsPerEta.at(
i);
850 for (
int etabin = 1; etabin <= netabins; ++etabin) {
851 const double etaval = AlphaTracklets->GetXaxis()->GetBinCenter(etabin);
852 const double etawidth = AlphaTracklets->GetXaxis()->GetBinWidth(etabin);
853 const int zvetabin = hepa->GetXaxis()->FindFixBin(etaval);
854 const double events = hepa->GetBinContent(zvetabin);
866 double dndetaraw = 0;
867 double dndetasub = 0;
869 double dndetarawerr = 0;
870 double dndetasuberr = 0;
871 double dndetaerr = 0;
872 for (
int hitbin = 1; hitbin <= nhitbins; ++hitbin) {
873 for (
int vzbin = 1; vzbin <= nvzbins; ++vzbin) {
874 int gbin = AlphaTracklets->GetBin(etabin, hitbin, vzbin);
875 const double nsig = hsig->GetBinContent(gbin);
877 const double nbkg = hbkg->GetBinContent(gbin);
878 const double nsub = nsig - nbkg;
880 CP(2)
print(2, Form(
"Got negative contributions: %d %d %d %f", etabin, hitbin, vzbin, nsub));
884 const double alpha = AlphaTracklets->GetBinContent(gbin);
885 dndeta += alpha *
nsub;
886 double nsig2 = nsig * nsig;
887 double nsub2 = nsub *
nsub;
888 double alpha2 = alpha *
alpha;
889 dndetarawerr += nsig2;
890 dndetasuberr += nsub2;
891 dndetaerr += alpha2 * nsub2;
895 double norm = etawidth *
events;
896 double enorm = etawidth * norm;
900 dndetarawerr /= enorm;
901 dndetasuberr /= enorm;
903 double dndetarawsigma2 = (dndetaraw * dndetaraw - dndetarawerr) / events;
904 double dndetasubsigma2 = (dndetasub * dndetasub - dndetasuberr) / events;
905 double dndetasigma2 = (dndeta * dndeta - dndetaerr) / events;
907 mrawtrk->
setBinError(etabin, TMath::Sqrt(TMath::Abs(dndetarawsigma2)));
909 msubtrk->
setBinError(etabin, TMath::Sqrt(TMath::Abs(dndetasubsigma2)));
911 mtrklet->
setBinError(etabin, TMath::Sqrt(TMath::Abs(dndetasigma2)));
918 return std::shared_ptr<qlpd::Cache>();
968 for (
size_t i = 0;
i < hs.size(); ++
i) {
971 hs.at(
i)->Fill(val, w);
978 for (
size_t i = 0;
i < mes.size(); ++
i) {
981 mes.at(
i)->Fill(val, w);
988 for (
size_t i = 0;
i < hs.size(); ++
i) {
991 hs.at(
i)->Fill(valx, valy, w);
998 for (
size_t i = 0;
i < mes.size(); ++
i) {
1001 mes.at(
i)->Fill(valx, valy, w);
1008 for (
size_t i = 0;
i < hs.size(); ++
i) {
1011 hs.at(
i)->AddBinContent(gbin, w);
1025 if (tbit < triggerResultsHLT->
size()) {
1056 CP(2)
print(2, Form(
"Can not obtain pixel hit collection with name %s",
pixelName_.c_str()));
1067 if (!
hit->isValid())
1071 if (
hit->isOnEdge() ||
hit->hasBadPixels())
1083 vector<SiPixelCluster::Pixel> pixels(
hit->cluster()->pixels());
1084 bool pixelOnEdge =
false;
1085 for (std::vector<SiPixelCluster::Pixel>::const_iterator
pixel = pixels.begin();
pixel != pixels.end(); ++
pixel) {
1086 int pixelX =
pixel->x;
1087 int pixelY =
pixel->y;
1099 double adc =
hit->cluster()->charge() / 135.;
1100 double sizex =
hit->cluster()->sizeX();
1101 double sizey =
hit->cluster()->sizeY();
1103 Pixel pix(gpos, adc, sizex, sizey);
1111 }
else if (layer == 2) {
1141 Form(
"Can not obtain pixel vertex from cluster collection "
1148 if (!vertices || vertices->empty())
1150 reco::VertexCollection::const_iterator vertex = vertices->begin();
1153 std::vector<Pixel> allp(
bpix1_);
1171 const std::vector<Pixel> &pix,
1172 std::vector<MonitorElement *> &hClusterYSize,
1173 std::vector<MonitorElement *> &hClusterADC) {
1176 for (
size_t i = 0;
i < pix.size(); ++
i) {
1232 const std::vector<Pixel> &pix1,
1233 const std::vector<Pixel> &pix2,
1234 const Vertex &trackletV) {
1239 if (TMath::Abs(trackletV.
z()) >
ZVCut_)
1243 std::vector<Tracklet> tmptrkls;
1244 tmptrkls.reserve(pix1.size() * pix2.size());
1245 for (
size_t i = 0;
i < pix1.size(); ++
i) {
1246 const GlobalPoint tmp1(pix1.at(
i).x(), pix1.at(
i).y(), pix1.at(
i).z() - trackletV.
z());
1248 for (
size_t j = 0;
j < pix2.size(); ++
j) {
1249 const GlobalPoint tmp2(pix2.at(
j).x(), pix2.at(
j).y(), pix2.at(
j).z() - trackletV.
z());
1254 tmptrkls.push_back(tracklet);
1262 vector<bool> secused(pix2.size(),
false);
1263 for (
size_t k = 0;
k < tmptrkls.size(); ++
k) {
1265 size_t p2ind = tl.
i2();
1266 if (secused.at(p2ind))
1268 secused[p2ind] =
true;
1269 tracklets.push_back(tl);
1270 if (tracklets.size() == pix2.size())
1276 const std::vector<Pixel> &pixels,
1278 const TH3F *AlphaTracklets,
1279 std::vector<TH3F *> &NsigTracklets,
1280 std::vector<TH3F *> &NbkgTracklets,
1281 std::vector<TH1F *> &eventpereta,
1282 std::vector<MonitorElement *> &detaphi,
1283 std::vector<MonitorElement *> &deta,
1284 std::vector<MonitorElement *> &dphi,
1285 std::vector<MonitorElement *> &etavsvtx) {
1288 if (!AlphaTracklets)
1291 if (tracklets.empty())
1295 for (
size_t i = 0;
i < eventpereta.size(); ++
i) {
1298 TH1 *
h = eventpereta.at(
i);
1299 h->AddBinContent(1, 1);
1301 h->AddBinContent(0, 1);
1303 h->AddBinContent(2, 1);
1307 const TAxis *xa = AlphaTracklets->GetXaxis();
1308 int ybin = AlphaTracklets->GetYaxis()->FindFixBin(pixels.size());
1309 int zbin = AlphaTracklets->GetZaxis()->FindFixBin(trackletV.
z());
1310 int tbin = AlphaTracklets->GetBin(0, ybin, zbin);
1311 for (
size_t k = 0;
k < tracklets.size(); ++
k) {
1313 fill2D(detaphi, tl.deta(), tl.dphi());
1316 int ebin = xa->FindFixBin(tl.eta());
1317 int gbin = ebin + tbin;
1318 fill2D(etavsvtx, tl.eta(), trackletV.
z());
1320 double deta = TMath::Abs(tl.deta());
1321 double dphi = TMath::Abs(tl.dphi());
1324 fill3D(NsigTracklets, gbin);
1326 fill3D(NbkgTracklets, gbin);
1334 printf(
"QcdLowPtDQM: %s\n", msg);
1335 }
else if (level == 1) {
1336 LogWarning(
"QcdLowPtDQM") << msg << std::endl;
1337 }
else if (level == 2) {
1338 LogError(
"QcdLowPtDQM") << msg << std::endl;
1339 }
else if (level == 3) {
1340 LogError(
"QcdLowPtDQM") << msg << std::endl;
1368 vector<double> zvCands;
1369 zvCands.reserve(pix1.size() * pix2.size());
1372 for (
size_t i = 0;
i < pix1.size(); ++
i) {
1374 const double r12 =
p1.x() *
p1.x() +
p1.y() *
p1.y();
1375 for (
size_t j = 0;
j < pix2.size(); ++
j) {
1379 const double r22 =
p2.x() *
p2.x() +
p2.y() *
p2.y();
1380 const double vz =
p1.z() - (
p2.z() -
p1.z()) / (TMath::Sqrt(r22 / r12) - 1);
1381 if (TMath::IsNaN(vz))
1383 if (TMath::Abs(vz) > 25)
1385 zvCands.push_back(vz);
1390 sort(zvCands.begin(), zvCands.end());
1397 for (
size_t i = 0;
i < zvCands.size(); ++
i) {
1398 double z1 = zvCands.at(
i);
1402 for (
size_t j =
i;
j < zvCands.size(); ++
j) {
1403 double z2 = zvCands.at(
j);
1404 if (TMath::Abs(z1 - z2) >
dZVc_)
1414 double_t s2 = mean * mean - mean2;
1416 if ((ncl < mcl) || (ncl == mcl && s2 > ms2))
1425 vtx.
set(mcl, mzv, ms2);
1431 double chi_max = 1
e+9;
1432 double z_best = -999;
1435 for (
double z0 = -15.9; z0 <= 15.95; z0 += 0.1) {
1438 for (
size_t i = 0;
i < pix.size(); ++
i) {
1442 double pval = 2 * TMath::Abs(p.
z() - z0) / p.
rho() + 0.5;
1443 double chitest = TMath::Abs(pval - p.
sizey());
1444 if (chitest <= 1.) {
1453 if (nhits < nhits_max)
1456 if ((nhits > nhits_max) || (chi < chi_max)) {
1472 const int nEtaBin = 12;
1473 const int nHitBin = 14;
1474 const int nVzBin = 10;
1476 double HitBins[nHitBin + 1] = {0, 5, 10, 15, 20, 25, 30, 35, 40, 50, 60, 80, 100, 200, 700};
1478 double EtaBins[nEtaBin + 1];
1479 for (
int i = 0;
i <= nEtaBin;
i++)
1480 EtaBins[
i] = (
double)
i * 6.0 / (double)nEtaBin - 3.0;
1481 double VzBins[nVzBin + 1];
1482 for (
int i = 0;
i <= nVzBin;
i++)
1483 VzBins[
i] = (
double)
i * 20.0 / (double)nVzBin - 10.0;
1486 "Alpha for tracklets12;#eta;#hits;vz [cm]",
2730 const int nEtaBin = 12;
2731 const int nHitBin = 14;
2732 const int nVzBin = 10;
2734 double HitBins[nHitBin + 1] = {0, 5, 10, 15, 20, 25, 30, 35, 40, 50, 60, 80, 100, 200, 700};
2736 double EtaBins[nEtaBin + 1];
2737 for (
int i = 0;
i <= nEtaBin;
i++)
2738 EtaBins[
i] = (
double)
i * 6.0 / (double)nEtaBin - 3.0;
2739 double VzBins[nVzBin + 1];
2740 for (
int i = 0;
i <= nVzBin;
i++)
2741 VzBins[
i] = (
double)
i * 20.0 / (double)nVzBin - 10.0;
2744 "Alpha for tracklets13;#eta;#hits;vz [cm]",
3764 const int nEtaBin = 12;
3765 const int nHitBin = 14;
3766 const int nVzBin = 10;
3768 double HitBins[nHitBin + 1] = {0, 5, 10, 15, 20, 25, 30, 35, 40, 50, 60, 80, 100, 200, 700};
3770 double EtaBins[nEtaBin + 1];
3771 for (
int i = 0;
i <= nEtaBin;
i++)
3772 EtaBins[
i] = (
double)
i * 6.0 / (double)nEtaBin - 3.0;
3773 double VzBins[nVzBin + 1];
3774 for (
int i = 0;
i <= nVzBin;
i++)
3775 VzBins[
i] = (
double)
i * 20.0 / (double)nVzBin - 10.0;
3778 "Alpha for tracklets23;#eta;#hits;vz [cm]",
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_
MonitorElement * bookFloat(TString const &name, FUNC onbooking=NOOP())
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
uint16_t *__restrict__ id
virtual void setCurrentFolder(std::string const &fullpath)
std::vector< MonitorElement * > hTrkRawDetaDphi13_
HLTConfigProvider hltConfig_
std::vector< TH3F * > NbkgTracklets12_
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)
void dqmEndRun(const edm::Run &r, const edm::EventSetup &iSetup) override
std::vector< bool > hltTrgDeci_
bool exists(std::string const ¶meterName) const
checks if a parameter exists
std::vector< MonitorElement * > hRawTrkEtaVtxZ12_
std::vector< Vertex > VertexCollection
collection of Vertex objects
std::vector< TH3F * > NsigTracklets12_
std::vector< TH1F * > hEvtCountsPerEta12_
std::vector< MonitorElement * > hNhitsL2z_
std::vector< TH3F * > NsigTracklets23_
Log< level::Error, false > LogError
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_
constexpr std::array< uint8_t, layerIndexSize > layer
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
std::vector< MonitorElement * > hTrkVtxZ12_
std::vector< MonitorElement * > hTrkVtxZ13_
std::vector< TH3F * > NbkgTracklets13_
bool getData(T &iHolder) const
std::vector< Tracklet > btracklets12_
virtual void Reset()
Remove all data from the ME, keept the empty histogram with all its settings.
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.)
virtual bool isItEdgePixelInX(int ixbin) const =0
void getProduct(const std::string name, edm::Handle< TYPE > &prod, const edm::Event &event) const
MonitorElement * repSumMap_
std::vector< MonitorElement * > hClusterVertexZ_
std::vector< std::string > hltTrgUsedNames_
printf("params %d %f %f %f\n", minT, eps, errmax, chi2max)
std::vector< MonitorElement * > hNhitsL1_
std::vector< MonitorElement * > hTrkRawDphi23_
data_type const * data(size_t cell) const
void globalEndLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &iSetup) override
std::shared_ptr< qlpd::Cache > globalBeginLuminosityBlock(const edm::LuminosityBlock &, const edm::EventSetup &) const override
std::vector< Pixel > bpix3_
std::vector< MonitorElement * > hNhitsL1z_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tkGeomToken_
std::vector< MonitorElement * > hTrkRawDphi12_
std::vector< MonitorElement * > hClusterYSize3_
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)
void fillHltBits(const edm::Event &iEvent)
void fillPixelClusterInfos(const edm::Event &iEvent, int which=12)
std::vector< MonitorElement * > hdNdEtaTrklets23_
const TrackerGeomDet * idToDet(DetId) const override
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)
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
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
virtual void setBinContent(int binx, double content)
set content of bin (1-D)
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
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
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_
std::vector< MonitorElement * > hdNdEtaHitsL3_
std::vector< MonitorElement * > hClusterYSize1_
void yieldAlphaHistogram(int which=12)
virtual bool isItEdgePixelInY(int iybin) const =0
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)
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_
virtual void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
Log< level::Warning, false > LogWarning
std::vector< MonitorElement * > hTrkRawDeta13_
std::vector< MonitorElement * > hdNdPhiHitsL3_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
void fill1D(std::vector< TH1F * > &hs, double val, double w=1.)
std::vector< std::string > hltTrgNames_
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
std::vector< MonitorElement * > hTrkRawDphi13_
std::vector< TH1F * > hEvtCountsPerEta13_
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
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)
tuple size
Write out results.
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
std::vector< TH3F * > NbkgTracklets23_
std::vector< MonitorElement * > hNhitsL2_
std::vector< int > hltTrgBits_
uint16_t *__restrict__ uint16_t const *__restrict__ adc
std::vector< MonitorElement * > hTrkVtxZ23_
void reallyPrint(int level, const char *msg)
void fillPixels(const edm::Event &iEvent, const edm::EventSetup &iSetup)