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)),
88 if (parameters.
exists(
"hltTrgNames"))
92 if (parameters.
exists(
"hltProcNames"))
102 "Value for pixLayerCombinations must be one of 12,13, or 23. "
103 "Got %d, set value to 12",
134 "QcdLowPtDQM::analyze -- Could not obtain pointer to "
135 "TrackerGeometry. Return.");
153 "QcdLowPtDQM::beginJob -- Could not obtain pointer to DQMStore. "
157 theDbe_->setCurrentFolder(
"Physics/QcdLowPt");
173 bool isHltCfgChanged =
false;
176 if (
i > 0) teststr +=
", ";
191 print(3, Form(
"Could not obtain HLT config for process name(s) %s",
211 Form(
"Checking trigger name %s for %s", n2.c_str(), n1.c_str()));
216 print(0, Form(
"Added trigger %d with name %s for bit %d",
223 CP(2)
print(2, Form(
"Could not find trigger bit for %s", n1.c_str()));
229 print(3, Form(
"Size of trigger bits not equal used names: %d %d",
232 print(3, Form(
"Size of decision bits not equal names: %d %d",
274 int nx,
double x1,
double x2,
bool sumw2,
bool sbox) {
283 if (sumw2) h1->Sumw2();
292 int nx,
double x1,
double x2,
int ny,
double y1,
293 double y2,
bool sumw2,
bool sbox) {
302 if (sumw2) h1->Sumw2();
311 double x2,
bool sumw2,
bool sbox) {
319 if (sumw2) h1->Sumw2();
328 double x2,
int ny,
double y1,
double y2,
bool sumw2,
336 nx, x1, x2, ny, y1, y2);
337 if (sumw2) h1->Sumw2();
350 theDbe_->setCurrentFolder(
"Physics/EventInfo/");
357 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/");
359 const double x1 = -0.5;
360 const double x2 = Nx - 0.5;
362 "h2TriCorr",
"Trigger bit x vs y (y&&!x,x&&y)", Nx, x1, x2, Nx, x1, x2);
368 if (h) h->SetStats(0);
371 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/HitsLayer/");
373 const double x1 = -0.5;
374 const double x2 = 149.5;
375 book1D(
hNhitsL1_,
"hNhitsLayer1",
"number of hits on layer 1;#hits;#", Nx,
378 book1D(
hNhitsL2_,
"hNhitsLayer2",
"number of hits on layer 2;#hits;#", Nx,
381 book1D(
hNhitsL3_,
"hNhitsLayer3",
"number of hits on layer 3;#hits;#", Nx,
385 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/HitsLayerZoom/");
387 const double x1 = -0.5;
388 const double x2 = 14.5;
393 "number of hits on layer 2;#hits;#", Nx, x1, x2);
396 "number of hits on layer 3;#hits;#", Nx, x1, x2);
399 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/HitsLayerEta/");
401 const double x1 = -3;
402 const double x2 = +3;
404 "Hits on layer 1;detector #eta;#", Nx, x1, x2);
407 "Hits on layer 2;detector #eta;#", Nx, x1, x2);
410 "Hits on layer 3;detector #eta;#", Nx, x1, x2);
413 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/HitsLayerPhi/");
415 const double x1 = -3.2;
416 const double x2 = +3.2;
427 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/TrackletVtxZ/");
429 const double x1 = -25;
430 const double x2 = +25;
433 "z vertex from tracklets12;vz [cm];#", Nx, x1, x2);
436 "z vertex from tracklets13;vz [cm];#", Nx, x1, x2);
439 "z vertex from tracklets23;vz [cm];#", Nx, x1, x2);
443 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/TrackletEtaVtxZ/");
445 const double x1 = -3;
446 const double x2 = +3;
447 const int Ny = 2 * (int)
ZVCut_;
448 const double y1 = -
ZVCut_;
449 const double y2 = +
ZVCut_;
452 "raw #eta vs z vertex from tracklets12;#eta;vz [cm]", Nx, x1, x2,
456 "raw #eta vs z vertex from tracklets13;#eta;vz [cm]", Nx, x1, x2,
460 "raw #eta vs z vertex from tracklets23;#eta;vz [cm]", Nx, x1, x2,
464 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/TrackletDetaDphi/");
466 const double x1 = -3;
467 const double x2 = +3;
469 const double y1 = -3.2;
470 const double y2 = +3.2;
473 "tracklet12 raw #Delta#eta vs #Delta#phi;#Delta#eta;#Delta#phi",
474 Nx, x1, x2, Ny, y1, y2, 0, 0);
477 "tracklet13 raw #Delta#eta vs #Delta#phi;#Delta#eta;#Delta#phi",
478 Nx, x1, x2, Ny, y1, y2, 0, 0);
481 "tracklet12 raw #Delta#eta vs #Delta#phi;#Delta#eta;#Delta#phi",
482 Nx, x1, x2, Ny, y1, y2, 0, 0);
485 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/TrackletDeta/");
487 const double x1 = -3;
488 const double x2 = +3;
491 "tracklet12 raw dN/#Delta#eta;#Delta#eta;dN/#Delta#eta", Nx, x1,
495 "tracklet13 raw dN/#Delta#eta;#Delta#eta;dN/#Delta#eta", Nx, x1,
499 "tracklet23 raw dN/#Delta#eta;#Delta#eta;dN/#Delta#eta", Nx, x1,
503 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/TrackletDphi/");
505 const double x1 = -3.2;
506 const double x2 = +3.2;
509 "tracklet12 raw dN/#Delta#phi;#Delta#phi;dN/#Delta#phi", Nx, x1,
513 "tracklet13 raw dN/#Delta#phi;#Delta#phi;dN/#Delta#phi", Nx, x1,
517 "tracklet23 raw dN/#Delta#phi;#Delta#phi;dN/#Delta#phi", Nx, x1,
522 const int Nx = xa->GetNbins();
523 const double x1 = xa->GetBinLowEdge(1);
524 const double x2 = xa->GetBinLowEdge(Nx + 1);
525 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/RawTracklets/");
527 "raw dN/d#eta for tracklets12;#eta;dN/d#eta", Nx, x1, x2, 0, 0);
528 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/SubTracklets/");
530 "(1-#beta) dN/d#eta for tracklets12;#eta;dN/d#eta", Nx, x1, x2, 0,
532 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/CorTracklets/");
534 "dN/d#eta for tracklets12;#eta;dN/d#eta", Nx, x1, x2, 0, 0);
536 "Events per vtx-#eta bin from tracklets12;#eta;#", 1,
541 const int Nx = xa->GetNbins();
542 const double x1 = xa->GetBinLowEdge(1);
543 const double x2 = xa->GetBinLowEdge(Nx + 1);
544 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/RawTracklets/");
546 "raw dN/d#eta for tracklets13;#eta;dN/d#eta", Nx, x1, x2, 0, 0);
547 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/SubTracklets/");
549 "(1-#beta) dN/d#eta for tracklets13;#eta;dN/d#eta", Nx, x1, x2, 0,
551 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/CorTracklets/");
553 "dN/d#eta for tracklets13;#eta;dN/d#eta", Nx, x1, x2, 0, 0);
555 "Events per vtx-#eta bin from tracklets13;#eta;#", 1,
560 const int Nx = xa->GetNbins();
561 const double x1 = xa->GetBinLowEdge(1);
562 const double x2 = xa->GetBinLowEdge(Nx + 1);
563 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/RawTracklets/");
565 "raw dN/d#eta for tracklets23;#eta;dN/d#eta", Nx, x1, x2, 0, 0);
566 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/SubTracklets/");
568 "(1-#beta) dN/d#eta for tracklets23;#eta;dN/d#eta", Nx, x1, x2, 0,
570 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/CorTracklets/");
572 "dN/d#eta for tracklets23;#eta;dN/d#eta", Nx, x1, x2, 0, 0);
574 "Events per vtx-#eta bin from tracklets23;#eta;#", 1,
580 const double x1 = -25;
581 const double x2 = +25;
582 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/ClusterVtxZ/");
584 "z vertex from clusters12;vz [cm];#", Nx, x1, x2);
587 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/ClusterSize/");
589 const double x1 = -3;
590 const double x2 = +3;
592 const double y1 = -0.5;
593 const double y2 = 24.5;
596 "cluster #eta vs local y size on layer 1;#eta;size", Nx, x1, x2,
600 "cluster #eta vs local y size on layer 2;#eta;size", Nx, x1, x2,
604 "cluster #eta vs local y size on layer 3;#eta;size", Nx, x1, x2,
608 theDbe_->setCurrentFolder(
"Physics/QcdLowPt/ClusterCharge/");
610 const double x1 = -3;
611 const double x2 = +3;
614 const double y2 = 2500;
617 "cluster #eta vs adc on layer 1;#eta;adc", Nx, x1, x2, Ny, y1,
621 "cluster #eta vs adc on layer 2;#eta;adc", Nx, x1, x2, Ny, y1,
625 "cluster #eta vs adc on layer 3;#eta;adc", Nx, x1, x2, Ny, y1,
638 const std::vector<TH3F *> &NsigTracklets,
639 const std::vector<TH3F *> &NbkgTracklets,
640 const std::vector<TH1F *> &NEvsPerEta,
641 std::vector<MonitorElement *> &hdNdEtaRawTrkl,
642 std::vector<MonitorElement *> &hdNdEtaSubTrkl,
643 std::vector<MonitorElement *> &hdNdEtaTrklets) {
646 if (!AlphaTracklets)
return;
648 const int netabins = AlphaTracklets->GetNbinsX();
649 const int nhitbins = AlphaTracklets->GetNbinsY();
650 const int nvzbins = AlphaTracklets->GetNbinsZ();
656 for (
size_t i = 0;
i < hdNdEtaRawTrkl.size(); ++
i) {
665 TH3F *hsig = NsigTracklets.at(
i);
666 TH3F *hbkg = NbkgTracklets.at(
i);
667 TH1F *hepa = NEvsPerEta.at(
i);
669 for (
int etabin = 1; etabin <= netabins; ++etabin) {
670 const double etaval = AlphaTracklets->GetXaxis()->GetBinCenter(etabin);
671 const double etawidth = AlphaTracklets->GetXaxis()->GetBinWidth(etabin);
672 const int zvetabin = hepa->GetXaxis()->FindFixBin(etaval);
673 const double events = hepa->GetBinContent(zvetabin);
674 if (!events)
continue;
684 double dndetaraw = 0;
685 double dndetasub = 0;
687 double dndetarawerr = 0;
688 double dndetasuberr = 0;
689 double dndetaerr = 0;
690 for (
int hitbin = 1; hitbin <= nhitbins; ++hitbin) {
691 for (
int vzbin = 1; vzbin <= nvzbins; ++vzbin) {
692 int gbin = AlphaTracklets->GetBin(etabin, hitbin, vzbin);
693 const double nsig = hsig->GetBinContent(gbin);
695 const double nbkg = hbkg->GetBinContent(gbin);
696 const double nsub = nsig - nbkg;
698 CP(2)
print(2, Form(
"Got negative contributions: %d %d %d %f",
699 etabin, hitbin, vzbin, nsub));
703 const double alpha = AlphaTracklets->GetBinContent(gbin);
704 dndeta += alpha * nsub;
705 double nsig2 = nsig * nsig;
706 double nsub2 = nsub * nsub;
707 double alpha2 = alpha *
alpha;
708 dndetarawerr += nsig2;
709 dndetasuberr += nsub2;
710 dndetaerr += alpha2 * nsub2;
714 double norm = etawidth *
events;
715 double enorm = etawidth * norm;
719 dndetarawerr /= enorm;
720 dndetasuberr /= enorm;
722 double dndetarawsigma2 = (dndetaraw * dndetaraw - dndetarawerr) / events;
723 double dndetasubsigma2 = (dndetasub * dndetasub - dndetasuberr) / events;
724 double dndetasigma2 = (dndeta * dndeta - dndetaerr) / events;
776 for (
size_t i = 0;
i < hs.size(); ++
i) {
778 hs.at(
i)->Fill(val, w);
787 for (
size_t i = 0;
i < mes.size(); ++
i) {
789 mes.at(
i)->Fill(val, w);
798 for (
size_t i = 0;
i < hs.size(); ++
i) {
800 hs.at(
i)->Fill(valx, valy, w);
806 double valy,
double w) {
809 for (
size_t i = 0;
i < mes.size(); ++
i) {
811 mes.at(
i)->Fill(valx, valy, w);
819 for (
size_t i = 0;
i < hs.size(); ++
i) {
821 hs.at(
i)->AddBinContent(gbin, w);
835 if (tbit < triggerResultsHLT->
size()) {
841 print(2, Form(
"Problem slot %i for bit %i for %s",
int(
i),
int(tbit),
867 CP(2)
print(2, Form(
"Can not obtain pixel hit collection with name %s",
883 if (!
hit->isValid())
continue;
886 if (
hit->isOnEdge() ||
hit->hasBadPixels())
continue;
897 vector<SiPixelCluster::Pixel> pixels(
hit->cluster()->pixels());
898 bool pixelOnEdge =
false;
899 for (std::vector<SiPixelCluster::Pixel>::const_iterator pixel =
901 pixel != pixels.end(); ++pixel) {
902 int pixelX = pixel->x;
903 int pixelY = pixel->y;
910 if (pixelOnEdge)
continue;
915 hit->localPosition().
z());
917 double adc =
hit->cluster()->charge() / 135.;
918 double sizex =
hit->cluster()->sizeX();
919 double sizey =
hit->cluster()->sizeY();
921 Pixel pix(gpos, adc, sizex, sizey);
929 }
else if (layer == 2) {
959 "Can not obtain pixel vertex from cluster collection "
966 if (!vertices || vertices->size() == 0)
return;
967 reco::VertexCollection::const_iterator vertex = vertices->begin();
970 std::vector<Pixel> allp(
bpix1_);
975 if (vz <= -999)
return;
988 const double vz,
const std::vector<Pixel> &pix,
989 std::vector<MonitorElement *> &hClusterYSize,
990 std::vector<MonitorElement *> &hClusterADC) {
993 for (
size_t i = 0;
i < pix.size(); ++
i) {
1030 const std::vector<Pixel> &pix1,
1031 const std::vector<Pixel> &pix2,
1032 const Vertex &trackletV) {
1040 std::vector<Tracklet> tmptrkls;
1041 tmptrkls.reserve(pix1.size() * pix2.size());
1042 for (
size_t i = 0;
i < pix1.size(); ++
i) {
1044 pix1.at(
i).z() - trackletV.
z());
1046 for (
size_t j = 0;
j < pix2.size(); ++
j) {
1048 pix2.at(
j).z() - trackletV.
z());
1053 tmptrkls.push_back(tracklet);
1061 vector<bool> secused(pix2.size(),
false);
1062 for (
size_t k = 0;
k < tmptrkls.size(); ++
k) {
1064 size_t p2ind = tl.
i2();
1065 if (secused.at(p2ind))
continue;
1066 secused[p2ind] =
true;
1067 tracklets.push_back(tl);
1068 if (tracklets.size() == pix2.size())
1075 const std::vector<Tracklet> &tracklets,
const std::vector<Pixel> &pixels,
1076 const Vertex &trackletV,
const TH3F *AlphaTracklets,
1077 std::vector<TH3F *> &NsigTracklets, std::vector<TH3F *> &NbkgTracklets,
1078 std::vector<TH1F *> &eventpereta, std::vector<MonitorElement *> &detaphi,
1079 std::vector<MonitorElement *> &deta, std::vector<MonitorElement *> &dphi,
1080 std::vector<MonitorElement *> &etavsvtx) {
1083 if (!AlphaTracklets)
return;
1085 if (tracklets.size() == 0)
return;
1088 for (
size_t i = 0;
i < eventpereta.size(); ++
i) {
1090 TH1 *
h = eventpereta.at(
i);
1091 h->AddBinContent(1, 1);
1093 h->AddBinContent(0, 1);
1095 h->AddBinContent(2, 1);
1099 TAxis *xa = AlphaTracklets->GetXaxis();
1100 int ybin = AlphaTracklets->GetYaxis()->FindFixBin(pixels.size());
1101 int zbin = AlphaTracklets->GetZaxis()->FindFixBin(trackletV.
z());
1102 int tbin = AlphaTracklets->GetBin(0, ybin, zbin);
1103 for (
size_t k = 0;
k < tracklets.size(); ++
k) {
1105 fill2D(detaphi, tl.deta(), tl.dphi());
1108 int ebin = xa->FindFixBin(tl.eta());
1109 int gbin = ebin + tbin;
1110 fill2D(etavsvtx, tl.eta(), trackletV.
z());
1116 fill3D(NsigTracklets, gbin);
1118 fill3D(NbkgTracklets, gbin);
1127 printf(
"QcdLowPtDQM: %s\n", msg);
1128 }
else if (level == 1) {
1129 LogWarning(
"QcdLowPtDQM") << msg << std::endl;
1130 }
else if (level == 2) {
1131 LogError(
"QcdLowPtDQM") << msg << std::endl;
1132 }
else if (level == 3) {
1133 LogError(
"QcdLowPtDQM") << msg << std::endl;
1159 std::vector<Pixel> &pix2,
1166 vector<double> zvCands;
1167 zvCands.reserve(pix1.size() * pix2.size());
1170 for (
size_t i = 0;
i < pix1.size(); ++
i) {
1172 const double r12 =
p1.x() *
p1.x() +
p1.y() *
p1.y();
1173 for (
size_t j = 0;
j < pix2.size(); ++
j) {
1176 const double r22 =
p2.x() *
p2.x() +
p2.y() *
p2.y();
1178 p1.z() - (
p2.z() -
p1.z()) / (TMath::Sqrt(r22 / r12) - 1);
1179 if (TMath::IsNaN(vz))
continue;
1181 zvCands.push_back(vz);
1186 sort(zvCands.begin(), zvCands.end());
1193 for (
size_t i = 0;
i < zvCands.size(); ++
i) {
1194 double z1 = zvCands.at(
i);
1198 for (
size_t j =
i;
j < zvCands.size(); ++
j) {
1199 double z2 = zvCands.at(
j);
1209 double_t
s2 = mean * mean - mean2;
1211 if ((ncl < mcl) || (ncl == mcl && s2 > ms2))
continue;
1219 vtx.
set(mcl, mzv, ms2);
1226 double chi_max = 1
e+9;
1227 double z_best = -999;
1230 for (
double z0 = -15.9; z0 <= 15.95; z0 += 0.1) {
1233 for (
size_t i = 0;
i < pix.size(); ++
i) {
1239 if (chitest <= 1.) {
1245 if (nhits <= 0)
continue;
1247 if (nhits < nhits_max)
continue;
1249 if ((nhits > nhits_max) || (chi < chi_max)) {
1267 const int nEtaBin = 12;
1268 const int nHitBin = 14;
1269 const int nVzBin = 10;
1271 double HitBins[nHitBin + 1] = {0, 5, 10, 15, 20, 25, 30, 35,
1272 40, 50, 60, 80, 100, 200, 700};
1274 double EtaBins[nEtaBin + 1];
1275 for (
int i = 0;
i <= nEtaBin;
i++)
1276 EtaBins[
i] = (
double)
i * 6.0 / (double)nEtaBin - 3.0;
1277 double VzBins[nVzBin + 1];
1278 for (
int i = 0;
i <= nVzBin;
i++)
1279 VzBins[
i] = (
double)
i * 20.0 / (double)nVzBin - 10.0;
1282 "hAlphaTracklets12",
"Alpha for tracklets12;#eta;#hits;vz [cm]",
1283 nEtaBin, EtaBins, nHitBin, HitBins, nVzBin, VzBins);
2521 const int nEtaBin = 12;
2522 const int nHitBin = 14;
2523 const int nVzBin = 10;
2525 double HitBins[nHitBin + 1] = {0, 5, 10, 15, 20, 25, 30, 35,
2526 40, 50, 60, 80, 100, 200, 700};
2528 double EtaBins[nEtaBin + 1];
2529 for (
int i = 0;
i <= nEtaBin;
i++)
2530 EtaBins[
i] = (
double)
i * 6.0 / (double)nEtaBin - 3.0;
2531 double VzBins[nVzBin + 1];
2532 for (
int i = 0;
i <= nVzBin;
i++)
2533 VzBins[
i] = (
double)
i * 20.0 / (double)nVzBin - 10.0;
2536 "hAlphaTracklets13",
"Alpha for tracklets13;#eta;#hits;vz [cm]",
2537 nEtaBin, EtaBins, nHitBin, HitBins, nVzBin, VzBins);
3552 const int nEtaBin = 12;
3553 const int nHitBin = 14;
3554 const int nVzBin = 10;
3556 double HitBins[nHitBin + 1] = {0, 5, 10, 15, 20, 25, 30, 35,
3557 40, 50, 60, 80, 100, 200, 700};
3559 double EtaBins[nEtaBin + 1];
3560 for (
int i = 0;
i <= nEtaBin;
i++)
3561 EtaBins[
i] = (
double)
i * 6.0 / (double)nEtaBin - 3.0;
3562 double VzBins[nVzBin + 1];
3563 for (
int i = 0;
i <= nVzBin;
i++)
3564 VzBins[
i] = (
double)
i * 20.0 / (double)nVzBin - 10.0;
3567 "hAlphaTracklets23",
"Alpha for tracklets23;#eta;#hits;vz [cm]",
3568 nEtaBin, EtaBins, nHitBin, HitBins, nVzBin, VzBins);
int adc(sample_type sample)
get the ADC sample (12 bits)
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)
std::vector< Tracklet > btracklets23_
std::vector< MonitorElement * > hNhitsL3_
const std::string & triggerName(unsigned int triggerIndex) const
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)
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)
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup)
std::vector< MonitorElement * > hRawTrkEtaVtxZ12_
std::vector< Vertex > VertexCollection
collection of Vertex objects
std::vector< TH3F * > NsigTracklets12_
void book2D(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=1, bool sbox=1)
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 beginLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &iSetup)
void operator()(TH3F *&h)
std::vector< TH3F * > NsigTracklets13_
std::vector< MonitorElement * > hRawTrkEtaVtxZ23_
std::vector< MonitorElement * > hClusterYSize2_
MonitorElement * repSummary_
std::vector< MonitorElement * > hTrkVtxZ12_
void beginRun(const edm::Run &r, const edm::EventSetup &iSetup)
std::vector< MonitorElement * > hTrkVtxZ13_
std::vector< TH3F * > NbkgTracklets13_
std::vector< Tracklet > btracklets12_
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_
std::vector< MonitorElement * > hNhitsL1_
std::vector< MonitorElement * > hTrkRawDphi23_
data_type const * data(size_t cell) const
std::vector< Pixel > bpix3_
std::vector< MonitorElement * > hNhitsL1z_
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
std::vector< MonitorElement * > hTrkRawDphi12_
std::vector< MonitorElement * > hClusterYSize3_
void endRun(const edm::Run &r, const edm::EventSetup &iSetup)
void create1D(std::vector< TH1F * > &mes, const std::string &name, const std::string &title, int nx, double x1, double x2, bool sumw2=1, bool sbox=1)
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
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
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_
T const * product() const
std::vector< MonitorElement * > hRawTrkEtaVtxZ13_
MonitorElement * h2TrigCorr_
std::vector< MonitorElement * > hNhitsL3z_
std::vector< MonitorElement * > hdNdEtaRawTrkl12_
std::vector< MonitorElement * > hClusterADC2_
std::vector< std::vector< double > > tmp
std::vector< MonitorElement * > hdNdEtaHitsL3_
std::vector< MonitorElement * > hClusterYSize1_
void yieldAlphaHistogram(int which=12)
virtual bool isItEdgePixelInY(int iybin) const =0
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 book1D(std::vector< MonitorElement * > &mes, const std::string &name, const std::string &title, int nx, double x1, double x2, bool sumw2=1, bool sbox=1)
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=1, bool sbox=1)
std::string hltUsedResName_
std::vector< Pixel > bpix1_
std::vector< TH1F * > hEvtCountsPerEta23_
volatile std::atomic< bool > shutdown_flag false
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_
void Reset(void)
reset ME (ie. contents, errors, etc)
std::vector< TH1F * > hEvtCountsPerEta13_
std::vector< Tracklet > btracklets13_
std::vector< MonitorElement * > hdNdEtaSubTrkl12_
tuple size
Write out results.
std::vector< TH3F * > NbkgTracklets23_
std::vector< MonitorElement * > hNhitsL2_
std::vector< int > hltTrgBits_
void endLuminosityBlock(const edm::LuminosityBlock &l, const edm::EventSetup &iSetup)
virtual const TrackerGeomDet * idToDet(DetId) const
std::vector< MonitorElement * > hTrkVtxZ23_
void reallyPrint(int level, const char *msg)
void fillPixels(const edm::Event &iEvent, const edm::EventSetup &iSetup)