LDMX Software
TrigScintQIEDigiProducer.h
Go to the documentation of this file.
1
7#ifndef TRIGSCINT_TRIGSCINTQIEDIGIPRODUCER_H
8#define TRIGSCINT_TRIGSCINTQIEDIGIPRODUCER_H
9
10/*~~~~~~~~~~~~~~~~*/
11/* C++ StdLib */
12/*~~~~~~~~~~~~~~~~*/
13
14/*~~~~~~~~~~*/
15/* ROOT */
16/*~~~~~~~~~~*/
17#include "TRandom3.h"
18
19// LDMX
20
21/*~~~~~~~~~~~~~~~*/
22/* Framework */
23/*~~~~~~~~~~~~~~~*/
24#include "Framework/Configure/Parameters.h"
26
27// QIE output class
28#include "TrigScint/SimQIE.h"
29
30namespace trigscint {
31
32enum TrigScintSection {
33 UPSTREAM_TAGGER = 1,
34 UPSTREAM_TARGET,
35 DOWNSTREAM_TARGET,
36 NUM_SECTIONS
37};
43 public:
44 TrigScintQIEDigiProducer(const std::string& name,
46 virtual ~TrigScintQIEDigiProducer() = default;
47
54 void configure(framework::config::Parameters& parameters) override;
55
61 void produce(framework::Event& event) override;
62
63 private:
65 std::unique_ptr<TRandom3> random_{nullptr};
66
68 std::string input_collection_;
69
72 std::string input_pass_name_;
73
76 std::string output_collection_;
77
80
83
86
87 // /// Number of arrays
88 // int number_of_arrays_{3};
89
91 double mean_noise_{0};
92
94 double mev_per_mip_{1.40};
95
97 double pe_per_mip_{13.5};
98
101
103 std::vector<float> pulse_params_;
104
107
110
112 float tdc_thr_;
113
116
119
122
124 float s_freq_;
125
127 float zero_supp_cut_{1.};
128
130 SimQIE* smq_{nullptr};
131};
132
133} // namespace trigscint
134
135#endif
Base classes for all user event processing components to extend.
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
class for simulating QIE chip output
Definition SimQIE.h:14
Class that simulates QIE chip of the trigger scintillator.
std::string input_collection_
Name of the input collection containing the sim hits.
float zero_supp_cut_
Zero-suppression: discard any integrated pulses with PE < this number.
std::vector< float > pulse_params_
QIE Input pulse parameters.
std::unique_ptr< TRandom3 > random_
Random number generator.
float toff_overall_
Overall input pulse time offset.
std::string sim_particles_passname_
Pass name for the sim particle collection.
void configure(framework::config::Parameters &parameters) override
Callback for the processor to configure itself from the given set of parameters.
std::string input_pass_name_
Name of the pass that the input collection is on (empty string means take any pass)
float tdc_thr_
QIE TDC Current threshold.
float s_freq_
QIE sampling frequency [in MHz].
double pe_per_mip_
Total number of photoelectrons per MIP.
int strips_per_array_
Number of strips per array.
int maxts_
no. of time samples analysed by QIE
void produce(framework::Event &event) override
Method to produce a collection of QIE digis.
std::string sim_particles_coll_name_
Name of the sim particle collection.
std::string output_collection_
Name of the output collection that will be used to stored the digitized trigger scintillator hits.
std::string input_pulse_shape_
QIE Input pulse shape.