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,
50 framework::Process& process);
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 // TODO: Make use of the global verbose parameter.
74 bool verbose_{false};
75
77 std::string inputCollection_;
78
81 std::string inputPassName_;
82
85 std::string outputCollection_;
86
89
92
94 double meanNoise_{0};
95
97 double mevPerMip_{1.40};
98
100 double pePerMip_{13.5};
101
104
106 std::vector<float> pulse_params_;
107
110
113
115 float tdc_thr_;
116
119
122
125
127 float s_freq_;
128
130 float zeroSuppCut_{1.};
131
133 SimQIE* smq_{nullptr};
134};
135
136} // namespace trigscint
137
138#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:41
Class which represents the process under execution.
Definition Process.h:36
Base class for a module which produces a data product.
Class encapsulating parameters for configuring a processor.
Definition Parameters.h:27
class for simulating QIE chip output
Definition SimQIE.h:17
Class that simulates QIE chip of the trigger scintillator.
float zeroSuppCut_
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 outputCollection_
Name of the output collection that will be used to stored the digitized trigger scintillator hits.
std::string inputPassName_
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 pePerMip_
Total number of photoelectrons per MIP.
int maxts_
no. of time samples analysed by QIE
int stripsPerArray_
Number of strips per array.
bool verbose_
Class to set the verbosity level.
void produce(framework::Event &event) override
Method to produce a collection of QIE digis.
std::string inputCollection_
Name of the input collection containing the sim hits.
std::string input_pulse_shape_
QIE Input pulse shape.