LDMX Software
TrkDeDxMassEstFeatures.cxx
1
2#include "DQM/TrkDeDxMassEstFeatures.h"
3
5
6namespace dqm {
7
9 mass_estimate_name_ = ps.get<std::string>("mass_estimate_name");
10 mass_estimate_pass_ = ps.get<std::string>("mass_estimate_pass");
11
12 return;
13}
14
16 auto mass_estimates{event.getCollection<ldmx::TrackDeDxMassEstimate>(
18
19 for (const auto& mass_est : mass_estimates) {
20 auto momentum = mass_est.getMomentum();
21 histograms_.fill("momentum:harmonic_mean_dedx", momentum, mass_est.getIh());
22 if (momentum < 2000.)
23 histograms_.fill("momentum_low:harmonic_mean_dedx", momentum,
24 mass_est.getIh());
25 histograms_.fill("harmonic_mean_dedx", mass_est.getIh());
26 histograms_.fill("mass_estimate", mass_est.getMass());
27 histograms_.fill("mass_squared", mass_est.getMassSquared());
28 if (momentum < 1000.) {
29 histograms_.fill("mass_estimate_low_p", mass_est.getMass());
30 histograms_.fill("mass_squared_low_p", mass_est.getMassSquared());
31 }
32 if (momentum < 500.) {
33 histograms_.fill("mass_estimate_very_low_p", mass_est.getMass());
34 histograms_.fill("mass_squared_very_low_p", mass_est.getMassSquared());
35 if ((mass_est.getPdgId() == 11) || (mass_est.getPdgId() == -11)) {
36 histograms_.fill("mass_estimate_very_low_p_electron",
37 mass_est.getMass());
38 histograms_.fill("mass_squared_very_low_p_electron",
39 mass_est.getMassSquared());
40 }
41 if ((mass_est.getPdgId() == 211) || (mass_est.getPdgId() == -211)) {
42 histograms_.fill("mass_estimate_very_low_p_pion", mass_est.getMass());
43 histograms_.fill("mass_squared_very_low_p_pion",
44 mass_est.getMassSquared());
45 }
46 if ((mass_est.getPdgId() == 321) || (mass_est.getPdgId() == -321)) {
47 histograms_.fill("mass_estimate_very_low_p_kaon", mass_est.getMass());
48 histograms_.fill("mass_squared_very_low_p_kaon",
49 mass_est.getMassSquared());
50 }
51 if ((mass_est.getPdgId() == 2212) || (mass_est.getPdgId() == -2212)) {
52 histograms_.fill("mass_estimate_very_low_p_proton", mass_est.getMass());
53 histograms_.fill("mass_squared_very_low_p_proton",
54 mass_est.getMassSquared());
55 }
56 }
57 histograms_.fill("track_type", mass_est.getTrackType() + 0.5);
58 }
59
60 return;
61}
62
63} // namespace dqm
64
#define DECLARE_ANALYZER(CLASS)
Macro which allows the framework to construct an analyzer given its name during configuration.
Class that represents the estimated mass of a particle using tracker dE/dx information.
Generate histograms to check tracker dE/dx mass estimate features.
virtual void configure(framework::config::Parameters &ps) override
Input python configuration parameters.
std::string mass_estimate_name_
Collection Name for mass estimate object.
std::string mass_estimate_pass_
Pass Name for mass estimate object.
virtual void analyze(const framework::Event &event) override
Fills histograms.
HistogramPool histograms_
helper object for making and filling histograms
Implements an event buffer system for storing event data.
Definition Event.h:40
void fill(const std::string &name, const T &val)
Fill a 1D histogram.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:26
const T & get(const std::string &name) const
Retrieve the parameter of the given name.
Definition Parameters.h:75
Represents the estimated mass of a particle using tracker dE/dx information.