35 if (!event.
exists(input_col_, input_pass_name_)) {
36 ldmx_log(info) <<
"No cluster collection " << input_col_ <<
"_"
37 << input_pass_name_ <<
" found. Skipping analysis of event";
42 input_col_, input_pass_name_)};
48 int n_clusters = clusters.size();
50 for (
auto cluster : clusters) {
51 int seed = cluster.getSeed();
52 int n_hits = cluster.getNHits();
60 float pe = cluster.getPE();
62 h_pe_in_clusters_[seed]->Fill(pe);
75 h_delta_centroids_->Fill(
76 fabs(clusters[idx].getCentroid() - clusters[idx - 1].getCentroid()));
77 h_delta_vs_seed_->Fill(
78 clusters[idx - 1].getSeed(),
79 fabs(clusters[idx].getCentroid() - clusters[idx - 1].getCentroid()));
93 h_n3_n2_->Fill(n2hit, n3hit);
94 h_n3_n1_->Fill(n1hit, n3hit);
95 h_n2_n1_->Fill(n1hit, n2hit);
97 h_n_clusters_->Fill(n_clusters);
99 h_n_hits_->Fill(3 * n3hit + 2 * n2hit + n1hit);
104void TestBeamClusterAnalyzer::onProcessStart() {
106 <<
"\n\n Process starts! My analyzer should do something -- like "
112 int n_p_ebins = 0.25 * p_emax;
117 for (
int i_b = 0; i_b < n_channels_; i_b++) {
119 new TH1F(Form(
"hPE_chan%i", i_b), Form(
";PE, chan%i", i_b), n_p_ebins,
121 h_pe_in_clusters_[i_b] =
122 new TH1F(Form(
"h_pe_in_clusters_chan%i", i_b), Form(
";PE, chan%i", i_b),
123 n_p_ebins, 0, p_emax);
126 h_delta_vs_seed_ =
new TH2F(
127 "h_delta_vs_speed",
";bar_id_{seed};#delta_{centroid}", n_channels_ + 1,
128 -0.5, n_channels_ - 0.5, 5 * n_channels_, 0, n_channels_);
130 h_delta_centroids_ =
new TH1F(
"h_delta_centroids",
";#delta_{centroid}",
131 5 * n_channels_, -0.5, n_channels_ - 0.5);
133 h_n_hits_ =
new TH1F(
134 "hNHits",
"Number of hits in the event; n_{hits}; Events", 10, 0, 10);
135 h_n_clusters_ =
new TH1F(
136 "h_n_clusters",
"Number of clusters in the event; n_{clusters}; Events",
149 "hN3N2",
"Number of 3-hit vs 2-hit clusters; n_{2-hit};n_{3-hit}; Events",
150 n_cl, -0.5, n_cl - 0.5, n_cl, -0.5, n_cl - 0.5);
152 "hN3N1",
"Number of 3-hit vs 1-hit clusters; n_{1-hit};n_{3-hit}; Events",
153 n_cl, -0.5, n_cl - 0.5, n_cl, -0.5, n_cl - 0.5);
155 "hN2N1",
"Number of 2-hit vs 1-hit clusters; n_{1-hit};n_{2-hit}; Events",
156 n_cl, -0.5, n_cl - 0.5, n_cl, -0.5, n_cl - 0.5);
bool exists(const std::string &name, const std::string &passName, bool unique=true) const
Check for the existence of an object or collection with the given name and pass name in the event.