LDMX Software
ParticleFlow.h
Go to the documentation of this file.
1
7#ifndef PARTICLEFLOW_H
8#define PARTICLEFLOW_H
9
10// LDMX Framework
12#include "Framework/Configure/Parameters.h" // Needed to import parameters from configuration file
13#include "Framework/Event.h"
14#include "Framework/EventProcessor.h" //Needed to declare processor
18#include "SimCore/Event/SimParticle.h"
20#include "TGraph.h"
21
22namespace recon {
23
29 public:
30 ParticleFlow(const std::string& name, framework::Process& process)
32
34
35 virtual void produce(framework::Event& event);
36
37 virtual void onProcessEnd();
38
39 void fillCandTrack(ldmx::PFCandidate& cand, const ldmx::SimTrackerHit& tk);
40 void fillCandCalo(ldmx::PFCandidate& cand, const ldmx::CaloCluster& cl,
41 TGraph gResponse, int PIDnb);
42 void fillCandEMCalo(ldmx::PFCandidate& cand, const ldmx::CaloCluster& em);
43 void fillCandHadCalo(ldmx::PFCandidate& cand, const ldmx::CaloCluster& had);
44
45 private:
46 const std::vector<ldmx::CaloCluster> getEcalClusters(
47 framework::Event& event, std::string inputClusterCollName,
48 std::string inputClusterPassName);
49
50 TGraph* e_corr_{0};
51 TGraph* h_corr_{0};
52
53 // name of collection for PF inputs to be passed
54 std::string input_ecal_coll_name_;
55 std::string input_hcal_coll_name_;
56 std::string input_track_coll_name_;
57 std::string input_ecal_passname_;
58 std::string input_hcal_passname_;
59 std::string input_tracks_passname_;
60 // bool to toggle using pre-existing clusters instead of making new
61 bool use_existing_ecal_clusters_;
62 // name of collection for PF outputs
63 std::string output_coll_name_;
64 // configuration
65 bool single_particle_;
66};
67} // namespace recon
68
69#endif /* PARTICLEFLOW_H */
Class that stores calorimeter cluster information.
Class that stores cluster information from the ECal.
Base classes for all user event processing components to extend.
Class implementing an event buffer system for storing event data.
Class that stores cluster information from the ECal.
Class that represents a reconstructed particle candidate.
Class which encapsulates information from a hit in a simulated tracking detector.
Implements an event buffer system for storing event data.
Definition Event.h:42
Class which represents the process under execution.
Definition Process.h:36
Base class for a module which produces a data product.
virtual void process(Event &event) final
Processing an event for a Producer is calling produce.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:29
Stores cluster information from the ECal.
Definition CaloCluster.h:26
Represents a reconstructed particle.
Definition PFCandidate.h:19
Represents a simulated tracker hit in the simulation.
virtual void produce(framework::Event &event)
Process the event and put new data products into it.
virtual void onProcessEnd()
Callback for the EventProcessor to take any necessary action when the processing of events finishes,...
virtual void configure(framework::config::Parameters &ps)
Callback for the EventProcessor to configure itself from the given set of parameters.