39 if (!event.
exists(input_col_, input_pass_name_)) {
40 ldmx_log(info) <<
"No cluster collection " << input_col_ <<
"_"
41 << input_pass_name_ <<
" found. Skipping analysis of event";
46 input_col_, input_pass_name_)};
52 int n_clusters = clusters.size();
54 for (
auto cluster : clusters) {
55 int seed = cluster.getSeed();
56 int n_hits = cluster.getNHits();
64 float pe = cluster.getPE();
66 h_pe_in_clusters_[seed]->Fill(pe);
79 h_delta_centroids_->Fill(
80 fabs(clusters[idx].getCentroid() - clusters[idx - 1].getCentroid()));
81 h_delta_vs_seed_->Fill(
82 clusters[idx - 1].getSeed(),
83 fabs(clusters[idx].getCentroid() - clusters[idx - 1].getCentroid()));
97 h_n3_n2_->Fill(n2hit, n3hit);
98 h_n3_n1_->Fill(n1hit, n3hit);
99 h_n2_n1_->Fill(n1hit, n2hit);
101 h_n_clusters_->Fill(n_clusters);
103 h_n_hits_->Fill(3 * n3hit + 2 * n2hit + n1hit);
108void TestBeamClusterAnalyzer::onProcessStart() {
110 <<
"\n\n Process starts! My analyzer should do something -- like "
116 int n_p_ebins = 0.25 * p_emax;
121 for (
int i_b = 0; i_b < n_channels_; i_b++) {
123 new TH1F(Form(
"hPE_chan%i", i_b), Form(
";PE, chan%i", i_b), n_p_ebins,
125 h_pe_in_clusters_[i_b] =
126 new TH1F(Form(
"h_pe_in_clusters_chan%i", i_b), Form(
";PE, chan%i", i_b),
127 n_p_ebins, 0, p_emax);
130 h_delta_vs_seed_ =
new TH2F(
131 "h_delta_vs_speed",
";bar_id_{seed};#delta_{centroid}", n_channels_ + 1,
132 -0.5, n_channels_ - 0.5, 5 * n_channels_, 0, n_channels_);
134 h_delta_centroids_ =
new TH1F(
"h_delta_centroids",
";#delta_{centroid}",
135 5 * n_channels_, -0.5, n_channels_ - 0.5);
137 h_n_hits_ =
new TH1F(
138 "hNHits",
"Number of hits in the event; n_{hits}; Events", 10, 0, 10);
139 h_n_clusters_ =
new TH1F(
140 "h_n_clusters",
"Number of clusters in the event; n_{clusters}; Events",
153 "hN3N2",
"Number of 3-hit vs 2-hit clusters; n_{2-hit};n_{3-hit}; Events",
154 n_cl, -0.5, n_cl - 0.5, n_cl, -0.5, n_cl - 0.5);
156 "hN3N1",
"Number of 3-hit vs 1-hit clusters; n_{1-hit};n_{3-hit}; Events",
157 n_cl, -0.5, n_cl - 0.5, n_cl, -0.5, n_cl - 0.5);
159 "hN2N1",
"Number of 2-hit vs 1-hit clusters; n_{1-hit};n_{2-hit}; Events",
160 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.