LDMX Software
PFTrackProducer.h
Go to the documentation of this file.
1
7#ifndef PFTRACKPRODUCER_H
8#define PFTRACKPRODUCER_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
14
15namespace recon {
16
26 public:
27 PFTrackProducer(const std::string& name, framework::Process& process)
29
31
32 virtual void produce(framework::Event& event);
33
34 private:
35 void produceTruth(framework::Event& event);
36 void produceReco(framework::Event& event);
37
38 // use Ecal scoring plane hits instead of reconstructed tracks
39 bool truth_tracking_{false};
40
41 // name of collection for track inputs to be passed
42 std::string input_track_coll_name_;
43 // pass name for the input collection
44 std::string input_pass_name_;
45 // name of collection for pfTracks to be output
46 std::string output_track_coll_name_;
47
48 // truth mode
49 // boolean to cheat to select only electron tracks
50 // in this cheating truth tracker
51 bool do_electron_tracking_{};
52 // minimum z_ momentum component allowed for beam electron selection
53 double min_electron_momentum_z_{};
54 // maximum trackID allowed for beam electron selection
55 int max_electron_track_id_{};
56
57 // reco mode
58 // name and pass of the reconstructed track collection
59 std::string reco_track_coll_name_;
60 std::string reco_track_pass_name_;
61 // minimum number of hits on track
62 int min_n_hits_{};
63 // maximum chi2/ndf, negative disables the cut
64 double max_chi2_ndf_{};
65 // minimum momentum at the Ecal face in MeV
66 double min_momentum_{};
67 // max fraction of hits shared with a better track before dropping
68 double max_shared_frac_{};
69};
70} // namespace recon
71
72#endif /* PFTRACKPRODUCER_H */
Base classes for all user event processing components to extend.
Class implementing an event buffer system for storing event data.
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
Selects the tracks passed to ParticleFlow.
virtual void produce(framework::Event &event)
Process the event and put new data products into it.
virtual void configure(framework::config::Parameters &ps)
Callback for the EventProcessor to configure itself from the given set of parameters.