210 float eMin = 0., eThresh = 70.,
eMax = 500;
211 float eWidth[] = {0.5, 2.};
212 std::vector<float> eBins;
214 while (eVal <= eThresh) {
215 eBins.push_back(eVal);
218 while (eVal <
eMax) {
220 eBins.push_back(eVal);
222 int eNBins = eBins.size() - 1;
224 TString onePlusLC[] = {
"1plus LC",
"for tracksters with at least one LC"};
225 TString trkers =
"Tracksters";
226 static const char* particle_kind[] = {
227 "photon",
"electron",
"muon",
"neutral_pion",
"charged_hadron",
"neutral_hadron",
"ambiguous",
"unknown"};
228 auto nCategory =
sizeof(particle_kind) /
sizeof(*particle_kind);
234 "Number of Tracksters per Event",
"Number of Tracksters per Event;# Tracksters;Events", 250, 0., 250.);
237 histo.raw_energy_ = ibook.
book1D(
"Raw Energy",
"Raw Energy;Raw Energy [GeV];" + trkers, eNBins, &eBins[0]);
239 ibook.
book1D(
"Regressed Energy",
"Regressed Energy;Regressed Energy [GeV];" + trkers, eNBins, &eBins[0]);
240 histo.raw_energy_vs_regr_energy_ = ibook.
book2D(
"Raw Energy vs Regressed Energy",
241 "Raw vs Regressed Energy;Regressed Energy [GeV];Raw Energy [GeV]",
247 ibook.
book1D(
"ID probability",
"ID probability;category;Max ID probability", nCategory, 0, nCategory);
249 "Raw Energy " + onePlusLC[0],
"Raw Energy " + onePlusLC[1] +
";Raw Energy [GeV];" + trkers, eNBins, &eBins[0]);
250 histo.regr_energy_1plusLC_ = ibook.
book1D(
"Regressed Energy " + onePlusLC[0],
251 "Regressed Energy " + onePlusLC[1] +
";Regressed Energy [GeV];" + trkers,
254 histo.raw_energy_vs_regr_energy_1plusLC_ =
255 ibook.
book2D(
"Raw Energy vs Regressed Energy " + onePlusLC[0],
256 "Raw vs Regressed Energy " + onePlusLC[1] +
";Regressed Energy [GeV];Raw Energy [GeV]",
261 histo.id_prob_1plusLC_ = ibook.
book1D(
"ID probability " + onePlusLC[0],
262 "ID probability " + onePlusLC[1] +
";category;Max ID probability",
266 for (
int iBin = 0; iBin <
histo.id_prob_->getNbinsX(); iBin++) {
267 histo.id_prob_->setBinLabel(iBin + 1, particle_kind[iBin]);
268 histo.id_prob_1plusLC_->setBinLabel(iBin + 1, particle_kind[iBin]);
271 histo.delta_energy_ = ibook.
book1D(
"Delta energy",
"Delta Energy (O-I)", 800, -20., 20.);
272 histo.delta_energy_relative_ =
273 ibook.
book1D(
"Relative Delta energy",
"Relative Delta Energy (O-I)/I", 200, -10., 10.);
274 histo.delta_energy_vs_energy_ =
275 ibook.
book2D(
"Energy vs Delta Energy",
"Energy (I) vs Delta Energy (O-I)", 800, -20., 20., 200, 0., 20.);
277 "Delta Energy (O-I) vs Layer Number (I)",
"Delta Energy (O-I) vs Layer Number (I)", 50, 0., 50., 800, -20., 20.);
278 histo.delta_energy_relative_vs_layer_ = ibook.
book2D(
"Relative Delta Energy (O-I)_I vs Layer Number (I)",
279 "Relative Delta Energy (O-I)_I vs Layer Number (I)",
286 histo.ingoing_links_vs_layer_ =
287 ibook.
book2D(
"Ingoing links Layer Number",
"Ingoing links vs Layer Number", 50, 0., 50., 40, 0., 40.);
288 histo.outgoing_links_vs_layer_ =
289 ibook.
book2D(
"Outgoing links vs Layer Number",
"Outgoing links vs Layer Number", 50, 0., 50., 40, 0., 40.);
290 histo.delta_layer_ = ibook.
book1D(
"Delta Layer",
"Delta Layer", 10, 0., 10.);
291 histo.angle_alpha_ = ibook.
book1D(
"cosAngle Alpha",
"cosAngle Alpha", 200, -1., 1.);
292 histo.angle_beta_ = ibook.
book1D(
"cosAngle Beta",
"cosAngle Beta", 200, -1., 1.);
293 histo.angle_alpha_alternative_ = ibook.
book1D(
"cosAngle Alpha Alternative",
"Angle Alpha Alternative", 200, 0., 1.);
296 if (layerstr.length() < 2)
297 layerstr.insert(0, 2 - layerstr.length(),
'0');
298 histo.angle_beta_byLayer_.push_back(
299 ibook.
book1D(
"cosAngle Beta on Layer " + layerstr,
"cosAngle Beta on Layer " + layerstr, 200, -1., 1.));
300 histo.angle_beta_w_byLayer_.push_back(ibook.
book1D(
301 "cosAngle Beta Weighted on Layer " + layerstr,
"cosAngle Beta Weighted on Layer " + layerstr, 200, -1., 1.));
virtual void setCurrentFolder(std::string const &fullpath)
std::string to_string(const V &value)
constexpr std::array< uint8_t, layerIndexSize > layer
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
std::vector< edm::EDGetTokenT< std::vector< Trackster > > > tracksterTokens_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
std::vector< std::string > trackstersCollectionsNames_