Skip to content

Commit

Permalink
add profiles of # hits, # layers and chi2 vs eta/phi
Browse files Browse the repository at this point in the history
  • Loading branch information
mmusich committed Dec 9, 2021
1 parent 74a2a37 commit ff1be40
Showing 1 changed file with 45 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
#include "DQMServices/Core/interface/DQMEDAnalyzer.h"
#include "DQMServices/Core/interface/DQMStore.h"
#include "CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h"
// for string manipulations
#include <fmt/printf.h>

class SiPixelPhase1MonitorTrackSoA : public DQMEDAnalyzer {
public:
Expand All @@ -39,8 +41,14 @@ class SiPixelPhase1MonitorTrackSoA : public DQMEDAnalyzer {
MonitorElement* hnTracks;
MonitorElement* hnLooseAndAboveTracks;
MonitorElement* hnHits;
MonitorElement* hnHitsVsPhi;
MonitorElement* hnHitsVsEta;
MonitorElement* hnLayers;
MonitorElement* hnLayersVsPhi;
MonitorElement* hnLayersVsEta;
MonitorElement* hchi2;
MonitorElement* hChi2VsPhi;
MonitorElement* hChi2VsEta;
MonitorElement* hpt;
MonitorElement* heta;
MonitorElement* hphi;
Expand Down Expand Up @@ -101,8 +109,14 @@ void SiPixelPhase1MonitorTrackSoA::analyze(const edm::Event& iEvent, const edm::
float tip = tsoa.tip(it);

hchi2->Fill(chi2);
hChi2VsPhi->Fill(phi, chi2);
hChi2VsEta->Fill(eta, chi2);
hnHits->Fill(nHits);
hnLayers->Fill(nLayers);
hnHitsVsPhi->Fill(phi, nHits);
hnHitsVsEta->Fill(eta, nHits);
hnLayersVsPhi->Fill(phi, nLayers);
hnLayersVsEta->Fill(eta, nLayers);
hpt->Fill(pt);
heta->Fill(eta);
hphi->Fill(phi);
Expand All @@ -117,23 +131,39 @@ void SiPixelPhase1MonitorTrackSoA::analyze(const edm::Event& iEvent, const edm::
//
// -- Book Histograms
//
void SiPixelPhase1MonitorTrackSoA::bookHistograms(DQMStore::IBooker& ibooker,
void SiPixelPhase1MonitorTrackSoA::bookHistograms(DQMStore::IBooker& iBook,
edm::Run const& iRun,
edm::EventSetup const& iSetup) {
ibooker.cd();
ibooker.setCurrentFolder(topFolderName_);
hnTracks = ibooker.book1D("nTracks", ";Number of tracks per event;#entries", 1001, -0.5, 1000.5);
hnLooseAndAboveTracks = ibooker.book1D(
"nLooseAndAboveTracks", ";Number of tracks (quality #geq loose) per event;#entries", 1001, -0.5, 1000.5);
hnHits = ibooker.book1D("nRecHits", ";Number of all RecHits per track (quality #geq loose);#entries", 15, -0.5, 14.5);
hnLayers = ibooker.book1D("nLayers", ";Number of all layers per track (quality #geq loose);#entries", 15, -0.5, 14.5);
hchi2 = ibooker.book1D("nChi2ndof", ";Track (quality #geq loose) chi-squared over ndof;#entries", 40, 0., 20.);
hpt = ibooker.book1D("pt", ";Track (quality #geq loose) p_{T} [GeV];#entries", 200, 0., 200.);
heta = ibooker.book1D("eta", ";Track (quality #geq loose) #eta;#entries", 30, -3., 3.);
hphi = ibooker.book1D("phi", ";Track (quality #geq loose) #phi;#entries", 30, -M_PI, M_PI);
hz = ibooker.book1D("z", ";Track (quality #geq loose) z [cm];#entries", 30, -30., 30.);
htip = ibooker.book1D("tip", ";Track (quality #geq loose) TIP [cm];#entries", 100, -0.5, 0.5);
hquality = ibooker.book1D("quality", ";Track Quality;#entries", 7, -0.5, 6.5);
iBook.cd();
iBook.setCurrentFolder(topFolderName_);

// clang-format off
std::string toRep = "Number of tracks";
hnTracks = iBook.book1D("nTracks", fmt::sprintf(";%s per event;#events",toRep), 1001, -0.5, 1000.5);
hnLooseAndAboveTracks = iBook.book1D("nLooseAndAboveTracks", fmt::sprintf(";%s (quality #geq loose) per event;#events",toRep), 1001, -0.5, 1000.5);

toRep = "Number of all RecHits per track (quality #geq loose)";
hnHits = iBook.book1D("nRecHits", fmt::sprintf(";%s;#tracks",toRep), 15, -0.5, 14.5);
hnHitsVsPhi = iBook.bookProfile("nHitsPerTrackVsPhi", fmt::sprintf("%s vs track #eta;Track #eta;%s",toRep,toRep), 30, -3., 3., 0., 15.);
hnHitsVsEta = iBook.bookProfile("nHitsPerTrackVsEta", fmt::sprintf("%s vs track #phi;Track #phi;%s",toRep,toRep), 30,-M_PI,-M_PI,0.,15.);

toRep = "Number of all layers per track (quality #geq loose)";
hnLayers = iBook.book1D("nLayers", fmt::sprintf(";%s;#tracks",toRep), 15, -0.5, 14.5);
hnLayersVsPhi = iBook.bookProfile("nLayersPerTrackVsPhi", fmt::sprintf("%s vs track #eta;Track #eta;%s",toRep,toRep), 30, -3., 3., 0., 15.);
hnLayersVsEta = iBook.bookProfile("nLayersPerTrackVsEta", fmt::sprintf("%s vs track #phi;Track #phi;%s",toRep,toRep), 30,-M_PI,-M_PI,0.,15.);

toRep = "Track (quality #geq loose) #chi^{2}/ndof";
hchi2 = iBook.book1D("nChi2ndof", fmt::sprintf(";%s;#tracks",toRep), 40, 0., 20.);
hChi2VsPhi = iBook.bookProfile("nChi2ndofVsPhi", fmt::sprintf("%s vs track #eta;Track #eta;%s",toRep,toRep), 30, -3., 3., 0., 20.);
hChi2VsEta = iBook.bookProfile("nChi2ndofVsEta", fmt::sprintf("%s vs track #phi;Track #phi;%s",toRep,toRep), 30, -M_PI, -M_PI, 0., 20.);
// clang-format on

hpt = iBook.book1D("pt", ";Track (quality #geq loose) p_{T} [GeV];#tracks", 200, 0., 200.);
heta = iBook.book1D("eta", ";Track (quality #geq loose) #eta;#tracks", 30, -3., 3.);
hphi = iBook.book1D("phi", ";Track (quality #geq loose) #phi;#tracks", 30, -M_PI, M_PI);
hz = iBook.book1D("z", ";Track (quality #geq loose) z [cm];#tracks", 30, -30., 30.);
htip = iBook.book1D("tip", ";Track (quality #geq loose) TIP [cm];#tracks", 100, -0.5, 0.5);
hquality = iBook.book1D("quality", ";Track Quality;#tracks", 7, -0.5, 6.5);
uint i = 1;
for (const auto& q : pixelTrack::qualityName) {
hquality->setBinLabel(i, q, 1);
Expand Down

0 comments on commit ff1be40

Please sign in to comment.