LDMX Software
ParticleFlowDQM.h
1#ifndef DQM_PARTICLEFLOWDQM_H
2#define DQM_PARTICLEFLOWDQM_H
3
4#include <string>
5#include <vector>
6
7#include "Framework/Configure/Parameters.h"
10
11namespace dqm {
12
21 public:
22 ParticleFlowDQM(const std::string& name, framework::Process& process)
23 : Analyzer(name, process) {}
24 ~ParticleFlowDQM() override = default;
25
27 void analyze(const framework::Event& event) override;
28
29 private:
30 void analyzeTruth(const framework::Event& event,
31 std::vector<ldmx::PFCandidate>& cands);
32 bool reconstructable(int pdg, double px, double py, double pz,
33 double ke) const;
34 int interactionRegion(const std::vector<double>& end) const;
35
36 std::string pf_cand_coll_name_{"PFCandidates"};
37 std::string pf_cand_pass_name_{""};
38 std::string ecal_sp_coll_name_{"EcalScoringPlaneHits"};
39 std::string ecal_sp_pass_name_{""};
40 std::string sim_particles_coll_name_{"SimParticles"};
41 std::string sim_particles_pass_name_{""};
42 // minimum visible energy of a truth particle [MeV]
43 double truth_min_energy_{50.};
44 // neutral candidate to truth match window at the Ecal [mm]
45 double neutral_match_dist_{30.};
46 // max energy ratio either way for a neutral match
47 double neutral_match_max_ratio_{2.};
48 // Hcal only candidate to truth match cone from the target [deg]
49 double neutral_hcal_match_angle_{30.};
50 // reconstructable truth: max angle to the beam axis [deg], min |p| for
51 // charged pi and for p, K [MeV], min KE for neutral hadrons and pi0 [MeV]
52 double reco_max_theta_{80.};
53 double reco_min_p_pion_{100.};
54 double reco_min_p_heavy_{800.};
55 double reco_min_ke_neutral_{1000.};
56 double reco_min_ke_pi0_{2000.};
57 // regions for neutral hadron end points [mm]: Ecal box up to ecal_back_z
58 // within ecal_half_xy, side Hcal around it, back Hcal behind it
59 double ecal_back_z_{760.};
60 double ecal_half_xy_{300.};
61 double hcal_max_z_{4000.};
62 double hcal_max_xy_{1600.};
63};
64
65} // namespace dqm
66
67#endif
Base classes for all user event processing components to extend.
Class that represents a reconstructed particle candidate.
Monitor PF candidates, their ID, and the match to truth.
void configure(framework::config::Parameters &ps) override
Callback for the EventProcessor to configure itself from the given set of parameters.
void analyze(const framework::Event &event) override
Process the event and make histograms or summaries.
Base class for a module which does not produce a data product.
virtual void process(Event &event) final
Processing an event for an Analyzer is calling analyze.
Analyzer(const std::string &name, Process &process)
Class constructor.
Implements an event buffer system for storing event data.
Definition Event.h:40
Class which represents the process under execution.
Definition Process.h:34
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:26