8#ifndef EVENTPROC_ECALRECOILREMOVALPROCESSOR_H_
9#define EVENTPROC_ECALRECOILREMOVALPROCESSOR_H_
14#include "DetDescr/SimSpecialID.h"
16#include "Ecal/Event/EcalHit.h"
18#include "Framework/Configure/Parameters.h"
20#include "SimCore/Event/SimParticle.h"
41 using XYCoords = ldmx::XYCoords;
72 std::vector<XYCoords> getTrajectory(std::array<float, 3> momentum,
73 std::array<float, 3> position);
77 float processing_time_{0.};
78 std::map<std::string, float> profiling_map_;
83 std::vector<float> ecal_layer_edep_raw_;
84 std::vector<float> ecal_layer_edep_readout_;
85 std::vector<float> ecal_layer_time_;
87 std::vector<std::vector<float>> rem_dist_values_;
90 float beam_energy_mev_{0.};
92 std::string rem_dist_file_name_;
95 bool recoil_from_tracking_;
98 std::string ecal_sim_pass_name_;
99 std::string ecal_sp_hits_pass_name_;
100 std::string rec_coll_name_;
101 std::string rec_pass_name_;
102 std::string track_coll_name_;
103 std::string track_pass_name_;
107 std::string collection_name_excluded_;
Collection of utility functions useful for analysis.
Class that translates raw positions of ECal module hits into cells in a hexagonal readout.
Class that propagates tracks to the ECAL face.
Class that defines an ECal detector ID with a cell number.
Class that determines MIP tracking information using ECAL hit information.
Base classes for all user event processing components to extend.
Class which encapsulates information from a hit in a simulated tracking detector.
Discards Ecal reconstructed hits from the recoil electron for WAB event processing.
void configure(framework::config::Parameters ¶meters) override
Configure the processor using the given user specified parameters.
void onProcessEnd() override
Callback for the EventProcessor to take any necessary action when the processing of events finishes,...
void produce(framework::Event &event) override
Process the event and put new data products into it.
std::string collection_name_included_
Name of the collection which will containt the results.
void onNewRun(const ldmx::RunHeader &rh) override
onNewRun is the first function called for each processor after the conditions are fully configured an...
Implements an event buffer system for storing event data.
Class which represents the process under execution.
Base class for a module which produces a data product.
Producer(const std::string &name, Process &process)
Class constructor.
virtual void process(Event &event) final
Processing an event for a Producer is calling produce.
Class encapsulating parameters for configuring a processor.
Translation between real-space positions and cell IDs within the ECal.