26 #include <fmt/printf.h>
76 if (!tsoaHandle.isValid()) {
77 edm::LogWarning(
"SiPixelPhase1MonitorTrackSoA") <<
"No Track SoA found \n returning!" << std::endl;
81 auto const& tsoa = *((tsoaHandle.product())->
get());
83 auto const*
quality = tsoa.qualityData();
85 int32_t nLooseAndAboveTracks = 0;
87 for (int32_t it = 0; it <
maxTracks; ++it) {
88 auto nHits = tsoa.nHits(it);
89 auto nLayers = tsoa.nLayers(it);
92 float pt = tsoa.pt(it);
105 float chi2 = tsoa.chi2(it);
106 float phi = tsoa.phi(it);
107 float zip = tsoa.zip(it);
108 float eta = tsoa.eta(it);
109 float tip = tsoa.tip(it);
125 nLooseAndAboveTracks++;
142 hnTracks = iBook.
book1D(
"nTracks", fmt::sprintf(
";%s per event;#events",toRep), 1001, -0.5, 1000.5);
143 hnLooseAndAboveTracks = iBook.
book1D(
"nLooseAndAboveTracks", fmt::sprintf(
";%s (quality #geq loose) per event;#events",toRep), 1001, -0.5, 1000.5);
145 toRep =
"Number of all RecHits per track (quality #geq loose)";
146 hnHits = iBook.
book1D(
"nRecHits", fmt::sprintf(
";%s;#tracks",toRep), 15, -0.5, 14.5);
147 hnHitsVsPhi = iBook.
bookProfile(
"nHitsPerTrackVsPhi", fmt::sprintf(
"%s vs track #eta;Track #eta;%s",toRep,toRep), 30, -3., 3., 0., 15.);
150 toRep =
"Number of all layers per track (quality #geq loose)";
151 hnLayers = iBook.
book1D(
"nLayers", fmt::sprintf(
";%s;#tracks",toRep), 15, -0.5, 14.5);
152 hnLayersVsPhi = iBook.
bookProfile(
"nLayersPerTrackVsPhi", fmt::sprintf(
"%s vs track #eta;Track #eta;%s",toRep,toRep), 30, -3., 3., 0., 15.);
155 toRep =
"Track (quality #geq loose) #chi^{2}/ndof";
156 hchi2 = iBook.
book1D(
"nChi2ndof", fmt::sprintf(
";%s;#tracks",toRep), 40, 0., 20.);
157 hChi2VsPhi = iBook.
bookProfile(
"nChi2ndofVsPhi", fmt::sprintf(
"%s vs track #eta;Track #eta;%s",toRep,toRep), 30, -3., 3., 0., 20.);
161 hpt = iBook.
book1D(
"pt",
";Track (quality #geq loose) p_{T} [GeV];#tracks", 200, 0., 200.);
162 heta = iBook.
book1D(
"eta",
";Track (quality #geq loose) #eta;#tracks", 30, -3., 3.);
163 hphi = iBook.
book1D(
"phi",
";Track (quality #geq loose) #phi;#tracks", 30, -
M_PI,
M_PI);
164 hz = iBook.
book1D(
"z",
";Track (quality #geq loose) z [cm];#tracks", 30, -30., 30.);
165 htip = iBook.
book1D(
"tip",
";Track (quality #geq loose) TIP [cm];#tracks", 100, -0.5, 0.5);
166 hquality = iBook.
book1D(
"quality",
";Track Quality;#tracks", 7, -0.5, 6.5);
178 desc.
add<
std::string>(
"TopFolderName",
"SiPixelHeterogeneous/PixelTrackSoA");
179 desc.
add<
bool>(
"useQualityCut",
true);
MonitorElement * hnLooseAndAboveTracks
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
pixelTrack::Quality minQuality_
virtual void setCurrentFolder(std::string const &fullpath)
Quality qualityByName(std::string const &name)
const std::string qualityName[qualitySize]
#define DEFINE_FWK_MODULE(type)
uint32_t const *__restrict__ Quality * quality
MonitorElement * hnLayers
MonitorElement * hnLayersVsPhi
MonitorElement * hnHitsVsEta
MonitorElement * hquality
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::string topFolderName_
MonitorElement * hChi2VsPhi
Handle< PROD > getHandle(EDGetTokenT< PROD > token) const
SiPixelPhase1MonitorTrackSoA(const edm::ParameterSet &)
MonitorElement * hnTracks
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
MonitorElement * hChi2VsEta
OutputIterator zip(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp)
MonitorElement * hnLayersVsEta
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
ParameterDescriptionBase * add(U const &iLabel, T const &value)
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)
edm::EDGetTokenT< PixelTrackHeterogeneous > tokenSoATrack_
T getParameter(std::string const &) const
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ uint32_t const *__restrict__ gpuPixelDoublets::CellNeighborsVector const gpuPixelDoublets::CellTracksVector const GPUCACell::OuterHitOfCell const int32_t nHits
MonitorElement * hnHitsVsPhi
Log< level::Warning, false > LogWarning
void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &iRun, edm::EventSetup const &iSetup) override
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
~SiPixelPhase1MonitorTrackSoA() override=default