LDMX Software
ParticleFlow.h
Go to the documentation of this file.
1
7#ifndef PARTICLEFLOW_H
8#define PARTICLEFLOW_H
9
10// LDMX Framework
11#include "Framework/Configure/Parameters.h" // Needed to import parameters from configuration file
12#include "Framework/Event.h"
13#include "Framework/EventProcessor.h" //Needed to declare processor
17#include "TGraph.h"
18
19namespace recon {
20
26 public:
27 ParticleFlow(const std::string& name, framework::Process& process)
29
31
32 virtual void produce(framework::Event& event);
33
34 virtual void onProcessEnd();
35
36 void fillCandTrack(ldmx::PFCandidate& cand, const ldmx::SimTrackerHit& tk);
37 void fillCandCalo(ldmx::PFCandidate& cand, const ldmx::CaloCluster& cl,
38 TGraph gResponse, int PIDnb);
39 void fillCandEMCalo(ldmx::PFCandidate& cand, const ldmx::CaloCluster& em);
40 void fillCandHadCalo(ldmx::PFCandidate& cand, const ldmx::CaloCluster& had);
41
42 private:
43 const std::vector<ldmx::CaloCluster> getEcalClusters(
44 framework::Event& event, std::string inputClusterCollName,
45 std::string inputClusterPassName);
46
47 TGraph* e_corr_{0};
48 TGraph* h_corr_{0};
49
50 // name of collection for PF inputs to be passed
51 std::string input_ecal_coll_name_;
52 std::string input_hcal_coll_name_;
53 std::string input_track_coll_name_;
54 std::string input_ecal_passname_;
55 std::string input_hcal_passname_;
56 std::string input_tracks_passname_;
57 // bool to toggle using pre-existing clusters instead of making new
58 bool use_existing_ecal_clusters_;
59 // name of collection for PF outputs
60 std::string output_coll_name_;
61 // configuration
62 bool single_particle_;
63};
64} // namespace recon
65
66#endif /* PARTICLEFLOW_H */
Class that stores calorimeter cluster information.
Base classes for all user event processing components to extend.
Class implementing an event buffer system for storing event data.
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:40
Class which represents the process under execution.
Definition Process.h:34
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:26
Stores cluster information from the ECal.
Definition CaloCluster.h:25
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.