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#include <time.h>
14
15/*~~~~~~~~~~*/
16/* ROOT */
17/*~~~~~~~~~~*/
18#include "TRandom3.h"
19
20// LDMX
21#include "DetDescr/TrigScintID.h"
23#include "TrigScint/Event/TrigScintHit.h"
24
25/*~~~~~~~~~~~~~~~*/
26/* Framework */
27/*~~~~~~~~~~~~~~~*/
28#include "Framework/Configure/Parameters.h"
30
31// QIE output class
32#include "TrigScint/Event/TrigScintQIEDigis.h"
33#include "TrigScint/SimQIE.h"
34
35namespace trigscint {
36
37enum TrigScintSection {
38 UPSTREAM_TAGGER = 1,
39 UPSTREAM_TARGET,
40 DOWNSTREAM_TARGET,
41 NUM_SECTIONS
42};
48 public:
49 TrigScintQIEDigiProducer(const std::string& name,
51 virtual ~TrigScintQIEDigiProducer() = default;
52
59 void configure(framework::config::Parameters& parameters) override;
60
66 void produce(framework::Event& event) override;
67
68 private:
70 std::unique_ptr<TRandom3> random_{nullptr};
71
73 std::string input_collection_;
74
77 std::string input_pass_name_;
78
81 std::string output_collection_;
82
85
86 // /// Number of arrays
87 // int number_of_arrays_{3};
88
90 double mean_noise_{0};
91
93 double mev_per_mip_{1.40};
94
96 double pe_per_mip_{13.5};
97
99 std::string input_pulse_shape_;
100
102 std::vector<float> pulse_params_;
103
106
109
111 float tdc_thr_;
112
115
118
121
123 float s_freq_;
124
126 float zero_supp_cut_{1.};
127
129 SimQIE* smq_{nullptr};
130};
131
132} // namespace trigscint
133
134#endif
Base classes for all user event processing components to extend.
Class which stores simulated calorimeter hit information.
Implements an event buffer system for storing event data.
Definition Event.h:42
Class which represents the process under execution.
Definition Process.h:36
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:29
class for simulating QIE chip output
Definition SimQIE.h:17
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.
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 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.