|
LDMX Software
|
Turns reconstructed trigger-scintillator bar clusters into geometry-aware ldmx::Measurement objects. More...
#include <TrigScintMeasurementProducer.h>
Public Member Functions | |
| TrigScintMeasurementProducer (const std::string &name, framework::Process &process) | |
| void | configure (framework::config::Parameters ¶meters) override |
| Callback for the EventProcessor to configure itself from the given set of parameters. | |
| void | produce (framework::Event &event) override |
| Process the event and put new data products into it. | |
Public Member Functions inherited from framework::Producer | |
| Producer (const std::string &name, Process &process) | |
| Class constructor. | |
| virtual void | process (Event &event) final |
| Processing an event for a Producer is calling produce. | |
Public Member Functions inherited from framework::EventProcessor | |
| DECLARE_FACTORY (EventProcessor, EventProcessor *, const std::string &, Process &) | |
| declare that we have a factory for this class | |
| EventProcessor (const std::string &name, Process &process) | |
| Class constructor. | |
| virtual | ~EventProcessor ()=default |
| Class destructor. | |
| virtual void | beforeNewRun (ldmx::RunHeader &run_header) |
| Callback for Producers to add parameters to the run header before conditions are initialized. | |
| virtual void | onNewRun (const ldmx::RunHeader &run_header) |
| Callback for the EventProcessor to take any necessary action when the run being processed changes. | |
| virtual void | onFileOpen (EventFile &event_file) |
| Callback for the EventProcessor to take any necessary action when a new event input ROOT file is opened. | |
| virtual void | onFileClose (EventFile &event_file) |
| Callback for the EventProcessor to take any necessary action when a event input ROOT file is closed. | |
| virtual void | onProcessStart () |
| Callback for the EventProcessor to take any necessary action when the processing of events starts, such as creating histograms. | |
| virtual void | onProcessEnd () |
| Callback for the EventProcessor to take any necessary action when the processing of events finishes, such as calculating job-summary quantities. | |
| template<class T > | |
| const T & | getCondition (const std::string &condition_name) |
| Access a conditions object for the current event. | |
| TDirectory * | getHistoDirectory () |
| Access/create a directory in the histogram file for this event processor to create histograms and analysis tuples. | |
| void | setStorageHint (framework::StorageControl::Hint hint) |
| Mark the current event as having the given storage control hint from this module_. | |
| void | setStorageHint (framework::StorageControl::Hint hint, const std::string &purposeString) |
| Mark the current event as having the given storage control hint from this module and the given purpose string. | |
| int | getLogFrequency () const |
| Get the current logging frequency from the process. | |
| int | getRunNumber () const |
| Get the run number from the process. | |
| std::string | getName () const |
| Get the processor name. | |
| void | createHistograms (const std::vector< framework::config::Parameters > &histos) |
| Internal function which is used to create histograms passed from the python configuration @parma histos vector of Parameters that configure histograms to create. | |
Private Attributes | |
| std::vector< std::string > | input_collections_ |
| input cluster collections, one per module (index = module number) | |
| std::string | input_pass_ |
| pass name of the input collections ("" = any) | |
| std::string | out_collection_ |
| output ldmx::Measurement collection name | |
| std::string | daq_map_file_ |
| optional TS DAQ-map JSON (decode collection -> geometry module). | |
| std::vector< std::pair< std::string, int > > | daq_modules_ |
| parsed DAQ map: (decoded collection name, geometry module index) | |
| double | min_pe_ {0.} |
| optional cluster selection: cluster PE must exceed this (0 = keep all; the clustering seed/threshold cuts already define the clusters) | |
| double | sigma_y_ {0.9} |
| assumed y measurement resolution [mm] (local covariance) | |
Additional Inherited Members | |
Protected Member Functions inherited from framework::EventProcessor | |
| void | abortEvent () |
| Abort the event immediately. | |
Protected Attributes inherited from framework::EventProcessor | |
| HistogramPool | histograms_ |
| helper object for making and filling histograms | |
| NtupleManager & | ntuple_ {NtupleManager::getInstance()} |
| Manager for any ntuples. | |
| logging::logger | the_log_ |
| The logger for this EventProcessor. | |
Turns reconstructed trigger-scintillator bar clusters into geometry-aware ldmx::Measurement objects.
The TS bars measure the y coordinate. This producer reads one or more ldmx::TrigScintCluster collections (the output of the calibrated EventReadout -> TestBeamHit -> TestBeamCluster chain), each addressed to a geometry module, and converts each cluster's PE-weighted fractional bar centroid (TrigScintCluster::getCentroid) into a global (x, y, z) position by interpolating the bar geometry between the two adjacent bars – so the output measurements live in the same ldmx::Measurement frame the tracker uses and can be correlated with tracker measurements.
Consuming clusters (rather than the raw decoded ZCCM digis) means the input is pedestal-subtracted, gain-calibrated (PE) and cluster-position-refined, giving a sub-bar centroid instead of a single fired channel.
This is the first, parameterized increment (geometry via python params, tuned against the tracker beam). The follow-up promotes the bar geometry to a proper DetDescr ConditionsObject provider (Ecal/Hcal-style), read from the detector.
Input : one collection of ldmx::TrigScintCluster per module Output : collection of ldmx::Measurement
Definition at line 37 of file TrigScintMeasurementProducer.h.
|
inline |
Definition at line 39 of file TrigScintMeasurementProducer.h.
|
overridevirtual |
Callback for the EventProcessor to configure itself from the given set of parameters.
The parameters a processor has access to are the member variables of the python class in the sequence that has class_name equal to the EventProcessor class name.
For an example, look at MyProcessor.
| parameters | Parameters for configuration. |
Reimplemented from framework::EventProcessor.
Definition at line 15 of file TrigScintMeasurementProducer.cxx.
References daq_map_file_, daq_modules_, input_collections_, input_pass_, min_pe_, out_collection_, and sigma_y_.
|
overridevirtual |
Process the event and put new data products into it.
| event | The Event to process. |
Implements framework::Producer.
Definition at line 57 of file TrigScintMeasurementProducer.cxx.
References ldmx::TrigScintGeometry::CONDITIONS_OBJECT_NAME, daq_modules_, framework::Event::exists(), framework::EventProcessor::getCondition(), input_collections_, input_pass_, min_pe_, out_collection_, ldmx::Measurement::setClusterAmplitude(), ldmx::Measurement::setGlobalPosition(), ldmx::Measurement::setLayerID(), ldmx::Measurement::setLocalCovariance(), ldmx::Measurement::setLocalPosition(), ldmx::Measurement::setNStrips(), ldmx::Measurement::setTime(), and sigma_y_.
|
private |
optional TS DAQ-map JSON (decode collection -> geometry module).
If unset, the input_collections index is used as the geometry module.
Definition at line 59 of file TrigScintMeasurementProducer.h.
Referenced by configure().
|
private |
parsed DAQ map: (decoded collection name, geometry module index)
Definition at line 61 of file TrigScintMeasurementProducer.h.
Referenced by configure(), and produce().
|
private |
input cluster collections, one per module (index = module number)
Definition at line 48 of file TrigScintMeasurementProducer.h.
Referenced by configure(), and produce().
|
private |
pass name of the input collections ("" = any)
Definition at line 50 of file TrigScintMeasurementProducer.h.
Referenced by configure(), and produce().
|
private |
optional cluster selection: cluster PE must exceed this (0 = keep all; the clustering seed/threshold cuts already define the clusters)
Definition at line 65 of file TrigScintMeasurementProducer.h.
Referenced by configure(), and produce().
|
private |
output ldmx::Measurement collection name
Definition at line 52 of file TrigScintMeasurementProducer.h.
Referenced by configure(), and produce().
|
private |
assumed y measurement resolution [mm] (local covariance)
Definition at line 67 of file TrigScintMeasurementProducer.h.
Referenced by configure(), and produce().